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 ed5324c3c4a..4b2c1523a5b 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 00351e1c7cf..40052d73e12 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 7954dea37f6..ab48c96d417 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 f67dbab3eb6..84688a6c041 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 84688a6c041..141244a01a4 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 b3b376e9d89..000cb56b01d 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 ab48c96d417..8315ad92e81 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 8315ad92e81..8bfba5e9486 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 e1d1e5be8d7..8c53557251e 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 141244a01a4..8b89f6ecf69 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 00000000000..009fae4f4ec --- /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 8b89f6ecf69..c93498e8106 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 c93498e8106..bf4720a3d17 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 000cb56b01d..6b5f8b40f81 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 cb90de32f98..d0ba380de34 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 00000000000..3c0efa4f546 --- /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 fc0ad0e8c75..eb4471efef2 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 315a81b9417..e407864a0ec 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 3511201c7d5..ed9870fc941 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 d0ba380de34..52f1cee7f79 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 b3b376e9d89..93648bc6c37 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 3c0efa4f546..026677c0d58 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 ed9870fc941..8a58a2373be 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 6ac2a557fa5..00e51141230 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 e407864a0ec..c3f428117e0 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 93648bc6c37..c8d47712d11 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 00e51141230..a89170626b8 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 bf4720a3d17..d809e702cc9 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 009fae4f4ec..8f895dc81a7 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 00000000000..2cc571488fe --- /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 d809e702cc9..21604698432 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 2cc571488fe..21df0384196 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 21604698432..52c0363e99c 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 72169192a08..4e050e0a441 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 fae56c4ceae..e02d94f9c47 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 4e050e0a441..ecca2b44dff 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 ecca2b44dff..b1bf76bd384 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 21df0384196..436dc924d22 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 e02d94f9c47..9de385ee11f 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 b1bf76bd384..72db48519f5 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 72db48519f5..d97afcfb936 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 cb90de32f98..2d8511ab1c0 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 d97afcfb936..4fecfc7dfe6 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 9de385ee11f..fae56c4ceae 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 4fecfc7dfe6..5b4a8345545 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 436dc924d22..023fa929072 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 52c0363e99c..8a0fc1dc3f2 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 8a0fc1dc3f2..45e01faf3c9 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 8f895dc81a7..ff83e960760 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 023fa929072..ac638ccb632 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 45e01faf3c9..f38147b5435 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 2d8511ab1c0..6d281503c7d 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 500674b6281..e77f9b6f6fc 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 9dcc21a765b..bdcf8e10448 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 86e81a4467b..7e73edf8e8a 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 f38147b5435..d642b50401b 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 ac638ccb632..8a5f6315201 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 d642b50401b..39a674b700a 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 8a5f6315201..a72e64f66e9 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 39a674b700a..4252aa40a91 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 315a81b9417..88096e0a7e6 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 4252aa40a91..42e80e425fc 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 d36934d1eae..3503feb6fc9 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 3511201c7d5..27e1e6ea6de 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 bbeefe9f789..156a268e257 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 42e80e425fc..08647e6fc41 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 a72e64f66e9..1b149d7ba49 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 1b149d7ba49..c07a43d23a5 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 572f612793e..9254b7f23d2 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 8d2709c6fd1..22c968ce422 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 748f2ff70ed..5f3534899b7 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 a75a45f43d5..fad79b5ded4 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 477e7dbcb04..0dce0ae663e 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 00000000000..9de88c4afbb --- /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 08647e6fc41..60c330091d6 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 5f3534899b7..1dc3ea48677 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 02beff7f5eb..c5b34a35696 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 9de88c4afbb..00000000000 --- 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 8bfba5e9486..2e50ca8ba23 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 6b5f8b40f81..289ffa2c1a7 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 2e50ca8ba23..038b5ded5cd 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 60c330091d6..8fbf7957683 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 c07a43d23a5..70d6803f1ac 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 8fbf7957683..3bda778c76e 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 2800b609dce..680fb5de4e4 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 140bfa08a00..d8218ea4062 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 b94a27c509a..02124999d60 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 ddd62e66cbb..1e27c221bb3 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 03dbb2cef5f..25186e0d62c 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 5015146bbe8..dbc7bec822d 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 8dad7c177c3..0d11800ea18 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 5fcb7c75fb6..40d2b020f7a 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 09a9c1d4b26..0f1bdc7a86f 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 76f9b4dfbb7..0520fa04d9b 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 cf806b58327..934dfa7a7de 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 22c968ce422..7ca1df051a1 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 d6336e6c653..2fd9366f5a4 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 e63f559184a..43d5c4a9cef 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 1c673126ee4..014dc8ad2e4 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 ec3a20c1661..c34bb4e45e9 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 e90f4356212..2660c4603f0 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 9aae4fd1ce0..341639a1838 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 2ad3c5187ba..2870a963ff5 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 156a268e257..3e85bc85f20 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 47c53237510..bb769ed965a 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 5800acc9630..33c2d2068a4 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 276bceaf74c..24dce1932ec 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 901b6b10f51..7581dd2128a 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 12cbb0f50b1..57f845492d1 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 3cda7b2a71b..f576ab73dab 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 2f94832793d..b2dea35439b 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 3db5d9ebfba..0d8c3bb1bb3 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 307c043bdb5..70cbaad4d7d 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 46452a5206a..abb4a332492 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 a691532a4ad..cd551609a63 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 06431a68a95..a2a8efa8d81 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 5ab216ee023..683897eb8c4 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 df50f8efb87..58ed7138592 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 86975836d23..ff84a5da6ea 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 7ddb8be2a5a..11ac1f3e410 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 c3b8628d786..9a6e38a382a 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 c26c79ab8b8..60a88e98590 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 839062fe2a7..9ec0deefbba 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 c325021188e..965f39b45e6 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 a46cfd94d3a..7dd85b65ad7 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 1dc2f5dd6ff..7c977478625 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 57ed40724c8..26b87474df1 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 76533e7809e..d9d7a098291 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 32fe417d4ee..7e5883e8938 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 923896f4030..10c58b1e4bd 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 57a2480e602..8fb74e0d7cd 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 33199a230b9..cf6587a8487 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 cf8639a65dd..55e195dcf16 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 ca80970cbf9..7f1f1a2971f 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 7dd85b65ad7..2ebe84f0403 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 7e07f558694..a389faba417 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 70afe5d318f..2ced7b45bbf 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 a9989f093c6..16586bd1b5c 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 a0d063fb1e7..ef59e82ae4a 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 f8d43e26b2b..1ce4345af38 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 982912eb332..3ee778febe9 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 93adb29bbed..0d56987a7b2 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 040fbdcd2af..4d6e66d77a6 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 60e65595050..fd1f971d9bd 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 c7984104ab3..96ef2b88c6c 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 d9e0d9d3efd..33564b68780 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 43179d705a4..3386a0714cd 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 53e01b5c79e..45b264ddccd 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 1de7a2e23f5..1f5a79bc002 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 faee293eef4..4ac41288c35 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 2f7445391b9..bf09abb36d8 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 de13a5cdbfa..9405a66f8e2 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 307052e997f..8f0c0023801 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 a0f2306a697..531c6f5b317 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 2e7efe1be3b..fc422efd72f 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 5b7a5117769..57697a9fd90 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 4657d1fcdc1..5ad4494e0d7 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 ca106eccd71..a561b6504ec 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 16586bd1b5c..4ba1e79dbc4 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 9682577c93a..7ca53fed101 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 1ce4345af38..2ff9041c730 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 d5b4126e756..02d52296408 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 3ee778febe9..70185c7e1a6 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 0d56987a7b2..040fd3bad21 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 51845b1ac64..c81f9fe9f91 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 146aaae7b10..82f12e39e8f 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 365a0a195ef..50179d0ebb3 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 82f2c4e881b..41fc2aec76b 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 7aef8ce09d8..9180bf59ba3 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 3a84a7b7888..974bf944f79 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 5ad1e8650d1..f4fffcede6c 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 96ef2b88c6c..6c74b55ab92 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 33564b68780..28db02a40fd 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 55e195dcf16..cf8639a65dd 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 b7669ce4d21..be4c75bddf4 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 2e3dc753e6b..3fb25825b3f 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 b86759fa183..287d58274c9 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 eb85fbbf072..fdc5f70f2e3 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 4059a6b6f58..ee2adfc51db 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 af2e7d38617..219f93374e3 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 a2f749c719b..dbd464e7020 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 00000000000..7070cbf2d95 --- /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 cf8639a65dd..1ca97b4b5f9 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 683897eb8c4..dfd7d78d866 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 14257257cd5..6e2f295857a 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 3b79dd62826..bec7d01feee 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 395111c03e9..b7df3e2ba64 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 72169192a08..635cd9478c3 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 bd3f2b9747a..00000000000 --- 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 b7669ce4d21..a44171ef9a9 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 dfc5e4a2a32..8eaa6b0b109 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 feaef6a768f..a2398304b28 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 b3b872b64d2..1c7ba3ad68e 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 35b9fed4c10..c10ecab8bf9 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 5f079809023..576f82dd391 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 5eace29b5cc..ac632cb7223 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 ac632cb7223..5af7d4beeb6 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 5af7d4beeb6..51b4a441e24 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 fae56c4ceae..c80a69b5129 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 17f3c999af8..4929c8ee529 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 500674b6281..63152739f17 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 2110405d335..cbb2683d1e4 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 496204893c7..6800b7f43a5 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 b7df3e2ba64..172eb25d8df 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 635cd9478c3..d4e6254866d 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 c80a69b5129..34ffbca9d64 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 00000000000..b30b19ecb92 --- /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 faddb36305f..00000000000 --- 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 e76eab95f1c..33bd2d05f57 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 63f379bbcd8..77054fcc9de 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 6122f27e7ee..0aff7eb2817 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 9c29282c942..8d7c3806991 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 4fef85fe338..12d36cf3c04 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 d36934d1eae..a50fa4e7675 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 00000000000..e69de29bb2d 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 0edcacebd1e..09555497ac3 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 79ce6a7f320..3145c0cb139 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 172eb25d8df..093010f5dff 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 00000000000..6265e5b540e --- /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 00000000000..f86591ca21c --- /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 00000000000..6265e5b540e --- /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 00000000000..f86591ca21c --- /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 00000000000..7f8c791a85e --- /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 00000000000..091c415b25b --- /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 00000000000..7f8c791a85e --- /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 00000000000..091c415b25b --- /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 d4e6254866d..00000000000 --- 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 2e43239a703..e56d095d977 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 34ffbca9d64..82641a2e501 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 4929c8ee529..00000000000 --- 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 2357297aadc..00000000000 --- 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 67677c072ba..00000000000 --- 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 c42564ed1f0..4b00dca797b 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 62c87f10270..7ae095f1418 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 21e858440ee..18fb1f034de 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 cf1a1a2e322..a4f88b203a4 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 f86591ca21c..371b0a3cf6a 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 f86591ca21c..371b0a3cf6a 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 091c415b25b..29e1c16a99a 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 091c415b25b..29e1c16a99a 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 a997ae75339..62b301a8ec9 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 0872bffb4ee..312940cf726 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 82641a2e501..512a6e3e74a 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 9331d2b9c21..a660e17ba00 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 237e8a00367..1c212538976 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 312940cf726..f74baab2ca1 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 ead291cf4b8..d7e0f0748f1 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 680fb5de4e4..6f269abe52b 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 6a1264935fd..00000000000 --- 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 7f55ab0c76f..00000000000 --- 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 b7900f17b38..00000000000 --- 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 878636a6970..00000000000 --- 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 51b4a441e24..1b6a8ae052a 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 adc9b7b0b03..faf93ada50a 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 62b301a8ec9..265544fd5dc 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 85bc6308ad7..00000000000 --- 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 93114e153c1..00000000000 --- 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 00000000000..e5b82801523 --- /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 fd81a0c733b..00000000000 --- 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 00000000000..05ff95cb2f7 --- /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 aff2ce752d7..00000000000 --- 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 00000000000..bc1dfbcf92d --- /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 00000000000..e9e1f3345d9 --- /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 5fc70bf0bad..dcd32041d67 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 00000000000..1e34941e7c6 --- /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 9a2060c62d5..e95d8e1417d 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 aa79f692cdf..c8326777038 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 450c32d3345..43733e4720a 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 129358fef2d..5c5365453e5 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 00000000000..37f92ce1b3c --- /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 cab4f369e9f..00000000000 --- 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 74a5f72eef1..00000000000 --- 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 026677c0d58..e2b2b976a7e 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 318e015a275..3c7421d880e 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 ec85b7d81c2..49e1e507666 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 986522e28ae..73747035c44 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 7552e48e7df..301b662e622 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 cb52fcecac9..140c814e1fe 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 e2861522c42..6e4f42ce620 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 00c8d29b4e4..00000000000 --- 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 3ab514327a8..9325efbd28a 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 004639ced07..644fba5870c 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 0a0bb9073c8..29d452f9f94 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 e0913708aa9..d69773f7e7e 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 819304c4d0c..962133c7871 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 4e9fafd4d4c..78c634a9dc5 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 5da9acfe0a3..297cacf6816 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 db8b022ae49..76a2bf3d94b 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 eb8bbf47bac..ad3ac690d28 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 87eaba4d64d..202de594d08 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 c4588063a9d..ae20ef2c579 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 f4a3b94317f..848890dae09 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 ab8948a2eeb..53f2524d521 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 6cb6abf76d7..c985cc02e4b 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 0b26fb5ce77..c94a93feccc 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 2ec5ff43e24..e8195f6cfba 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 3744f15891f..d6953c40cbd 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 efd6e6b113b..af09931c7e9 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 ecc79cba664..292c7b99420 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 602115a6a8e..5fa4020e9d3 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 1684e7051d1..ac012cf0611 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 59d93124f61..bccf420a9d1 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 1cab79b91cf..42c05b95e7f 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 d687b3ea616..fce4168f33b 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 d6cacdd0805..a7bcd15b887 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 9254d9b9e24..a7bd2b994de 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 28d6c52f1f1..4171a532fe2 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 d3666898744..e4a28cf865c 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 f3eace32932..0feb55087d4 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 b5bff809dc3..804be0f8c77 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 da0f625cdf7..916e7cdee80 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 991597cba5a..ea4cb7cb0db 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 90ae93200dc..6ec8e08d648 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 3e3df97d8af..72b670bd703 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 73b29682aec..00000000000 --- 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 771205196f4..00000000000 --- 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 88ac2610d6c..00000000000 --- 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 2a8e8846321..00000000000 --- 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 5830914f97e..00000000000 --- 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 9f48e6f349c..cc5f778c1d5 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 27669de18ba..737a4a87b8d 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 a5d0909d68c..4fa879ad860 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 dc29a473c8c..2811a665a99 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 0e201f75106..684725ae642 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 27669de18ba..737a4a87b8d 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 2bcfbbf7d9a..e55d4333278 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 00000000000..610182710d3 --- /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 5f6fe538e86..ef108a4857c 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 76166e67752..60986977f32 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 da005d980ca..5aa08e330af 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 c08612cd2c2..c60a4c3fd9f 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 656159fa37e..4432c79f6ef 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 804d60b5a11..27bac264ace 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 c8209a6ea22..89867aca284 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 f7bea0b9816..2b2efd41ad9 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 743d8be860b..5b52fa41f41 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 ae342ce8231..f886807eae4 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 c12bee41dbe..1b593443eba 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 53127f628f7..52cdf0dbadb 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 9d1846b3e6c..0b2592e080c 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 27669de18ba..737a4a87b8d 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 35d5f23f194..9bc510422d0 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 00000000000..13bff5198fc --- /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 d481b84d066..6f429434b7e 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 4feb0487965..d788908d80e 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 73cc1c4eb8e..3e261aa37be 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 4a19321fda0..52e6bef09a9 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 22192e5ff2d..00000000000 --- 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 4cf08b54d7a..039bd0d9357 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 579894cf20c..47c29465d47 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 3bf8c3d213d..e5185a1dcc6 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 fa32796a2a2..00000000000 --- 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 83c9b684daf..9e48a1bbad9 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 783b8f10bca..6d9c6610f7a 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 e491a210075..c65a760483f 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 7fd932281e7..dbac2a089c0 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 1f10724431e..a510b419c3d 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 b8792eda172..46cc7a5b733 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 fdd76a97d0d..52a433b97c0 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 25c64601df4..c7700a24fdb 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 ad21bdf3e8d..00000000000 --- 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 998c2d968ae..2fdad649e82 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 118f478a958..f96d47cdf61 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 560ae2491cb..bbad45df6c3 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 02c34df8d4d..943a53b4c0a 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 ff129d5e183..4f16b29d5da 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 b56cd97e02b..723e6bfe76f 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 15ee1388cad..f53182f8ca0 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 7078d401a3f..772fd872c09 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 53cd674f552..45cd6c0cc9c 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 b98ac4b37fd..30b9d1a3fc8 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 18209e73428..248226a158a 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 81164bb9d84..1dc7cbe6efb 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 5844a363a92..a4591d346cc 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 1daa538b200..5b2e5d3cb1f 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 631b21ca86e..b43f087bf1a 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 480f0b37481..ef41869df38 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 728280c6551..b80c8f81e59 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 f790c890c85..67af5a51dc0 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 84d87935d31..bdcb2d209a9 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 7113c56e489..0e865fe3190 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 02f2caec3c4..f0d66bcf336 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 e5e39e93ea8..9ae3aa7d4a3 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 5cb738e3aa1..a80c180011f 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 8f9a819e1da..c18eacbb46d 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 62190f6d054..6fdff7c58ec 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 3feaf321076..c009e821a94 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 ad082196329..c98281e3af5 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 6697391680c..73aacefa59f 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 324bee7859a..7b243d7d715 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 bed37b96773..b6f29df6d1e 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 bbf423d66d6..fac16099e12 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 379dd7e03b5..067267bd9eb 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 e75a5b3a15a..8cc9b487ddd 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 5de71a1a54d..bca9a8d345b 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 8637a60d31e..a412c5d656f 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 060cc2fe7e9..696c274979f 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 ba649797939..00000000000 --- 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 57815552a4d..00000000000 --- 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 c0100f73e27..00000000000 --- 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 d7980e8fd8b..00000000000 --- 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 2079d6b7042..00000000000 --- 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 867aacba9bd..00000000000 --- 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 01af0f08da5..00000000000 --- 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 7ad96a2b6d5..00000000000 --- 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 67f0e5ac4dc..00000000000 --- 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 09bdd57b8de..00000000000 --- 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 1a4cdfac3f7..00000000000 --- 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 6fd5712fb42..00000000000 --- 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 6fca3637416..00000000000 --- 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 5e6e929d52d..00000000000 --- 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 867610ed6e5..00000000000 --- 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 7b29f0f49c7..00000000000 --- 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 cfeaf721152..00000000000 --- 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 cd92e825531..00000000000 --- 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 630c6e63afb..00000000000 --- 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 dd318be04b0..00000000000 --- 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 4a72989d61a..00000000000 --- 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 475444c8d7a..00000000000 --- 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 6b58ea61b6e..00000000000 --- 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 3465ed6af22..00000000000 --- 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 1f6931e2d9c..00000000000 --- 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 d333cdc39e6..00000000000 --- 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 a01987beebd..00000000000 --- 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 e821aa72d7c..00000000000 --- 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 2ce83b4ae53..00000000000 --- 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 3913e73b5b6..00000000000 --- 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 b697000bb18..00000000000 --- 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 e4cfa8f22bb..00000000000 --- 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 f59451e679b..00000000000 --- 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 3fd285b64b2..00000000000 --- 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 5fa367a0040..00000000000 --- 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 db8027ed802..00000000000 --- 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 c59f537b1a2..00000000000 --- 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 460be2bb62a..00000000000 --- 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 5cef6bc61a9..647859ad05d 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 41dcfddcb26..ed5af7d4816 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 550b80e11d2..307f28aeb73 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 abdcbab535a..71a4af0bab0 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 7f123bbe5ca..4d9f60fafb5 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 a9935fcdc01..1e84c03b34d 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 3def74637f4..d0c7ea805b3 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 0642dcb3fd7..af1785d7650 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 36998937123..bb424a413e4 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 c2908ef619c..c80816d17b2 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 5cb51cb603c..6a7309222fd 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 06de717ed8e..544375f2fdf 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 770622c5d12..4fc7506d72f 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 4d4dd68fc7c..0bc6b9f5257 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 1aba8f97b7b..30c1acce4f9 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 46491588d70..4304259b8f1 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 147fb2e84d4..f29fa722208 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 92bf744a258..4e6c7bf20ca 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 eb8a4f89f28..c9637a20d08 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 51788b43d3d..46ec64566c3 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 1c589d6384b..027582e117e 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 559fdd3abb8..31c203e1795 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 22fdea0be36..7890fe3dc53 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 b4e7908e2f6..1d666ad5115 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 984a56cc079..bff7aa8f226 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 e42aef8cd25..de88758437a 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 571fe391bff..78b4876d037 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 5338a157310..cdec38c98c3 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 287f914bff8..e292e1a4d87 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 5c04e7f3454..00000000000 --- 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 fca7bd21342..00000000000 --- 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 6441ebdad4b..5c834506769 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 c19f421b0e4..00222c3af9f 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 7574ba79ee8..00000000000 --- 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 6b36ac40e2e..1e0a99dfc2e 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 355776b8163..28792a4a56e 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 0d092265048..804277f1ab5 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 82fae0949fc..5a83e118fe8 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 94fc3304dd3..3d51b99b782 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 63b48895ce5..b2377e7ccde 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 8a15b5dc9e8..86a9e21f389 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 3726946008d..00000000000 --- 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 5b8ae0ea701..646e2a60761 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 574d5b80b83..b10e369df07 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 6125bde123e..f174a0239bc 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 3fdbcb82683..c8bae349a1f 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 d33233ad73d..6d53fdb3191 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 4ff09a042f8..643ef8c9835 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 08fc7ab61dd..6c49790d708 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 e6cea95051d..8bad9cd197e 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 64b4d0f1d84..6d3523445b7 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 00000000000..2f21e505564 --- /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 084f5660be1..8fa7326f13e 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 df3c6c64e36..67d9a90102e 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 3aeb51917e3..0749b8c97a4 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 239e2de6084..55c94adaa19 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 99513a52d9d..2eb70e2a4b2 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 d52ba3bb2e7..abcc606c4dd 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 761abb2396b..25b3e9ae700 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 b0653a8db4a..dd3ad2822b5 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 00000000000..28dfba56af0 --- /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 081cc12630c..24a3a429caa 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 d64b30bfb32..225b424a170 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 3329a1e728d..53ee5094f14 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 e7bb0cfe5d6..73edee8abe6 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 aa4e3c50d96..b2921de58dc 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 5affa97a4b4..f049f5a231a 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 d6decddc843..cd099a83ab2 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 04a9fd6218c..614fd48e830 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 2cb2b737d33..48542302583 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 95ba0fa3992..854464c2c6b 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 8eb29bdcda6..235e038192b 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 9a9eedbeddd..66bbd3d8842 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 071259fd704..8a8229e5fe6 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 b05dafd244f..3534b9dba82 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 67a8f70066c..09e2dc715cb 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 3cf48a3d950..7e357eeecb4 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 7c4d33f4e48..b3654f377ee 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 457dfcc5138..b25209fcf67 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 6509f4ec660..434d87509bc 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 04d3848e90b..43fac01713c 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 0ac8f55e6a8..c233af01ec5 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 eb3cb696ff9..715faab6231 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 1cf1042ce9f..fe8f3b2448d 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 8cfe4335bdd..31a4110aa2a 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 1fe54f87813..a9bb83bdd45 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 7e3370a8f3e..47dbd6dedaa 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 86cedc587a5..442a0c3c066 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 6e9a809591c..a2b698fb403 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 2cd9f44ccde..317ad9e1801 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 c4a53693b16..7366f6e90a7 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 7c7129114c5..afcd0946406 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 2e8b21fdee0..4848cb991e8 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 72410cc1964..b72ee37ef36 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 8a6f984c51e..24023ac7e59 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 cffb62e6f9f..583838de827 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 f439bd6afc1..a1bbd0a8776 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 cefd10cfd11..067e7000352 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 afaf5647ac1..6c47ee40e00 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 f320d196b66..768e4c5f781 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 3289e4c51e2..9ff11d0feba 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 add9e9c6844..5824bde8859 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 46dce9fa10b..f770accdf53 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 faf87dfd705..96f8ddd052d 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 88ef9b76d57..69d3846d37f 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 c15d24f3671..fd928a2163e 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 1f4b6d52bf0..c0fb37daf87 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 1ff9ad97dea..fb3909611a3 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 7f3be78307c..44733ab6fca 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 14edca878bf..bc3ac6ca409 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 bb3a5a29d58..27fef2188ce 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 e806baf6061..ddafade0215 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 a7264ed184f..7d8cd0cf53a 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 3a644033632..a9a3107902d 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 bcbbad4466a..f745b15a500 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 c0d7ed62218..376cff5fa63 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 631e670298f..49f5612e3e6 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 2574c4d0cfd..a1cf319a707 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 1e66f0fd7d2..315a6350514 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 bf30bf6b26b..67fc0fb9130 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 aa78b5463e5..542024ddd99 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 cc973c77132..6e0c361175c 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 4f8a1833ce1..ace110b458c 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 69303daf28d..2c3be217d77 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 8e3d2ef1768..3757ef0a8b5 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 8c260bbc512..41e84b5a0ff 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 270beefb470..a67bdce41a5 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 00000000000..27d1bd928de --- /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 9b42ae8a282..c7f95614953 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 42744c2fb6b..ddd1cab61e9 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 8389fc69a9b..02dcd573977 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 89e72b81205..59491200f31 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 8f0f52152b3..9d8c04134a1 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 c4cdb76a345..2e478676d2f 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 13c7b0be952..98fa970d1c2 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 2c53fbfd14b..8f65c8d57d1 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 8528a13ae3b..7a24065075a 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 b1e780cf574..25871949273 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 7293c757d7b..2f1b5b320be 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 a655bf9a2cb..18de1088112 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 f3cbd87e92e..e035c97606f 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 6ef7b42e1ba..43f391d57dd 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 175cb8a86b8..9f60fe8fa95 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 8765708cdd3..915266a353e 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 44b8cc5908f..c4a1fdc56e0 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 b02ac744814..70c34538568 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 1002ef5023e..1ace1a4d1f0 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 18e6ed1f00b..974e84740f2 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 0081d2ce389..d8b02f69377 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 baa9233c3dc..a48e2f112e5 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 73f011373f3..62bd8e42216 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 30e3c52855b..c436c386a31 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 4b9df58dad5..4c78f115456 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 00000000000..b7192aee8c9 --- /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 47208f6a89a..043e50c2c46 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 f74f98f60f3..a3e1617e432 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 2923008dae0..52cb7e389fd 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 a564eb5b910..1437f800770 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 0847f129029..265ae32bec7 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 b48fd7f1239..9cf796aaaa4 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 80574c2445f..4134aa64b3d 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 bf60934c76b..2e4e3b5a4d8 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 1c2204d1568..2edf45ef537 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 58e3fcfc130..edf9e389786 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 f6200e28421..1df42d9f9c5 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 db254ff5aa3..1431b945f4d 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 86a47fcc3ae..10758ea4ad3 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 b45e52e820e..8f7f51dffe5 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 b2aa44fb2f7..958e0b8cff1 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 f66f6a9d305..0346bdcc400 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 2b353b1862c..fad1f6fcec6 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 5fd9807c3ff..975eaa832bc 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 5d4a342f099..23509ec8ed7 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 241782a171d..d1c5a99118f 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 1c3a4a9ecf4..1d8a049c5f9 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 4d1e4e84a04..3910071f0a2 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 3686a43d68e..4929c991136 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 352f0514c2e..f27e2270050 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 1918defd55b..b5277b83426 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 535b43037d9..f45a0d6e8bc 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 f2a132416da..5e977808017 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 fd4b9b105fd..be149aabf18 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 b021db486aa..63a0c1c3685 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 3813efc8acc..59c35054a01 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 214b4d7e487..ecf9f1299b4 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 adcd362c5cb..01f275521cc 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 6d2641ed6f3..34d1ffc46f3 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 d530147b4aa..8ceecfa4702 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 485fcc54622..c0164f0e33b 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 6adeb31c848..0c4da4f8fd9 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 bcebdfcdf19..4d16337d944 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 f1fc46ebc71..bfb7b36e22c 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 679ec3690f6..1bb9da1e455 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 19ac08ce217..bb53219d562 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 cabd2b85375..d1c12bba225 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 298faf191a4..e8c7e75ad3c 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 00000000000..27ed67a3c22 --- /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 f6097eba4f8..36cdd01e667 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 5ad2c133ec0..23c288e7acb 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 00000000000..0bdc2935651 --- /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 00000000000..a20a2032bb9 --- /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 b2ad7131448..d5ec30015e3 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 f348e6a9084..ee70d2da21d 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 934b143b29c..3fb36cdd805 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 00000000000..e4e89cd314a --- /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 00cd1b99f22..3aff46e03c9 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 e8900e89769..a812911ad10 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 b781cdb6269..8a512acc57e 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 47c36a8d580..c1c628106c9 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 880154a6e75..606885559ce 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 c4d8b563534..18f0a407056 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 14934b57f9e..f929dd0c19e 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 1b60a252838..b6ec37a3c9c 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 92d5879e018..1621a730ec0 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 c51a596b188..ab9a6e54644 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 3cf4816147f..01c0e6fa062 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 0da0f020a7d..34c70b802ae 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 21fd56e2302..0c97f0ae94f 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 d392beebd6f..4f87964bc9b 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 f063337bf44..60bc444591a 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 c8952a7c1b9..e63f7b1c9a7 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 58a888769be..90436d6fd50 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 11aebb88f6a..22014711084 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 5fe2476f48e..23e5625123e 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 1bc89eea0df..3897edb92d7 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 af27c5e4716..2e1a2530714 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 cfa0e840803..6b8bde76a72 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 214d14703f5..92c051872ae 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 17d3a5e2c53..da397734d35 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 8530466cd87..d993650d170 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 0fe0cb49b6e..32b49e05753 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 e26ca466441..581204c68bf 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 6e9fde0afe8..27de03152c0 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 3b2b6e6f6a4..04413e766d4 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 6aac0c26611..4ca63403b55 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 ebd30412ae8..b93ac932a62 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 d23bbb7e7ed..820da3d067b 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 6718b04978e..f976707c4c9 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 b3854a9a562..d6098016ddd 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 12e6fd06ae7..5cbc105581a 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 3ada20c3c62..64e03cd40b2 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 831f61db73b..b095392b191 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 e30b2b0a753..a4391eff6f0 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 757c162f5cd..db2d50d3ff9 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 bf1e9a9a034..0792b06a87d 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 26977336ef9..62ad8f645c9 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 1e64a88fd29..46fe4cf66f1 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 57b4f4deb70..d586ac4d278 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 fddc120b4be..d78f27194a3 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 0cc4bb6b276..17abbd15006 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 b4b0732ab8b..d8b8b1293f4 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 8dfa7f66d46..25138ef7fa3 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 e79bf568a9f..b474864abc2 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 0c0dd10187f..e39af83a85c 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 681a816ef76..f1de2add3cb 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 ef269c6c019..f3bb67b689f 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 8444ce2807c..c5ca82acfd8 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 c0297fab895..7bd367169e5 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 18833c1c7dc..de63ecfcb2d 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 a5704a1c13d..91509384d54 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 7b5e55ca9b6..869a6a12a36 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 718ffc87a2d..81d2cc719ee 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 8c898e96dec..075c987077e 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 20a836c63a4..3233dd1a0a0 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 74cbecb30f4..1843300bfd4 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 bc6745d7c49..cbd9989d03c 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 6f4e51bb678..32d667457e2 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 63613a8953f..1772f82fe2c 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 8d51aeee5b5..c48344d706f 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 3bf1e6d103f..2beba3599cb 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 de070203a49..a3bc2264fd5 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 dbb6c76af6b..affd0edeba3 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 904c9114a4f..fce077e416d 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 87f6f400929..42c5851d737 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 606c6dfc931..46e9f9e1479 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 b50290f89b7..e8f0b4369af 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 28438af3c41..d318f35bca3 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 e8f40770c55..31f0876bb9b 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 bcbbad4466a..f745b15a500 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 819b02d2e89..b7d8d663b04 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 21965fcfd40..7bfb6cd1b39 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 72484546658..3de53f1562e 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 7ef70e6a5ab..667339ae1e5 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 5a8c81f3853..c50de179ba8 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 f33d502b670..72ffd661c7c 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 5f2f951ace4..fe97121757a 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 00d3cd8c129..f325cd3ee7a 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 a7307a5449d..e833bda0d02 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 a9771f4153c..fd10655d62a 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 706a0c4cc84..5467b55123b 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 52b9926b7d4..44d0075bcd8 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 00000000000..82e4c534318 --- /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 3a65f734d22..20253ac2e3b 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 2f86edef1ff..de1263d659b 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 8389fc69a9b..02dcd573977 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 3e7e391596c..339c41393d5 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 5fd268ef719..1d0f4e46ff1 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 ae16df6916a..c224a3164c9 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 28785aaeb10..a43d533df8e 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 15e025ae3af..09d14b1dd25 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 32c733ae7c3..63345111c5d 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 6445ff82264..6e5910d29af 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 4133cb8535f..1c9a670678c 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 313ad252bc6..ce320d50992 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 d8db6bcda76..db64f10fefa 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 df758d29ad0..a64925ce9f7 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 9fcf2f5bceb..154ee778b19 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 3fb6ebec266..d498b0cba07 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 de1e2840fb1..a0c1b66f5f7 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 5dc277c60c3..4c963143e8c 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 f1bf77c4de6..531c98495de 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 21f21a323c3..de7221110da 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 dc70b4e7939..735e4c86f01 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 36bfbfa4db1..404c6e7add2 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 6c9d0d49798..c32c9b55bc8 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 355e938a8ab..cc75fad9203 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 904a7b42dfd..18f0e89a2a5 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 00000000000..69ff83fd19f --- /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 667d6ee9c8f..a3d8e8c1929 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 7d8c190fa7a..67ede0fd472 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 aa1f9f90c5d..17cbf875518 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 b0c5417e265..69fd69e7cf6 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 101bf393fd4..0faa58e2fa2 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 f4d65d27c6b..70c3b345b3b 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 d2a7fdcab06..634bf407f56 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 cb232007802..c23426c1566 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 80029e6859f..b2b8b643637 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 bd1ee07f461..acfde48d7ed 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 b3df442f4b1..fa65ce7de40 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 b8a23d47f94..85797b4cc64 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 13a45f197be..f23d1e76568 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 1e39cb33b5d..18733e68e71 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 1189a0304aa..a3eaa8f26ed 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 9910fb16781..48984008174 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 1e2179c3c55..95502f2fdb9 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 e73a994cba9..fb61c65c7e7 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 7858a1e8042..a250fe9484e 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 c9dd802a44c..52f00d80640 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 3d500b8a8f1..9afa82fd83a 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 e374568b588..bbb7de60808 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 b32fb718e59..4e991f0f1d5 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 c1fb6151289..4458396bba4 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 c7c303df311..aa9e14dc369 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 ed985dd9ce6..fdd130ab8e6 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 25606f239cd..249bfa7b7b2 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 e77c6aaa4df..f98c340495b 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 d5fc7fc7691..0aae74365f7 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 b646c86ecf5..7c9a311da90 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 56ae9856f07..7d0a88ce437 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 476270cabef..2d33cf7d18f 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 58c3716d175..da87456994c 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 784c5171805..a628a5bd02b 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 b00d2cd8d7d..ee188a7ad0b 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 11da8c5d808..46bf8fe35d6 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 6c1d240843b..c1ceff87bdc 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 0e242df9fee..df553574435 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 1919509231a..51b55eaa8dd 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 741a0e20322..df241bce713 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 0ddce916ffe..0d0ebe1e043 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 f3f07298c70..8e4663e7c0e 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 00000000000..27ed67a3c22 --- /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 098d66055ed..89c7a64df69 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 00000000000..5ae9b226214 --- /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 00000000000..0d9cb344afb --- /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 00000000000..da92609e2fb --- /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 79faf6a1c72..6a3130c39c2 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 a05baddf486..f7ce0749d5f 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 00000000000..c61b03f26f8 --- /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 00000000000..0f746589edb --- /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 17b4c3d5965..88816287e7b 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 df1f0675428..7257dd7161a 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 fae2fafded2..f12fc55faa4 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 03322849fdf..dcfeb7df98d 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 bae16c69c3c..83ecd7ced32 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 aef67c53ea1..f8ad5e2bf41 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 ea9f2835bb7..d1d16a3cb09 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 3ac35becaae..87305bbae56 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 5d5722cdca2..8e32e91642a 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 a77a1caaa2b..a0f1a3ef547 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 05c5ccf2724..4346cb437c1 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 de7070c75cc..057f9db02b3 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 f41cd763f29..327a99d0d18 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 c3804e79bbe..4764e2ec0ec 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 6c41848232a..362c36e82bb 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 0284e018bbe..a7918f5b46f 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 27c68b37a52..3d9aac394fd 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 8ad9ad6074d..52e07d787b1 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 f170a72a42d..333bceb585b 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 cf2517c3c84..4f7c04e8bc2 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 a73d12d61fc..fc95e6ae347 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 028843a91e8..427ab378887 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 93a23be23f9..56e833cf02f 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 1f64f8035f6..f16c7e0480a 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 ecfdcee367f..91449a71e14 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 cb8e8d0141a..697b8b68936 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 f489ae389c0..6a11038455c 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 ab80557279c..945b5740c3b 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 04c62bd8fa5..1cc73fdf356 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 37d0b3119af..a2168793115 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 598fb73c397..1062cab1b77 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 8903c9aaf9e..6e0ff9d9c88 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 e440d29418d..6fa363f3f5f 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 b29453d1073..16f29a48b76 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 1f21821eb46..92da3c7b949 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 202a7c96cfe..714b2726895 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 d5990278092..0f35cc65be6 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 ce74948850a..976f8269543 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 ded005c6fc8..ee1f015de12 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 290db564b08..3caa89b4399 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 b119148b92e..2582d0a5f2b 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 8b6c0083c38..abc3d453981 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 fe5b5197c1f..705c29a0973 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 86a8aa97834..2481f6ae81e 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 761a002974f..25db1e346c8 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 061fc64151e..ce765629b2d 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 a49f2582dda..0e91502b424 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 d9fd1d3df3e..405df3f8c84 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 fbec1f285a8..68db5a2fceb 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 57d422a924c..fdd77d17440 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 7b1e240400a..b938e6f3846 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 0d95374a027..a69ebd37c7d 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 d9fd3581444..77ea41b5f8b 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 87a98f8dddf..b9d257bca86 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 fe17f2cc814..9a24c51fec1 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 88038aa6e1a..0b441520855 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 3a17242162f..43644590d4c 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 ffc3948eeac..ecd0e24fe65 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 3bfec0f5a57..7107c26ae61 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 f69fbf6c019..805571d5996 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 abfee3d2f92..032b00cd5d7 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 cf857e7234a..6847184ad0c 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 5803e1908ae..e5610cdf47a 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 77503c4d8e9..0b516aebcf4 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 0a24ada87bc..901d79ab06b 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 7d9bc8f7fa5..f51886ac71f 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 b05de9619ef..2ba6e4460cf 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 00000000000..10ed7031066 --- /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 cd38c934d28..d2088763f47 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 750ce676456..382c524ba14 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 670ea005b33..88788480761 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 27a1567fad5..16e70ea5f09 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 af10f900900..eedb34b0029 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 72822c5e17f..61f7167d04f 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 4da8cac1afb..979302c103b 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 c89071bb527..e56a9b853f7 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 00000000000..2806d4f8a0b --- /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 e31ffe1628f..13a16945762 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 fa37683f524..1929520df51 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 9163e4ec477..485dd0d6460 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 c948461e68b..cbe1acabf08 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 b15c60b4e1a..99c744059b4 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 75ae1f84f2b..d38d678a3c5 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 bc9572ac94c..e8da8437347 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 98202517ae0..af9a310c481 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 1722fa713be..a0fff352019 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 e7bb945afb1..9a564c11ca4 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 ade18267cfc..5322dcec2d7 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 4c93508082c..5bdc53f0a90 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 783dc0c55c7..a6a308df8e7 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 02ef71d95f6..b7c07330f54 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 e468ed4107a..00867237fb8 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 e22807d8d85..128ac9330d4 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 84ef6b6a7b4..e442453db16 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 065d35b9295..29f8f271aa0 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 709dad6459b..21b2f550235 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 26ee0f4cd94..6d7958f05b2 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 f47eab51e47..6c302c9fe7d 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 723024fc35e..b8ed91719f0 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 a226eab4c4d..fa3bbc7f01f 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 07177815219..c1a30f32395 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 04527bd94f6..d47f6b02988 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 4a047398530..05e7919d0f1 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 6d3dd0e9278..e26289ed22a 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 5c2b9a9ecdb..2ea7fe97697 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 071f9b62c01..42ab7c5c506 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 8a4d47272a2..3cba154ff18 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 35aae56f406..0c76776aad2 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 ad1e48719d5..92d06acbc85 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 afef2c6937b..68458c53a06 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 11f7ba3705b..7c79c4ba607 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 f7964c20979..393f46f4f64 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 8baf6a23446..d86095f213c 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 1c6156c2a34..73266abef3c 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 6798f884260..92562f69187 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 bf73bb2cdc7..4cec6f5b16b 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 9bfc5222dce..25770bafcb1 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 a6731ec0afc..2e75b4bc51a 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 764623720dc..9afe873d636 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 7827ad7175c..91bab406548 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 5a4542042a1..f37c8339088 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 664b30d681f..41cc3723a7d 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 04b3e931562..20992681d73 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 00b67fc7419..168f36c7e94 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 fda431d1fff..38955379ff0 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 649099e3a01..9287e9e3baf 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 0d95acf7df0..455335b4db6 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 d36f9b656b5..0968d4c88a2 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 fd4e9dccb4c..c50843c8f2c 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 8659fdb261a..f679edc72ab 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 5489a00f76e..fdb3cf485ef 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 59c67009a13..f4596632f46 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 2d41c0acc25..77babfdb454 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 7da695fd6f5..7c52e8d8aa2 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 9ae97fb20fe..4abcc048f2b 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 9e8eb71f18a..7ba7331536f 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 2659435e4ac..0cdbb6fc236 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 e35510ff31a..a9a4f2fc240 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 fd61c8af270..0db363d49a4 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 a5301b3709d..352ca555022 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 b5668ad7ff1..6535e42dddf 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 235b9ae6399..b7710100188 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 c636e1781db..8a6d0b1db96 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 38b2567bf8e..a712e1a8d43 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 46b53ad5869..ea70973b1af 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 ac72b2935ca..b5d78c1daf5 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 b1bbbc295ea..c607c4dfbf9 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 00000000000..d924852bb97 --- /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 2d05f11066e..7a77c4991ee 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 6a205d76998..22c8b9e778e 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 8bbe76c2bdb..419d6a28cac 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 e07b05fcebb..796c4d9c0ba 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 b65057377f3..0541e55d65c 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 00000000000..8dfac50d250 --- /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 e8a6bb39770..da4f902a6f6 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 defb5f37bbf..a4e362dc5e4 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 7ec12f513d5..00f428e2c87 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 02d0466722c..e1514364736 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 35093f962dd..68516e7680d 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 a1f135bb3c2..0b1cd82e9e1 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 5e04c9410dc..09c3970897b 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 eefdd1dea97..eefdad8d9df 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 8321d894cf2..5c858cb96e1 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 c74eed077da..22413d3dbb6 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 62fa475a18b..28f0ff7a240 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 9117f5b5796..d634777e477 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 a0a6cf133c9..cf69f31cf89 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 776709ef2c4..9db07e362ec 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 3279d1676b0..92dcf66d410 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 5358c61e523..d1a0f6cdf41 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 367fc8ad293..5bca1be6f26 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 578f502e0ee..b3aff0e8afc 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 78403ea3218..51e8d0ab454 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 581503de416..b69cbb1a7fa 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 dcb5fe786d2..1ae552f9fe4 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 36d99672eff..73f3ff92dc4 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 5e75f6faa4c..e52ccd2c42e 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 e6ca896372d..9027b5a192a 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 32ed344192b..5793ea89a2e 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 41bdca7f357..e533fce2cc4 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 53b2bbaa0d7..4624a06cdea 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 02058b53184..6a1d32fd183 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 f6c85f18d53..54619dcadc9 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 7a501853e84..e31475cfd79 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 9fd328860a5..1042300fc44 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 dca80c25fd4..0088a613616 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 54f8f6d1f1c..fd825288d84 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 c52286376e6..0eb0c888e1c 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 dacd9bb6b86..9877f19ae23 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 039d0fa0c59..5dfbb1ac5da 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 4fa8ade40ba..43e4fd44e18 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 996483cc001..5dc88e50ce0 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 bc21ff6a353..64c21e8039a 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 ce5733b4b1a..d115a53b780 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 b127eaea1d1..58c33d60251 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 4d359824b2f..f004de67ba4 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 127ed33ff59..3c10eca1ac3 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 576d842a736..710a54a17f0 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 ef8f02a95ea..46387870459 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 328efc5f85a..416fccf1450 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 cf19264faa5..3ecafa77ee0 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 c00c152e988..0df19423d6e 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 3ffe3b07ad6..b6e6892954a 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 d10c9a9b698..2e2e1b0d67e 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 37a4a073cbd..2861dac3588 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 2abaa471af8..f565194e425 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 77e7a7e2141..7aaf95305bd 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 95c42a53317..4c6ae400f80 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 49f573caa27..938eb653647 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 b558a256f65..9665e69ecd2 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 7e40cfd921c..36aadd163af 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 c73f1a7dc83..3fd3bd70ffe 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 9468a7f628e..781a32848f3 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 c2e1503e9e2..6b2c360e0b0 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 3a9b379a942..310e4615351 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 35652b29bdd..df228354c00 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 10ddf4b4fc4..bcd6e11666e 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 3c6b016aff3..6b23e88e2c6 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 f32ba043e1b..119644f91f6 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 8fd0286383c..5b3ffea8c78 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 cd6619ea826..239616057d7 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 cce3ece62bc..7014c0df94a 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 ec13636c588..5788d139b70 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 811d9f82590..e0b69211943 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 09e4533fea3..06b1991e7e7 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 885228730e3..4529e24af66 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 3eed0ce39cf..b68ee9cf2c3 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 c7abf62a6d7..239633d8832 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 eb773137120..9335fd878a7 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 1ca08104f6b..27bc7b59f19 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 43aa60feb75..51c2b3caaf2 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 a2a6e9c7171..d66554af862 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 334487b88bd..7b12856e79a 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 8fc1f954360..970ea0df033 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 6866358201e..9a1cdaa9a3f 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 0425e3d9717..bdcc1031647 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 8914052d3db..d5324b0375c 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 56c0ad8aa74..a3f73688ade 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 9b91893923a..886cb2bec64 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 a2c1b622248..1c2456a1b32 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 7a5fb7b569b..b19fcdfe18c 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 d0eb0267cc6..a83d9f7e7f7 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 2ef97a99e11..f2c299341db 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 f8c684a07e7..13425b546b8 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 e3c486dc18a..99fc0d047d7 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 8f7834e5dcf..6d1ae0ac139 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 f00cf19357d..e3af0ba0a0d 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 50cb36b06c5..f29a4df1e91 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 9cb2d0964a1..2d8726813be 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 0e7469f2a6d..10d49a9d0a0 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 902dc744d1e..ff2255445f3 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 3914e369102..a7fd8285070 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 9f5f5b3408d..56ab71492e0 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 bd9ab5d96d4..2da4524fd31 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 f23da30a4c1..331f0d58504 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 755274afb00..b7174d1838f 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 c500d41eae2..13c8b8d0f68 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 7f4833eb11d..3a29470ed2f 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 6bf3c3651b8..22c22df7815 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 bc7e1d45042..4f102b9d618 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 ca8cdd959d0..27e78089959 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 91ec8f102d7..747bd749752 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 7a832fcaafe..ff4adaff6c7 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 48ff91bd277..ef9446e95ed 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 763c8961087..ed53106bb6a 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 3504a4aa042..3685345cb51 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 90d7a594a4e..77ee4b8a684 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 de460164673..784bc29d262 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 3fe1eb54ab6..8d3add38d65 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 8205ee3db4a..c24873bec08 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 b5cfdf4f701..4c67e607b71 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 c326aff49c3..ecbf4e53cac 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 15ab4671e84..d778040c62d 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 9690cd11603..e62f51f8ca2 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 716f1df85b2..1993f8f63f8 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 29fb06f09e9..8f2d48b5d3e 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 f787fb4aea6..f3510107163 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 0dd178995aa..b17fda60531 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 2adc18a9a4d..26f0a72a92e 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 97567669e6d..e83a5a678ea 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 03a04003c94..6462e6bc889 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 c03b42e05c5..ed5ed5e3697 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 f5a4382bc0e..416305cdead 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 0a8bbc7c9c1..6f482954a5c 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 ebe4f08dd86..f52b1b91a6a 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 48096e5970f..f2ed97aa3c9 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 004f69f35c9..f06b3daf1c2 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 eb16e257e75..37f967f5f6c 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 bab75626e41..52e953ce1e9 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 7f8751ba372..6faaed8a65c 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 c8ca6897a8b..2e9ac8d6c55 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 3f89ef2074f..4406e614b75 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 a92426b7c47..951612c0bc4 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 efac432785b..e23c986e25d 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 9c17ca076ff..aab646519c2 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 ab2557c9e0f..165295e7896 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 85a0936201e..96505c45373 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 8065a70f22a..810f9021ebd 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 8e126846312..38201a09328 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 3ad166e689c..5dbc6974169 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 93652d91e8d..f2e0a16aaaf 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 ce5ee004e65..f4fde1d0f79 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 55b8ea97b7e..65d33663ab8 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 51d9630dcf3..d5e50720425 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 66fc03d8619..5debb8a1f4b 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 e09efbec730..8a12f532533 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 8a470cff288..3faaa797fda 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 859fe574891..62cfe4a5373 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 0599ef3ae49..77ca946e618 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 104a36ac266..79e00e01e92 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 020433d4beb..699543178f9 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 bbeedabd0a2..a058955507b 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 22d047600d7..e96bc0267f8 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 7458bd91d0d..ed127c59c69 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 0f1bad200f7..f470f62e8dc 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 7398d654440..b6308c7ac83 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 0bfc2aa2888..cf2b497249a 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 7107b7614d2..e750a3c7e3d 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 b7ab62bd0a7..9ecc3669504 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 bf10b8571db..21d96ba24e3 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 7439a9c80d6..2246fde6cb5 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 944ee7d0181..469a72339cd 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 c9a3423bc8d..661e8b605c6 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 c46e0c6363f..6ad3e099022 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 476e2d06fc1..9147a6eca05 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 d605dc211db..823681d6f15 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 b93ab2a7e11..a6fff4573a4 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 974b6fc300e..d528edcc0dc 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 0bfabae268c..71192aa76f1 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 97d6e8034bc..22a81514dfa 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 2a30f9e17e6..9b45b7d3681 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 426f3343976..db70d67a987 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 3cc69b7c71d..a91e687b7ee 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 06625267891..6594e7d4250 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 e260e70112a..be6488793f8 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 324802bc6ca..60b4200b7fc 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 6bdfb1cb978..5450cd75806 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 d916c378a78..123ad90b346 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 4e4e169d40f..1b0f69aef5d 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 1bd47496948..45d2ad49f39 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 774c59c6e8b..75260c142e6 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 90d4fed6ef1..28da820b5a6 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 42cf07ca823..aac5f05ff3f 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 66e24152d61..412230b0254 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 ad663bfba38..209ad77f33d 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 7b49325d6ae..dab4805ca72 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 9d3014a3797..02a7ffddaae 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 9f680b56b8a..beb99816e45 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 3e45a66584e..7ce5b5844cc 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 69fa21d3583..a807f21da7e 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 e7f9303c9de..91ee5915f1b 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 74035de2873..afa5ac365a1 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 f02316965fa..517390b40fa 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 8052259509c..307a11ee724 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 dbffe839ecb..e8e63165772 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 1afd1d7b51d..4d46d4237f2 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 c3f80e59e3b..9447e6f1b3a 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 b1dc5d671e8..03ef0e32273 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 27b40794bc1..83a9fee75ad 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 db5a3e2bf13..40b48cb80b9 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 0dabdd9336c..4b42c56bb0b 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 aba642fc51a..91069da95c4 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 cf48ba444a7..c310a316ba4 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 6272b31852f..bad18e4c817 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 b558f1c1ef5..dda13577b74 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 40ba2bb4fab..a1c9fb6f9d8 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 602a398dbad..e881bc04604 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 6e49de050db..70f6ba5bbfe 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 50b2f7a158d..8ccddd4762e 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 8ff50537d8c..758d1173c24 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 558947c917d..476636ed686 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 e0a223cb832..d56af72c191 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 e52bfda12a6..d5ef6e1f0a3 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 46fe04c4f9e..4a08d87b414 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 f14c5558833..88ff1d32265 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 19c36d4d615..ea89a3c44ab 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 4386d7386c9..3df0f136956 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 50b631aae3f..002a416f0c7 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 37161818f01..d09b16becc4 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 efd6d96f807..ef4c502c044 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 8389fc69a9b..02dcd573977 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 c4bb0db96ca..471ca6defe5 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 344035f4e07..8400c514d5b 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 0a6cf3fef8c..bfbc78d061a 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 041c4f04383..3e508184804 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 8895140b272..3b03e6ee527 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 5e8fd6bdb2b..ae200be5049 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 533b08a2a9d..c36b5b6effd 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 6a9215411ec..2a8f05759a5 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 05a1e5b261e..bac803576c5 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 ed0dd3bcfa1..21e9e9dcfed 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 34d4f231dc6..f67ddb9933f 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 ca05b7da163..3042b9f744d 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 3c99aaa38ab..5baa8a3c1a0 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 fdd7b86698a..3f01d805287 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 49a3b9afec8..90d4a445312 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 d0bcd38544b..3088d039fb1 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 6a2c02763ce..893ac0de0ca 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 5c21502f31b..49cdb500abc 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 15b68d15f2d..2f1f96bb61e 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 8735c420b84..ca77f40e9f6 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 72b53006bfe..5964c529834 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 7ff18781e58..d5e1fe660f7 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 00000000000..ecbf3afafba --- /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 131fc343301..bfa984f964c 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 0144491df57..84e1efe67c3 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 fc9b11d0b00..3c23b372e4f 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 400aa019e5a..db141360a7b 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 6a5633d23a5..e020e6d128d 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 b92199b9c53..8eb49fe516e 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 07010b92692..716e5878b49 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 37eab025598..497c9eb042d 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 c369e43dc5b..fc2ff6dcd91 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 db61ef1d02a..b8a2d8aa37d 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 547ddcf6a75..9273fb04cab 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 be1716e4292..a71499703cd 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 b14d894a79d..0556185e7a3 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 0a5d6f8dd4a..8e6c501a08f 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 042b6cb7337..fa161c26419 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 12f7bc0cf05..ca8a06172c1 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 a2fc56ac9b1..d3d4a2d16aa 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 a3cb5784c16..1725b94813a 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 c10e3ab0555..27b59091ebc 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 c40438cd8e2..042097cdced 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 161cfc9213d..a028b4e18e3 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 3287bf690cb..40adf9448d1 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 22661168478..ab2929a7f06 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 9288ad3938f..67d4cfe2de3 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 e4b438c7ddc..0d4950d06ff 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 074f5d55d59..8e15d4666a9 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 4c271dc67a8..668004ba4be 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 46d0b37bb4c..e898c898e0d 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 91906f9621c..65c61e1b6c1 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 1fbb3bf60b3..e6d3cbd6e30 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 5dd302eaaf9..a9813b8d20e 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 c2de4598f3d..f1b0d3eef92 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 2a354e74bfc..ea036a28710 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 34dab635cec..ab4d6fe2eb3 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 def9deec2fb..65070d8d07b 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 1ab239d9c67..dbfba79ac49 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 49b00bc5b9f..7e9ae85a7c9 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 003e029c90c..549de6ecb7a 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 76c115d4ef8..2729f95bbc8 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 2fc43922cf0..e3913625838 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 ef31bfda76d..9425c132e66 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 b088780cbc9..c8aa3525f62 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 5d228f2bfa9..80ab46e66f5 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 6ed976cda3a..426059d9f71 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 05d5a0795b2..ed5434187e6 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 35483228d77..fb8a7e89c0f 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 b87608ae189..10c43db2952 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 dcdc368f2b7..0b8f736aeff 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 69988942256..1f159d870d8 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 cb6aaba7645..27e60d5d4a9 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 44df1fa4bf6..036ec5bb5d9 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 e198ec2a9e4..dc924ec0768 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 2856e86e452..136b4b4ab45 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 451f51b86a2..20d36e88d66 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 dda30e397c5..10daa6fb631 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 8d3d6950da2..0a66c5e6ef9 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 7defcb54101..d5b8074c19c 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 92daef81cf3..3c27f3a3aca 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 8558ae34fd8..dc97e4e544f 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 cd9e1438dc2..f754e764442 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 bf4555c2f70..f674de33904 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 94d4afd7707..9ced30855b3 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 4d139fd5bd4..f126d42af49 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 a4b04c20ddd..b9e1e1f6635 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 042a0948e3d..2925d7d61ec 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 ff71b5b81e7..64a8abff80e 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 550f2d2acad..95a2adaf1b5 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 97e8a5fecbc..6dc06a4212d 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 8b35da52da7..9592e58b998 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 45d3f0639c9..5d8ecee6ee0 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 8f9856714aa..fafb53e4008 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 a3c838cd56d..7570fb65e77 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 51080df0424..c7f1c545361 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 488ee913468..96568a02e78 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 5f6dd38ed44..ab4653f893f 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 bdbfbbb026d..4abf42b5812 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 7bada84af04..f98dc1feca0 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 0c14a885d1e..50dd2164ab3 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 4d23edd0f31..7da8f4a88f9 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 6938b067b0b..64e49e4eea5 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 e1a7fd473ee..621e1201cc2 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 d7932c38e13..e7609868c9f 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 4c775e82bf4..9c8bbe9d8f9 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 5c9a308ece9..8c27b0fcc91 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 2fe0355ef36..440f91661fb 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 486839bd0ce..135e8083a69 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 f8e0d32bb90..0460936ff7c 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 34c4688a118..908b96085d2 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 c82ff5f39f4..c422c0928b1 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 27d7079efe0..4b82c8e9283 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 0392780722f..4a017ba9769 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 6294fec6b8b..4c1653e3040 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 c6380e500df..8064a9dafbc 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 8389fc69a9b..02dcd573977 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 b36556fbbee..6227ae410bf 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 db85b2dc4df..3a655ef8874 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 fc351359d3a..a03193b49ba 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 c0c1cd9ac70..f7fbaa39f08 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 fd766ab5e5c..c803e77b95c 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 f013ede9d8e..541cd6a908f 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 d5194b65e46..0fc2605f658 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 26d9891e238..71abee8e00e 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 aac20a8d4dd..4d1ef345cd2 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 d4e6ae7600a..7c4c937d84c 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 6306fe8937c..c108ff5b3cd 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 9df85029b6c..1f874130c9b 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 091f691bf74..c5033b33006 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 d7247d27cde..8c27a42e135 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 a8a515e4344..c5232c98293 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 4928606e54f..475973148d1 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 f6955a394f5..20c755efaeb 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 2d09f20b290..725764fa5ed 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 01b662b9996..d6a5b66b1d5 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 898e9edcf07..9d94c01e85d 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 b1202a0a2e9..d97665e4ac5 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 0e0b1a49f55..a9d4bac5829 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 00000000000..40f88a1c005 --- /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 77d4a37f796..7972bab6f21 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 bb07892dbb7..b7458a48a0f 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 78c78acad71..ac55e7988c7 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 b81faa3fd8e..89d0245269c 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 dcffe1ca514..98417a88da9 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 005639c3ae3..d5d8d4fcf17 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 cb9744392d0..884d6cd4895 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 ef2016e82d5..ea1f4f9b15f 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 70ac47fcd99..7b804428981 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 e2210884b50..4359aec6f30 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 633f5225ae5..2aa24dddab9 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 93098e25319..29b85407e18 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 0f69bd4a7a9..7bc7f25aa23 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 bb80e520f1e..3b617bf574f 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 73ce3178038..61b0bd34498 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 6cf3a228c6a..5830b4846c5 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 93d54bc9070..e94237337a8 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 2838199add7..65de422e633 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 a15bf0906be..ca700145495 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 e5c8f21c8b7..ed2b5c507cd 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 d6e202b35d9..c6b799ba522 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 b91cb7ba3d2..2f4e926f520 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 48376c2d1db..0bd98a77723 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 707e8bca2be..3ed1ecdd520 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 3b56b907cd5..3a7a3bc6627 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 7e375764eac..c3a2f13a610 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 ba893602b12..d21df1c1704 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 09204e624f0..5c8936ac9e8 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 65cf6d7e365..50bceb41d2b 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 24c6290d489..3b2a951fa8d 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 8be02a3b41a..8cafe806dd8 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 5b0930c2fff..8c3925db8a9 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 af69e869fb4..7a73fd2f961 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 81db881a20e..c2a480f6b78 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 2540a4aaa58..8c4031167c7 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 8fdd898ce66..b08ca202c77 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 c2394cf3a85..494359d2b40 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 f64e6b52186..ac0d045322d 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 a76cc18aefe..790e59e8577 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 100c7ea6da7..75d8dee769c 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 ebe73ffe066..9d141ff85fb 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 7566344e752..e89fd41f772 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 e90cd2d0428..1be3cfffb7f 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 666d77b1d47..fdf5dc2c22a 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 6f249975d9a..d23cf676d64 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 3db0725fca1..e75d03ea50c 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 10da4f2ce84..e00f4793816 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 26f92718574..83d5e32907d 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 1f23be413a1..b116bbd2a56 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 e3779db3027..cad936c39bc 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 beddb7ff90e..0be4f044826 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 cd645b17728..fd898588283 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 1c377682872..e1407faa606 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 508c4f654e0..6bdb29adb73 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 be7c78c5bbf..8c5dd80e044 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 99fb322d6fb..ded0498878b 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 927db6d8258..73c9f4fa0b3 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 3b8305d396f..6bb935e2c85 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 50139418e32..2750c1fb6ed 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 52fa2830678..90575676a4c 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 679cd33e500..b078b669b62 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 e51bd6290da..7c541cb6140 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 cb59c0b82bc..444f18cdc29 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 0224dd7118b..97704ad66b2 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 81369915a16..54baccfb655 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 5a0a4816182..c561e66feb8 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 a91941de05e..5ab259c4a9c 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 8d592b77e47..f17ca77fe13 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 af6348f3e01..3c637028a80 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 01c79e80b24..64b8ae9855b 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 e40fae2444b..5509c7c221b 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 82768a43bfa..d5b2feb04b5 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 bffd79bee69..5a3b7e11841 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 2e14baa44a0..bcd2997e345 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 062aef5f23f..bf1f79781f2 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 e724645bb86..6af0ad562df 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 f2062b18709..4da1d391c26 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 21fc1fb9b0e..d7eeb109a81 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 c02118a6287..1c2f22d9a76 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 1fd1f831398..ba45054a562 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 730b34d9c6b..3af0b9ebf83 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 f7a3a96b619..741a0c13347 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 2e4897ab75c..0b2d9fb590c 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 967b2bf7a47..920a40aacc6 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 c5ba0514cd0..5a6f7c26c2d 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 9622b83b7fa..25f909cbca8 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 c266b02bc90..58888b6df05 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 9d58adf8ef8..942f6382711 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 00000000000..55857d0b1e8 --- /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 ad316f68f53..e46c2127572 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 e7536a256a7..3e276581394 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 84ac29d2163..3c0bc32d23f 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 57dc9cd8f4e..196dcff7820 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 00000000000..914a9cdf399 --- /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 8e54c4382c7..ceabf071920 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 cbc8f4a7ff7..d8f8bd25ef5 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 e12936388cb..692cd301e6d 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 00000000000..57087fcaa19 --- /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 0a4c1fa114f..869ceb2d49e 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 8b7dfd1d1fd..97e8cfbee34 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 00000000000..0a9586bef3e --- /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 f52ffc9a765..fb7c37f92da 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 8ba803d9cfa..582924cdb80 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 00000000000..5b9a9ba36fe --- /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 49cc974b671..3a4e305141f 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 13e6dbe151e..30cbf732d32 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 00000000000..261c3f0f0ef --- /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 359798a1ca3..ea29ae796ff 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 8389fc69a9b..02dcd573977 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 e61136dd652..daf247158aa 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 39b0aede5f2..7e931a94060 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 39360689079..aa31b842eb3 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 53d5b603748..a418f34dfb5 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 2882270f1b3..d7a2319eec8 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 2a8fc855d43..ae08c892ea3 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 89ac848835b..465e7ff3f1d 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 526dd295903..2c4a2a8b2c0 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 e8c55f68d79..39a515a8b45 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 56c1f3e2119..627f93cd445 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 1963d3cb4ca..61d27f105e0 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 355595bb72b..00f7a5662d9 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 aee4696290d..7348274e9f5 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 b67ab65eeb9..8b3c06654bf 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 6a5539c9611..9a59620bcdd 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 5b0a71e2c2d..a8823845753 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 d3e5e39c09a..1be88720b14 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 6cab2691381..780825a9656 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 7e5723c0d4f..0b07e0e4007 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 3f76b28fc88..dffd1dbd4c5 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 43222a6022b..b2e10012dfb 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 73960c03ea3..0e3e912fe97 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 00000000000..aa575d5c938 --- /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 841bf6ccd3f..bd525e7b2c5 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 760a90e1237..9471d7dd26d 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 0ca981e2c0a..d678e4613ce 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 17e79bb9914..f06fbe30429 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 3a6839d5c54..32bd0961c27 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 a21004fd554..4fa0850260d 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 d003ffcdcc0..ed171e5799b 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 fef538cd7aa..ee1d1ce50cf 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 1d80905460b..414903f2045 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 8b29c9755af..c66da9aed8b 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 aecd2c6d0a8..826eb1eca08 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 46537921eb1..1659b4bd1d2 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 4b441bc295d..5c93f003461 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 a914d2e7fa8..9a8e8fca85b 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 2d9c096708e..89405e88f9e 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 99dc4dc2542..b6165c662db 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 6b2d3554963..b024542acd5 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 0bfb6578fa7..132ac8b6671 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 23e6c662ef0..cc0b3853a80 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 6d1b04ceaca..db24d0cdee9 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 acb3796876e..c8f2b4d53c2 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 a2f702b8ba5..b7a7e3851b2 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 34accf4091f..7d94b2f92ef 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 98b2833dd46..57904142226 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 6ebe5868607..41e337b3b75 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 b27dee0d0ac..18b1c0b8769 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 2c0a8e51766..798798ba7e1 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 f70d5a15ee6..7c8d545461e 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 0298bfa2aae..c32db7c33cf 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 dce33c9deb1..0de18bef786 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 772f1c61a53..b90313c7548 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 92f0afd9291..76902d98d7e 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 ea615ce913a..bedd95eb1c3 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 437dc879e80..c6bd7eda682 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 78e1e431c5c..377eedaf8dd 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 41481eec3fa..60a3284becb 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 8585565262d..fd7d03ad278 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 3200dcb1392..7fa04641de9 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 f8d3c636fd3..8dbb174c81f 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 770459dab58..c74cedc4b23 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 231404ebe5a..9f7bac50baf 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 46cbd78a5d6..4ca3fae3ae7 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 291bcc14460..c6af3a1b213 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 6a4e77b481d..17d210f36f0 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 814f96b6a91..0d1d60f2915 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 0a0b63234c8..15870c20326 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 0d7b7b0496e..bfd688edde0 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 436f3f7c20a..bb3623ad6d1 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 e508ba2a165..60cb4c0edfd 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 d975989dc51..3ef702f3cf0 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 e4056cd8255..00766cdf699 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 2e1ea022745..bc24b6efed9 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 b71b15fa532..13e629172b1 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 89ff49aafe7..8e51130786d 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 ee254d9bed4..162de2eda02 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 87d50c6ee79..b0fdb0c6aed 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 313a0e49409..8b9d6fefb1c 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 f1e77a5ae52..da60444d18a 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 07c0b940fe4..17fd1f82905 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 478e8efb9e6..1a7e4de84d8 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 9ea1b1f644b..a78545a6af3 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 e1a61d5c79e..196f6f5beec 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 718aedef998..9c6ee9b74cb 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 8863c829b67..2694ee7752d 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 cf4ac25c0d7..7d004a70464 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 853644655d0..b3cd6d29e75 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 40394576fb2..819068fb25e 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 c376399d324..bee24bfb167 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 00eb2980122..f893ae6fd9c 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 00d4037c6c0..0a753d305a2 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 8562d57b182..8afc23f65ba 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 f26ad80d671..450d022aaf9 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 3725c5abc10..4b3b36df7cb 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 e6cf7ecd7e0..87cbd25ef35 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 e3bf70171b8..b9d7bb5c3cd 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 750930ffa22..b124566c493 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 c64a20c0444..ba21f041db8 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 cd3897705c7..909eac50a2e 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 03e01828506..c35dc7ddb4a 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 8cdb5f8780d..611c62d4489 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 40aaa03ac8a..bfa4c41212c 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 02a372c8c8d..a77015f313e 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 897acb7d512..cdc7cd4c768 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 9b60ec837b4..55c4c50693c 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 027bb54302f..682cf19abcc 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 cd170a9a57d..ba58ba1664b 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 a444a11bb64..be0021b26bd 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 8f192fff55b..43bd0d62ed1 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 4cd741ea729..ecc8b066fd8 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 696c1ed451b..04652afd1cc 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 dbdb41fe69a..3fd4e804a57 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 b12c425593e..882e021e0a7 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 b62d4a40658..8e73685759d 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 1320ba723d2..3c7b017dda4 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 f983786bde0..5fea396bebf 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 ce9792f1d8e..4b2d8d900aa 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 00000000000..23fe4b97481 --- /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 0e7a5a46d21..064cdcca0bc 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 b0981354f9f..625c1a7b2b8 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 34d02c094d1..5e7467c580d 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 a6833f7ef5a..31e29724877 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 86df0da5867..d344a9d0a5f 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 f52bade34ed..319b78a398c 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 590335a2f3c..9a451548c48 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 dc2d458307d..75dbb785342 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 3f52b146e99..ba6b60ff7e7 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 00000000000..74f1769585f --- /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 af678879256..2df0bd99a51 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 8379c33c520..80ff1426424 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 059afa55eee..34fb91f56b8 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 fe0373a22ab..b4f51663600 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 2f172a1cb10..9a427cb21da 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 b0d5be62135..e33dd30db95 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 581a00ed31a..8c892a236c0 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 3218776b57e..4a4ef08b505 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 9d503eb2b30..da5623248cd 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 ad48dc86c71..791a23e7856 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 e75077260d1..88b31092922 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 02d685a2561..2cb794c1a95 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 8389fc69a9b..02dcd573977 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 a870f5f87cb..a3a15273f91 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 282f544d3aa..20473dc9275 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 df85a61928c..009df26d561 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 041a130e3e0..46f42bcf706 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 ef12af3bb88..da20baf79ab 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 de308cec2a3..858e1753192 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 9ac4f1fe869..5ee59854bdd 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 1b2d823fa2e..68c1e34540a 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 56d4abfefe0..f97796d22d9 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 77c99352e5c..f48e809c929 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 db562806893..1f40b50b28b 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 60154a31e30..a84976c23c4 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 e567a8f8911..15b61339808 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 5ba4f70237a..37fa016d3e0 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 d32ee2bcf1b..2e6cdfc5a79 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 6376a2e25e1..7dff2d1dd62 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 c79f3af4f25..06566acec30 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 b07b5a092b9..342dfa53829 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 f087a5b5f39..6626aa8fcff 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 479177a0404..a0a9767a9d5 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 4c12e876f73..4e0904cf0b5 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 12652acee3e..f78c167a2aa 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 00000000000..a5156a7b452 --- /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 bf779a273c8..8b8813c76af 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 35ce5bc1545..6e4673ccca6 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 1ea667ec58c..2707baa460b 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 0672aba08fa..fc432ad8539 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 bdd5ce5788a..2e34ffe38fc 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 5329660362f..5337421443d 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 43b9827a692..d7a1ba48954 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 58731945192..01a1ad3e926 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 f8307f14052..dd9b88ed6fc 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 97f48b9e4f8..9c456c69628 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 b57c8cbe6a7..654046d7100 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 e2c519d84d9..cd4d60d4baa 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 996cbbbc0b0..a97904a3191 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 7b0de6004bc..5ea3d6d8f6f 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 d7492f407d8..291472f2461 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 a52b75c478f..10609981008 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 edfedc3afe3..306e2c3c8a6 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 3f42bb8dbe4..2aa32db3e89 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 51f55e1f54f..967bce30816 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 8d476c4e38c..a8ed7dd2f3c 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 e32b3b4aba4..b0dab8578da 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 bff9b959357..3bef20f25b1 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 22b14e3bd52..abcc57a4753 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 09248373cac..8012347f1f0 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 ae18174d2db..a921361696f 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 151ecc52c95..776f4fdd59f 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 beba87cb2f3..94b2f75472b 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 42f7e593bee..d0480380fc0 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 60f4b43857d..61b37790927 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 2b6383a8a7d..4e31daf135f 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 12605ae715a..b700edff2f7 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 b486888ab6e..035526f369f 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 e4bb82f63c9..b9032527626 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 6794c79ac15..9f2c570486e 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 d5862f73e76..86874ecd921 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 ee822c1b721..f2126d0f5fc 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 2875e66ba35..6b1405e9e22 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 a89a024dd43..69a85fd802a 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 64c7470a842..ecf13aab106 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 9d8492c9983..3bb34c8fe07 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 36ce2dfb16b..88236ccde68 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 39bbf4eea52..a083eab0dc4 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 ea65cfdb07c..21f4bc4d1e4 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 7e2624a2b6e..912ef0d22a2 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 46fb95b7b61..526416d3273 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 4e0848e9a45..9ee783490dd 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 46f1cd3baef..1d3f7248661 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 68f3c241d1f..fe365e679dd 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 7c29ec37173..e91457e06ae 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 8c37bc8878d..f58c3a556f7 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 bc879665aa9..4377f056c4c 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 ec8dc31b1e1..af1d0f321b7 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 40d9a1bfa34..130cc50b815 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 22aa4fc1db2..feaa1705858 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 f437713bf0f..63e7139af67 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 bcdf9b6dbf5..235a51ed575 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 ef6cc2ecc3a..68cb90c072b 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 396e8eddbdc..4d5d489cfc6 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 b3e8dd9f0c4..32fd42c1dd9 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 a8be6f1db0b..42fee46f4f9 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 db08aad8fc3..9aca2de8c25 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 10d52778070..850ac772b67 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 d0a0a478423..a7df31c1a9a 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 24d95cf6520..eb49023d3d3 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 32d92a8e2c2..ecf28c5e2f4 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 57a2d0d58e2..ecfb57cb91c 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 ec68cd4f20b..8ce0e492a40 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 2f4f3ca34ae..2dc8225a4b5 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 d94ae82a034..7d43a12fdf1 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 fb0036d4134..b8acb59a828 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 028d11969e9..5b950c044e2 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 7c5af4ac9fa..ff82fe787df 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 9d4350007c4..61c08201b85 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 ad77faf0490..d59c135d614 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 db4de30d889..9f180724527 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 99837f6c62f..c446f8e26da 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 1760cc481c9..170f25b14c9 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 4b22b439127..8acace349d0 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 3a59a45a2af..b15b3d31a55 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 cba5b889197..09c1079bbb9 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 2ffa059d615..bb09cf5f377 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 ee6ed3ec830..09811fa8ce9 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 91f50d3d4c6..847c7ce85d9 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 d1892be564c..a3ea4d4ba11 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 a93760ca46c..ad3a5dcb456 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 2d5676dd9e8..021c205e502 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 21f0ab34600..1f0eaf20702 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 9c48c451f25..42da707f3c0 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 93b83b7fdf8..be5871a4a36 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 c423e351c38..ba9cd204b64 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 e1d8735f024..bb4626def93 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 a32e7231fbf..fd2d23c98c6 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 8155af22135..da867fd532b 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 cd26d2b4a4d..7ab69c697a8 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 3d299de5d57..5dcd1e95604 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 f4b5d000ff6..655a11140a9 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 52ca4574a6b..a4b065e64c8 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 3d4f6a6b9bd..9054e7e7b6e 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 698ea23b426..53280c57949 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 318d88d7ce7..09d6d0c3ef9 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 3b0b51658bb..dd80fe2c06b 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 b65a1409785..052ccc24c88 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 5d0c9df8b08..65af3b045c2 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 ee8ded17e77..babdfa27a52 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 1a6ee47625f..578b569f15b 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 d1a4d4928a3..1849bd6d8d4 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 d7a84ae8c93..725fc723158 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 19e9d26619e..f23895c9a45 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 b3f546d6f27..b1640e172ab 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 8389fc69a9b..02dcd573977 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 cb7617f9e1a..1d8256e1bd4 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 2a473c20bda..ece0382e530 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 c3c6482f9c4..cd134208680 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 1073449dd1b..6902db9401b 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 de172df664d..4bf5754831b 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 a157a16d50e..864dbee55c3 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 526dbd9c50d..fa62fe02592 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 3e5def06368..8cea3433215 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 0e591cdeb77..983f1c39067 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 15596b65a65..f69b76db2ae 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 904b797f70e..017c431e265 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 830212d308f..b50e89a1e14 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 3716e08daec..86fd507e9b6 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 a234e89229e..432c40bc3e4 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 5fbfc8a34ab..44db0446c0a 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 138105a17ed..6cd895ee3d2 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 b6d82dcfae5..11d3ce924fd 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 e7bf3882a54..3c4e776c844 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 05b4fe15c3a..0e951ef8887 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 c7454079a56..d2ce0668be7 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 cdb8f88082c..72cb29e7f4d 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 2fdb84986fe..5bf2e2b5e99 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 00000000000..9c4503ea68f --- /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 07d7da5b6ad..daeba626ac1 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 1421a071b48..11841214ca6 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 94702521c53..7fca1aaf4ab 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 eb3447b3092..adc5d466430 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 96e862adb07..992ae03ddaf 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 7d202650d29..59bfb454f46 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 a73de465889..ef783d77906 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 7f091712a71..f13f0623a29 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 9ded588c43d..d2e2f2ff687 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 8e2ad55e273..18658c055fd 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 d0992796d53..35c580e4b5d 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 d3cdc807cce..f8e1dac8b54 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 0fab04a7d4b..af63af7bdf3 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 4273c8c937f..ca43df5fb36 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 8e85e06c598..f9ed11e20fd 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 21020f93a6d..fee1bf87688 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 29798f7eb57..073653d79de 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 0c8c11009cb..67f569c5b8f 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 86daa9b2f08..1a14385abb7 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 500faf55f42..c5677f1c460 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 33e3efc5fdc..d87d496b530 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 35e307e825c..253d00478c8 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 af8d4c63d6b..754c21ff070 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 2f06b8b49ef..ce842c0ea19 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 ae5d02aed1c..81b9d83f0a7 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 caa2c53448b..1f785c19ca4 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 e624964dddf..ed7e67a09d4 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 d7132162f00..5f25b4edf57 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 8d893412cda..ed84580d660 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 14f3e6ac3ce..3c4b32215f1 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 fdb9a259e0f..7d03d808b9d 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 7666fa1f528..8f9eebddf8e 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 b5dee508498..dee19c5a6c8 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 24c978c0102..c37b58459ab 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 e2392cf955c..9f8663d964d 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 4b8ab98b0c7..43dc46e4e0c 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 230de87864a..6c5ec340508 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 1261905f8ea..acd36f4362c 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 1574a280da9..99b09b87822 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 b0ee22553ac..0ba3e3ffa30 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 e8cc12046d1..5918d32d5e2 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 b35d5294f90..27d655aafd2 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 3646e2500b2..403b3b3219b 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 04d26e1fb89..ab1c9d4711d 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 c6287746714..f92f4b97fb9 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 e859a695460..56c7a6f77a1 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 7f391f3d6ef..439567fbfcd 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 99f96fa4a88..5ab1353252f 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 6d92ea97a89..2857e0c6a74 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 ff3947ad434..5ce13fe5476 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 fa0644a2862..74b16420051 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 99c88798b05..39667303f10 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 de5408f94f4..173dad843f7 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 a12f353fdf2..8af3d57ea3b 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 ec6f692183d..0c5bdea21c3 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 60fd20f1617..80550266fc5 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 372a79ae4ff..e7db90dc303 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 a69c36e1d34..6361fef36bf 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 392522b2191..4dee662f7ce 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 409a754f31a..59e0e404667 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 113d90d0499..8dff3649065 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 41b8e5c6f2e..42542ce76f4 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 adda417deae..517099a59b3 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 a67ffbda829..91d7b2dd295 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 bd9c3b8342b..d6bc0f0589d 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 0a036e11480..20c20ecfbbf 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 f5ce680c421..81d717ae7b1 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 f068bb60dd5..01f0a45fe1e 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 686b67f01b0..551f3393957 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 70d5011bec6..8b0d38f5d0c 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 b44680dc3b0..1693fd463c3 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 ab5737aeec8..741a51f3c47 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 24b0abcb20a..be0c5d1c4cb 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 7a8c571c29b..79f45fe7976 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 22a116d23b4..8fd14ff1355 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 8d58f146511..03c9cd5ff34 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 78882f7e0f4..ae1b1e30dbc 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 6c59327dc56..50db80bc3ed 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 dde0a2e2512..18c6ca8245f 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 2c3c457273e..d6acb8ce9d5 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 3c5763bb1b5..bc8766297a6 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 7a70dc62216..c2c0375bb0a 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 98775e68f74..a9b90ad0c0b 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 4b1b027de84..af606ca042e 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 2177b8ff4c0..99a818fc7a4 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 3978067eb0a..253c19a566a 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 8ea32f4b084..6222086ac3f 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 eff525cb065..79d4278fc69 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 0ed2c47cb36..37076d66036 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 c1e724cad97..a541962084b 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 8389fc69a9b..02dcd573977 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 68e6a92b1a9..57e1eefe245 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 8d16986885b..804f63d2973 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 5ec4c15d1dd..e1ef73f20a7 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 cc68f0a648f..89d81df518e 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 63794a68fa0..607d3513b06 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 b9db52157d3..654beac5402 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 2446e97f204..0c0226f5ca3 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 4f4ebb1b9d5..a29e09eaee3 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 c084c9c8c80..8dbd695a941 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 671e8689837..9290d67df5f 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 da281403c03..bd1424eec1b 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 d075f6e4b21..3c6a234de47 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 c3013299295..7c175924657 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 23ef0354f31..47694d6d852 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 bb505c2f0f9..04ed21b54e9 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 ec274f99984..9c9a46a0ffd 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 fb99cacbaed..c5bc81c7731 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 be955e70049..b6415e40ada 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 eab3744d451..080483ac9a9 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 dd06c712864..bd5cabb4d89 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 e9a262c5770..e94418e38b7 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 4c0cb68bb6f..fcbd77c9cee 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 00000000000..4ff5878c480 --- /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 91cc318f26f..3eaca5b02b2 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 79b2286b68a..9b203e2cdbf 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 1d92ab63d83..7ba4aafa46d 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 313bd8bcc01..402a38e7014 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 2d0773f9a13..7420a392b9c 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 46ff0d8df74..7fdcd76e2d1 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 8d6caf33adf..48a9d4a00f4 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 f65b71f86e7..3e2616e0cce 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 b3e617e6dc2..86ff81ba6d7 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 c70f35c2851..60899455bf8 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 9492201cff2..2635a305342 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 acf0d336bf6..970394d64d2 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 a99665ceb1d..5fb7e24d1fd 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 ba4d604451e..1b5e57260a0 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 8f33d54ad75..d8db2840863 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 daae6e7e362..2fac4a154b6 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 bf4f750252c..b301b0d60be 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 124a779ed51..5673fb8e60b 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 5573f934ee9..380e66bd751 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 1a411a3a213..e429b7f0ffa 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 5f2ce393cd3..e9fbf32d366 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 a45e0a0c831..f56bab8bea8 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 7ecfd15491d..ed9df60b2f3 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 1ef5234a167..4f626a6d811 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 0a0010de77b..b85672944ec 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 cea84daa1a2..643d6504fc3 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 ecf2ddb93f5..20017790006 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 0c1a0f81019..5e53a175735 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 069e5b67201..e3f403d74eb 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 f75ae5dd4cd..52c76529617 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 72fa903e114..62597517583 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 4132fa32c79..bfd8418fbac 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 5e2e3969dca..6a675ccc8fd 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 3150f744fc3..be9c6248c53 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 1ba18b9aebc..c64f1774b14 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 9b16514775c..32773bd8c00 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 f7cf07f2037..698398f9ccc 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 3bc90ead283..3104afba2cc 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 a4f4c3ad549..24f92d96954 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 aa7869fa30e..12d7b9b36d3 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 5972f76a422..23bbdb4598c 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 44db78e98e2..d9f4ce3dc33 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 f60ef3f7c76..2791b4e0ca0 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 451f1cf6642..e9368be35e3 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 9cd57ad8079..a1d86727cc5 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 a645b7b390e..d7d4f705a65 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 66e2216c434..e205b0282b5 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 7e5d5f987b1..b44c421387e 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 31a9df20608..f3885f16aeb 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 dfbfe01d4af..56ea4aa01eb 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 29fe49d7db8..dbad612831e 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 a5cb501c7c8..62ab82eaa6e 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 97c3b28e590..1de060f5a05 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 a86031a782d..cf3485f50dd 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 be7fc1ab5c2..f776a167991 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 f117c8d00d6..51ed391a90d 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 953b98cfaee..157fa0ab99f 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 209089829e5..14193412815 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 a8918b2ec55..4abfe78338d 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 cb9a7aae317..379dd900020 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 9ce8d29e8a4..5fbf6cbfbb4 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 7966f7e50c8..299349ada5e 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 a67c5bb7569..6ae718a147c 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 9181d092ef4..84511e63079 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 2491495c80a..c4ffa2502f6 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 545ad48b55f..89f0181d761 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 a75270d74d4..0c981c5efef 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 2f407f1bfad..a37d48265b8 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 ff8f66638df..ae86645f668 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 fddc26e0f1f..fce3a1f27d8 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 c72ab25b258..c3ffb88e576 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 d2a86286ec2..782ae6c3d55 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 cdf62e15196..e2703158abb 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 bf33b3d1580..1ed1d0964c8 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 ce9d5e90599..917d3865837 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 e45420e8485..0fb37b7a3f0 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 39caa9c038d..07fe976a659 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 12f651acbd5..492c1e7f3e0 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 cea8262690f..5315665bf6c 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 0bfe6627288..476e348be2c 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 bbb2032875f..309911be549 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 41c3b7da51f..d7e5a62b051 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 e1c875f6ba1..1e5f5eb2955 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 508ce69f25e..14c6c08d0c0 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 24de06b48f9..829e2377948 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 f7ad53c0fc4..6dc2d33e417 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 b14358ed575..a613b158bce 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 b59f487f6dd..3d9073e94d9 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 b466dc5e5cb..f50bcaa5105 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 98d717736ad..03fbee9c1ab 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 52882bcffec..df4c4ef214e 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 61eda8f8c32..65586663f51 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 2e808d322de..0822dc44341 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 d19700990e6..460f19c3fe5 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 00000000000..2d4e6ccde94 --- /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 1f704bd719b..ba34ebfac06 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 48db15cbf4f..970ebcd9eaf 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 6019b307331..80973aacc4b 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 38dbc93d5ff..24d7ab35724 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 018a0d3941a..72bd69f32ca 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 5ff310fdf77..70bf0bcd232 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 c5b0c182b83..d5649acf576 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 00000000000..2c50e78e248 --- /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 59348f530ad..9a0b0a0df14 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 afd4a667935..3b1a6ebe917 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 1a582ead54f..ebcd50701b1 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 cbc6fbd1196..e083e8d9218 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 296dc5ebb2a..8382eaccad7 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 496dd9a1df0..c039fb975be 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 f5859adc32e..876626059cf 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 6dfa7174a0e..2a18158a432 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 fc19908a2a5..8838afe274a 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 c47c0405ba7..d944bc7065a 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 2841a7e557e..318e2887f42 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 466fcc72b14..e17b632eb31 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 ee8e9428299..8815371a54b 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 28d44cff2b6..75b3a366673 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 17d56b1154f..c3e99fcc968 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 46773ddbfea..124661b3adc 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 fd8d9ece209..d762bfec0cb 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 d87df753630..b95f79f95df 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 4a4bd89b2d7..bb7e288f8d2 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 51511789db2..12f277c534c 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 fc659702e88..6f95cbab2e1 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 57782598c7b..11190acbb5c 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 318e2aad88d..b916667dde5 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 c03d5b53e9e..4a3022485be 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 0c79405c6f7..d82044ee6e9 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 b63f8b116ee..aad8b4668bb 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 82b1a74d97f..6bbafad04dd 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 fa9d92e8d80..40f3b08e1a3 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 7c1846c21e3..df88fb9d6c4 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 a004b7be522..f4f217105e4 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 e71540b67ef..8745481d092 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 26d7d729717..32b4fe64578 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 024717ec7bd..d1b6447fa97 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 d19c534fae0..c70914538a5 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 601e9fb1b2e..30d1adb0b7d 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 cf13ab8d8fc..fff45f8a748 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 edd60da6c60..ca4da901e09 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 34219eda31c..99ba6d0e822 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 148bd820c6b..014b5066aa0 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 cb21e028a62..1b25dc19f30 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 6d849b27056..4d8d3950791 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 8907a614344..65b1d115e82 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 5311b563c5e..2722f1a4a28 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 8389fc69a9b..02dcd573977 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 3f5ca59a7e7..6a3a5d1147a 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 7fae7500c87..ed32893a886 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 d059eeecd69..170836bc8e9 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 e2b5d18f204..26fbd855a54 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 8366de40a0a..cb829ba9962 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 ee36ca7d62b..4e32db681c1 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 09f2409f13b..9f5e80f5c5c 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 7db12a0f40d..cf874e43fa3 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 f7d8584fb77..0e79a3cc31d 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 0d7eece0fca..639b0b0b103 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 58205dce057..b3a97e85093 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 8d976555f40..d5445222d88 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 db8f614cbcf..41f7bc679b5 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 ba5034d3775..0384e10ea10 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 6798e4e617b..f4028d948fb 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 4f75218d1a3..d94d2920156 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 bc284ad893c..3cd94cfd1d0 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 3dafb316489..775d13ba72b 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 6a807b39953..8cdb0347e5b 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 d3666a51ebf..16ad2fff9e2 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 28f92fbb52c..54cec035ba8 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 21e19c299df..0fcd615bebd 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 00000000000..b27ec2d5f90 --- /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 8d776421aee..fbd9946ccd9 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 44a2094f055..3140f05148b 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 b90afb8ff82..0e0ef11c24b 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 d80a8d8842c..be67df0b2c1 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 7630d800218..144ac244dbf 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 bc1859cdc6f..1109e494b0f 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 99e29d19448..cfda48f3aa1 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 cb391e1ee41..e5f2fe0bb95 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 81f3054a3ba..c791321d4b7 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 baf03688acf..b9ef0f21fc7 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 6979a3e23ab..42b4cde640c 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 dd69f742c66..29c8d5203ee 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 8f660592b19..3d3f3b8b41d 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 33c3d3b5344..d1b357c5d3a 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 853f39101b2..f4a6bdb38f7 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 7320e527cb0..6fba981b350 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 84959fdbda6..60545734adc 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 819c98467a6..dc095bf00a2 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 2481f4ecb31..35bbb5dfb44 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 cb79b28692e..c407154defe 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 bfb63e9a90d..9a762ded787 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 ffc24f85efc..4f9f2cf0483 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 33a121118e3..efad00ed628 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 9272b7b512a..6005372be1b 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 51cb1ffa480..06e6e79a9bb 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 b0526d8d9d9..fa59ac75e1e 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 8b40a50c36c..1c2d6bee205 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 563f7869c69..f101f12d7d7 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 5fe0981044a..1ce396a8961 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 6080a920d46..ab5a6d00a75 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 fa27904649b..edec92f200f 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 05cf7e55a16..c15fd2490d3 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 f929a834378..a9f30996b65 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 b80688e0734..973cada7936 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 52edd465f18..3fa75c27fbb 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 e57356221b2..573b1aa7a9b 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 154fa52d6a5..23bb505941a 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 02829877695..b14e6f8878b 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 f517260ef7a..9514ecc989b 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 2f94af1c658..69428389f80 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 f3e1ebce03a..5404a253e71 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 b3acff9f950..54443e3a0b7 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 eba587d069c..d29ea1b028a 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 7a9a733d8ab..f76fc86a381 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 21052e133df..b5d247fdb99 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 c4b5fc4a7f1..928d4ea738a 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 93295128efb..b8ef1c6c056 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 0b8c60604f3..d2d11df3479 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 05cf71dfdc9..6d522dac0ef 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 bbe051cf089..8d1cd42c16e 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 00137ab60ad..39974c13412 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 ad9638cf20b..8957f6794e4 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 f72d638bd51..a19fff9ab01 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 d9d30cd1ddc..adf222ca6eb 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 4c52b0f6a66..803a54969e8 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 8459c25d252..941f4caffae 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 6e08f3c54ce..aa61f2dfdb3 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 89bbe3e9d55..96a9725fd53 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 d2efa883c32..a65db99d39c 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 c25b69c00fd..3cd257563fc 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 eda0fb08170..9786978d37e 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 b90f4ed25a9..5ebf079b9b8 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 8061e0c85ec..e37c1bfda97 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 50a7f361090..8bd3373ee71 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 f1b46b5c30b..41e3a8b1f20 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 2b2dff3f585..e8b442cc0b3 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 68c19c47f45..6079340aa98 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 4da8398b98e..52878e73d93 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 c5a02505570..f0513eaba2c 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 d64ce92f914..82e721f58b9 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 bfdbba3c589..d89a5b96f7b 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 7da3fdbb583..74f68efbef4 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 cd8947f0d15..b04d3d54de4 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 3fa079924fa..d8523faf108 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 d7e13600271..68d59235965 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 45e294941bd..3e515241fde 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 c928efcb59e..81080cd1779 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 6d74d116931..a2334222da4 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 415c4eb55f7..e44f60d60be 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 e6cbbe27f6f..edfee51883b 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 8f8bc870d95..5f37e02716e 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 480f1c279a4..035dbb06235 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 ed95e7bc9e1..20aa23a0548 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 c64ec560965..6c8a1998a57 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 31fc8412895..6e4ba4683c5 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 3614af866fe..c1bf3cc3c43 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 bdde951d38b..c298d6bb38d 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 a8c97cdddea..664684474c5 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 4851ccc564f..c37dbfbc7b4 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 2dd945506e9..1008ce59b29 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 ce861beefc8..566dc9112c7 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 751b7974559..55e6693cf29 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 cc8fa14c451..c6f8c5d5aae 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 a1cec02c486..6946388a479 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 9fa6b998184..3133fedc2c1 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 3fa4d81d2bc..ac15728707f 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 fec5f8f919b..1e4a6799c3b 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 217f48ed19b..152201cf98e 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 b6dc295909d..530f75d34e3 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 cf7848f1626..b54902a74b7 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 198ef4b5497..6e620d589e7 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 98c325a2fa3..3784e87c16f 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 be16c7b1e41..8162634f502 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 67b26f36875..667bd75efce 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 bc5b83774f3..9e6f6744785 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 8545389bc18..8749c6111ba 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 bfcfd9ec608..0295b6391f5 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 4595d7fecc2..b8630cd0b53 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 48fb1144fbc..9a4805bfd7f 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 28db2f4e9c7..4b58a7bc0ee 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 ae04265c4d3..eb3a521a48b 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 28004c6f101..160cf35e5a9 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 00356617b48..a5726e73322 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 5a4d252854e..d4fb548c7b3 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 51de4e8a8d9..ecc41eb3aa2 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 9c70adbd970..adb85b9d72a 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 d14e324daa5..e64ef87702e 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 9985d0f3fe1..2fabe89972a 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 f941edcab7e..5889f4db942 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 803016bb21d..6c6069e199e 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 c21b504fbc0..8703c79d0dd 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 0b5d2c1c9c5..a1d11ffb7cb 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 8fafb636323..9df9e3421f3 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 9f02348ebd6..878f6fcea64 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 d5eea67d904..409b594f1b9 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 6d8ef341702..c066fd3a81d 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 141eddb76e5..c98d98b0dc9 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 ae6ab1e2d0f..cd230d8d6ec 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 f36bacc09b1..df4e8f5b2dc 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 891a22c923f..c41db7e682f 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 f1d37836c12..3c642cb7d15 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 01aaa786944..151ff486bd3 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 e05687833d8..ae89474a396 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 78b70a2da7c..da01b6c0fb9 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 2d3de526ecc..44cd517c1e4 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 1a42d9db61c..dd396ed6f73 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 988da524c02..a2417f2608f 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 8671cdf419c..73dbb9d5e81 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 71dd7f53a89..f524cf31b6f 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 fe0fb177de0..9ce2e6c5197 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 d588aa3cfb5..b6bd2c25dc9 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 3a664a2c576..14bcf37e32f 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 a2480e630f0..db80180e8cc 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 40e2b1d0a5b..9ad39de1a90 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 afb3a09f576..67b1f0d365e 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 27b4975d3aa..393c3774fb7 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 98215c16c76..972252c5f21 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 8813c0aa647..0ed58e41739 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 c3b436263bd..0571abc686b 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 694521a4e03..5ec4f252f2f 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 b78c1fcc015..0de7bd458f0 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 447d1c2caa6..8fa66fe2258 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 d3ca8f04aab..6f7edecf858 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 b606b673916..67ce4c451e4 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 9de5f9b2b59..d5806d80490 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 a191d4fe362..af9935dcbad 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 f52f8668b21..a8a2e21a7b2 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 9a32fd34389..57424b05271 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 fdde50bf022..c7d5ddec270 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 0de2de6c755..f40d758c9ef 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 b50791d91a8..5d1b44e3f3b 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 b0a837189f2..75eb1810c37 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 e29f8f1597b..4b3d1951ace 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 64df38c7657..2f29d96cca3 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 5746b4644c8..e1383256813 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 e147fad3c35..1a46ef88cbb 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 5720252a267..b91f722125f 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 41f58b73c9b..12fbd0b26bb 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 4ea7eb18d0a..a65a220b922 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 dfe77b9aba0..8dc762f1e6e 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 44b1bc1c6c9..0d9cc62066f 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 1cd435b1c0d..86e7c583d60 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 7e359153c19..e1c5af4bcdc 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 0de002ec44e..3655b5e06b2 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 6e9486b2254..c83447f88d9 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 00000000000..407fddf9d5e --- /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 9dcac1d43a0..40e859f55a6 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 9b3dcca080f..a06570bea98 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 3336124e373..b813546e86b 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 0eb47e7d276..dc879d8afd7 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 0968ba364f9..3813935fa59 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 2e6853bd4f0..012cee831b3 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 8312c47ef02..47dffbe1f66 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 805592cdd24..296c4b7328d 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 d7cb0ebf46e..20e70443e9e 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 8fddc22a982..daf26a8598c 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 00000000000..9d46bb32be3 --- /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 b2e65e7d1e7..a81e52697a9 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 3f93a562154..24d0c313766 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 668909ef857..a450c9bf679 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 61d8d6438bd..2a7489ee4b7 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 e684ea1a073..c88331cb60a 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 751e0d6f6e8..0367bdfc94c 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 aeb64dee4c0..941f2b24352 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 4fd03c38937..62d6ca31df8 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 2fff4f9229e..d477cd74acd 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 3e3e864f94a..6f85d061cb8 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 a605d2b60c2..5a12e08511f 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 b027c915422..b20b12aaf39 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 5638be3234e..f574e34f29b 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 8389fc69a9b..02dcd573977 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 326ba33fe95..470156a1c03 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 fca79bb1b1e..eba508e65a6 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 9ef0274a10f..9ac09ab98ef 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 7257977e235..5c8b67945cd 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 511c468ffdb..adef1608273 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 6ed4427963b..b08a21681b8 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 c09079394d7..efd026f40bd 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 460d299358d..b129c633602 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 7f14d51aef3..7e3bbe0efde 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 626971c71a7..d0d4a8824d3 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 60842424935..aebff0fbef3 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 052a1e1b2e1..de1cd8c74ee 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 df72d8d9e96..2d367c92df1 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 224331f724a..39bf09b2551 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 eb77e0c94d7..553140f21a0 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 0f48994a169..29b5e63431c 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 af5c95c77e7..0e5f79c3adf 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 1fcaa0f4d1f..9900acf8d11 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 4dc008996a9..8c8b6e4d204 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 3626516c882..e239a8fb6db 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 5686e7eb971..ed43396e5b5 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 12637c834aa..80379d38a75 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 00000000000..16eb30c7ee5 --- /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 73275f2ee89..412153e2a6c 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 d80fea1ab49..cf37c505387 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 a9954e596e3..ec9e13ed14a 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 f83d7dc1ad1..a00e11acb1b 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 ee874bc775e..41cc40e5382 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 d5592012269..bafc5376a45 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 390834c3448..e0bd29ceb15 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 7eb5c825cfa..6339e979126 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 8efe577e4da..3ffaaaf7b45 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 05c7e1d936e..8cc6faafd7a 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 0eae3bd579b..3102ba66f72 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 c2ce4b6e971..bdb02d320c3 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 90c767d3b5e..fb716283c46 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 1202db4ba35..77268e856ec 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 9866f40b6c5..f045eaf8e49 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 4f2cec823e0..f936daee113 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 719ce0fd09b..883a1028311 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 a60501ca58d..4d298ba24e6 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 1ca9d8917f4..f2b51d32b5c 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 7a7b93763d2..9059ac42b8a 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 6d433020f71..82b1ba432cd 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 a7d986a1534..5b4471eebb0 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 eb4bbcd2e5a..99d390938c3 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 15250c90f73..9128179ad50 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 3c942d0f92f..42dcb116820 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 be66e8dc30d..9254cdea745 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 d2939e0d51a..3db81063896 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 b487048b01d..9b6ec11479a 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 751e7f861a7..d2fb249a024 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 72a94874747..81f2119efea 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 88a4f8a8fe7..4ad4cc1679b 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 48d20fc8d77..92e34c00822 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 5f7f29e6d52..8938ccac402 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 07968027522..5288fc3cbe6 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 06f011a6723..102347ecd31 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 b346781f6be..fe9cd050ee0 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 f7bc4f2af65..ce1ac7d3a32 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 ca2bd0e7b5f..e1595d033ce 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 402134d3ee8..819562c1a53 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 3e9a40dc46c..e08cf9f6bb9 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 976ee2d8bc2..841686e106c 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 0c57c0fc0f6..e04306f11bd 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 964335a38a7..990efd78bcd 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 697ab2361ba..3343dab48e8 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 9511c4ce22f..55523db96ef 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 000f59a7069..a05d709eb68 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 dfc9aef7cba..7e7bf61e589 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 aa9553092de..b5bb1f4f82a 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 edb03a382b1..48500bed77e 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 858ab3e921c..250a80aebfb 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 b16d3d3d5bd..7f6d4723e6d 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 ffc09ce2acd..1d458898e81 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 61a4436aec8..8b8be615307 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 6e39b405a04..c68a15a0d8f 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 70f8c465841..b850e4bbf25 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 d23c80fec1d..b0db0c7ddfe 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 54e9e024d9e..41f3352081b 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 46d806eaebd..bd9cf878b8c 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 a579e277af5..8a5414da9fe 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 46a30a0c962..7c0995ab844 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 59507c9a08a..faec15a656e 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 86a1e2f3aa3..0b156cfafe3 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 50e4a017478..79b8a4f32cb 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 e0340999a9e..27a382da66d 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 416859ee6f8..86eddb1e17c 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 215f5c28e4b..b5790f51bd1 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 3b29d4f18a5..3d6b8fe7abf 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 1e23049cb77..eef21fe3978 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 db326c78639..fdb27acbc28 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 450e9315266..ac3e1f30384 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 70c7c831119..c7391f1a523 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 c3b9740c22b..2e267c45503 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 47149a69899..d0635a8856d 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 f7f390d5380..4490c15ce18 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 d5b902ff655..de6f852bdf9 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 04fa76e9168..ab7512c7974 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 14964b2688f..d85b4e8c302 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 e059b8cba17..c87731656f9 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 1c7fa150102..2a0d1915a95 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 ac148b93189..a0cc26245ed 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 775747785b0..c776cc959b1 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 0ec5dd65bd0..a56dde3059f 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 43ba2680b7f..1fe0b303147 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 c84faee7b67..c89e3c13005 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 4435191a7fd..46918a35c4f 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 a30c543423f..3ef5b37c210 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 f8cbaefac25..822b3407bbb 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 8389fc69a9b..02dcd573977 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 0de77317190..4fbdd0d7dcf 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 6848b14952e..627d09c8af3 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 e832c113487..2fcbecd1a38 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 cb364e36666..9ba7061924f 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 953f43f6f1b..c87933b262d 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 ef8a042f09c..ebf97f58adf 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 77a8536c2fb..23db6c63bb9 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 33c9d73b475..41c853a7f55 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 03a1be9c705..2a840d31afd 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 d37bce196d7..c19a8322360 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 3a4ae188c02..7994fc0a487 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 9bcfbe00c73..427cf273fde 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 d26825ad0ae..13eff58420b 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 53b41c5da08..9640a450549 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 9e20963b30a..febe3230cb1 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 592017a7684..9c6f9cefe95 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 b5af33e7831..97d5476ea64 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 97b1aa47b08..3d42e684007 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 d2eac87eaee..fd6a355c3dc 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 1e6887ef617..b1d3669dc04 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 d18a63f8549..bf841c3a4f3 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 7ee78cd8bd2..a0aaa92827c 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 00000000000..c952b3a5bf3 --- /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 63c53b2b987..fb04df0a77e 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 c5302d917c0..f0df2534d4f 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 b0c6a380bef..dbd3e876097 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 71a9ab93080..5b3a168e22d 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 b2ecda3efc1..6972433d536 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 777243006bb..1445bceeec4 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 29f4b921eba..a30b92de820 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 1112fca9e56..c3bfba11fd5 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 d27d8539862..947a34fd6a2 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 4f55ac11cc5..49883c442e6 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 58b4eca2b48..ccc85477e4b 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 837e0cdc39a..0f12631f643 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 508385e8d97..36534ca8a09 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 f62cbe04885..1fc8e2e618d 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 daaa2a9f5cd..2cf869edbe5 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 d5ddae6eaf3..f7b7ce0a56f 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 bb5627fe126..b1d9fe39815 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 242bcbb8670..fe66312ab49 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 a463d451f18..ba495312ec6 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 9373d5ae263..f1456e316ca 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 b981cfdee64..997de105881 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 a356e8cff3e..e7f6ca7c517 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 cfd526ec4e9..949f2ff1696 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 c3287fd5dc1..5cb314ab8da 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 35da20abf05..8e892edc2e8 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 7a956ae5b4c..badceb71563 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 f59db8c1d8c..75b66b35b53 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 d8396ce53c4..380dc7b11b7 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 ae7df34cdf2..1c887a7ff7f 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 97473187abc..491a0693839 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 ca5ea6d445b..d79884dd2a2 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 42e93bedd38..6b2e2922944 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 98ba9b1c499..42496aad644 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 a09d07223b1..4890cd1cd58 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 68eb44bdcb6..7978352e4a7 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 38ee09a6f8e..e1dbcc8004e 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 fdd9d616daa..0636c1b4cb3 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 9ba10f699e1..9d78d5ad1ef 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 71d57848dff..4a6da1928fc 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 22b1eae3e57..54ea8417b4a 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 f00c62b444e..f978a23e52e 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 8b498b35bcf..bf483af62e2 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 168026b4b18..944442b69bd 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 f673903a705..4f95e8711f9 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 f8774dd8d4b..0dc2cceb9aa 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 b863616a21f..440374a1291 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 b673cf3b1e9..6ddfabdb402 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 1fba90141ec..9f66ff0a13d 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 3cb35bd082e..5c706af2a01 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 5c114509b64..08b2e9f9e2a 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 33fb5ece7cb..38183613d6f 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 608ca111b24..ecd403e6887 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 8a2885647d7..01eabb1c418 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 8e0cd7ad6d5..886d40e399d 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 fa2a664c9a9..f39a17f8526 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 6e7763980f8..c6584f20fd7 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 28e36cf495e..b9b1248eb54 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 ff813ef4105..626daa312c5 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 8cbebc518fd..c6c7975fb44 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 2e8ba912fc1..795582e15b8 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 ebba5b4c4da..e83381dd44a 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 dc461cd4d42..6d143267ad2 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 b335795fc23..60ef64fcacf 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 e5b8453e6fc..06b1df015bd 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 ec8cee106af..0e67e0a14f8 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 8edc0db2ce0..74d2e038c4d 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 3449f0c5885..db30c8f556a 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 7aa7b8cb095..1eb69f5e40f 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 c4066e3bd75..506582d5ba5 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 06176991896..fd0316c72aa 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 d60cb9195a1..807fcb38e6a 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 649f26c1dea..fc7521f3d06 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 27d36fc3e5e..ca2a63da603 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 b6ca0f32488..99a2cac7a90 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 b9c54d73dd6..99c9de8aba1 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 f808b3ae5b8..c9a6e72c5fd 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 4a8531c1e19..2b6d1871100 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 f05444b0928..84504272deb 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 7f03838614d..4460bec3772 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 a14ff3d4a0c..4d774d800ea 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 39b34d7c75d..231fc40cfb7 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 c0a061ed6b1..ae9f6077aaf 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 c95eebc537b..d2d35f0ba28 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 00000000000..fdf8b3d5b7a --- /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 aac8e40defa..32cd0ea1031 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 4fbdc2131da..b39772832b9 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 f9b197fd129..9d4bf9e0f8b 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 e0d83430ab6..5bf7d87bf57 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 00000000000..d244625ff98 --- /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 9a59fd4da0a..1ab5a8b8678 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 eb8fc69648a..c6c4f79b7df 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 4983dc3d604..165903ffc85 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 8f2d9b88cde..1541d4ae3de 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 c74078bb7eb..5bf378bcc10 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 b51a0fb7955..2e7666591ad 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 0204ab42f99..22a4a10e6a7 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 d3ff7a09d05..7b0ca714ed3 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 0c247f59453..def2dcdff1f 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 273df7d2a03..870999aa45d 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 7e330217c12..30347cc61ec 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 75ee1184110..cf2dec19ab5 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 b6cf5c1e476..2d795f686e0 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 a57e4937e89..c9d3a9910e8 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 12d961d367b..4764aec2313 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 5b2f73ff852..b05649be0a6 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 c45c5ca4fde..3b32b6248ac 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 b1e140d3962..fb77a13c80d 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 8b3e63502f8..b6c92c771d6 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 926ecdf3976..1962c4cdc9a 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 6efcccdebf7..feacf83ff81 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 d7666e3b3dd..3a2f7de1020 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 82619c20f78..4987e33bc26 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 a0a5c59d9d0..0d535e106d7 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 7b29961c58f..bf3b8dfbad8 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 0c8ee0e2b9d..fb235c48d89 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 50e5e260251..6f1cdda0ac9 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 0128845bbfb..c3dbb687cd0 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 921dcf19522..a1ec558282e 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 675a07da4ab..48b99afe3aa 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 c122e4cbb28..7b0dea657fa 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 a240b024a35..7f9b95e7010 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 8e6569a368c..a25b070f803 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 65b67f28df5..41f65baef34 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 8a6677e2fc9..16825a8a18e 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 0295abca82b..e998973c05e 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 aa0b5b6fc3c..b5ab89603da 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 aa2a632eebd..d8c4faec0ea 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 5cf3c1b53ce..123a798cd94 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 d69da5f51b0..58fc50bedf5 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 6fb1c05926a..dce427b9dfd 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 64537834198..200e9630610 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 6b0fdcae933..78384212cb2 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 db4692d17f5..39abf003d17 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 1224806030e..c7ab52171c4 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 dce47df42e4..c5a40a7e82c 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 93bc8c7b584..adb402a95a1 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 bcbbad4466a..f745b15a500 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 8ea531c028f..fb5d5346b9b 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 7582066e698..78de2f68224 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 536414284d0..5039b90acf3 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 d9a87b38e7c..eeaf426145d 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 6c7b01ad16e..273b3fd044c 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 78dff74fa83..09c6275d19b 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 8d1684dbb42..73303dde44c 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 3a8ffe0790d..0226984dfb2 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 22425b81313..5e485ac6240 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 e16899568c2..2ae923d3b15 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 334847c4a80..64a81c24166 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 76081fc27d7..0c77ca4cbde 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 00000000000..92c020dd041 --- /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 651e129948d..96b1d015409 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 c5c17d59cf2..193fa78e440 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 8389fc69a9b..02dcd573977 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 d869c64f258..3263e31bd31 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 ca2d328a37f..6d9bddaaa83 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 0aff8080a0f..0fc7863f405 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 c0cd43b8d24..b2a30426d59 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 18b7687d571..dbfc5cc5d64 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 2c88f65e4f1..9654d37534c 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 1231e2da6b3..d104e1b6d34 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 90c4f12cb90..6eb1aa32d7f 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 ca0ff7ff8a1..5c507593266 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 7ec28cae80d..ca8633ddf3a 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 55dbe25d952..bd8056e4ea4 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 114c95fd5a7..47e26e61773 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 b27a3ad6e70..743ffe27ed9 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 3340fdf85c4..72f7a38eeb9 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 a9851ee8d33..3357618646a 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 6b743471b87..bd9a5bea737 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 137bce3e353..72a76d4aeef 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 6debd722bc7..8f15bce5ae2 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 a9884b01300..3277cb4b384 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 8e485278360..2bb7429f4fa 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 88c1482f81e..20f5f44d892 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 29eaaff5f46..2f5c30a66f5 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 00000000000..dd33fb9afde --- /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 143afcc16b6..9aad7f67b8b 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 47603c31e51..94c9a8a412c 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 f5d728140ae..0f902596655 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 cb408ef1d54..8ed2dca3b19 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 85e911eef22..a83a4b3b446 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 d2afaf20f91..4a4efac300b 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 024f574a4c6..f2b528e4e8e 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 f53e0b67e33..83b33995117 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 fe9dad559b7..fc6c7decb06 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 ce015fb66c9..0c27ecad7ca 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 cac7b32817a..0f71beb24c1 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 17a81b13620..da269b1c6f7 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 8fb14c8b3cc..1a7bad345a1 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 1fa31202cac..fa12dddae43 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 7389fac68a9..4cba161a7c8 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 affdd512b08..5d929c6570d 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 f3ffde0134a..3e8dc7d87fc 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 8ca7e9b2b31..c87b6c91be6 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 95856be9c5b..86fd9698af7 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 888c5940041..9d4333980d5 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 464dfe9ba74..0078bd84637 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 ee12900aae3..51ecaeb6a28 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 09684d72093..0102ff8c7d3 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 bc185862130..fae79742ac9 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 46d4d142416..63c4a6a0464 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 3c507b2f7d1..d18b1c57c80 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 dbb14f46142..4ba1f2c2755 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 fb1cb897386..2f41fcbccb7 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 a6246d74e5a..cadda738c8a 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 f46d20878e2..159b337ac6d 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 ac2a21532fd..823cdad38da 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 d46c2953aab..415882f9f22 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 31598dc71d6..526a295b109 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 b16108bdaa8..8a1b27d1e56 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 0732b33a2e1..0a30f3f6a0f 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 681c821984e..8b6589a223f 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 110e296940a..89b78d430de 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 8d29478a9d2..dd8c74844fd 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 d0d11f6b2ec..fac105f1f9d 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 51ca1e2148b..09c8a9d2d2f 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 18e6c0c023c..5392d529a21 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 831cdbee279..30b2254d2b1 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 00000000000..27ed67a3c22 --- /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 00000000000..25831f52997 --- /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 00000000000..1d0606cc0e6 --- /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 00000000000..309a21a7c1a --- /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 00000000000..d9881e231e9 --- /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 00000000000..f82d1cb4969 --- /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 00000000000..5d29ca0e9e1 --- /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 00000000000..a9e814b255b --- /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 00000000000..304fc5e02b6 --- /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 7c5b9053246..ce9f8f519a2 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 1d31396734e..9f6252dc72c 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 ea8fda12e17..5767550c45c 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 0c257ac6d17..feab599af54 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 cb46634028e..2732686d96c 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 6c8bc9a771a..ba2b7c6e38d 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 ad5aadc7fff..ae1e6c9bbc8 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 8f941220d85..3aba4d64f42 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 08561f1e0c2..178af2538b8 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 21b33612e49..b34f2ec5e39 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 5d68dacb774..2b55c99b14b 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 a6108ea5819..5c9e7a54ea6 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 e249ff30645..eceafdb22d4 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 452bae8f27b..299a75a1209 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 bb6f623c7ee..c06974d7442 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 a395048e471..7cb11509b00 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 e3501a54ee7..42720920ee8 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 3162a578774..30c043a1f88 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 6699f11930c..20753551838 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 720ffeb76f6..d14f5b8dab7 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 b294df87b11..20cbc6f6bac 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 9723c8efc3a..1489798413f 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 594238a6fb0..c5aff255b43 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 db90d32e51e..b674d4529e1 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 d73ddc9c035..fb2b3020862 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 28388bebe44..065d25c00a5 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 d1862bb68f7..15af62ad5bf 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 69121ade265..aee1cb49f1d 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 171bbc63d93..b87f617375a 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 eda1d428cab..724d03f857a 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 c2e487ea94d..42e3d547eca 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 14459cac813..7f12b148668 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 8b1e962b32e..3937ac70a77 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 4f400b9c135..c21bdb6e6b3 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 ca01fbe8606..7fecec6bff9 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 0f3b9df8f4a..95163db11a0 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 40e3d4e834c..24a71aa0496 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 b18db54aa31..3568bc7e92d 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 ebb192cb493..0b080ee76c8 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 34689850c9c..ef11fcb4770 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 62ef64fee24..06dd0faacbd 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 e729ee9fdfd..4e9f33dfd77 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 544c3975414..a54f21971a4 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 1d2fff6b3d6..32519f4ba38 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 8c9d1b75b86..a8540df893f 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 067b2ec7755..e5a0a0920e7 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 2a8f856e343..40bea35eac4 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 a17e5512fd9..7c4896a5ba1 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 c47be9e02d3..51c2c66be16 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 ce98ea6a5f1..80d9d064f13 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 00000000000..8ec5ab42322 --- /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 f032112fcff..5bb8792d2d8 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 b072d3ece76..f1fecd1dc03 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 6d8af1671a0..3d7cf67ad3d 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 7640aa9f7e7..22906b15d0e 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 c4488c18ecc..45e2cfb6ab2 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 bfc14c95aea..6f7b0be33e1 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 00000000000..8c17d69852a --- /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 379db72fab8..3762e9bbc5c 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 b0dfa8e4148..41df1b89c99 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 c43b0aa56c9..f7242516438 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 0169ea781c8..c8bc8fe164b 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 f2067cf8dfa..9d06a309641 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 ffb579a159c..db60308fc43 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 95d5072d494..511d1308acd 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 c2094c729c9..de2c2a86cf8 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 02034071257..83bc7b0822d 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 8389fc69a9b..02dcd573977 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 941a65a0fdc..f8d3eacc275 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 063928b8294..2cb9763ef9b 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 84764b00348..a2ff61fa89c 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 9faca731c9b..9694151adaf 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 33bbe868c1a..a927be46f06 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 4dce4291812..7f856bdc8e0 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 2915f456d84..994d083c383 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 aef0f0cb636..a5e87b9ffe7 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 f485e206036..c8659d5c50e 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 d174570d58a..387865c0452 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 2c671565c02..187d4666d00 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 fc9ecd8315d..bc0a59db565 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 04031049f4b..b81599466b7 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 95e85a492e5..b8aaff7a9b4 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 290f407dd7f..417d173a1ff 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 f49c51df5ee..3116ab3fd9b 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 43706e0d190..54954b397b5 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 836295cfd96..dbb8e48f7af 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 298272d1779..11a1c2ce904 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 cd86fb02c05..f5b8ee049c1 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 a46df2b2ef1..39d192a6dd5 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 844319488c9..52d96fe7352 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 00000000000..8a70025070a --- /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 006e4c93792..71b4ccb6e6e 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 49273c131bc..07991463661 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 3f5614451ae..6b7949ced90 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 7f5a492910a..4a8fbe54974 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 5a6379a9754..8e8d8060e64 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 5ff918bcf5e..f28cecce350 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 b6ea6408a5f..a2d740576ed 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 424f92c7243..ce920e6567c 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 d133d68d1a0..c52215c2973 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 6617abaa095..8db1cb8143c 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 eb40ed0467d..3dda9ee6fd9 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 8bd48406755..e1c2c91ce96 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 8780ec7f885..72fe6621024 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 8866a1c58e0..a9020ba6d5d 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 ce557238e5f..756310e7df6 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 89d652d993e..40e1bd57d11 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 3835b04a9b3..1d3e8d81270 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 e55b6a956ae..1b5b5a877b7 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 95d5d421a3e..a4e36257c44 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 a2e4b841630..e1f08fb7155 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 06b3c331504..1b4aa4e1fee 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 f943f7daf78..877ee6797c4 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 41938b0fd07..f3992a6380a 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 afc66021e57..be00ca4640e 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 a63bb14723f..7fd1f879360 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 fbafb516242..f72d9a83a77 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 e6afd60ab19..906fd3fe75a 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 641c695fa1a..eb3240ddd16 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 b7fb9386513..cefe63b2b1b 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 2676f04c57e..2948d723b65 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 6c41970740e..c3e9fb542e3 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 92765b8e5f6..40e1e53ee65 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 94600735e88..c3bbe9d574f 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 07b89c2bb73..698b0fd8d7f 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 43c5d9692f3..18b59f9f6d2 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 e52ed40d273..fd1134b7226 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 796923f7066..1c286def687 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 a4cc4d69c8c..ae79c0ec629 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 5e483a88787..ab06323d7e5 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 896b6058f87..2db797749c5 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 e4b50a52d16..590a3fad3c8 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 62b020d2472..589e9a728db 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 8be751d3281..4749d9fdeb4 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 7f2165e7255..edc837b8838 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 c978458df9b..7dd3f93550e 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 53b2b7dd87b..734b91fc792 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 1e819d936dd..4a730aa2503 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 ec42683701f..d9c7a729ba0 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 9efdc27695a..2f1531fde10 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 52724dacaf3..9c26b8b496d 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 9876927c568..15f98b5aa55 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 a0221a4db83..232312fe3ff 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 acbd0e8acc7..bd320b4e2e3 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 87bf842c1ce..c5ffdb23d43 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 9090db70da5..5c2c4d6546f 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 cd5f4a3a234..7ec3d7ae5c5 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 11ac03d7819..1e110b8c3db 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 cf1e8c4f7f4..b302ce0851e 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 20aa16a798e..2e0763790ec 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 cd42a96b59c..aa8b129334c 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 c5f462c242b..94424f2903f 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 e4a47395717..5706082c649 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 b9cfaeb093e..5f214bf662c 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 c0e30f77929..15d51c82c4e 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 655ad585a13..5807607b9ef 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 33daa1ed042..bcbbfae9338 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 6a4fa3d1d73..8746925d752 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 0b067429738..b080042d697 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 9af917e7de3..1cd1945526c 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 af1635ecbb9..553964bd5c9 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 24dc8efe62d..3247bdd414f 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 6e23b313eed..503b80d082c 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 1346e9f0bac..cbbae929117 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 e13b3e40648..745585c1de3 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 b510a823bcf..2acff48b378 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 b813a1fedee..31805a7b870 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 1b9ce6d010b..05eb7c37710 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 c137d71b1c6..ff7d7b7915a 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 9458788e675..fc3a7fd3687 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 0f60be1f5b8..eb079b01a62 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 526278b750f..6230ec2ac16 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 2eb7478c150..ffae58ea329 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 d355e31961e..8aa66aa54c4 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 6930fc503a9..58d23ade207 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 2e780cb14c4..70bf7762700 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 593b60535f1..69be185cf56 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 7d8ba1a5a9b..1f32c921a11 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 74a9e9e3a76..f7d9d2cf800 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 4f076a91734..921f4fc369e 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 07d470809e3..5a298a809cd 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 84108021636..1149fddc054 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 00000000000..f513cd9bbf1 --- /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 52e2532e748..42812765cea 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 f019fa05d2f..6877651ce11 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 e1793d18ff4..daada531273 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 1fd97181042..83cc62cf702 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 87084cece52..86da3791f05 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 00000000000..a81d06eddfb --- /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 310f2d51cfe..1170d97956c 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 48de2103d19..59d621ef268 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 3735ddff243..702cc7481e1 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 3cbd8a8c65a..d90a754438c 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 817f8b18f88..d25d53da147 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 eb63bade516..d99a5228a2f 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 d71ae105741..826111c30a0 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 e4048ad1dc7..d74d9bca682 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 8389fc69a9b..02dcd573977 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 e0f23be034d..3aab60581fe 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 6eb382f78b4..716281f7076 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 611f964e191..4856df81360 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 c8daccfebef..0ad3a8ba84f 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 5e781ed9038..06d3617cd41 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 f74c2bc275b..942f68ed9aa 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 a3ea0f95719..858ba483dc7 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 355cf79937a..8384e59ec28 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 ebeddeb66ad..ed0d7d4831c 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 547eebd455e..18288ade9ca 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 fa5b31e9368..b7f76c877df 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 acd2ee04af2..06028efece5 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 b23ceb9ad10..038a772de15 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 a6bc8dda551..2f78c5c0b7e 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 2f1dfc1f3a5..e190b14653e 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 0f143a2dda1..e78bd14a4ee 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 8dfbc0ab736..9948dedae30 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 cf414b452dd..0756aea749d 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 0b5a7e01e4b..dad60e671b5 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 37e062c6367..3e6329a9a80 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 63827fb82f6..dfc52e70a66 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 7ff4233f2d2..a75d61c197c 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 00000000000..79d26cfa084 --- /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 2a826a332ee..aa6f2839230 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 640d03ae9ee..e1c15ad61b4 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 0b6a68f42c3..0abab84c348 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 8eacce9868d..e1b434e3d87 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 e31210caeee..79027ae2d05 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 abef87beb55..408d47e375d 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 ac456e3d774..dde87c04c5f 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 dcd1ea757c1..2b05810afd4 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 304365ea35c..803a575cd68 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 1305af20fe2..958589bfcc2 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 7f4613854e0..c4ca06cdb2d 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 52555fe69c6..72446c78086 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 922d1f9f91a..97d1147ccc5 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 88707cd4327..3ae68967864 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 f25ddd0f5ab..466ec1ed3c8 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 433a216f397..a9427d9c25c 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 f81fe8484a8..9286d6ffb3b 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 e777d9777f8..63f0952301a 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 ec63096501e..db70774d2f7 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 f422d5767f8..65e7149659f 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 707895c44f6..3cb6d97cf9f 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 bc66a59e6d3..f6facbd28f9 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 1d7e06315f1..7e5f5a0a3de 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 3af79720c4d..63cde7e63a0 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 e934c749661..59883b4d267 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 3844fc1af8c..3fba44431b4 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 134649603be..abfeabf02ae 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 e5ec08d5c78..8ca15201f12 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 52850895581..d095db1b84b 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 ed0ad501993..33778acfbe8 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 499571871d9..5ab561e0906 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 da36accdf76..deb5ab13349 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 36a3ab00160..77cf28f441e 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 9526bb84b12..030f081635d 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 f64e8cf91ec..226efb8dbc7 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 c2f3b2f1c1a..c9ff5ee2eef 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 2e99b220622..9904332c678 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 23279ffb695..89536f9c1ba 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 e214cc0b765..cc7614984c4 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 5a5cf06d7e6..4e69faca09f 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 6466a1d83e8..653cb594a64 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 4f5ea801383..dacc2046422 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 8c7fddf6869..2907650f0bd 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 ce0ac070b7f..8c3140a13a7 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 5ed02085846..d5329a008a1 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 f823c3677f5..8683346c220 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 33c15f61700..53d21add23b 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 c2a4fc5379d..b85b9478b11 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 a20022843ea..da4127de832 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 b15af6e9dfd..239c67f0f6f 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 03e800f6e59..5f52c3008d7 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 776bc7cfaaa..862107f3f7d 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 70d95fb5a13..d937484a071 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 a4164b23abf..bb4b1d5efb1 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 81ac202f280..f7afb3d6928 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 4e6594cf474..30b02d9bd23 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 ab7741de618..1053b48db9d 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 a636ab7bf71..38e5f83ed31 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 58ac74e7dd4..e95cbef1d24 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 f1c160f621f..3f697699b08 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 b8d10eb6601..52c2606655b 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 3974bdfc3e7..dcb225ba75c 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 86c523f57d1..da488fbc304 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 2098c9e6372..5ef02e8ed21 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 d0bc0372a48..5cb6362938d 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 6e71a9beea2..52fb970b897 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 86444c7be3b..cc22b2f50e3 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 1b5b12ae705..0bc6d61ad5c 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 06052f15a2a..3b663e97f2e 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 eae3ae9495d..791a51f32d4 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 7df0e0b1098..dc373541d9e 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 c5e18790866..24dfa41bf04 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 988beea9cf7..fc2712cf974 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 978120d5ef0..b8aca32b807 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 f4f7648e502..9527dbb80f1 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 b7f84d8d066..e59b4b3cb34 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 574f48315fe..c946d5d002c 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 fc0d2266ab0..1a76c76b7d7 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 83f5fdd8ddf..c44bf9b9c97 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 3e3b886b109..096ba5491e6 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 f955997dcdc..16174285fa0 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 8a8974169dc..be158fe37e2 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 93137d7ee02..c37f9392ab2 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 a4c739389b6..7f70af5aba5 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 1730f60767a..faa9e5ca5ac 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 e1ee95852e4..4b7c74ce520 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 7eb07c480af..a165131a587 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 3ab0910c37b..c6d18b6908c 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 494605e103b..d59b6c8dde8 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 e0ef8caa765..777f718f40c 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 2e1799e607c..7cc8be7fc5d 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 a9111c5004f..2cf2f4ee55f 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 9e0390c1513..52005a861bd 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 94d564df812..f3803aafe49 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 b6d2b6a0f4e..62c46866cdc 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 f6556689844..b1685c97dfa 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 aefb3fb4a36..42d362e4943 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 5b347a27dbd..86bb68ab159 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 54f5cdb66c9..c5f6eacc91f 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 7d0531cbaea..21ba3e44794 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 5de0dac0824..f6b00037643 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 3024dc96410..78f7af55ef5 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 00000000000..6e90519098a --- /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 a042ce6c042..20a1148a96a 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 a48c2e7fa1f..3d8fda6eafa 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 50f311bfdb7..ba2b0accdde 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 916260c5205..80cff8ea2c3 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 f8ff09a1899..e775aeb3173 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 cf865c73bdf..fae71777204 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 aaf33cefc92..13f6e510c3c 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 aed34c9eb1d..5b03df8ae42 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 3d3b2300348..96097d23ea3 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 958887864d5..6f815993162 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 0b3056ddf8f..ff102ef69b3 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 63509ab516d..16abf0a874b 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 3e0b3decc8c..0cfcf794379 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 417f0d3258c..236105a469f 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 f857cc837f8..35dd2f8a650 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 cc6d50b0da0..c8cfb2f55a4 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 69f80a27828..8f175e2a353 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 0ebc1325588..f3d0da5bf81 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 1794323e894..a141f2da6d5 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 2495dea31e7..ce38cb524e3 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 c3d1a0e3486..86c9bb93569 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 4580461499b..92809cc3a32 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 3ef9e5db3c3..641513f7e88 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 4728ffb4302..6f72fbe6756 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 3e52cbf3bf0..a1ac0434180 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 9690864b761..7e8868d2863 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 5dccb040f61..32c7b801067 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 9a7ea7b2382..88299df06be 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 58586d92ee7..134dd37193d 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 f7c00412ace..9231534438d 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 853a902df7a..6d36a5a22ac 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 ac7cc6ad39c..f616f5aebbb 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 e342a7720a3..329471b1b81 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 ef098a51541..7127905b31f 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 367e98beb66..c28e40546fa 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 111170ca068..1dc5d06d706 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 9a76e7bed10..4eb38cd9a60 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 c4529d912eb..39a2ac6e81c 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 9d9acc8f14b..74b1856924d 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 f17dcba5b73..b23bb37482d 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 57a72229435..1461c9d8556 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 9465c167a39..89ffc351dad 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 239aa741022..f9f04f1944e 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 a0e4bbfd0f7..7ea3256d40b 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 b321c0808e6..9a4167856e8 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 c5b6b3a9649..be3744d2884 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 aced4811798..e09a5a98097 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 9f7bfe94207..757be5dea91 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 1553bb4da4d..a92714cae4a 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 219d2c5041c..6f2e9dc6139 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 f26ca14c264..d7a98f60379 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 cb622e3b3d5..94730578622 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 45eeb13b4ef..7b600d6dccf 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 7bf90ae50a4..b979f8b21ab 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 ccf6e166dc7..f09b9590d52 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 7f57d81408f..7fd806ba9e7 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 4a275b90c16..d86a78f39a8 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 2d45217ccbf..ab538ecb1f0 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 cb210fa1772..1432e8d00b9 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 cf513896dec..45195686874 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 16be5abb507..7ac43a0c0d6 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 3472a825dee..f9d4843dcbc 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 ae45960beb9..76e8c3c6fdf 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 deeb3a91d16..10b2950fa7b 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 b92acf56972..2ac06fb582b 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 dbd3e2bce84..f53d40fd8d3 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 78f2aa4530e..85b2e380ddb 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 840a724ec36..9448fb29fd8 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 e7049563956..fde0a74d234 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 f690812d0b4..d8fb026630f 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 67c736082cc..03760faf30f 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 b1b5db114d6..456c64e2336 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 b4ba9d20dd6..d1b988fd6bc 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 f38e7329937..8e91061b8ee 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 70c12b8ad05..a4815754ab5 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 6479c6e79b9..0be13b30972 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 40dd5792bff..42d3b13bcd5 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 c4dfe4bc8ad..bb0f24c715c 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 989ff11146e..f60cca30b24 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 b0f01cb7ad3..7de25c90c52 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 b9853cd065d..9f28e177e62 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 bcbea7a573a..3f740af1be9 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 e3c75539cae..be04287430b 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 79ea9cdbc70..e6e9f16fa94 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 d8c115c15e9..83822296e19 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 54e9365dbbf..5494f6181ee 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 21c08968b90..d387b883a7b 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 0264f8bf1b3..3449b2728a9 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 40ba541e6fe..40572bc045f 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 7e68222a996..f0f97de22eb 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 a360edfeed6..730c7befc3c 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 2c021fc48b6..b5a44c5d617 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 5e71fc42238..17b149354dd 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 71f4af6e018..d33838626da 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 4d479188008..1a64f7e4a43 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 e10b0815eac..478b61d38d1 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 433e63258f4..5f926c772f1 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 eb20315a4b5..7b707189a54 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 d574b45289b..3da36df8b67 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 e27df5cf225..b208f526ada 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 d1c7ded065f..4f57f524d2f 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 7e09656c5fd..bfdce2fc504 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 1e4f6ce69a8..5c004da70c9 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 e30e0ca8706..7d944ef0944 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 29222daf187..f19faa14fd8 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 d2db0394db9..53925ad7b1d 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 c0e0362285e..ad3d1d31abd 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 34c91b02602..b0b92b4f142 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 a10e6806bf9..5343622bd95 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 8b9d97f0c33..45a33c8c508 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 eb78be56ba0..9a24bcafd54 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 62aea567a56..b9d7916f926 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 33e851bd19c..f5ea0158929 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 2a092c714c2..eb05917b35c 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 5902a12e810..2780099c120 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 6f6f21d8a45..0c63162135f 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 ca348e8dcc1..dad1f86a289 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 40bb5eba1e6..eb0767963e8 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 dc5c632a943..5786647bbd3 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 9a3d51b08dc..f2e6ab9763f 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 67b69e23d8a..97adcfd4183 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 224d92853ee..40837422911 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 248e1fbe866..92a9ea88ab1 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 3ab417f25b9..8bbda64e4d4 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 1ad3a3f2c55..6555a221787 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 a64ac3ed898..34f5a7ec669 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 fed6206eeab..27c1ed086b3 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 d4cdc7feaac..622041ee21d 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 f9d5161aff1..4bf1a3876c0 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 bb8a0b4fc99..85c4afda711 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 5639a7830bd..af1d24e94b1 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 22ec85adf79..ce4baeefc7e 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 cd94818ac2f..2e30ad68fd1 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 91f4a9af450..9bb6a028c68 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 fb73a34b894..47b3b82be8f 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 4572f9402de..c3f5023c3c1 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 980545beda4..500d86f58db 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 70df2abe717..38309ac9dd9 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 3a33e3f7875..41fa0701785 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 eda658e7455..635e532943e 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 2439ed28d6e..8cfcb265fdf 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 3f586e92879..d1280df3d47 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 eae738f87d8..5c881538da7 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 d0fefd12631..055dcd32745 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 6f34ba033b7..e3a122f3564 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 aeada45f16c..5c91098b612 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 00000000000..0948b399f12 --- /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 19257e38735..068603369f7 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 f9e0af9a11e..f4ce06ee64d 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 24d62e36f6f..9d30e8a4b10 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 00000000000..edec3e7968f --- /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 9ded7059098..e78ff816ad4 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 d16fd95bf11..a3b5e37e49e 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 00000000000..e6543ae5dfb --- /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 ae7bd294898..ac836a4e7d0 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 15b36bf8255..501f1607dcb 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 00000000000..5ed965a6835 --- /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 580623a28de..5955d7b25e1 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 db82f6fbe04..b4db5b22f2b 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 ac2166293ae..933839ad5cb 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 e4be221f0b2..88e4447e626 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 dc1544aee9b..fd906b736a0 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 c3269eedd8e..f1eeeb095e4 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 0afe370c441..40f9db97dd1 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 8389fc69a9b..02dcd573977 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 beeae2e8e25..2b6fb2c6a71 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 a025825d9e6..edac36ca36b 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 3a734d69b8a..d70187454a0 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 847c6ade3a2..a2e5b3c9c63 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 25b82bb831f..75de2c45460 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 4edfe7651a0..df10a54e7c5 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 2c014bd3341..874a5af3f90 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 7dad5b8419f..5065d2100db 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 cd06dba79ff..94896eeb7ed 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 43bf8886592..788dbde85a3 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 ed0923a9cc2..b7b9ed2b92e 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 3f36842cc52..2ef5fe56daa 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 c15840b4a47..3eb4d4508ca 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 8af618c8146..094a5d52d6f 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 98be4cada26..965de6af882 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 fd55cb8dd36..9cd0d2fa1d2 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 a6a4e8559bf..c74e1c5ad70 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 d846b51fed8..b1dfb8c5bb2 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 17bfb49b977..b601380cba3 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 9edeede6838..b38c4cc1ea9 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 49cc9ba8645..8d235833cab 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 fe0b104663e..d1027243f49 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 00000000000..7d5303744f0 --- /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 4ca5f5cd562..4d536cc5113 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 7d328969781..f88e9d469fe 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 7316853e3c7..2a520d58add 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 3074672e81e..b11dddd5907 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 1b3c92791c8..382a76b1c90 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 29edb85b4ff..9892a7e6997 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 4c5ab029f52..f0ba083d675 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 de78a2c80c0..f32ae80fa68 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 875fda47718..d4593039a1b 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 6f5e4aec174..e0e75a9d690 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 30f3425096f..4ac685af082 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 abb75f31818..2bda3250cc2 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 d91978811ae..b10464e864f 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 e3772554786..b8e5771fa66 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 b9c4df1b489..68b569fba67 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 8195daa0ad3..2d6af2c62ed 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 13f964d71bc..eb41f8edcbd 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 feaf6adb989..458cbef0f8a 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 c5c375f8352..31547d3ee88 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 3aa450f9571..66182b4433b 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 65bc97639a9..5d5a84f951d 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 e40691424d9..9f2a6d49c74 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 76b277d163a..68b0ca67bac 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 20b4ab5f601..1a08c9d75b3 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 b697f15d95f..9fa081261f4 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 279bef1c61c..9f706791e3b 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 5595928c407..20b4bfc2d4e 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 e38905ba4f5..5ce6cb1b161 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 5b83eceb018..dbcc5c986c2 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 0c487b7c988..3545053ffc7 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 c9127630e5b..e5ceaadc57d 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 0c4f1fb8f27..90a9df50b1e 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 75dea7c3379..0d19871a046 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 36fe4e19417..b456065167a 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 24baf886334..143ea8efe6e 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 765ea7e113e..a34ed55328c 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 b8963b2e550..0aaaf80d7db 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 897d33f97a0..6c09df9eb1b 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 bd6d072831c..633e601c861 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 47b855e9192..3dd18b9af67 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 50f89e32367..4bf5b64f595 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 aa710cda356..aa7bc2959d2 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 894555266ee..936a6e5092e 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 27068c72077..a8721155850 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 b602551ae5b..3df0f9f0587 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 4ef9ce26c66..afa4abe16c9 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 aaa3549a8b4..caba9f7a126 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 f3076c1a3bd..8fd8fc0c14b 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 8575b01cfc1..ab4dd5033e4 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 c2ed7e207f7..5dc3c57ce6e 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 2f8663ad392..cf00609fefc 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 c460f3e8cb6..909c88c7341 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 6b8c2485bcf..12b879fc780 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 1d02837791e..e1234ddb204 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 664eb373a50..6ebd4a1d945 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 c774ddaef38..20824484f58 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 7cfd0570e5a..9c67ce0fb7e 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 e4dbc5db753..1ec7e99ca10 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 b76f98cd9e6..4b055355fcd 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 4e1e159c7be..30cf1af7a0e 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 ce220697c46..bab2ed2dd59 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 b00b0fba645..109b1c269c2 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 4a952d67fca..2d43da0cdaa 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 f7e34296a16..d1b8430393d 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 850ebf5fd5e..11d37df8eed 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 2661b9597e7..ba899c0ca43 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 f069e32f003..04955e99657 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 d7b7be969b3..b68a2ba435d 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 125a2755d1f..00ef5a6576e 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 c53e10855cd..db36e1c3435 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 70493553175..a53a4a9fbe1 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 143abf9ac73..2d6573ff9f7 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 ccdfb6ce407..1e6cf2c9bc1 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 f31d3251624..b2b6e64eeb9 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 9a105f934f9..557c2591a94 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 d57fada99d5..82cecade34f 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 8fa431dff49..5840c20f41c 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 adf68074b5b..c0e1032d710 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 c7b0f6b9ad1..00000000000 --- 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 b509d03d40c..872148a76f4 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 fa2e41e496d..df25ce071e6 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 bc1078e96ef..d7f1e8481a2 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 e0a9d6f17cd..a69e134089e 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 350e0895809..310da17ba67 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 6bb1b3f4bd9..2ae75d59574 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 b4ba1f10322..9d0663ce8e9 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 0178f36f6d3..86cf64e57fd 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 de21dd7460d..eaac144429b 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 d073cd8bbf1..0539a52201e 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 9b99f6b8006..3dac96da51e 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 aa3f923a044..27242bd9f4e 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 07cea3b1b89..a0c9c598c41 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 456b440094b..dad191c4e20 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 52e6a7aa409..00000000000 --- 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 300624d714a..a1d79cd9e6e 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 cc4816c3853..56dcb82a59c 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 d4c5bb5b651..923320e1e9b 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 d51b0f168fa..4f784f73705 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 826431fb629..494bd925b00 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 6582a7691d0..a990891168f 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 a60d4db6651..d6ae9d7b90c 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 a062f8f4395..a8ca07a9800 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 ea435f4a49d..0544353cba3 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 f8006139a23..fd93f647708 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 588446e794b..251c6f5472f 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 8489093ff7f..429381f34f7 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 a24b0867f47..41b55ee2a2b 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 e049df7f345..280a9ac4570 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 b2a13ceb442..cc235ae321f 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 f0e32ae485e..dd4170977e8 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 8ab9262d3d2..4452b380dea 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 f3579170441..8a2e5b8696a 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 ed21431fe90..c5fb483eeee 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 b29e044ba99..00000000000 --- 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 2ce56e87f36..b2496799159 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 806e737bbd6..9302acb05f6 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 f9e0d5c332c..daf4ba869f6 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 99a82dbf85d..00000000000 --- 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 dd80f02c3ae..75c99dfe43c 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 2d6a4e9478e..bb35ac8336a 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 f29f1b2dc5b..3b0cbb613a2 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 7407492a9fe..b0904525bc5 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 d71f33f9ccb..6461bf74023 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 3990d3f41f6..15196aa44b6 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 03be508a34c..41b01da8136 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 18abe1de0da..c877bd931ee 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 7e5f6b6f051..fa610734ef4 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 c5754d12d87..fafe4be5f73 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 848724e4d68..38b733a090d 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 66f2addce48..405d1730446 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 2a304a37fbd..29e74f6de46 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 c04a7587649..45a570e5f40 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 d33a3599582..ac1e0b82e1f 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 19a218875cc..804a0317c77 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 5f0f137533c..bdf89a060d3 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 0f64b0fef3d..a143422a489 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 05d02b15878..2406911b5d5 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 6ac2e2551d8..00000000000 --- 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 4b57debb9b7..00000000000 --- 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 559edbc6272..00000000000 --- 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 8e414d98778..00000000000 --- 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 65a792e116a..00000000000 --- 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 5285ebb4272..00000000000 --- 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 aae6bbc636f..00000000000 --- 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 081096b3583..00000000000 --- 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 7714e52f7f7..00000000000 --- 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 413f80ef400..00000000000 --- 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 b50c8ffe305..00000000000 --- 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 530f37497bb..0ef234afc22 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 e84a4be72b1..15c6ab2877b 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 1dce1e7b673..6ca1fa8f511 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 f34c24f1f54..7db0d369afe 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 bcc3df61905..289198232bb 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 1c4ef1edb86..b56b27b6c60 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 60de7574a28..701f05ec2b1 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 2224f863fb4..54afd45e1d7 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 4b1bdb03389..67cbbd19ce7 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 e21b5e84fd8..a81b970d6a8 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 424ae1c6d3a..fa70f3b79dc 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 7d45305900b..932cce4a95b 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 336d870f84c..00f54dfb32b 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 02de3a317de..c5f666c0056 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 b811e77e6f5..82ff925c41a 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 32a86924b25..8d07bda6df1 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 fc3d4c68ff8..feb035fd0db 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 f612def2aec..9105151e06d 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 e661e5b5b6e..d6c28f07f9e 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 f34cbdd1dc2..ae313ae5e37 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 c7ae73303f8..63a4d7015d1 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 f2ead84948b..fbe3554b2ca 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 993d8832690..5876c10f1ec 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 d3479642fa0..3c841d921ed 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 eee9fbd6a64..fb18339f725 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 2d6bde0ad41..745acb12a51 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 75894927482..94e3e5e0413 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 563e62d7402..6e8647065d4 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 f24a3b75305..c12100d6ba5 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 117fab9be72..1339d5b2c28 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 ac9cb097ead..bdce0c0270f 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 01e459a8a53..d1ccc07ed9a 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 5ed0bad5f3c..66c6d886c32 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 a80f01e89b7..ca9e3048aef 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 b1e89aacf49..ba012ab9073 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 12a611a6ea9..f5e193eda93 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 4ad554f346d..bdd60042233 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 6a304a35c49..b3890f9395d 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 c78089ee0f1..a47e226153c 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 40295ba7b62..07d4dd8eda9 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 7fb3a084a14..cad3489e6fa 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 207415dad5f..c393d1316ed 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 dfe065ae82b..7f29be3d888 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 ed2201f2c8e..a31dedbed8c 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 70be0e85368..6bb157b7b6a 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 759338b132d..7f22409dedd 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 6ba0c6defcc..9db359baaef 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 fec3621b737..384e641e1d1 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 28ff804665b..f04bf71651a 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 c974393c73e..7df71588569 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 13450cd2443..05e13fa0d06 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 8740937c672..236b6386380 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 5d1f104628e..1cb44f0b107 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 83195b0316b..160d0f7dd53 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 6744a155c4c..6f9cbaa90ae 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 933a2cafafc..862cba4520b 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 74e252c154a..4c240930c2f 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 10aeb3bc1b9..17819ae3cac 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 8389fc69a9b..02dcd573977 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 971f8949cfd..bab12537994 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 ad54bbfbd55..8d43957b2a4 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 f48108e5ccf..f1cca36bb28 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 9bb7004d69c..884b17d0714 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 14eae523fa6..a04d0bdb8d1 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 acc25312ba0..9e8314eb276 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 66d100549f6..b8aa2812829 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 aa9a12fa826..f36219ad07d 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 84e3abdb0d5..ef0c40fe6e2 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 cabd9bbd067..a238632906a 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 0d6c5ce9252..d88004853f3 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 fdba6373567..560e14f00cd 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 5434468d80f..83df87696dc 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 91031596258..9cebf7350ab 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 f0f534d5997..d01bf99c8cb 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 c718e67caa9..93b1a894f54 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 a21ae21d3cc..98840a38eb8 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 0450b65d5f7..6ce9e359fc0 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 3bc62618862..15d657779e6 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 8e47c19b3d3..09fac73f2fa 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 64440a73ab6..7b10c85678a 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 755798d2276..b133b706fcb 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 00000000000..aea5298a3b1 --- /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 d95da079bc6..00004f08bad 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 dea2d80d7c6..80a101c4ea0 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 8fe9de2de55..b9edafc1a86 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 a747ea40eb1..98f61b343ed 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 7b11034cf13..8ede18dffce 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 606322826ac..72cad4d895f 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 7a2cde8eb84..8bc266cecd3 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 230823a3d8f..bf5409f9763 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 c2df31f27e5..0198babf1de 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 bafc04c1bd1..1d11ed34539 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 9401256c930..8c52ba590ff 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 1e8e5d82778..677bbbb22d7 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 8acc8cb78ea..1cce4334c19 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 c0d9b6e00e4..2ab3102ee82 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 98006a9c01f..f7a2bcd23b5 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 1fa3289db3d..043b38746f3 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 f2f9d76e9e4..c744b97ebea 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 8251642a997..3d943561854 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 c0e407963e1..045e4880c02 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 73755108cbd..0b1ebd04802 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 6f260c3d555..f9044f0bb68 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 f77ada39d6c..a201a07af1b 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 9ea114b3c8d..7a95a4e0cce 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 92283aac54c..cbd48af27d9 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 8c4dbff3d02..3000e341cf3 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 efd98fe3066..221accea271 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 02096eb6df9..9d99bb6d1fa 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 10963a38a84..9f93ef77350 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 48e10c1a871..9d446ca6b70 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 2a3a439418b..baa9e3e5e3c 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 53c15ab3392..2fd45559408 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 7aaf2bc9c87..3f431d360d2 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 b10fc776a93..d2fa65f63e2 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 959cb99c02e..c4407bddc29 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 bdb07967bbc..cf889ed35ee 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 77710a4068a..e62250f9249 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 dc4814dfbc9..54aee8f60ec 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 c8d4073e9da..335723c5e48 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 d5c869e7123..34675c42053 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 c655602bf14..16d74664213 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 79406dd14bf..aa6cd1c2242 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 b88f160a633..d76860c3a57 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 c9732e85d47..3c024bfb5eb 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 79ebd8a15c8..46a14504df9 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 58677606c74..0e8ef7988c9 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 8f4b12507c2..cabef0f2d2c 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 d11a23fc700..bbfd854d6ce 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 4cc1117b2bd..aa6d8222996 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 58f4214a92f..1588f9bb311 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 acd246f57eb..176694836fd 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 79c3a5efeb6..42415c4bbff 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 8b30ebcae93..01982408ac0 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 0ff662084f3..b7cdfe088dc 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 f5883640e73..574db455e57 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 5a242c6dcac..d14c1a6e78f 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 29d4e550220..1187433668a 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 e947180bef3..3a4da4bb762 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 58d6fef33a4..deaf79bb271 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 56f9feab026..2cb12a1a10f 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 277159af328..f314dd69c3f 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 33a581a3ada..dad24cc536a 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 a896b8caac3..ede10b6419d 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 ee7a5961e06..c8e17066c7f 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 df0d54a39f5..9daf08d21c2 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 0007cb1eaaf..d44c9acb6ed 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 ff2b7061b7e..62a22f06046 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 ea5b93a3592..d3e63826399 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 2df2fe963b5..10627e0791c 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 6d052815fd5..9c9470f5cd2 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 8c465379aeb..b902a602b84 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 8ecfbf53a3f..f69d5946d0e 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 2394bff7961..1608c6e0d00 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 8f71e7dc086..1c23af4a99c 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 762291d54c3..41a7a65cf96 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 43c54bc6dfe..32a67fce8ac 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 11120c09b8a..ea4a8c2476e 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 d0afb9da048..664b28fd444 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 0f53d06478a..ccb01ca5ed8 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 6383682fd66..77db3ecd205 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 9afe82c1e24..53bede64ae3 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 68ff3dbe112..d21ae4d7863 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 7bd594208b7..c582293e35c 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 5ad543d8dc1..7a849ef2a1b 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 8938a5c8415..9877a984293 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 1c02176c774..0cce3ba87b3 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 088d9845ece..d83235adf16 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 e37fcee0fba..bfe9ee66116 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 f43d1d2828e..3fe5f79d754 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 0e50ad8b801..1abe2de0d99 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 42030a890b7..ffd88a96499 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 5db86aa4d95..c1d3ba1bf93 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 3f713b1dfaa..f7308f9c00e 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 a7c908f0612..6cc306378b6 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 4ecefd5eecf..9832ccf20b1 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 3b2b4380d03..418cf35b4d7 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 317293d8247..6617cc696ed 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 b4df063dac9..83ade0431ea 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 ba01a03c52b..79c3f3b6d21 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 15c0686e54f..49d2cd9434e 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 f66494e4252..47aa22598c1 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 c508f1e5e30..255638edaf0 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 265e5500c20..791cb72c88f 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 0645a5e9ca4..0f6345636fe 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 6eaa2266836..e4a2a2d952a 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 a5155410bc1..a5932ba2de1 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 6e32e129933..cdfdd9f7d26 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 36e9a67cbbf..e3f36b0331a 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 e62c69f8dc1..28e302365a5 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 fd4d32752df..c78db1a5007 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 07821babbf5..8932a87aefc 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 2450ce7d507..d715f4a9b34 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 790212da0bf..b4a05d37014 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 c4c6915db19..ff8f5ba386d 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 1286038d39f..96e7a0335b5 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 b41c581c626..3f8945116e9 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 350ac179b73..4668ee9496b 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 8084a9fdce2..8a4f7b0d428 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 90dd510a828..ecb37e10b97 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 d0b0cb64bfa..f0bfb6a1a83 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 77c6abec939..c06b7a59857 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 111793c9f19..4af8173cc80 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 c20f0443d5b..177369c7dd7 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 96ef3c5424a..c7d827b7ce6 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 1798f62a4c8..e9cd7c5d422 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 81b557b23c1..492207433c3 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 bc14f73e1b1..9c64e9523ff 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 c2bf10eb41b..0c4721271bb 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 d8fd9e50e96..7f685fe8b24 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 387e71d0eec..7e653ee33a6 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 7f9b732192c..5a1c8615da7 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 28022e9b0cf..b2f5756c377 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 428a5c75532..54dea4a1d69 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 bc6c5908623..d5fe177e6cf 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 8ef1f76ea16..280faf61f36 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 2f29b75ff18..c9be9409258 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 c42f8d58663..3b6110de295 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 f631b2341c1..c6e9ca6de8f 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 6287f7c1d39..c695d9b10c1 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 399c2f5b113..53a8522ae9d 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 f0dcd7a90b4..6443958bd67 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 173002f0139..10efb14c1bf 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 76010a7f27b..1d128e0551a 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 1f21e123976..df609c5b0ff 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 4f6c3a93733..b4b70e56447 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 bfe6f5aabdb..bb82f881c33 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 18fbc485854..1191f5d7c9f 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 c4c2fa47867..c7871086c64 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 fd5d2797b76..97cf9cda92d 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 667280ee071..d89913467d5 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 6c255cfd8cb..9b4cb27f3f7 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 025960abda0..70c4f0b2721 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 d0869557409..dcfd56e1bda 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 80eac7052c7..08c30a9467b 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 7fc668af43e..6677c3f807a 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 a435412cc1c..9460cc6b272 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 ef481e8f14b..d4a2256bbda 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 5661dfe3ce1..2313e79eb13 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 8d3bcd46178..b5d6380e2b4 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 3361431d39e..5f20ecc4c6e 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 41db8b4cd2a..362a90018e3 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 6323df26571..97994de6678 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 9214d2c4e81..32c19c5bad7 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 b0fbe7c33a5..002b7a530e7 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 37ac51bb81d..7ed22438990 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 d3b3e2d971a..5f8f774eb06 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 e63c4180108..b7adb872949 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 47f0644aa22..77677410f97 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 f5764d862a6..6a32eb525e6 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 88879a69e49..3221c714187 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 46bfaaf1907..b7b15984d57 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 7682495fa54..1b63f486c04 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 c53631af954..8a90b0408fb 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 bf07d6d7f52..ae20388a572 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 22332f85079..a092b0ed7e8 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 ac74b4be7b3..ae3a3e7f044 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 8477950ef2b..7539c8fd548 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 c9a31da6312..2e9bba0ee17 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 378f7009160..ece3a40d087 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 750fe2f49f4..3c37f36ebb1 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 fe1e174f49a..e839fd882b3 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 06cc0216f4e..ef06637a2dd 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 f3ef4ef0a5b..b6c4f0bbe6b 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 78a8ca759f1..987c0cf4676 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 f580befc217..f5059662129 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 bf869e22d41..8650d1aac3d 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 58736044f2d..7a192a1b0de 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 7ef060cdbf5..e034158e2ff 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 7501decd033..3d58cc693e5 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 65473123085..a6889fd8dae 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 08e0bb54ac2..a740ddc77a1 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 bf783cc8e6d..d83f0d32574 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 2401adf41c6..fa240d71636 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 65381299077..35e401ad5e9 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 c6e09df3b24..9aee531b8b5 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 00000000000..8c760e4eef2 --- /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 00000000000..8eeff2eb49d --- /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 56732502741..80c30fc61b4 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 94e75d42eb6..df709d95e86 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 a67779fb1b1..6e97a811e26 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 00000000000..34630f6232a --- /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 00000000000..445e5e4d78d --- /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 ac9e9e2a444..8bdd8e48a83 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 a304ac93650..b3ac8b00076 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 d754565fdda..620c00cc140 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 4def32e2dab..b31842ed430 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 2fc677bf78b..264fd4e80f0 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 37cb6e3d736..e8dadfa6479 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 5dd06ee0ac5..1142fa9c35e 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 e5231948f5d..c84f63af70c 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 dc86f0a61f8..0c2af4c83a6 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 40490996ae5..a0adc519c45 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 9658b466733..54a1b982309 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 b1e97f2b723..9c494b53f86 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 1a17de4c5c2..8c4c39bd568 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 ea2a6d77470..2978eade17d 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 f99b091e29b..34e4070ce43 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 42065ab9416..e3e47da9999 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 ba0cef29202..c112171d916 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 01bc7fa4ed8..eb98a8d2e6e 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 a2d09448694..27c8c055caa 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 f9ad6253f4b..1f3e11ecbb9 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 7413e57ad5a..f80f4a7f09a 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 fea8558a608..735fe4f28b8 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 07a1f370afc..266d86e0e0e 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 b51e20da870..d21cc589e06 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 c1aad4cc2f8..be4bf3128ee 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 3e08f99b397..da02b769155 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 499aa7ed1df..1c9dba49699 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 0415eace101..bd72c925549 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 b571ab7e48d..0b82b226d0a 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 5e96f1718b1..8618d816637 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 d7f0bbd8814..ca7aa62469f 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 f1e5f5f3e39..36887198bd9 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 b27fec15b68..be54b29c303 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 30cb2fe15f7..a39a5105403 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 5e9dece7a52..163847af3e3 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 4a1ea95e589..3f681d1008d 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 8634cab3581..a17f9a88fe1 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 9ba0c3a4509..27d730bd9c6 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 0ccfe555748..d1f6306fc70 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 bfae95c955b..943ca385bef 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 ffa5a8c1ada..233a32b470e 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 42fae210047..8132e30c75c 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 4ac31f9cef2..ac09a83eb04 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 8d5b94ab849..95528ddb691 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 0df92266ff6..c17bbd1546d 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 e193175a96f..7600ee8d5ba 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 7c4218d3d71..9615b96a84c 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 2a50c6faf61..bad98999bf7 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 b2d8ca01341..aa987a94525 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 1888ba15107..993f20dc4ee 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 b4c25662269..6281fbaf4c5 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 5669e026df5..9ab33f23963 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 859d2e437e4..e76299181bc 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 7c137b23efc..b97b6b56ed2 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 0f1ecaf6681..df0e7430e46 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 6674ebc386d..c1aa513f74c 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 5852f0d2356..d5de472f113 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 52d994505d4..1d194de490e 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 97f497a9e4b..76e9520bda6 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 0419961e3d0..90f6a5dfa20 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 142261d36b0..4dc94fe16cd 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 7a43a6c4968..8e41fafb5c9 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 050c1215c63..b3008648803 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 13e4ec9a307..8179956f42f 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 0ec84fca1f6..3c40c053294 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 58781c52990..46e95ad1bc9 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 9acdd3a0cb9..125c27dd659 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 3a61ea912f6..87f829b142e 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 a1eaa8a27c4..c06e081eef4 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 ad7c99ca8ed..a475114cee4 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 399ede14a00..f210cecdbbf 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 a186d238839..9faea59edf4 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 c7bb344ed3e..b95a8771be4 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 f9be4dc5216..c000ad06aa2 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 a6bc1e829c3..b58a082b9da 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 93362efd77b..3861999ab8b 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 479b0f026a3..b2bf6b1b515 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 309fa904aab..b5183b8140a 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 bf54151474b..731cd1c4735 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 a0d528a7562..888129ad4fe 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 a09e18aca5e..ba4ff70f780 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 e711fb10954..5b1306c13ab 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 b199a16c910..8a347b1fda8 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 668316f2c17..cadbe4bbb85 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 caf84b6879c..d2c6d6ab9f1 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 6f620165362..e0d152f844b 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 a2819efb305..97691af02fb 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 bc738e05259..26211e3559f 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 6134ec43f3a..37421fe54a0 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 95c0b48ec6c..a4690f64fb0 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 eb7251ff658..c0b33dcf99c 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 099c28a18f8..3da29254912 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 5bd0a2bd0f9..d06ee9846b5 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 a852091e80d..bd8af6b7e83 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 3d15588593a..ad7d6c8f509 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 64881416085..b6f825e7e89 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 53c783b4edf..d699ed820bf 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 dd921179c3c..7ca167621de 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 cbf3436b78b..558218d8a5a 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 b9d84abe8c6..877db827243 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 8512c7deab8..db31bc0a2e3 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 8efb0dd7c69..acd43fb37fa 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 e6dfdad1c60..155a219845c 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 4be18f62cdd..3bbb1ebd9dc 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 0746b9826cc..6653c40bdb9 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 cf86838327c..47dd90fa03b 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 e8ef02ac129..bcc464eb826 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 3fe35539147..23fa6c1c9ec 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 1f411516678..b7be3fe5841 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 8209d860625..12a31e342ac 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 2b12056bbf1..a4e22843f0c 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 8c6a053aeb6..a7c090cfd81 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 f590b65958e..375e39ffb9a 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 7b8d250516f..501041e49fa 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 e1a0df7ceaf..3ee8ae2425c 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 05160aee3aa..a7faaf8c2dd 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 5b337502564..fe4a5d8bd8d 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 4bf6348ed3a..a3633ed6ba7 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 8a3a6766f3c..ec3426bf6d1 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 26b3a6bbd18..652e1ac26b5 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 a371d62c4b4..9a1ab75abcf 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 13e058d71d1..e56a1f18a60 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 1c31c8910ab..78b61aad2d8 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 27ed983ed5c..73d07c10449 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 40b9c0fa2f1..0f07176ebef 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 2aba3c6410b..8eec9fd3f25 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 c720b3608ca..fb9930a842b 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 980dec7a840..1875479a6f6 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 c6398191426..00000000000 --- 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 4ece16654ee..00000000000 --- 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 18efae1c9c3..00000000000 --- 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 78d8683f078..00000000000 --- 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 b2049ed73b5..00000000000 --- 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 13ae4e1d009..00000000000 --- 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 200402644b6..00000000000 --- 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 ae905d87a10..00000000000 --- 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 5ac8eb66a28..00000000000 --- 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 33f97614a99..00000000000 --- 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 8991256103b..00000000000 --- 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 e0c0e13c95a..00000000000 --- 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 5a8e21b36ff..a8ead669c4c 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 d5b44241d2c..4c4bdabc6a8 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 1e970cf27bd..88cfbb4ecce 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 6a794da2485..d5e72145b70 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 416ca9f5f4f..d75fc25a3f5 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 ecd52f2ac48..72a5177e604 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 c97b8f7094d..63cfb89c18a 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 32016a9496d..39ccb3130f6 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 43564c6467e..ca174d43214 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 1a0a060ddc7..e30bf2e07fc 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 e1a2eb7ffa0..8306b8959e1 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 f3cb9058afb..20116979dee 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 8a5cb883fc2..f43bf6a0146 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 511b3d4e6ad..e395df35def 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 2e6087af1c0..7365a9096f0 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 4c4e4f8e89e..07a5369671c 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 55be712d9e2..0f64877dea0 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 e5389e35534..9bdb5a2fa36 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 75f2e9a828a..a96f737de3a 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 d93f48588d1..315f2bb821c 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 4604f3e8f91..f57e11c9c31 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 d2320dba483..14c5e15af8b 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 4b713394ef0..30a52db47a0 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 77b5c5ca9c3..d3c55c3cc7b 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 a0708909307..811db9db95a 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 3bbe58059b3..31716f1ed57 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 23e565c60cf..0e24b66ec08 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 f0f9331f040..c1f488d2a68 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 bf91c0c28af..5c5e36a3a4e 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 26a29b56960..1fb5d4df731 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 64a044d4d2b..2f255ee74ce 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 078b08361a6..b2c5d8326b7 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 18aade253a6..6eba855a587 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 42211d65188..50e2ff01ce8 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 1315ef238b0..42a5b950bd5 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 e8437c728ab..596468b5cb5 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 87ae250b25d..2a0a23bc1af 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 9d4a89a5554..d0da78a5ed6 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 78513a3919f..ef95805c32e 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 e75ad9e069d..7856c410ec2 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 94525a17546..03fb56dd8f0 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 cd8c5a62ecc..8507f89f8bc 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 2adf65ee587..25f1a2046fc 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 a54b38507c7..94968d50511 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 d9b9299c7f0..996c9cf7240 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 b740fc67490..74accff5e80 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 00bfbe40eb6..e3810b20746 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 1c705458092..d11fff86eec 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 e27415a6883..fdf974adf91 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 def8213db31..d31afeb6fdc 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 31b812274fa..4ffa4e4be92 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 15de27ef3d5..3f9bdaff81e 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 f6556c15252..80bfe3dd1e8 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 bf5d069f36f..e78050d6659 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 a305e9e3ddc..c03ce7c93ad 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 6eea7610190..efb2ec836d9 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 902421d13a9..3f151811786 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 6ec9cee5825..a8028595467 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 5a5b79998ed..a1abffcc4a5 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 90ea8a39a4a..a5e313222c7 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 79d8767d06e..7ea28ab12a0 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 d644e3ed1fa..99187e59e8e 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 d6c75d72fb3..29213d6aedb 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 2fea157b395..2172566d858 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 a41a979913c..1fb3d2de97d 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 da002cb8035..9d5fdc0eb7a 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 ef2e89168f2..5ad548c1e1e 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 86805110082..0dc248e3779 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 e355a75e121..43d6528fbbf 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 bfc7bdaa078..85bb22989ac 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 d9c8c97e22c..816b26bf2fe 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 8c3bd79a641..028da518be3 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 502b9e8be22..396e2b2ab84 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 ed7cbcd2f64..8add018c594 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 bdc2cab6cf3..22e0f419d95 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 876fab72346..b094f3df8c2 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 a61a9c21801..b0b83094c02 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 52c656ffec0..f213f568fe2 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 ecf004af6ce..174af5f01b8 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 7db2b8a3083..58d7d4e111c 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 6e7cc2379a1..69c21d8a96b 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 5c4269f7b8a..94b1566627f 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 e944224b634..1b5b2ea372a 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 b223a06aa3a..a523009d7e9 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 c6d159d12be..9f62b4c9ba4 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 5f1f1ea0273..d83c4a6a0ac 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 bbdedb8ca31..5de0bc9d11c 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 b4d02ed9154..eaad45fd5af 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 ec7476490e0..013015bcf3b 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 0db2ed95ff7..685cf37f550 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 48e427cc30b..504867c84d8 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 b78aacfd510..a807d1f4576 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 a855ffdc372..99f0723eb65 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 0419b00d42c..93fba925508 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 7f4d8a9c093..b350c7e1be2 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 c231a324a3b..5d4a9e326a9 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 c8eaa89c9dc..31d8ea42489 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 36aa0d82b33..a5f5859d5be 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 fcc03c179a5..9b316ce1c6f 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 0b0f08b9685..c9b22ca8a2e 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 adff797319e..4c4a8fa9a9c 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 903b63eb0ff..6494cc6ceaf 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 10b3087d8f8..0c311f4aa95 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 64e492c2e12..0e203b24314 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 cf8ef68d8fd..eff31391c4d 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 fea57fec7f5..fd65030d0fe 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 95263541caf..d7ce4ddac20 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 b37cc326a23..d87a51db470 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 bc9554ce273..6ffd2d483b1 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 08e61f99afe..be6e2ee559d 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 0eb5a84597f..5e7bd976fc8 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 88295189f9e..b788ad20c00 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 c65d6ed4677..be1399de681 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 116f59cf4e7..788b193e4ce 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 142f21e0c5d..a2c2644af70 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 34af021c07c..e14e6caed58 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 69ae36a3c2b..e3c7b6e44a7 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 fad3a93f14d..9815b5409ca 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 76b9e193e0c..aa7e0385e19 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 638bc0eedd7..e76c8cbc5af 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 dfc8d2952f0..204e9ab0047 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 13a5aed5dff..4616406db77 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 c3b1cee6955..7c59173b0cf 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 5f263fd0a9b..da135855000 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 29513672887..6d8f113c234 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 33e9ad0a2b1..e3de8a1a450 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 4c2a1afee4e..e5000126f5d 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 7c8007d5668..4aa6dbe20d7 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 d2d8adf3e14..db51e572213 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 cab29f40540..58294228741 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 4e78a25b49b..0026f493e3b 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 321cf4e4995..ce7b3eabdb5 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 f2fc1d7d61d..ecacd4f05cd 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 2ced199e2f2..a3ba98289eb 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 d8b935d65c6..d548b714024 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 f402f76100d..37d9d59ca3d 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 2c3ea608e5e..8586136861d 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 37c9c3a3ba1..508da58d48c 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 14f5672c6a9..62c760a6038 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 caab1c789d4..6b147149e5b 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 8d319872987..269c52d87f6 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 1e065c779bb..0a4338fea31 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 a08a2df324a..209ff7aa253 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 c8af55b77f5..e46842f2f8d 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 d1fbc419854..d79be48647a 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 c41e3669578..94cd3122e39 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 1878094f882..1b386f9f461 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 6fbf1b93b65..31425f1daff 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 6268f7dbebe..c80097e19a5 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 6678ebc08c9..edd1a884137 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 906fe18d21d..1ee97420567 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 61b8a15ec19..e00fec940bd 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 8561a85882a..3050f4f2507 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 b3bf5c0eee6..6c3ed045d4d 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 b6e8f3428b4..8f3e2683493 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 aa2e8c97b05..293394857d1 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 52be8d88015..4302c031226 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 61027a192f7..52f7a2e076e 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 9a71a15edb2..92adc6c29b0 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 6f4702e16f8..b6e083b6c0e 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 091dc874128..f522534544f 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 27f128bf3a6..46a68fa3790 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 e8e5c0dde22..1c05865e9a4 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 633d14155ec..7ce983aba49 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 44fc16bb922..4d418dd6781 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 129a24f87a8..5b1f6602421 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 5034f839bd0..c6b75fb988a 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 788d6168964..c30fe5f8ebc 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 d15d8657e89..13e3a0de572 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 ab4cafbea59..4fd6b6bb43e 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 f45d3ee25ea..6479506007f 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 7de279498cd..e8ee2b45c20 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 fbfb7f2fd39..48c80b10ee4 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 a7baaf6ad5a..5d433894dd4 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 94d703a11e3..6c72454e7af 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 ae198e44fbb..5639cce9057 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 6a2b0256e81..050efb4e9d2 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 e4a42bb6ce4..859bb36f1ed 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 3a0d19ff73c..b95c1f52e5b 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 d0e6cc93996..479183a7c72 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 f923edc8e5f..b773033f996 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 c47a34fef7c..47f03c446ec 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 fa99bc7a58e..10793aff7c5 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 99ed9bf6bcb..95b3720553e 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 3588faf2d83..34f4764ec45 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 1ad5533d23d..64dfcf7bac6 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 a89893db995..362350f703b 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 201b6cd019c..bfbdd0036b7 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 07dea218062..f5b916c8748 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 db547f6b3f7..d2181f058f1 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 bbc34e0a370..0872e8cfeb4 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 41d2d205142..689c8778a5d 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 ba282f87cc6..1592cb45c9c 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 838cb921071..ece14a0e389 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 6b4128c224e..d5fe3d15d29 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 7b3c72e2f59..d8f76b46d8f 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 5a28c837408..707c151ceb9 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 f091ad1fc25..40e4483b270 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 a11192fa845..b38055e7ec2 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 136dae55173..32dfb9a6b72 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 a655b8c3c98..c546d30b031 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 f456a7bf5e8..cae547a55b0 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 5b4669a018b..3899c53fb0a 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 0941bdcb6da..0a8f0b41929 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 da37cc464a6..3689a923e38 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 582c6072e77..f20a7c32d88 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 1d38fd5bb99..20a37a44f7f 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 14f38765bad..bb8d44919a9 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 eae39f4b7c2..fd8c5a6f15d 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 9ee03e6d778..f8855f2210c 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 7538b0e6121..490ebd3065c 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 81c4b6bd791..cf8cbf6fc48 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 58f65fd4b14..7bbbeca20a9 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 d8cf84b78d6..08cce63f00f 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 64cbf74b3e8..0049365628e 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 2b5271927e6..af3ee82390e 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 dbdbcc49f3d..a6814a9b353 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 de357fb775e..c42699d440b 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 77bed435f97..70bdc4f33c8 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 2220f520c7f..873ab492d31 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 94968a0b451..06a0482e50e 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 b9178c3fafa..09b10f3abd1 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 43cf57b850b..5d2be76f72b 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 921fdeef7b3..26e762394ae 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 0e665197496..a88fd03668b 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 f0142f37f1c..95ee92fc342 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 a67b54b5a49..423a2d18831 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 20f5507b82d..4f997ff4172 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 1e979659a0e..a43662c8fc4 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 b3d766fe09d..b87df7ad5d6 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 af106a3556d..e15f616a6fc 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 4fd10eac559..73334de1f50 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 8217004aba5..f155d2ae4e4 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 67c4dc6f901..f49e032bd97 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 8aec099fc93..66b3391d0c1 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 afc61236c51..4e7939e6517 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 00178ba4bc4..84a8b3d0be5 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 da7499a991a..a8ab0e23893 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 052bba5ce54..2871a2d1328 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 78f0faff0d7..636ad3ffb99 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 b9fe19453f2..820e4370641 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 1c0bd94b9e9..e00d8070fb1 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 74f5cf4d78d..1f422c84c14 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 dd565ebdf3c..3d0bb01c0d4 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 89a01860159..9d4677e73ec 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 54ca5eeecc7..45a5f3ba486 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 f0b81241126..0c6c1b56ec5 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 be57e3aba18..68ec3c244e9 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 c9eadde6e6f..79341b9ae56 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 a1eb577ae25..2377c607df2 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 4f1301e77ab..683983b104c 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 4cce018f8f8..a85a4e3ee9b 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 e128a8da767..c4066fb78f2 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 e5adec406f9..03010d14000 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 c9436d63f1a..3110eecc663 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 30d501defd7..8816e4d3af4 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 1fbed06a090..df1035bedde 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 e21b440f430..94ace982dff 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 68c50f5ae32..1ee4f3a5dff 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 219f65a0bf9..a5ed7ae3ce3 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 2acb4671f7a..892e1a4aeb0 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 367658c7fb9..4b9884739cc 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 f4190661aa2..e5b221786c8 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 6f38c4673b4..9a443ec6f63 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 9fc3e874bb5..af13ee5d22a 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 db8830c407c..84e9f9b4b74 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 fdf1dca55d1..6d3e3554907 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 aba3bd7bc8a..6c57da3bb25 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 ddc619ae840..0d9b5232e69 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 144a3f9fde5..23f4928c9bc 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 0ac0abf7b6e..db2cc9f7d9b 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 29a0542632a..35175919999 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 39e5350b7c9..e720449ff27 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 95d89912c4d..aad8cdd45a7 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 f67c6af3ea2..366c76e5ae1 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 72ac407cbe6..d5049138e09 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 1eff07cd078..aa41d65b7e9 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 9d0b9a47c0b..bb2f1f89e8f 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 75492e16a47..4b42018c816 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 79a9feea7e2..5a63de2e3b6 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 4c61a1b4047..8b7b157e424 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 5bd9b37357c..d058662fd34 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 79ada74ed82..8137bfcfb72 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 8a401dea6bf..0a03749cf76 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 69238d4347f..16591f08cca 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 43edebe819c..bd6010a0f95 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 f14cc5e01e0..9cf77993def 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 678f9ec120d..7b0de49c900 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 866cb8a5875..1d9dce0cd12 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 cce7c662039..3b7325f5f92 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 bfddd6312eb..3cb4c259f88 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 e9427d8800c..5dbd550c597 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 738cc5361ee..bee8dcd5b69 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 f2136abee6d..19b4e46b110 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 e2e370d427f..43807616bd6 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 6eb76a88d5b..0aa10d63618 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 151079f7760..7eb6332b47a 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 7233d522872..0078ea4e6e0 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 417f728bac7..a8529dcbfb8 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 6ef88f195b5..adff3f3d6d6 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 9010a321fde..2773733867f 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 0f269565998..1d460979cb8 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 dac65e54e49..07ba541023a 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 7f3474866a3..3207bbf3840 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 2aba3773504..65ec8efa925 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 b4b7fb8612e..0d0203f5810 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 5ca4b13c3aa..65964db4ac4 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 45466c7225e..ab96d282e99 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 55543dfe948..2c47d12f29c 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 7207b2eb77b..e4769a6ef1c 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 16ee05121a4..46d3fc650af 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 5e2b93c8d12..bbdd0906b63 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 321c9264124..4f9ed3802d4 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 15cfed591fa..c912b2f2a68 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 00edd9397b5..941be60a90b 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 8e1f07affaa..c796ee2e228 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 4ef179fceba..b3143916661 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 2e1f0cf7ebb..5aa8fe5e1dd 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 cd7969722e4..a329d900aa4 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 7bb391d8441..5c1db2f4de6 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 1d5a50fc8bf..d4ba77cb34c 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 3e02bfd661d..10aa51beea9 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 e6de0b05ea6..a5bf1877d7d 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 673153ea19b..5dd5d6bda9b 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 312285750c3..5c8272e1047 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 6048201a163..00000000000 --- 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 bce23f5f80a..382e26bae73 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 5303c844cd0..a8e410c9c6a 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 2ce55907d91..099e1957985 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 a539927e3d5..25b2c1cd977 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 248622b6691..69fcc79735a 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 78e16c37f87..e6c090a3ad5 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 0607b91917e..752a136485e 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 73fe6266701..16f3150a6e1 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 1f00dc0d32d..eab244dc158 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 0f1bd06134a..9fe651f138e 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 3affe214bd0..615e6c36d5f 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 5cd9284f1a2..81c905e0fab 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 923df6b5b23..9a3af24058e 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 3a69b293d8c..5dd7f507848 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 dc166ec03c9..02432df8f2c 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 a7d891dd491..fca53efd336 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 3490fc30185..beccd224a3d 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 7cb3c866285..63eff1de5f8 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 a7e111c1b61..18dd062b73e 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 227561c294a..2e2a7abe7b4 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 01a992ba560..56c0b20d851 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 9c9fea35b01..fc67cbb01a2 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 ae718cf3719..c6a114b76bb 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 f47994dcf27..ab89364d5c7 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 745792ab6cd..4f1de93145d 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 ac23cad7ba6..b32dae3a7d5 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 99bff32a46d..a864410c41d 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 b7471b38e99..f69d5d34db7 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 9ce7cd401e9..443ae5f2f92 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 961d9f87aae..252ae7ac059 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 ac693d730c9..8de2a96ad82 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 9e9b7b58f6e..19b106794dc 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 4b10275f46f..13c94cb9265 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 b0b9318a672..ff6c5bea56a 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 90db1553004..d72e0c4276c 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 b6494b6db63..8b7664efb53 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 21ed7eb9d36..93ced964b9c 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 96fdbe535de..6d1fa4cf99e 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 f5d72e91796..f2da02c405d 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 1c3bea2ca6c..5ab3c8082fa 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 0eb7c58a215..57fb0e0703d 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 3536b85673d..cfd051e059f 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 7e4ad8385d0..4a3504f74f6 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 dd99579dd34..a245037aeeb 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 aceaf73ede9..84fb25f71fb 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 0e3ec90be04..7e104288cde 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 f79015dc867..93b791e074d 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 d2850433f0c..0d2cc2eb114 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 5fc92216891..ad14ec8389f 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 cd7ab3f8f49..24b863238be 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 c5a9b2d0be6..728719ecf81 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 b402c3f394d..2c689cd8dec 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 b2c46405d2e..299a85a6626 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 7fd94ddb4ae..6eb57800cca 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 4c265221484..82527c6a4de 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 5388efb4a70..25c1d6e8d73 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 cab4c613fe6..8aa36d78094 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 fec0c9d5070..821d9bd7e17 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 495db39e85b..9ccb1b7784b 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 2f451b593e2..33585048ac1 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 260cd234eae..38a7bcab017 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 1648cf57a71..29cd505949e 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 bf6f4193a5e..f782bbac29a 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 255154cc6ae..c94416dbe12 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 53aa9a3d2c0..7b72792b1d2 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 230cb54d85e..b7dd3d7cddd 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 82b2061000e..c30fd08f0e1 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 7bcfb1babfd..2894a9d0c19 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 f82ff4b68f5..2dcfed7cc6c 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 e9f7642a213..fe103a16b6f 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 fe353e02fd0..e9b7139b167 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 39a594a0ec2..159efcf591d 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 1833ed2075c..eccdc11d1cc 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 d28e701e79f..025eda6d025 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 61d64de90ad..cce47ad159b 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 b824c469cf0..fa4b870c1dd 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 fcf670c6029..e32ced141bc 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 36c809f5a96..2bf299dc1ab 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 e3802f9eda3..80a4359eec0 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 f18926fa19e..cf3cbc056fb 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 1fbbe00ac9b..9a84c20da57 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 b3550380376..0c6f33fc135 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 a7b2909ac0d..28e57845d3c 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 f1265aa5696..5ec6e2f8f4f 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 30d876f5432..3ced1a696b7 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 7763e51c3e7..a45bcf98d59 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 59676af7f48..424b1b866b2 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 a80caa462bb..8ddae886112 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 51efab5bfdf..5d425e8c47f 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 bfce468158f..347c01211c3 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 78e584626b4..fe43bbc6fc3 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 c3f2331f53d..f655e2fcd67 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 f1bd914cd75..93dc0910a92 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 ddfa960a40b..fae41c21a3b 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 da2fe0bcf58..9bd0f5121f9 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 29ad6a0d03b..0635ee09506 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 fc0724da07a..c8b201994b2 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 4b1df283a7c..334241bd743 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 1e0c1b8a787..ae63eb27a64 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 10246df9e85..e0232f4c276 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 cae12f15f97..1a774ac336b 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 640ea935756..9b961901ef1 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 272dd08fa50..453799ef4a9 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 997a9bd6aff..1fa34efb6e7 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 006c958eb09..1f8b220366d 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 43d3851e8f4..81a6e528583 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 8b8c59c48c2..19314362689 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 3066a21d9e6..415c9aa8ec3 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 1ba389e99d2..e5c774d7766 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 13a244ed9ec..b470b13882e 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 2db2bdd7bfc..f85bdf2ccf4 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 7be8f4609ad..083543f08ba 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 331e3a0c422..42b846c2389 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 1ecc31c579f..5a7a7ffd184 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 8276bbdc37d..ce02904016f 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 1f6351542ee..c29d2ce2c0f 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 46d3cf45743..adf38b36b7f 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 739bbee8c11..342352e7d8c 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 cac2875a720..dbf55f76610 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 73aa100e35b..acb9d785b40 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 2deb2531add..6a46d428d1e 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 0afce0c38f9..9e5df244ea3 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 4009f9e0860..f104882963d 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 8ae73d33243..300b41d6c0b 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 3fb6f5d233c..e883e51fe78 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 5e3db2e4220..cac0ac0791e 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 146c1de74ef..11d9a2949cc 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 19117ae892b..607a53d457f 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 80d8daa3b1e..e003700e3b8 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 f7dc3423f7c..3bc4b831496 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 71b17f505c5..779291c1907 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 142faf2f761..65f82008e6b 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 597cd23a114..cc85db1a43e 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 bab2649c35c..36ca58849e4 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 500a96b9ecf..7fa9a2199f9 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 40e84a10c6b..336685395e0 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 84408657e15..e3c46e228bc 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 67897240e57..fc669936a5b 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 63e02581875..38dafd788e7 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 5e12481f996..a178deb0d69 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 caf678dfecb..8b8e8501d51 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 5ae480d1ce5..38d0f8112b6 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 f74b4972078..87b8c8e9d0b 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 df62b569f18..ab7238ca21f 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 58eafce324d..2d3d686d3b5 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 0fc0a3dd42d..f8602d5c9f5 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 9da0ff27cd0..5f2cd8fb710 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 ccc554ba999..f7f1f41c072 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 3593223eb2a..6e6a307af5b 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 078000729f1..c27ca4241d2 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 27da1e4015f..f54073a2d57 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 38326049ebf..5a2359e197d 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 1c94b787bc7..2ef2511f0af 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 23433535160..d5d01a7c4f7 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 309fa569adf..db8c27b5e7d 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 e1f5b464509..8e2c2a94173 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 c62ad2975c1..e99b7704db6 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 d58a4456221..bd998ff1956 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 88b28a2a95c..c8fe2203efe 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 6b2fd517ff9..23333348c68 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 83f37977688..5b31de5d93b 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 9616e498706..ab62e83c9a7 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 b0579e97a48..defc6f5edcd 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 7767f565daa..a3fdc332612 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 c014ae2a793..d60d733ecd3 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 5b7690360ca..2dcafa63018 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 fba4d31e5c1..d2160808d9c 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 57214a44616..6c72ebe1c52 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 491e3c831e4..1387e7d1afb 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 c938420a25f..c721bd1f1f0 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 9fa7e7db170..4b7fc8a8568 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 1916488f5eb..a84ca1643b5 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 46deb8fe38d..321b034c984 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 c5dc1a77dbb..fc469d89bcf 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 cf7aaacc882..68a495b81f0 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 82cd8f04ccd..6b637de95a8 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 2b7e3a64d77..58c89b2a688 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 bb0674d9bd7..537c04ea8b6 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 0cb1d109b48..eb06b926169 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 e720084635f..2d2c55b23a9 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 063058dcd23..366181104d0 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 6d6d70c5e68..04b5b88fc90 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 e7b1d985ff8..02af1bbe4c0 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 c3d0f2ebfd4..f0b7788d2ca 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 fa92902b044..febe7e97bcc 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 efaa4f5eb56..18c17961896 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 6f5ce02931f..5f8819dc95c 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 fb8d2a32415..c0a8263ca68 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 104e9c6693f..47b91f9fd53 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 00962aad253..73fbfba8b0e 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 7719e801fae..580093f5ea7 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 75dd701b85f..a2d2810af02 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 4befabbc5ce..58fa6159255 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 8e85a4467d1..4be45373162 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 d989e7d16d8..184a3eeffa1 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 e05ad68ffef..252a1200073 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 aea49f1b107..f294cf8e627 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 39182aed19b..4ddc44b5b4f 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 511f5f564f0..d228dd0cd6d 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 834987c877d..07f9d8f1c44 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 07bf7f8300d..b47acebbcfe 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 fd5dff24462..0f206dd6ceb 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 cd7516388ec..0ee093c0025 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 e6ee931b5e5..054c60a7a5d 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 3be5a13cdb0..e53ed1a24fd 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 d4607df8142..9894276f3ac 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 49707bfa416..011909e76f8 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 d1be6edbdb5..bb9a60b292b 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 ac6b2edeae4..6762f3bb40c 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 573f646c350..2ba7310595d 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 425e537a6b4..acc3eab43e8 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 445c18227d2..40abc5ab245 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 209a25b982a..dce42b9cfe3 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 023fa92730b..08e2d93c0ab 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 cfc6a9334de..568e2bf9b78 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 f3ef5bc7bc0..5499b85a714 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 d82850d4ea9..70fa708cf42 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 a416674df53..1f9d29f3faf 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 ad59db8f78f..587bf53ce35 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 475c3cc6278..4a29de622d2 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 f030822ad87..5e09f3b534c 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 09d54c4cc92..f64d5e61c91 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 1c5c1b4e4d3..fa98a7c7239 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 edc557cd6ce..c7c94ccbe64 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 ec9ffa52167..3399c624582 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 bd05da9b3c8..0ffc8523f99 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 4fa93898c54..14c10dab8bc 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 536e3a158d4..9968acc8386 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 36f72dc53b1..6f31e1e628d 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 61b162d8f7d..701be36edd3 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 085dc56975a..4733b22472d 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 9fe7f1917cd..66e91c0a856 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 76c481ec0f1..d970c476f2c 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 4c50ba47826..3bd5e469123 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 de2edb9751e..c061bb41509 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 329957edc52..9a061701339 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 1069ab88972..db0ce7986b2 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 84ee97aeb4a..8a6d71cdc94 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 f51e08d918f..923a5674982 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 a2b697f13b1..788d1238967 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 5bfde1f37f3..fe8ef5567a8 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 c0e9ab9bd3a..3317e039dbc 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 ae3c7171747..d1317aa4a5b 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 9fbd6308f63..894ef012435 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 8f0af0926ee..85cbe297e88 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 fc60c128a7c..e047e5c963f 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 dcd69c5ee4c..a78d1e7daae 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 00000000000..a0d0cee25ae --- /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 6188f16da0a..320c317dfea 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 6e26aece7d7..ee137354b71 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 a432a008aff..3ef4cd3c7a4 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 fb4f38f6696..0d9ab6bcc3d 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 4af5ef0496e..c3d27764865 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 cf4038fda8f..fcfd9820903 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 76d2348170f..77541d98324 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 ce8757af51f..0873ccff911 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 9cbfef5ae82..8629227777b 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 cccdad534cc..0a105c1aa1a 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 851b0a48872..f22daa791ee 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 8e7e23c1593..d6cb6e3e92b 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 eb57d026a7e..c57ab039af7 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 16457370d6f..d40b29a47f2 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 1454b8276cd..fd6a1549e78 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 fb8c829df73..157087f7ecc 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 5ad25d69320..1b5ccb0d816 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 4d78a8fbd91..45e0addae32 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 365d1c098e3..9d64d766781 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 34f45cbc291..ea9e67a9908 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 1674ddc8ebe..9752a9c5881 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 3f1589b41b5..e39bd8718fd 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 a87358fbe7a..8cb64a32c8d 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 70c20172e95..3c1fbd17188 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 d69f68d391a..0e8524137f9 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 054f4ecb5c2..2ddfd00b7ce 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 7b1f6ac300f..92d713a2c4a 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 cd92d2b9df8..7bf63ce5ac3 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 f130aa79216..ac434de8f61 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 3e3c7dcacf6..f8567cb57c4 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 d8d0b3892f4..25fb1edcd0d 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 9d0fce3021c..efb0b604843 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 25077c4fc95..e900f99377c 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 279a8b19dc2..b2025448152 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 847724bd7c9..1622556faba 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 2725569316a..06fe594da95 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 c7d96fa327d..c77113bb7d0 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 a79b78fea13..35866b7ce94 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 9a1835646b7..55f5e4eafb3 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 6b34af5efbd..245cd2a7091 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 6317cc7e2a0..16c68f4a319 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 1a56f53a607..44153d625cb 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 1ca43d26644..521fe4ebb68 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 d09b975cda6..147fdc2d658 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 ad082b51c72..47c3dcaa5b0 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 868d73791ac..ba60daaf191 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 0f709a964c1..46c9716465a 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 71bbbfc49c0..eae94174102 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 bfd095a5e11..d537dc80fc1 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 e9289887108..a017074bfb6 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 1142eae4530..9c54183a5fc 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 58855110aa2..9e8667b92fa 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 7a048aca7fe..961709d031b 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 243148a98b7..c3f1d43f9bf 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 fbd54fae285..b0b943c88e6 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 4a21de942f8..003e9961965 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 b8147603ff9..3342af5cdcd 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 fe01c4c5a63..413af32aa8e 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 df8018e77c4..414749a1828 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 ed0b4bf6abd..57ab168f942 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 8097405d20f..97ba4668ca0 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 de321b53910..a31308c90b0 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 83076afc952..0ea6025c4ab 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 6d869b165dc..dd6a297181d 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 9104f56ad7c..bfbcfd3a6f8 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 5e53d6c2580..182c178371c 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 74188eb70fd..d5225e2b521 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 196077ec16d..056f53c99c5 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 2f8f6247705..e63ceec92e4 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 1aaaee0aada..c679f210ff4 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 41142870797..399e1f76fe5 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 08de70d8511..dd007171622 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 cd0cc04e0d4..325040171db 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 3a30faa2f29..3174601fdc8 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 e27d7a1e00f..bfa2b3596fc 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 20c999d11ab..28337acfde1 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 58f415e83ae..f248be3eb02 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 38c5591f4d7..50ac2708430 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 a4bb79dc6f9..5fae2604a53 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 8e554e5cfd6..7a3b450c751 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 511ec578d2d..d584a6bac3e 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 d6a88791bd4..ade41e395a7 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 4b99b692179..df699c8f31f 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 81e1aea5277..01806501e62 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 c5c1f766633..931624d12e4 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 a31fab9a43e..75782ddff5a 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 af0a58ac7c6..85b83e60407 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 33441a69ae6..433884b7271 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 7f93d055a91..23e775f4148 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 4dabc5faf52..aef34dd5cc8 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 f983d7022d5..35820470949 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 c2b40caeccb..b35005a806a 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 efb7b074f73..7386e229a56 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 a3e6b1161a4..2976d1e94fd 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 a9a4d9508c6..adde8acf303 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 047ec45c492..8fac327a2ce 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 22505ff63d0..80a541ffaeb 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 0b9c1eb23e0..f7605fd150d 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 7e8e5270669..8f33c7b10ea 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 5ba493c328d..9501ca721a9 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 6f1177adfc8..915272857a0 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 ac4a442babc..9a2858dec4b 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 9c8ab0ccca4..bd5f8ba76ab 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 74c28cfa767..1253b2e4e5f 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 36c17808b32..9851026f977 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 f8d091b9610..a3767e84ccc 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 341a10f0f09..3a2806d4c0b 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 9a467693255..a0f191f8726 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 731813f1905..fe27afedd54 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 14ed24eaefa..e3b5c67bfdf 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 fce8a9bfcfa..d8a059f03be 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 5e6b478118f..718e929b1f7 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 ca244e048bf..c97909b4a24 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 f8d5ccab6f8..1dd66a9bc5e 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 5336990d786..e077569742a 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 6a9674e675e..4877bab7afb 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 a94eea63139..06110360e44 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 8739e26efed..101c846953e 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 43b70828115..2065229f556 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 226db5c8fcf..f28e3648fd8 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 00000000000..443a3fdc9b3 --- /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 69250c12bcc..3148f16b6f1 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 e914195ff67..c98b95fa9c0 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 2e146cc0df5..6f46059f6c2 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 658c1a188e3..8c3b1800f13 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 285e3bc1d3e..a9003ba6ff3 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 7ac49d07c3c..3dfbcd6e6ce 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 d1fb695b200..0361f799922 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 4d965f47541..31496283b06 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 86738539349..04ea4be92e7 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 749436119ac..42d193c27d1 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 0afe3ad6691..c5a15c8d577 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 d119dbadb3f..b604f17ec89 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 33d2c29c50e..3c3df5411f6 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 f7bc7278679..1948a0c0fae 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 4f845a21714..63f28eec187 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 5196a73499d..0abfa0a4a25 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 93c89f18a63..b68b235c6a9 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 a9c5c9ea0af..233055cd497 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 d2b0702597c..10f886cb1eb 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 d5082b52b11..598687bc7f5 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 2ad9c4ee408..010cc31f5db 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 9b6f5f3a942..7d055b3cd1f 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 3eb05ffc29f..3de6acaf928 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 c5d16576108..31fabbed843 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 74118254314..5305a5d4198 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 0aafe00b99a..9b812c57e58 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 3b77a28d002..46f3fa9f9ad 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 8565798a9d3..476c348e7bb 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 50ea34a5825..0f9ad967b8e 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 db92e4324f0..1971fcddda7 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 a9a5048624b..5f44e8b5323 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 e101c7e3c71..373d9523821 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 4c98c1a1b3a..0369d35a116 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 12aa29d30e0..a4ff3fa4ca1 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 a1776133bce..472eb207e3d 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 72daecc4bf5..72b8309cd3a 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 48e2b59483b..de3e51d4c4c 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 f460f9d404f..bb0df3db397 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 78dab8c605a..cf8d62cdce6 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 78899a34396..a9dbf06d202 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 d812fac1d8c..d281b7b6d6c 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 abed64c371e..79715186222 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 9bb897523ec..31660788e74 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 2565184c1bd..85a690cfafb 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 c4c3951a1f8..63c81dd20ef 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 a1d72ada004..a037129b3ac 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 41a3ff51427..5f4fa60df66 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 613c2599c87..e085dbf3ade 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 bed88fbfd3d..7aa7f86eacb 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 644bd49d2a7..40f0dc92a63 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 8b1814280bd..6657e22aa6a 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 002f0bfb2fc..c0f748e641d 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 9e75ff89616..ead4e1a6cbe 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 aa68207e519..7c2dfa12f32 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 807f7b063f0..52bf0288fcc 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 5d661dd47f9..0c28a74bee0 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 23e4598df6f..aae8fde9636 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 36a917c7cd8..f41013ff36e 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 4b6dd49aa41..893e21f0a18 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 64dc7b06f72..6c697a624fb 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 b77606013ac..c4963944e0e 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 13ba2be924e..ae955231ff3 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 e97a375192f..9b35ce4c43a 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 7e808cc1bd2..16b08138b44 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 b09156f607d..401fae75dc3 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 a4f39fd158a..57ccccf0af6 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 c695584f617..6481060e361 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 cb5d2083351..19a38a70d40 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 99963db6dc3..bb882ac258a 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 95e434ea8e9..d910457b6de 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 90031cfe179..6b64075a52f 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 29344ad980c..ad13a24b389 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 c1d48684514..06991ca2d29 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 cbbf6e7608e..ec164ebabc3 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 8630dfd831f..7e3f037931c 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 1c101e35d64..8eb6ab1e440 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 090ce27c3ec..b561a3bf38e 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 ac5502b635f..2ebc7fe684a 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 aa47f67bb46..bcaf8bd3a1f 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 b41ad65f660..9e404eab22f 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 0c21e9ee9a0..4c3f32a07cc 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 3254bd7b4ce..565afb46742 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 2323c5307bf..681fdc3a779 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 7acc612641e..da52058ff36 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 76675dcf301..1afa35ef7e7 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 d0f5679a8c9..6e0cd02acfe 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 668c6ff09a0..83c2006b5f2 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 79472870ae2..d90f220157e 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 723f48d3270..94bfb47803a 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 567cd10c311..22bf97a0d59 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 00000000000..bcbd5fd0acd --- /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 658b649821e..b13cfc0af2f 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 4de4f993f7b..312d4c90df7 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 e30ff3acc11..854e8885d81 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 00000000000..2de232a48c4 --- /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 fc4809908fe..04b478c19e8 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 0de5ff8ffc2..fd8eeb801cf 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 dbda81c97f1..b3cff7e0047 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 00000000000..741bfbdf7e1 --- /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 105955fb564..ca898064220 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 8389fc69a9b..02dcd573977 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 9667a309140..d2451676eae 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 8a9f29728e5..798ca008c07 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 ad96ee72e58..b99782457e0 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 531af499166..39077592703 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 3b3accf349d..2785a8cfbd3 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 f9d49c4306b..cbddd02d5b7 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 7052c894149..6fa2e1a0f6d 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 22bc58b9d01..6456ca23f8d 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 a191b8c07d8..f780baaf4c7 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 061d7d8e082..01672009c14 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 74c7b4f0dea..57bc0501729 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 66545a30fd4..1f464372f16 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 97fbcc91fd5..20cf1894e56 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 993c648b65a..ebde5a3353d 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 e71fb09e0e8..9693e7a5eef 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 da29a946e3a..121755be735 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 4a289164b5a..9c5cb967c36 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 2af7c5d5967..e2ff15447aa 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 ff8488eb275..67591dfdc78 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 6b5717c007c..9f8c950edf1 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 005acc01283..74a49bfbd0e 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 6878735620e..097f7dece36 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 00000000000..bc7b57aa55b --- /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 5a1d0aea09e..562b7f65c5d 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 71bb65aefa2..0d323aa1e61 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 956007f9bf4..1d8e688edd7 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 5f42a44c859..5245d219931 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 0facd7f9f5c..f63102a096b 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 194619c736b..d5908f0f18e 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 ca917dd020a..f73af4f2232 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 46c69d138c2..be9c311e8a8 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 feeb0093411..daeb046166f 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 db9d2218721..d7cb9532b66 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 a4d63951f58..98e3674a6cd 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 f977affc7d4..7fb618eed27 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 ac77086cd0d..57d9332ceb3 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 034060dd45c..7820a1942bf 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 96bcb459eec..2ef68fe5b16 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 8fbeacf05c1..cc33fe66d0a 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 d15f7cd5f4e..a00d981ac88 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 85536a6b54f..8c7c7f16c46 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 e636c77675b..9c032e5d5bc 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 49c3410904b..dc015e0f4fe 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 9ca66343224..48512a1db58 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 203b326aa2a..1eac71158ff 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 2c1f553d2b2..9adc35506ae 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 89aacb45f96..860805beba3 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 94beec8f2f0..bcb2ec8c06a 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 4ece13aa710..95426ff6b73 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 edb28e26efc..e37c9752f74 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 203bbeb3647..6e84ed5c9bf 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 36186b7aa8d..51c10c13d7b 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 d71684f874f..b55d16c53ed 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 d0ebcf7d7f9..8ecfb1d033e 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 c2bdb557e3e..d63095a3fad 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 567e9a5ba4f..8119f2c39f0 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 89ad847f6d2..466277f24b3 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 697e73c5295..5ea3f642aa3 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 968d5b3c34c..429cca08029 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 a953b757215..a8f446cd104 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 32d45c70f74..890eaf431ba 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 6dece0f8ab3..3159bc2ca69 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 e8411a749e8..5518db8be44 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 2291f3c6c09..9ae7fabfdbb 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 f6c130609d5..f68dfbe5996 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 ba5f77dd0fe..ea641ccc9f4 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 157fb303bfb..cf8aedad6c7 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 b5e86d20720..a293badd03c 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 c2981638305..f17db839822 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 772c0639eb0..9a5885da0d9 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 076067988f1..d08b025d6f0 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 2416267ab6b..49dc4f65a44 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 1f7d74c2e61..ea5fc0e439d 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 486cb2db041..84c68e5afe8 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 0576e09a347..21fb4142325 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 b126e9912c3..96f248cc567 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 068e5fedbc3..ccd2460a90c 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 607535cd110..bdabeb96961 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 26ae0973174..b675d753461 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 b7e2ef72581..bc54c969e9c 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 8e28ef7e7b9..98d81dbe6ba 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 e823d0c971e..b64eb20fe22 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 3de126a9407..6e1a7963b6a 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 abb27db914d..654eefd0346 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 d215b1037e3..90d7804f697 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 c3c4ae36674..b9129792f8b 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 3fb923a513b..6b4284aef92 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 05174d8824d..b884dd93d87 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 5101dbe3cb1..56717de4b87 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 e267555058d..e5589dafb6e 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 2a51489cac1..e4293dc85dd 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 aefab617cf8..3576dbdbcdb 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 f2c81375bc6..47d1638acba 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 23d4d1372ef..b555798a68c 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 e69a906a6bf..4cff9f6e854 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 cc23df71ed0..f61ccb30be3 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 f172336f840..a7c51abce39 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 8358b8fdf80..ec3ddbef47c 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 d6542d840cd..3113bcb0b79 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 b11ec2a7250..a8318b48206 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 f5279ed2009..673c8500e89 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 96a13efc4f0..be553f8b53d 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 ea5398f3a48..37faaa14b27 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 369ad3f0fdd..8a86f77b2c1 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 860561d3efc..c08794239cc 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 3a97608806c..11941193c59 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 89bc7388bd0..7dd07c5d61c 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 2077e48f800..7baba46812d 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 5cdeab81bad..d15e28eb2e6 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 7b23d209743..0c91f827877 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 9859f4a5a31..c54bb937a9d 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 00d772a0d45..13a07c0c5a0 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 ee60667941a..c1dcc76813d 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 ca4a810ac6b..c4f75b9be0d 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 ccbc5097ea7..3f8f1259be0 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 00000000000..75e4f651ff7 --- /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 a413aa616b0..ed2fd2ec0c8 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 d1f4766e390..f56fc7fbb7f 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 ce0f457193e..9ef35dd0161 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 44d1d5010ad..e736f4e1538 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 fe1d69bffb6..6854083b3e1 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 00000000000..63aff8c3851 --- /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 16de300b94e..851d6910683 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 d8e1155daa8..6a022fcca55 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 babdde585be..90be41d338c 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 c04f32a8778..7e34037d2f3 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 4bc5d9fcd43..b0893839a73 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 cfee7f4de1a..b7877bdfb45 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 3efd069cdc7..92fd557a6af 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 4e6d92a05ba..279580e16ce 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 c061d893b05..c98b0a9af48 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 276cf8f423b..013a1ec7361 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 58e8f433470..9b580b15bf2 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 d5a82a363b8..28341d301de 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 ba34e5dfc95..de2788eb19e 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 60ddc2d9fbe..bcd3d1aa9e4 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 05877a133f9..8faf442608a 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 65d0d4d42d2..bd8eaac9dae 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 3b9cee5d9c8..401153b3e6e 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 296ebfbe02b..344e8ab8826 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 98d66c8a906..643d329436e 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 f0445edd61f..e831c905ebe 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 f7efba42cef..e8220008123 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 0b2bc4b8441..e7e10cd1ba5 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 345d072a3d5..63b2e32b281 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 6f7ebf349a4..839fe8d6d94 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 5a2c6a48cd7..f7a181e6d41 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 a46c9496593..ad7cbbeab76 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 0f8c76c060c..50e5d5ee21a 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 068cac44033..1537027477e 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 cf170d469da..7b4103777c7 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 e2f6cb5e6d1..2fc216b7fad 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 af9feb818cd..ae43e9cf6f3 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 95b400aed37..f134fac719c 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 898570d5d67..5b7af81834d 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 69f6ae03181..adf2e14934c 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 9a46b057c3a..b0f9af6d7ce 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 20a415431ad..5be3da8bb5a 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 ad6676a1087..ce10782d644 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 d2dab719763..3c70275e345 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 7a9e2273b73..8c292bed259 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 5a6eecfac4b..2de2662a03a 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 cbb9636a2ac..22e09d7fa98 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 fccc115215f..dc5c4560041 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 641cbda728f..cd5d378f772 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 3c8db4648ce..0a6b8ad8a61 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 3b8878a93fc..2400d87a0da 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 5d4d420e722..0d0028e068b 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 4b001294776..fcf39669d1b 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 ce611345434..328bff9eca2 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 a7d7e93e763..8c3a8fd11cc 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 0799d94e1c4..5022dc2e349 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 d10b8f2cd2b..d9aa231c785 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 e390d944cd8..67789111bf7 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 11c596a71fe..8955058837c 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 b46bb6acaf6..614048eaad0 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 f4fc6d16d29..db38902df00 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 bbf44be12c4..9b1e6b892dd 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 0dd6fed847b..9d6a623e9b6 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 dd83462a050..9a4e1019e72 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 c982d2a7fb2..136bd1b7a70 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 a553f23c8db..8c2eec30c34 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 632312e79b3..cfa8de06af6 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 3640e6f33eb..7404346d55a 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 5d768a05442..8b723c0ceed 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 481febb09f4..e8ea7c1163f 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 b13574ce748..88fd3eb9c0e 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 8a62686d5a5..723b069ab1b 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 3e35c588205..99ba25e6007 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 7696beebcbc..409f393df84 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 1e2eca7a6db..758b574c6cf 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 00ec3811dd1..d74d2541ecc 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 8389fc69a9b..02dcd573977 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 9a35c2401c8..9a48c329585 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 0b2171dc9c4..5606b076830 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 a415aa35447..0aa0714caef 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 462b977b78d..305faa76b10 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 30198358216..00a33ed2984 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 5e2ebfdc0d4..9c9c191af60 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 76f9665fd58..a6d62ecb9a9 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 b607d7f4c2a..3f0c0a86a9c 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 54ebecaf4f4..8f6359dbede 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 4c27614bb20..c0796890660 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 1f1f2c0a31b..e28e61bf04e 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 c4deaff5265..9b1f4c83dbd 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 0afdfb36ba1..c0749ded15d 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 a7967a46be5..d53c5f9903e 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 78e255e67fc..75b78e886db 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 f405292ded6..22e44cf6d20 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 1cd7ea1828b..498b65f4639 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 b5200bd0077..714baade65d 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 da0c12667ab..bb5f9b87ba3 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 a670e887de3..65f4ca16b6c 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 004923a26cb..274ab6a4501 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 24a4f90949a..0443a710569 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 00000000000..3203f8afe46 --- /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 eef2154b753..5be1b733121 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 598bd2284aa..02ce75312ed 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 8932a4e899f..07206904887 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 7ae356acdc2..d68ac9b1364 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 3c8a8161667..ba62b9246d6 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 bab26914169..2657b4e36b3 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 bf76cdd58ac..5e6100fd936 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 275ee506234..a4f9e32b8cd 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 fa84fac5da7..d0f1d7337e9 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 98a8c435daf..0a06b5daf7b 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 4e402086831..2e18f9266a9 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 0f9bc8e1ad7..3f0d391f703 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 fff030ce957..9dd52e6e7ed 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 4c8e7a4303b..ac866a9f99f 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 bfbb0d674df..2924f68b6e6 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 f80d0e5af27..7b062978483 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 67df42f8f26..fb49fd09732 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 899692e7be9..2d4b96687fe 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 b3645b04405..75e651ba434 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 7822f2ce9eb..4d5536f66d3 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 da05759d34f..4db957ad394 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 465b2f4a911..da5376c480d 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 4c393b67a26..389bb71f15e 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 ff816cc1d88..a09e812e223 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 bc302c74300..3f5a3854070 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 e5efaee0e72..8792efac1cb 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 65ff7841703..5b7c0a025e5 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 77b6e5e936b..4a9bad3dfb4 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 94d1be9654e..52877763dd1 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 7f8e984448a..76e00f5218b 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 a25746d756a..f65032591c7 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 eb752362123..abebf9b454e 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 d5c3265be2a..5b69b839a4f 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 91e714cd8bc..3b07c97a0b1 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 fcb1ab5e647..ba597f4d994 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 245ab4c2e66..b89f7c5ed1a 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 18b1cfc8d1a..b0a65d5908b 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 50846c032f2..bd7e6d4ecc7 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 9228df48280..cd40ba25d05 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 d7e2ca56b95..13d8fff892a 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 489b9111bf2..c5ee7578945 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 054e0ef3c66..e366a2f18de 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 a38231d33da..355abd18b34 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 a7e1d7babf8..e56d2fa1baa 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 3e2b257a1ae..1a5e204c1a0 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 0f367290f71..82e6741bb3c 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 9c0e3c74e37..aa3bacc5dc1 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 2423f06a1dc..3cb2c8feac9 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 f9c4478615b..c4869bc5e7a 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 c2942361fb4..8d5d5c35103 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 90a3a776892..bcb0e7fdd68 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 9c58f029be3..1e8cca5e4da 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 5c5b144f568..863b2a885b5 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 edb88aba3eb..600e2224c6d 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 6a1aad9b10c..eb4e15e57e1 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 27cf99272b1..046cdfe7e22 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 a8bba5ae74d..60054700038 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 2b2e0f0b690..d4e090dbb97 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 a456e7383c9..bc6a5962fb6 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 2c8b095b6ad..b9611cdf8e7 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 d655c4a95b9..1ff0e4de1d8 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 9eb6737e4ca..49920a5659d 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 333997b9edf..6ea2bbfdc04 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 729879f76ab..1b83f95c25d 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 7be7f7247b8..97176cf05f1 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 00dda72a58b..ce9a21b745e 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 7df4f011e77..8c15aba083c 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 8b552ba5bb9..061554de8e7 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 ffdcd6b63ff..6c3a8e01cfc 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 eb25605558d..f27f1c1478e 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 1ecb7aa08e3..9576186cd09 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 06f48470ce2..1c16ec897cd 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 224015f1b8d..98b02be2c09 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 8ae3355fd4b..b12e6d8f51c 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 efec21c6d15..629eaac7846 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 101ba4d6ee9..d69f365d869 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 471b1982883..a8b3297f0c9 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 c95efd7a35a..40905e78a69 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 7e3bf2fb787..a8964ffadb6 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 ef8d8e694f2..efad1f1703f 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 8389fc69a9b..02dcd573977 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 6b0f44e029e..c8b61e68bc2 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 992aa4fb6bf..67cb289e990 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 918b807f48f..aa496f8e278 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 0b7e55bf47a..178ad055f84 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 ad0ec7a54b3..8956972cba3 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 9fec9f0c5a8..57a672de2b5 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 d562a1cae6a..ebcceac2124 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 23fa9a5161a..4e98b6cc006 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 ea20d6ada6a..3c61d9f0d20 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 3dbaaacfa20..282a4f937c6 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 3e14f6ed76a..f83858f25d5 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 6f05d5743c6..65ffd240083 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 4fccecccb18..302ee7bc14b 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 af156d321ea..c1cc3221c91 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 8be035e5f9e..ad023c7483f 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 e3e3e74dcd6..7ac2b31507b 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 7ea64c99943..c00d2ec0917 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 abe0689bd4f..4e264187a0a 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 b656fcf66b0..be4a1cbffb1 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 1228b217a04..b1257f5dad1 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 9588c88b39c..a3aae655553 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 7bea3959c41..48f9bd60e17 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 00000000000..1041f070e85 --- /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 eda8b597dbe..38c7b55d421 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 7943cda1388..8bf279c2f0b 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 ba94722ad42..4f18d6145c2 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 a504cd7daa4..a65309146fd 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 d315f288cf6..5664d9d1ca0 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 551a6b3f2e7..05d3c93d2f7 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 7b68929974c..15032cb0f50 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 c69c73f5490..f018f54f8a6 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 39450b9cd0a..9bc8b1f0fa2 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 45ebb6e564c..29cfcf3d30a 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 5608eef161b..541ed99d236 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 bcca6778773..cb4d8cd2e1e 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 f27d97d42d5..7ab0a09bac2 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 df81121dc2c..c01ef0d3250 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 0b1d2f9ce4c..238324b7828 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 ba845ba68d6..5d29a8e0a77 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 a5ec2f9f022..38c7aff5591 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 878a980018e..fb875ad72b6 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 6452ac6b00c..489299b0a28 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 e217d1f88c5..fc920ef8749 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 58d8ece059e..4fd725e9104 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 e2830ebbabd..efdf5febe5c 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 db381a3afd3..a23f0c2792b 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 2ea3b5a0e68..4b4ee6c08c4 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 7410d31c834..948f500177c 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 01ebe302ba1..c8d8e00de34 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 e8b0f72b77d..9dd4afd7c50 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 536a078ec1c..2126b1293f8 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 4206ac16372..901b4e3f1a7 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 47334170bb6..872e6642d1c 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 694d1592a75..f9072350314 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 c17b79c811a..864337246a9 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 26950c0f890..d6932ac7ab2 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 02bb8f7bfad..f961b94ff2f 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 13d221dce19..c1d22e2baa0 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 06d3590b8de..28d4abcb396 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 6da846d97a8..bb2f83ea92d 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 9acd135697a..fdbceb9cfd9 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 44d2dd9cc98..4844ddbecfb 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 e93d14fa796..6e80d66fae4 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 289893cf876..0181b6ffb27 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 9f3fe8b8dcf..d302f40e318 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 de2d4051890..aba015ac1a9 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 28ddaff59af..b2b7107fb12 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 92d4cf247ba..a4fc6923525 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 6e6a8343548..2d6e028623c 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 a1ce2e21740..23793a9ebc5 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 3ebdeadc068..f02929db374 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 91226d2b401..15ca547881f 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 27c5b744643..fcb79a93806 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 974be11ab0b..08d9397fe0e 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 0e65f34e871..24b6a71de13 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 82210251bd3..7a45a2af47c 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 eb51836b363..f96153f7c50 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 b591763136b..3c038425b7a 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 f853ac78e17..173a976b659 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 9860225303d..92d8ffc750a 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 e384052a080..74833fbac15 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 298fcc309fd..15fcad7421d 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 139b4971833..754e3bb8ab1 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 bd16561c3cd..a1161e78237 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 b83d1ec4892..fb47b0ce045 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 24a56f7ebea..19598f06494 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 e8012335f01..35d4c93ba27 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 0e6f83e3f9a..d0fa687a8ca 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 6868befb354..284ca90b4db 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 11ee25aedbc..f27df488c03 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 246b0c2c39f..1130649727f 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 97f0318fe3a..b4de62f0ee0 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 ff6fb9477e2..6e40d02b873 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 a4e5f131d07..ea92a5c5844 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 e0171bdfc69..ca1c80ca204 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 bcabcce18b1..cf189cd7a3b 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 bb969b0a583..ab2c3b37df5 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 9985f3b9c7b..a4f5acf5181 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 41fcae41889..f7b4dac868b 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 21c6a4c058c..e45d5ca276b 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 b7780855949..9d3e8530a71 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 0fc27882cf2..f4d55401206 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 1ebb51ce5df..9a4b11d353b 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 c1bfdbc6118..d2bbfa9214f 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 3d133c0a60c..f4c771ffc2d 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 4901b8670a6..6578eda21e9 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 f262ae7fdcd..5cc286bb07c 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 ccb444a66de..59d7cdbc49f 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 7a8adb58cac..84f93368743 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 8684e3e6494..11ff7742723 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 de96c336133..b136600f127 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 a015903d003..3c40add56d0 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 86324404b6b..11cf20758c6 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 5983538cb0f..4782ff4d9e5 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 bcebe7f102b..82d4fa85456 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 4a66414a7e5..ff254fb6c3e 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 063089a12d5..28a21a56ac9 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 63dc086c459..9fc29def989 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 fa04d765fc1..f5451685518 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 c0c6674d423..48c8036e764 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 a9d1b1e4d03..7ffc7d7255e 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 e68ccf7d1d9..99429fb42d4 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 00c045cb3c7..13df87d4bfe 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 52386f7ef26..82d98d25167 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 cd20b82ba76..bfd326de6c3 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 38efd4becd8..044ac9b94d1 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 989df8487d7..af7b8aaa6d1 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 e501579156e..80743fe96c2 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 15307ac2b06..1ae5f81d610 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 fccad527b88..0033719f767 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 7cef7477ec6..ce915975a6d 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 e9fb1e58492..7c9eca70ded 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 b588827bff3..9976df2d358 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 b4ca37f6037..eb100f028cc 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 9775391fbab..23efb087132 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 79c6b8068fd..05c7ec50c6f 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 a0ae9378d19..ca6055cfa22 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 bcead05cfdc..3815ec32a3d 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 17f5fad8f3e..b1754f774e4 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 6205f2e416c..209114081fb 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 714bfbec477..2dcf3caf545 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 ed2d7db8614..6fbeb46f3a8 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 d65c40d4494..d2ab63e89fa 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 bc54b8b793f..009acea4464 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 016d7fcff3f..64c28c1ddb9 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 8c40fd2cb65..fc3ee0f132b 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 4363037db44..22094b5b49c 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 bf1bcd39b09..7a1681095ea 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 aeaa32f07b7..813cd44eb05 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 e9c52efe540..35484b83e88 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 8b658bcaf83..e50f4e9536e 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 e337f4b5bb2..19e3550ba96 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 437ec43d23d..70f5a2c5dfe 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 f604ce09509..f6ef86c2506 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 c87aa88c93d..fb5f70ae3c9 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 23237af71c4..bd1d93708c4 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 2fffddaad4e..95861d7ae99 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 6a8900148bf..b751a7c5472 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 4140eb4af58..6340503c199 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 8d0f181af64..6e07bdd834d 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 e8a27c80f65..d1826c07cfd 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 9fb55db3937..bd04ef08522 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 bc05fced833..3295ac55d43 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 3476ef34dfe..ea5ddc0af95 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 5a0d5066aac..c7ffbbc816e 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 ac151324f3d..b76dd20c5f2 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 deeca766273..3fe57d63773 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 c81daaa7991..8f994ee30ab 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 5541c79dfb7..62e9a64c5ac 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 87a631eebb9..929505d1741 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 92f57ac9cf8..1a2691c7f79 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 5555efc9e2c..5ba4d1ac66f 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 98718430196..effc63d7f9a 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 bc1172e3b5e..269ad150fde 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 0068f68e9c3..468b2087957 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 a177f8d3eb8..23848d96ee1 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 0dec1da3e78..61e06e4980f 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 8033a4c4b43..e033db47073 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 1fd53c4513e..fa9bbb64d96 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 c0dc8152ec6..7aa654c3a10 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 cf993b5f0f7..5325b6e18f9 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 454545b8e80..045d1e73925 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 3dec24ed178..47a24b1b4be 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 43c8b94ae35..f280a0d2ba2 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 e858bcfb72b..920d7a7cd2c 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 257d97b42fa..b804615072e 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 94d86965092..c154b864fe5 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 3d0a449fe50..018a912ec2c 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 239ef8a9a9f..1812e57648d 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 b7b4722c8d0..4f122772574 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 3ae41d7e0d0..88d0e5e6b55 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 f17b690d8e7..543d2dab71f 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 5f3a861c0ac..5a6f17d6708 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 730942050c4..ab79906bd35 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 fc7b049a00b..ca65f8f518b 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 bbfc7b0b0fc..59fad2e3362 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 b429638a067..984d74d85b3 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 392724c8d69..0f201eeb18d 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 e5d8a48096e..9ba72c4fcf8 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 a7159c96a6c..66830c340c9 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 e26044b970d..51061d5ea35 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 0aacfbc4c4f..375969a686f 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 336b0e6ab5f..8cdf1ceac56 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 9a3badfd812..502dd7fbf6c 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 481437b45cc..b09044cba96 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 873d1c025f9..984dbe3547a 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 5dda0948901..67319650f41 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 73afdebe3dc..c3069a66779 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 d6eef144088..30f658d1105 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 4e011850e52..a3eb10a3948 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 b22e67f7138..b50f0c24336 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 d57c3b4655b..a6e534126a5 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 936f315051d..95179544f54 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 9083d884be9..39fa629d01e 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 21846ff2e6d..604b2ac050f 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 f300f81d97a..f4b6e7081da 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 85ac845bc19..5a147dbc4bd 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 6b3d6cdf939..b0b130e010f 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 1c8396f3347..ec54bc8bc4f 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 a48cd885267..1f6c6b5bd59 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 be4381cc97a..7b40b704865 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 5694305bcac..591e0785f37 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 f28d258d696..cd043491b24 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 46a0a1a1d14..4c7be6b7abc 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 26d8f0f233a..adea0a71d53 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 0d5a4e71acf..46df81ec361 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 210f812da89..f9da4f947e9 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 ea6334a7934..50f011d1645 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 9d08e51c4a3..3a621f377ec 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 44ef114292d..5b3fb3b34b2 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 a0435ee5d08..58ef7586abc 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 c35d15ffdf4..dcfce57942a 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 cf9dd26c84a..f4796d3d9e2 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 ca372aa722a..1da55107700 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 bc9e103a3a3..c7094a0547f 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 8b9c1dfa487..8cc6c20cef6 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 32910021b3a..bdf1ff5464b 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 ef6a1392673..05351070750 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 84d73f26d9d..1efe32b5c55 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 95444f6793b..a60ed7eeabd 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 01579824066..11646f08549 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 f2e8722b29c..8111a108735 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 12fe676db75..b88a8e479b4 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 857eb0a995c..bd14aef7ff3 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 a0990e45e56..20e9d4756cc 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 40efef76bf3..ee26967484a 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 46cec12d97c..afc7f3dc6f8 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 43d4a559984..86cae27bfc2 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 9791067d5a8..e06395fec8f 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 52068fc7c60..d3a3e1df81a 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 2a9538f51ca..b85d9a349f9 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 65c7b8fad41..7c4c5a39f5e 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 05bdf46409f..ae610727f25 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 9db44a821b9..104a8e1de3d 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 8a58f0df9bc..4e42976ca89 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 5c3e16e63ed..e66895d6240 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 07fa5e288e5..b4e661b707e 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 8ff75676214..cf1e4ae585f 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 1f95cd10262..de6c9fdc08c 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 f2651d29054..de5229200cd 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 56a5a8d4aee..8ef6ac1af3c 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 b60bd111c31..ee5ee018a6d 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 0419bfe6c51..fc235e46078 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 b983b5b08c1..7707284dc0a 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 3587e1aba99..7514f6f2ff2 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 b8f23945510..f63b0b209bf 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 0862f6b2a5c..688d3af03b1 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 58d1abf56f2..282e22c3f82 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 17fd199427a..3f7f7b1a037 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 73b7ac9c2a7..2b10c5325dc 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 3d9f6c069ae..ba0e3e0a55f 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 57fd24362c8..f2b1b12fef1 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 8515571458d..788fa37f3b4 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 511eda43072..b18a67522b5 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 42fa5ee99b3..40ac60aed7d 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 5ceef5d346a..7ae7eaf5cfd 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 a1fce89c985..01223e4fda3 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 36ff754abf5..0aa204455f2 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 aad29459d0c..b0f65edb8ea 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 11a12773b27..6be8207939f 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 ab44485dcd3..e79921b509d 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 0e308eee924..3ccf660a8a2 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 7625e588168..d824847020a 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 b958e60f2be..bea218fbc67 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 cd9ae88caa4..c95b6c58d63 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 75a9d62f09d..93a3d1e9d29 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 80cbb0c3807..80d20b52659 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 526b16dfa35..87f6a55b849 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 1db37019c16..5a51153acae 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 e06618179ee..81e442ad3bb 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 146aebc5ddb..b953d030c30 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 3f81b401bc7..66a5a5aaeee 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 31f8b9be558..1afef18b75b 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 11e796ae004..d2e3397faeb 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 f5edd95e3bd..1517fb04f6f 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 05b1f8b3795..e0d50782f47 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 c5951a024da..b7381e4144a 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 57fbb1df126..5bf19478465 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 2612336f57b..8cb29da578b 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 344a2dbc7c0..234ea47e848 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 8c282b2431c..960d6b5dd88 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 04a737c7037..78cf62ee523 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 39073b69a7e..b7c4dadc3bd 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 39a90e9e25c..4ab04e3d2ce 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 a2afd8cf2a2..a2e2eb4ea3f 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 080a491f2db..8b1c90861fe 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 25f5fadafee..255a5cc21e7 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 e51dacead60..faed0088d3d 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 79ab1f6c0ad..bb2c2cb779a 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 52694a83120..8ed04a574c6 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 71761426aca..707b7d3ca18 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 1b8251bfa24..7dce17b33ad 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 a87aa186d14..8e8a2afebfb 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 76aa88ecbf1..0b7160ad3a0 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 d255c1be6ca..f4b333792ea 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 905e63ed848..31044ecf54a 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 7b5309087e7..be16dec7a35 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 4eed14bda7a..2291c265570 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 f3da5865672..63a5499287e 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 d4251acb63d..a308fa924ed 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 a8f8211833c..c62b6122aeb 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 7c7b7438cd2..3ecd46eb549 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 45454b8f98a..cc544721d6f 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 3a884792f92..98c6a64d8f1 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 79b2b9399d9..186ddf79726 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 3f75a242845..ab872c454a6 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 648a588f148..145c8751d97 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 670b7af3078..59c7c3b0d3d 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 eb28d5bbd83..8a945c272c6 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 cbc1e3ab66b..0727b79ff81 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 8c0f39771c4..9ccca9359ee 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 cdea5cf305b..00990806954 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 a7726f58c1e..9655de9d756 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 379b860d315..b756b376584 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 a4fc12328b3..fdef21ffa4b 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 0dae2cfa7bb..87f8284ff6f 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 7a22f58d408..666d9625d44 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 634fe38ccbb..0e0354d237a 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 ce968cdf660..bdc9c485431 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 6bf4597539f..ed864704e0b 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 4ad5d488173..820207eb59d 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 42343484908..c98fc8099af 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 114fea53fd7..68e2869e05e 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 6c838a4a1d4..ffc6988355e 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 d7fed888f88..37ff0250c33 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 91f4265f011..a5dfd625af1 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 940c065737f..00000000000 --- 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 92a3e6c7f85..00000000000 --- 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 b45155ccde8..89b8695cef2 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 08b112d75e9..11f6b6b09ad 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 64d9bbf484f..47cf4fe6e5e 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 a6b44dda75e..ce8cce3e77a 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 3e52ae8b06d..00000000000 --- 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 3b0692448dc..287f73dc5f8 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 c601f8eea21..8ee29c8e413 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 3ee857a059f..9577d8bfc92 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 4fed554f769..3d74c3e95d7 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 25855374e2e..7e1a62eb099 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 ec2e399c435..eef5344a585 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 1665c47537d..00000000000 --- 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 7be3eb0a9db..63fbac734c9 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 d60f5635a14..e5b75cb5954 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 7ab152e286a..c475c10e535 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 3a61becdb9f..9296405d95a 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 255f747e767..2645e24ea46 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 5871683fd5f..5a4d63b4eca 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 6c1ef922717..468ca850f4b 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 00000000000..36e7e28d0d6 --- /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 23aa040a96a..4ed5d27de96 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 2595cebb3f1..210ee9c16b2 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 1ac78f6d732..76dd5134cc8 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 2f44ac19598..cb6f6f96f7e 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 7e466773aaf..b56d6c1dc02 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 d6a6e0d26af..0e111afaecd 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 9e182ee5820..685a705165c 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 8642739a94e..531b1e81369 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 00000000000..2bf7ad95baf --- /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 83745f4466f..3f941a28203 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 f02acd8f6a0..89c0c9b13eb 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 6cf0fe56aad..7cdc406a3c2 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 46602fe6d03..400fd2958a4 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 81471c64856..4b6782221cf 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 a19eaaa95be..b33843e8e1d 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 5ad1ff4cdc3..da60d80b1f0 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 3f27ace9791..123c6536185 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 54b1879db1f..099afd2013f 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 2618543cd4a..bfd45c063cd 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 487b029f542..445789caf15 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 e7749d30a11..b33d7dcf340 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 45a49db35bd..60fc40868f6 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 088bec3ebf7..af07cc33319 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 f303331c346..29734678682 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 0817ab7f17f..343cf60b29f 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 d492338c9c5..93c20390d86 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 2a332f4107c..ef91cb951cd 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 bdb61fc7ec1..48156953b15 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 675e8a0316d..964460798b2 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 d9059f45079..26daf8b027c 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 86235b83253..7745a957b57 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 f763e60ec79..a9306240fd6 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 73460c45f80..c56b617eda7 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 3e01846694f..b3b2a74c76c 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 d5a0a27f88a..9383bef0f98 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 c69daba7d26..02b8ea9d9ab 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 b6e60e21d30..467a4421f49 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 2fd5221a440..a2049addde7 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 1a9c7298cef..1008a51f0e7 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 09635f60f1e..cb2701a946b 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 71a4edc85e8..3b9a8c7f168 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 7cdb74a2a35..e97cfe91a14 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 265a7d0a42b..442b1a8e80c 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 9812dc8be1f..cd445cc752e 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 5fbebc599ae..19653dc044b 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 6fbff4551cb..0592d26a27e 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 d4deaa4330c..3d0fe039387 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 1676885f2a1..b73e4f96929 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 8e545752b66..a79b7480f09 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 782b328d01e..e62dde22f71 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 6acbef69540..eb1866b32cc 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 b7c5c0b292a..61d53833183 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 2133dad96cb..240a9c0841c 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 9ca8f2f64a1..56e6a86d40c 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 f817fbe05f3..42aae287882 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 f5972d74af1..160f71ebb9e 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 5a9a5c4afdd..88202cef6f6 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 7aebef5304a..b166e25b901 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 13f0fa2d093..ec5a7e168f9 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 a2327d637c3..52281204d43 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 d0d6a2c47da..800bec12d2c 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 0ed205b7112..e32c801ea75 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 5f6a5e62af2..418a0bb12e2 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 1e6e8ff0f63..96c2bf6e6f3 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 6b742f759c9..8fab2614abf 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 0f255afecda..929f7f18edd 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 ef68c8f93a7..66b8e0d1d9f 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 8484a5b3afa..8fd1ea2567c 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 8814940d608..c1ea94b65d4 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 f74e80333e0..fa133ff65dd 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 2fc6c913e1b..2b08ab30494 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 ad4b1b1736d..5d6d3f412d0 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 53fe9704bfe..9e5195331d8 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 f60b0dcdd42..2a6b4f9566d 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 b37b0b0a2d6..a67928f7fe8 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 76d2ea4046d..4e74a9ecca8 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 aa388a4bde0..a164dd20736 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 60713a89cd1..56c31932c47 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 405fe6b5e54..01876ecad99 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 35fdc173fb6..2efc1f7b774 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 d43d8539e88..627522f1dca 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 095bacc18bf..f5f43c3a298 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 6405264bfd3..f73b86f9e4c 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 d65f086234f..13b2bf12f91 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 8389fc69a9b..02dcd573977 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 41f4b8530f2..0838ffc7c8d 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 5bb94320b1a..136705878f8 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 7bfc1d7482b..e564a0b869d 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 31c2904ad15..e2f1a4c7ac7 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 d372fe4bf87..a74ea3f8e6d 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 c3ab6a4b50b..a6362a1e1d4 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 7ef157f43a3..aaf0c66b76e 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 d51ae573655..56910dee0e7 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 d109283e5ed..491c86bbcdf 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 918e2fdb6de..ebf179086ed 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 8284cf70a68..ac5c647eef8 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 020cc78d33b..300b31ef00d 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 aa0730efdf8..e36605762d2 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 1ccf240df0d..b67b6828f3c 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 34478677a5d..5a861d25898 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 05faf22b1a7..bf99ae7739d 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 ea4b308bf63..e69fb3fcb4f 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 5d534bfebff..a3ca8e2e449 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 4a1953a1232..d5ceabe24ed 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 fb40508438a..40619f90764 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 a4d8baa4d50..301447665bf 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 35a22a73609..ce20a9eb2ad 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 00000000000..e2f64ced9ad --- /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 94977a27022..46fe1a7e0f7 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 d6d81c401d7..883c303d759 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 9d9082042cb..77ee2c0cefa 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 512564c019e..d093d8da472 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 0980eb4f94c..bcb039f37da 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 8cd6a6ba1e2..0ce33864198 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 0828c1d3ef1..28f9890f119 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 6ec5e121c18..9fdcee46220 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 4d4d184cb3e..a1e4ff4d77c 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 ea782069a51..9ef9ecd0d07 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 b1a79815e28..b1bb06ae38e 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 dd51c9f75ac..aef8338f205 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 61300e85e00..d3ba13b49e5 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 3441457c430..543b0162c81 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 d72d4dc48f9..63296d33c3f 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 0b02a4790b5..98ca5d35aa4 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 4ea7582037c..489d9f692a7 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 b7c01ebc1ef..e63220a16f0 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 f557628b9d2..c6e30825d80 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 b1551753ce3..7b409e221e8 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 60ce0484815..a9ece0bd09d 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 db99d063c27..afa87038ddf 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 46af8d2d5f7..9c0d4691dce 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 13ec5515f0a..ab5860dcefe 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 fb08c71c02a..6647e5bc232 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 42f2f634c50..b96e30471be 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 077ecdad11f..6377ac93800 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 231a7a8c36e..d8f0a0cd5ee 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 54db8431977..25eef0be495 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 1f5dbb0011b..ceb60f12f88 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 4107df82956..2674c77d924 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 4fa53003764..71912411479 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 53ce6e58cfd..02c2bcced1f 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 576efed4198..d891ae643b8 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 729db2f6aff..9ed2290f070 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 c9593b8034f..5005569bcbd 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 85071a0a3b2..ee380dab3a7 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 af9664048cd..e47165a907b 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 76d4ac57d74..faae2af3125 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 ef21bbaf16a..e7dd0c30915 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 e19a97ec68d..f7fec3693b5 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 761b377c7d1..e50f61c9ecf 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 fe0d884973c..e12f506d0a5 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 4c6ceafadd3..46da81be280 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 dddce8d7c45..7fb1a7da336 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 c9f952e8a87..2b71b6cbe52 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 6411ff59b52..e310fc94bb8 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 6b9e74a44c9..5a76958d306 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 46c28f6a859..49d9d403a06 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 d7a15fa0e68..01eebbc595c 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 481d4d13a60..2bcf53aec31 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 e9b00e4b386..c139dabcbae 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 0dc00e21388..8b7aa5fa9cd 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 5b7b57efea4..b5320d02c64 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 77f0c61a64d..5c4fd545f4e 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 0910b3f2c96..6b6b1c1f444 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 245caf0931a..8cf81dc2a78 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 7f54708d73c..fed54b8014c 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 f90a99ffa82..4b95f36481a 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 5430a2f0659..61e35edb740 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 5a299f45b85..d360399d70b 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 6daeae64df5..f7759fb87b3 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 f8a2d72a128..fc450ce8f0b 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 e793945d16c..8730dc9cb1e 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 e63a5b64da7..5630bd0d92c 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 8dea51464e6..9bd3d7b71c3 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 d0594679569..bd38d7927c8 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 092552f833b..7fa06df670c 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 2b38adab436..a47cb7e545b 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 fec661e6fd0..3a8d115b537 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 220eef34a55..e44a0b6afd6 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 faa7b392471..16bdfe92e49 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 41e4531f965..0f5a03cc9c6 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 456ef415c1f..2febd8966e4 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 75af5f47b01..62b1298ff95 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 e7ecacc55c1..6a9559a0fa0 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 8f36c0ba937..177e10ef41a 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 32a2d972e71..f47b14402c7 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 96d540e9225..0d4be045616 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 c46a4bd85bc..4af0b58a05f 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 bdf2528ec5c..442657eb463 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 ee956414f96..17f3ef86324 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 c6d03828a70..c4ec17c5ffe 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 4fe62d033ce..9aefbee2ad4 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 355f917a363..96c769eb80e 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 bac19626123..881df4a4e98 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 51d5e137bfd..a39bc73c380 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 5c75e603231..09701df6b89 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 2b732daa4cd..99c1f64c7f8 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 c8521c4af68..8a1127c50f1 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 a00eda80d59..5505c1d79d7 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 a0bc7c7aad9..a2dfed073e8 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 4a79d60e4d6..f3750c71626 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 7e3647390f4..a2a2205354f 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 c1f5fe43cbb..8908d6d8ac7 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 00000000000..e68c0eb20ab --- /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 9818c470f5c..881a61addc3 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 bc3a7b232fc..39c4ed4016f 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 63654ba56b2..9aae303d2a8 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 00000000000..ee9c2d9f40c --- /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 1853c85c2fa..b66a778a613 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 405857d7ac1..20b619677f0 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 9ae45f862eb..cecfe0b1c56 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 00000000000..3d7dd29ead2 --- /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 b5033533b6c..85fdcd486b3 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 25ef79e5ecf..c1106116bea 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 65d64fabf5a..257c8ff9170 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 159dbff9da6..14fbe6ab378 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 7fb4f0a1b5c..40fd88ba011 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 785d719ef70..85d1017b414 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 d90aaaf5893..7197f594333 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 4c15267b887..f9770473bde 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 e156da11c08..e6863bc9d59 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 ba0c19e93f6..2959d28b4ba 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 f561b58a4e3..dac00427290 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 e0f66a41fab..a735d9d807e 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 020ff8c7d77..285afe854c4 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 e0116a6b226..b365cbe1878 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 77bfbea2457..23bc1ba0b0f 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 97fa13aa75b..c55f999957d 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 7fd9be649a5..337022a35b5 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 21d501d474e..085df5bdb6d 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 3d2389ebcee..3ac5aee82f3 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 eb8367a5809..524ddcd5da3 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 08bd3b1d4b4..7e793fa95e9 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 77d21b055da..428e849aadb 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 913a9607f65..bf31dd3d779 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 fe9d67a8ffa..feb4a621db2 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 791ffa8a94a..79826476308 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 09c888b4dc6..b2a56c08389 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 23a8120c928..0d00cbe8fc9 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 9e1a965ca7e..92aa1123345 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 ebb2dc152f8..63d7a223286 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 8e09afc442a..504f21cfc93 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 f68da382fef..75c3fd057df 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 e69b2670e29..02ba9c0a58c 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 a5c9952cc98..72e67b98e45 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 0439b0a8e82..84ca1274b80 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 ed14bd7f251..f62e0689ae2 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 4574deb5571..2398b0b5f23 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 4681c7925be..98f2ae1c45b 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 4d24b928301..e13f1bcf1d6 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 34e6c5d8863..777da596394 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 c5f0277f469..e2ff3d3a69f 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 94d8115f9f2..6eb60d732e8 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 abff1b2fd1f..e41e6b0cd59 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 9b04b85dc00..6ecd6081fc6 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 7b61466c0d2..24f64d1cc8d 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 706af53a6e4..a239682d7ec 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 edb5df70260..d1ea5afcfab 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 8c974a7ac26..af165857145 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 e02de9d874d..903c9a786ab 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 fa0c29e1911..5cbe0543f59 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 fe9c4f872fa..8e7cb7f001a 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 71561ed8816..9c8b3a64a32 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 c4f58c61747..90947bebf16 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 eaacd78f8bf..16158f4890b 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 18842c6625a..38bad9f5b09 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 01f0272a2b8..f9e8514508a 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 9bd61fe5a90..18544559e7f 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 b235c8d3088..2311b72e3bc 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 736ec5bf856..1263eed1db9 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 3be5efa4a75..8be1bb9cfff 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 0132ddba194..f2347e3d247 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 cb82a9e727e..3df47ad6fe3 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 dc30ac62d52..ca2fd18bfbd 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 13fde43de52..261f022347a 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 cfa97ae171b..43352a84d6b 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 81fc2d6fd9b..e577eed4aae 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 34c4bbe9db7..abacd5588ef 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 8c5c77f6803..2e8d74adb2d 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 828830f5e01..53477d37f7a 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 233ad38f55a..d619fb6bce6 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 841e67a4d3b..df49206f5b7 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 ebe2bd93dd5..d40ca0b09db 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 f1e036934c4..43267780294 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 110ed8d0a5c..850847c19c5 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 8389fc69a9b..02dcd573977 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 e2941264d29..b1b06f508fe 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 e65ecc9c5e5..8c5eec4f381 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 e3957e6bc45..29641f2d3cc 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 2855d9d2fc7..870cd5ccf1c 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 b9136caadda..18b53051778 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 4c3ff86516c..4d8ad19b3fb 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 117deef8c6a..b78cac14472 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 81863bb439d..fb7ecdc36e5 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 02665f89c6a..7fada000dee 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 2b9763bc70e..bfbd2dedd17 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 2a38e027dd9..fdf57a02c29 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 87267de43cc..b3f2888cb40 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 0b656e4a549..69b8f6647fb 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 15374bca7a6..d4576400132 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 e969e5a9210..df853c36c80 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 ce3c17ddd48..bf77546d56c 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 19292569f25..4aee46ed454 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 842e6c87db9..6730c6fdeef 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 ff2b49f1a77..41aefbd0157 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 9829718a0fb..868084a1471 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 0fb55627fcb..b0b43f25c6b 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 c3cc39a0945..0b98d26fccf 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 00000000000..d9de3a5d843 --- /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 a7a4fee61dd..0638c301891 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 cb302067c89..a8b156f39b3 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 44e2b80369b..1082236d385 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 890300ebdd6..a8c4f3dac06 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 f2e42a655c6..7245b7c1a5e 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 2a925d17d64..d652839bd60 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 7e371e8affb..ebbd26affb6 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 884526f06f4..63cbc753841 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 3ce8162747e..59726b3b64c 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 8662d0ca1f4..0815518ed42 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 a349dbb3eaa..abea7dadf43 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 4cd57b59c5b..4f56b5d7b3b 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 612aefc0838..ca6127698b6 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 7d12ce428a5..b4c5643609b 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 c97ba01a29e..81ac45eca4c 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 e49a0b461e4..6131b1e6611 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 c5b1553a648..b7c272ffadd 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 5abf8ea8cd4..4e31008c074 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 df08a1cc6d7..42737c27d50 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 e8f6ec2886f..c1b8a300312 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 a8231a56c5b..b347bb75e7a 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 8b611e7754b..52776fb0b46 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 e5589a97289..b73cfa48ffc 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 8bcb4f3287f..6548fc0b209 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 e28c941a954..e707b4d6488 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 04bfcc5608c..33634674666 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 c81668ef8b2..c62a2cb607a 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 1a4cb42464a..7d795247334 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 d9dba40af26..6cb05022925 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 3597d50eac8..e9c69c247df 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 c8e3c575ed1..91e469318a7 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 61b9b815ead..abd681957b3 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 8b89ea4ba37..cca3ea50edb 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 740983d49d2..fbbe858a3fb 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 1336a7240b7..0b4a0c5d606 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 6eb6b4ce81e..aa42b360a52 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 7c40942d976..07bb5d61e99 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 cc111c97ea5..e712daca43c 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 7c0eed77313..48433863edc 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 99afa8e9b0a..1b1147520fa 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 dcf698d2a80..781b15055e5 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 09943a375fa..9271917bf33 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 70b52f3e215..e3a1b72a0b7 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 c8dde1bce18..0981592a390 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 02a2f63ecc2..9d15ef43b55 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 6a6717677c6..e3dd71b88cc 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 63ce52961b3..f71bc2338b9 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 ece4128a82a..4817e28af99 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 81de82d3fea..af5c943b1e9 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 fb68228fca9..a6db8fd70a9 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 8389fc69a9b..02dcd573977 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 53da6d50aad..c03711a6fc3 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 c9ca559e879..b6e2002cbb6 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 a80daa45e92..6c9e70cb70b 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 0c97bfaa079..5c6d145e9a8 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 c7a9a5db6d9..2e240fc8675 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 a10b9c2e7b1..f582322fee8 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 7bcda78bd9e..6013621e4ae 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 585ec352a73..5e3e06a755a 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 5897373c518..aa0fe732c88 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 d768b681e00..f9a28d5af7d 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 d27ea51c2e9..d8394462ef3 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 1f3d3d7bc96..0cbbfdc376d 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 192937f695a..e5c2b2e929b 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 6341af107d5..f2c8ca1d05f 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 9d8dffdc18e..53796c93445 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 5c0701450d7..5d8b2b426af 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 61c75577d62..ea6794436fb 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 46e6ee36625..f4defa70ad5 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 d10b272ab6e..0e9ed346c6e 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 cacacf7a3e5..c175e189b60 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 5ede8a89c0d..911dd03e306 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 eda4666cfa6..5d73bb38691 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 00000000000..6114808a56e --- /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 f52693b6691..3ac0cb4e8b6 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 9222b35a147..1e1229b4583 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 99c965e4e28..fafc9a80e61 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 fa33e8a6729..736926c771d 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 481830a65bc..246afda78ea 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 7f8fbcf5d41..50505f861bd 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 49008f737b3..6d70855746c 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 9f2ad33c854..0420ad4bb74 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 6545ac2e2cb..1609a31ba95 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 04077389473..e263adea7c8 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 4d66f9c9343..719ca33b628 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 dba6f390d70..14646c113d8 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 ae18dd9af53..05e14d88c53 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 94ec9728d0f..f5d1a22ca72 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 3b685c5d393..31036094a04 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 4532f3293e8..2827ff5aa35 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 b5dc3f4294a..f2b92594fa0 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 881d54de64e..ba81aead08d 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 439a7151be9..0df7f54f99e 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 79b0a9c2941..4bd2b8c7919 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 1a3189797b5..fa4128f2b79 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 6e5a1eaaf89..093938c5831 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 ed2cb11430d..4f73c2349c1 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 24d337c9a94..a6ed437be76 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 167690a6534..69f227ffb1d 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 e1ddfd4290b..f363bb1da0e 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 f984063cdff..042a3c0c6fd 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 d772ab1934d..b0b88c4bc9f 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 9b6dc79dcfc..a679bfa8abf 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 b13c8980aca..ad29f91ebaf 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 e4a467268d4..c4a7ed13d7e 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 35de5a47f80..01bb8070b5f 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 122e0869d38..35089f8df4f 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 7ea0afbd8da..14fc33fcca9 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 56b285723b5..a19f784cd79 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 361ec19d9a4..1c26ee017de 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 bd2b10affd6..90c1e64d460 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 767603d09ab..a6dbef6fc8c 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 ae44796885f..1747c15e6db 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 78f906fce2a..997e940d331 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 4508750a7d0..bf59a5e1fdf 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 29536e0bbcb..6bb5bf34456 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 6003e4d8d8b..46669b7e705 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 0f8f333c23e..67d25e02d3e 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 1e02a3e7efd..adda2ff8cae 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 f758d984167..3c523037d48 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 0a4516bd71e..8e1b0db8cb0 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 f01040990b9..5561bbdefd2 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 0a13c1a2d2c..15d9517188f 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 ba40ba4e762..b3b12eb6f78 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 8b8aef32e14..3e0974195c9 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 909810292e4..a0e63ba1a38 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 2eb87e90bd1..281f4516de6 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 fa0a720cb94..7d70e253a9a 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 3322c6f07fc..1f12521b13c 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 a1f61f00881..4a011f25622 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 8f1ff7461cd..0dd912bf1d0 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 5aa31ee1018..6e357cd6e8c 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 007c2996c55..d72fc2cd109 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 ae5c3db4974..40590d1069b 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 b6a4091a8ed..f8ac7736168 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 a9ebb42e49d..9acbb63147e 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 5ed18868f59..fd67efa0524 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 7835d5b7951..9d46684af65 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 2907a40a045..02767e73387 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 9aa5eed5cc3..22bd551e1be 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 d3f67232521..47411334077 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 1557dfec029..9b98a212bbd 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 7a0ab33305d..c6366162c98 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 1b13d0d1223..e22266ed8ce 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 d86b5de5852..f6074718162 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 e9a14d9b81a..e877749e6d3 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 c53f35cb0af..cffc0c8db99 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 0a80e2b5b2a..1d7edd9ab75 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 6466935ccc2..6770a18c8cb 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 e0f36237c1a..7db73a60812 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 529e933ff01..8eb59a5ea87 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 295c3282b60..125acf3c38f 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 92f8ca92253..ad9f5405f80 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 543611ecedd..73c9903a055 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 0129fddcf3e..0d346b601de 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 e174b545066..34c0214c24d 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 11af7ba82e7..4667c6f84f0 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 3f25c5ff2d4..da5d73f14a4 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 085cc3e2677..6a551392c02 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 7152c068cbe..f775655d4c6 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 375e10c6305..85940f25fa9 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 e160dfa350a..f509ee3496b 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 3bb44e04486..66e7913c424 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 8378f1349bb..c8dded7c7af 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 5611bb0832b..e693f7c7608 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 466ee00f4d0..24c4596672b 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 f7ff4421e76..831314fefa4 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 2748cd56ac6..ff68c5bfb41 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 a807243244e..a2dc53f32d8 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 c5e592d4bf5..af32bbcc2e9 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 8c5d52d9404..a5d4d173f6f 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 45bc498e273..464709d737f 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 45907650de2..627ac6e423f 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 eedab3d43fa..f200d58a5f8 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 23b61c96d30..6e1e5d500f4 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 064ce394bee..6541f13aafa 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 8b86a3cfe9f..781fca8d1ad 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 6076cef6c15..bd52c4b236a 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 c52022cae58..cb7021dba1a 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 f49bd78a3e0..d032419fee8 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 7f58b7edb92..fce161e363a 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 520d968101f..93672b2fed6 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 2a0a0c4f40d..0410a8d6e63 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 7a0853cf98d..e1acd0986f4 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 3368c3418c5..6e9c574f1dc 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 c61ca6aa62a..c3562308700 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 dad431b7668..5735f8351d4 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 4dc0f473328..69770431364 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 6907d55337f..5170e598dd7 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 28fec680fb8..0907ef6f6a9 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 3edc94ac7b7..476a3936def 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 7a172a3f7d4..510848e3f13 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 9b63451e464..d73acee42e7 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 297c1609768..d6d7d4d083a 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 c422bfa37e3..6911f2f2621 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 d2cdaaef5c4..f6f42a3ca48 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 385fb69dcb7..aa54ad280c6 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 ae0f2b5f63e..56d39e90359 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 762d5b88e07..4eb95aa1290 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 da625eb8036..ea20897f8c4 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 04a0a1d1bfb..bc6817517ae 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 fb52f94eebe..f9b7bc96775 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 bb42e672595..d1df8191dca 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 47b9f1d7b9a..c59a09d6f5b 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 e2453b981f2..7bd8c7a0f66 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 4535bd3a12b..ddfb4364936 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 0760df9d8d9..cd6d15a9b67 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 75bc2519460..7aedf99e878 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 d9d70c566b0..98080206218 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 371e120d66c..bd1a029498d 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 8389fc69a9b..02dcd573977 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 05e39e56d44..7711f2c892f 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 4fea5ff26e4..988645f6f16 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 d86487e794c..b92137965cd 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 b71976631e8..19ba4298a52 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 20e4d187331..5f4fdbf2456 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 470413aadee..0e21e526e39 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 af796d3bfe1..31d9ec3ac78 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 7e6dba47bec..d5613772878 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 7d1844a3b20..c2d365d2aa9 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 12922159fbd..d6c09792abb 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 2e3c6b763b5..70f41e28622 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 c5dddeef11c..c5639e8fc61 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 878cbdd399a..bd7e3ea9475 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 a880385dae6..51feb8581cd 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 89d30b1b2ee..30ae1378672 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 4f57445b7cd..b720150dfed 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 52e6f48246f..f5381f41620 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 4911ade07ef..490a8895d40 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 497eff2ed92..df981932b55 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 52ce43b000b..d0ad21b4e2c 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 947a3dd9ed1..4488961b199 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 a0e90c31749..3ddb2ed859b 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 00000000000..6adf52e8161 --- /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 cd1d40fc15b..ede6fef9ee1 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 8769fa584a4..0792770eb58 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 a28da3cd6a7..6bb3d5d3f81 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 ce5bfdac933..ccd77b643ee 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 ecacb5b8755..44f53c9a29c 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 0612972cc2b..fd3bfc68d56 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 37c7bc6a16d..82e1755966d 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 502c9d80883..7673e5e685f 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 345c122e64e..131cf7ad258 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 6c8f7b5d520..9884e0b05d6 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 a8bd9e1cbcc..fc71926e538 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 ccff3a4d84b..e760863eb6f 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 37229c18098..34ac0eba4a0 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 a414b28e276..f7303b21e2e 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 5f0a8a09c2f..2deb4600ea7 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 77aa9d471b7..f6caa3a398e 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 5ead63c0502..a4e9fbde8b8 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 2f86eec51d3..5b4b5c68c15 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 33130973051..276673b331f 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 ddd9fa8d1c8..4f0161ca503 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 0ffd845263d..12f67284ce3 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 a0612696801..e4c292c6e6b 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 a7ac35ee3b4..a703234878c 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 2e85c2e6edb..da82acac68a 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 1e07f54d3ea..ffd49db5afe 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 cc3c147206b..f5edb3b0fc4 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 2b5cd8c953f..b87764515f7 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 db800ee7772..67537526edf 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 9015bd8ca80..9544653513d 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 4ef9f398f78..6ee536351e3 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 8a43f92a2e4..437b6da7910 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 18f24fc4beb..8f17bbb43b2 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 fa197d8771b..079b3735933 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 af3edcc13a6..039e9bdea5b 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 36e0cd6cb4d..6c339f84cec 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 90d0619e825..64fee659ee4 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 b5eeb793936..819f4ac27ec 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 18d8785ef8f..b41691da8ff 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 6a68cad47ab..4d7c6f2e745 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 b8bfaf14d09..54f1e9eefd0 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 7beb60151e2..89756653deb 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 d29811f5038..550c51ef3f6 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 9f70842c19f..8f3d8d577f1 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 75b3c04f4d9..1059aca3e35 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 052b35c24e6..f1433dfc5df 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 290dbb0fcee..88f89ec04ab 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 359b1b467a7..53714cfd5e7 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 6ee4f01fa7f..1bffd340c19 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 35bf017995e..bba365f5a02 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 8d2849f921e..fc81cbd902f 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 6eb42d85558..35d31451d14 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 cedf3d60ea2..850681651ab 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 5c5ed27a2f9..053787ed8ad 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 e9545b31e56..77e0fbfec25 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 0b60e02aa2d..3f101fb4b22 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 5bb098ad736..3d9163cd0e1 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 7f0b97b95aa..727ecdf8595 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 69c47e52ec2..1068b4ca907 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 1a0896e08c2..90c296d4186 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 075a58aa0fc..187d94a0228 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 90e880cb341..4e7d57c2954 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 9cb3ae7a067..6a41b495887 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 cecc9e895f6..258c574f423 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 0e1c67cb0f2..bde24db9d10 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 6e688aa6aec..03f3ce14d64 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 ce1b28c5520..f1ea5222ab2 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 e1f169b962e..c772eff9471 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 a6450f7a7e3..bf49d4d944f 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 0488f297cfd..5500eb55238 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 c53cff5c870..ba9f40a0a49 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 1943250e29d..3190150100e 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 207e634af5f..bcde3bc865e 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 8f1712181ca..ec73d7adabc 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 fcf23ece822..ca4a95e32a2 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 689770d422a..78cb528848e 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 9535c80edac..dfe3b6a7528 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 f2cb7118b03..e58f1d2a358 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 fb150a87598..b28a49f6b34 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 fc3ab97b5f8..45512cdf5f2 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 d81a5005dc7..248ed2c05ec 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 2917476bd10..74a7d2bfcf2 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 7eb40171e0e..209efce8faa 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 4958e4d6c71..778151b3086 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 ee97715ab7f..d94d66df87e 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 b5ce9c06e26..97b588aaaa3 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 224498137a2..e12294df441 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 827f16393cd..3f6932ed7fa 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 d9b542b3337..a0f824a08da 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 acfd3bc3cf3..c9a76b1644b 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 af70138580f..6b5a3596bb5 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 07d9b36f83f..c6123911539 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 c669a7d2ba0..47ef906d2e6 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 6d0ab8a80aa..02d9c0593de 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 a2296a683a5..35d6b06ce40 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 77773054420..5f450b49226 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 dc91c9a7c56..2bc7cbd6234 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 5c787a93924..2fb3088a3bd 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 fcca5d0592d..129b5625116 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 3d594aff6f4..145ee699f44 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 05326c368a8..22aa9728e02 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 3be8d976ae7..7cef49e3257 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 0565bfe658c..25098fdae60 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 2afbefad83f..6df78eec85f 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 6c4d6fef3fd..617b91e0524 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 42c06d2a2e0..c1a3befe78f 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 19a26ef251b..b045b4d64d5 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 1a0a3765069..e2bba63af57 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 07b0388f043..84871b0f149 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 2bf513dfb86..7177afa1938 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 e3610177bb6..1f6867f00bb 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 dea131af5e5..38ae0a8ae9c 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 99bdeb5c3d0..5206f6ff962 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 19560d6dd9c..dd2643eea5e 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 4479789fc79..5b3323f144b 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 dcc82967265..d6caa551171 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 bcffad850e1..ed22c3f540b 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 a14fc65082e..da0f661690e 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 4990166fa15..01bb7ba70b0 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 7b307b00196..ab166e51078 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 0c1025b1431..dc02adade06 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 98179051179..35691480038 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 cf3e31ff521..07b7bb326ae 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 f5d442435a4..e6bfd0f2c4d 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 9d7955ef417..e0d2fe0aa5a 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 0c1632ade29..57f45a00659 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 d7bf925fcb4..1586d7367ab 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 909f335c79d..e1de71e2632 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 d7ee77cb4e4..4b1661b2b8d 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 a4c80a550f3..2ce283dd1b5 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 72a5546d1e1..887865f3e0c 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 8a41d225b12..bcbc76e4150 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 f7528304fc5..ebc5aac7c36 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 2ad553d14c7..a5a93c4cd11 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 ed724134f24..bb72feeb6ee 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 b7ea8fe342b..92d238a6490 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 d1485ea5894..8e134eca22c 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 babc8639ec2..70a0fa7d1cd 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 450ee030332..fed53ade0cd 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 a7a4b1bea63..4402c60fcd1 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 3d39be9f65b..a7024309fc0 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 8389fc69a9b..02dcd573977 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 16cad59ac68..acc8f12aca4 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 92cddc60331..5e0fb51b50d 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 87fbc17a800..2f55bf122b1 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 9c0065fd4a3..1b953d3baf6 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 7d24563ffe0..8a682388db8 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 ea787b5e582..6b048273425 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 043cdcfa437..52fb2e08512 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 52127b67dba..e0b6ad0dbff 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 9186e2c2519..5dab2523751 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 0d7ccad9507..7123c0e75cd 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 798c1bcd91a..0d1b11c8754 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 22f0be06273..dd6c9c852d9 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 1269e6a067c..c47480afffe 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 7469913e853..d307edecda7 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 c5a99939595..7f599b5788d 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 9c5fc3bdb78..5ca5de58995 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 d72ea1b346e..80ce965235f 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 b70de143a68..b25f5c9154b 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 08d4988dc27..490ca62ab9b 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 78a23fbf184..97fbe8236d9 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 68d94ef0c66..0dab19d5f7e 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 578a6889aca..9bdc5f812fe 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 00000000000..ce5869ec05c --- /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 25264d6e098..44febc1b9b2 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 1da510adde3..9e16e7e6075 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 105ee306c4c..f8dc7bf2343 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 1e86dc6e28a..b33c821a50d 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 da1b55dc09f..11ceda3bb88 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 166b274ca22..183d2e86b2c 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 4ec517d88cd..ed455143888 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 0e562fc1b3a..6f9667cb4bf 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 cd9e939d7a0..6618fa57235 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 4d4469e6521..3a17b02df57 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 799ecd9dc5a..3c91be559d6 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 479e1e3230c..4e690adf83f 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 9fa69df4817..4f68080da65 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 9c431cbd6a6..a30c683e074 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 7c3b4db305b..ad83c2c9be0 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 67b03ed8e09..aef411fdc55 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 0695818f373..be82755f9a5 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 620904ffcac..7aca5e8908e 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 fe4d6257338..7ce241dce0f 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 36b0dc7bf11..db3d10d1915 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 634138051fd..eecb5b2fb99 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 7d44cf4686a..d142c5a4585 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 9459b94206f..1282e590637 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 fae6091cbc9..7185425ddc8 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 02e68bf9391..1075727d762 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 c56c17077d1..c748ec2d9eb 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 7439cbadc26..cbccb261830 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 8e428be433e..e334b5ae693 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 eb83f3f1059..4d701286c3a 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 2b72fab94b2..5f4c2de1b78 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 3b5228b4119..615a415feb0 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 256918fdc0c..29d9c261243 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 fc9abb2d12c..88f40dc301f 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 3da80714a5a..b5c302060f6 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 1f23099e7df..46ee5aee951 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 ba7d9e4ed98..bb31df7e281 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 30bb9ed0c5d..1186144b941 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 0e9dbd96fa5..43e145152b3 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 a56978a2cd1..4826dd0b8de 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 b4da8f8023e..dffb4593840 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 2a0bcad279c..47fa6522409 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 289cb46aa4c..0e1b41b02ba 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 0d3139e0d25..e00f9c871d2 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 1bf3e51fe5f..8eddeec0997 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 8302e0f5905..79b223d84fb 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 35db48326f0..69378ecf4c1 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 f35d506d899..eebf6648679 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 7626a0f2bb8..5f7f17ba1a1 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 fa7ac2eaabb..733a27ed0b9 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 16a39e52c66..75340051385 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 8fd78143542..b0f215801b6 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 87378c5c2cf..f0557c2db08 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 ec4041e1c0d..1990c61f10f 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 3aae0e29c6b..d31baf215eb 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 3e5b1e2c848..58e40d1bdbe 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 a2b4a5ec9ea..b95dd08150c 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 f25abf0c0f7..deee6b5c330 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 e7e115e380a..e0c718803cc 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 02c60a638c1..42932d80504 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 8049661bbac..e38a3572f43 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 055387e8557..d1a19577bd1 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 90cf56087f3..880f563235f 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 d96283cd7fb..072b17fd44d 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 a7b6e0a0475..2a67fb4d5c5 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 c169d03d56f..e87d8af010d 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 be3e362c75c..94377839333 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 916f6dccef3..6e6cfe2f54d 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 689e8955394..2d6c846b6e9 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 6b3849af4da..c3c872efb38 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 75b2f5bfd58..ea9a8cd4246 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 b521aba5c7c..e3debab6ab4 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 a05766e9c5d..4b055c2a436 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 26e7c231f4a..b880e17bc1e 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 583c6b5f687..ed46f196046 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 bd5d43a371e..2706ba209c4 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 7ad143e3b01..b12903082c2 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 3ef7064a832..0c64dc9676c 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 366819a3892..df1d212a898 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 0c140ff68b9..44cb0b143dc 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 821ffd572d1..ec07f1fc065 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 4ecf38a5ff9..6718f83581e 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 5423fe72359..fa36d48630a 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 b29f23d72ca..bb6c089a150 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 43f1f135046..7d5014acc57 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 91f2ddae4a5..6ac4d8ab0c9 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 31ecff3c3de..2d0f427c89f 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 8af9e1231ef..dd0b4131732 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 77052449f15..6948e2f0233 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 1133d357c4f..76c3bf87d53 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 acf8d9621a4..893854113e6 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 89705409a4b..b670853fa97 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 9f7ba903c43..dfe7424377c 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 14b2c06e54b..a14e1496046 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 ba053989f0d..08ab3531610 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 370312ae7f8..953cf1326a2 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 d508190aa40..7941b069e2b 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 9afd3d79465..7291ebc9230 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 033ed341967..6df05ada498 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 49620aacc4e..e965527c53c 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 00000000000..b61c4695fa3 --- /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 07323af540d..8d70421152a 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 a4452ffa77e..e8350256f73 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 31e6fce4808..1dbc705e3eb 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 edf461828c9..2c107c6b510 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 51bcdee36c2..86c27118e53 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 27d742e6c4c..da4aff9f039 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 33eaf83e5e8..c5bcac3d3b0 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 c4b293868c0..658a6ced55c 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 00000000000..8efff7b1801 --- /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 d24f5dfa4c5..07a91af4f2a 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 4cf5a141a39..62012e9c925 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 87005e66ebf..b8145be420d 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 93678c8ed3c..a1db979d505 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 a48d385b308..d546e64a90a 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 01d8a44f99f..609c5a26539 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 bc55011e842..1ac15b9b5dd 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 ae2c9aca4cf..172a23b5ac3 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 fc742e97bd7..ea3627ee499 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 2a3187409a8..49b7e2d4d6a 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 4dba1ed16fa..17f268b7574 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 3fdab16a6e4..8ca05b8781e 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 146b7e57194..a62429e5e06 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 8c9952dc5ff..2c35b6e545e 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 9538a40b4ca..6a875a9348e 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 5528178d235..1b9c9ad0a5b 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 f5fd42bfd88..a5d6e3ec4fc 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 2c429c9f36e..a59f0cec33e 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 2f0c4baad7f..fe7721046c3 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 a76f3488c15..d832b739f5a 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 7f004a8270f..b6eff4be510 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 34ea482e7a5..9657cde2bdb 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 6af78d2b716..47ddaf1f193 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 04e6872d563..3ea1e2e728d 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 6274865b156..efde6190847 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 f68ab4829dc..6ddd364e9fe 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 ef2d0478a5a..0c5f4a7f4ac 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 d3cf4ccc463..e9552fb69ee 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 fb43d963c27..d75883b6169 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 884e353538e..4e69f255bfa 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 ba1a7fa7a2f..3dc1445de1c 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 52da47ea2a2..de8881aafea 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 948c4bde790..47710e0770a 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 33f1275ffdd..389b5a13e83 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 3b1c8d8c071..8e0f0526f7f 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 ccebe0dc8f3..1e98ad9a5d2 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 7ac0f0b67dc..24752aa4c64 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 1889abea911..8856e4eda5e 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 edff4703fee..3b02fc369c8 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 a3880eb7d6b..3c69de0bc3a 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 3e409dd0b98..984f7a74195 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 fb18694ed79..4006dc93c71 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 7d1f0110942..8a4b844dacc 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 e965b8e3fc5..3d115f0e5a6 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 7bf4315987d..d295559d595 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 d68058f65c9..560c73330f0 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 28a1fa2b7c7..9d43d5f68c1 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 12b7ffe73ec..31793c439db 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 9c970bf0bb9..5f779421e1f 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 a82da0f1b02..9272d8977b6 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 29a1b729c9d..9c7eaa5dade 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 ffaa5ec3319..0e403950119 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 8187dfb6d49..9feb9c3a9a4 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 935a078b41c..fffad1c8862 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 95f5ca7e0b0..2dda452cb6b 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 0eb3904d1b0..f8e3a319949 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 f5ad3baa159..8f08fdd922e 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 2578a949532..5a219d1ddfc 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 d2b4d0131ac..0aedba2844e 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 6d262eec0bd..d896817f6d6 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 5f0daac7db4..4045ac9ac35 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 aa59b4bb134..a9abb59529a 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 1950f8e9298..fe5fbdd7409 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 0909291519c..564486d531c 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 ae9bad275fd..8dc66258a00 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 9b181bfc675..3f12e498e64 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 46c0e38217f..a5714cc23ef 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 0b501f687b8..14b9bc190d2 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 9d5701399f6..6ea6b5a0cf9 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 3f7c89639da..a780f79c70c 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 64e6964c3ae..f3cc3b7c912 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 0a2980f6bf1..382be399a57 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 8389fc69a9b..02dcd573977 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 d4687bf5fa2..5a74e45a0a1 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 a2df91b36f9..91d716c1415 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 b169fd0121d..7686a0547d8 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 2ff0b10643f..793b551032d 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 24a71de57cd..158335d57d2 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 43a7b652e1d..ee4e75b4c38 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 ca4165fd1b9..0f3341bb041 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 6ab182a3788..aa461347a6b 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 cda7861e353..cde081ff8e3 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 7a98c3a1d37..da38ff12a5e 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 9b5550a2a0f..adb0fdede8f 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 01c5dc11356..4f074d2019f 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 b742947ce42..b95f26fa664 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 f2aa7ae133a..68ee1bfc1bc 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 4001f280ffc..0088831b2df 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 61c485a1b38..c404962b40a 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 967a8e32d15..4c7babdc5b6 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 cfc31663055..cc67c914ab4 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 82c7bd0d682..6ae415fecf9 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 53d90aa40aa..8dfbff36c08 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 30542ba2db7..e6217ab02e5 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 4d20d597682..0f2121d748c 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 00000000000..eaca4568b3f --- /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 c7bcea00aa3..7bee7b8f173 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 32d7120318d..423d554fd2b 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 2ba4e1f7a51..6600d95926a 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 84666601311..f70a52490eb 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 baa3a17f237..1ef80021f3a 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 86d2adb2f8e..c0ff766bbae 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 4b971ad735d..b6463075026 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 d77a510f34e..7cd40f0e3fa 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 7cfd00f6142..bd8957c2aef 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 b9bca8f553b..dc9d447eafa 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 d4f89832e22..fe90befad1b 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 a4540473b6e..1a3d0e67835 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 c2147ec7d39..fedd23858c8 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 60d02eb1701..144a0817e82 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 3ec8f0aa988..b789ab27ff3 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 81c90ce781b..8de8b50e154 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 b5c66d9b18e..cdd3856966f 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 241df75a7b6..b8861d46168 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 6c5fb52ec96..be1f532e00a 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 ab7db65f0a6..522bf26e97f 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 644de2e3993..7ea0d00626f 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 aeed7728a38..2b157571a8d 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 49efabf4e19..e4d4dffad88 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 994e2df4255..324806a844e 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 100b02285d5..34c6465b902 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 6c390294d2a..30b32316db2 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 a4d6b4bcb71..1c409eb65c6 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 aec67af87dd..ce7a32ed81d 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 94332172341..4f561f4395f 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 6479df8df52..0fdf54d33bd 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 7cec8394aee..110edd9cb7c 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 6748836b78c..46de08593fa 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 85bb9ec7c92..f7b15296ba1 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 1216902536a..bf399addf1a 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 a082bde26fb..ad9841a3e26 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 3b050ce2685..444598b2c26 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 9fa7430261c..24caa497381 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 bc58acbc079..e37c5ad2075 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 965b0d8dfe1..9ccd03c4660 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 611c8573ab6..c9f6ace00ee 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 e8234988cd2..e58b06cec33 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 2fed10acb8a..c726e897cda 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 95e3de71fe6..0f91254d180 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 674d1001d2e..972f5da799d 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 08adc91a533..95b9995fc8a 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 34e32d5ccc3..6eaa0204f40 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 b13f46f3ed3..c89f38f0d2a 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 a4607a08eaf..55a9461a3d9 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 339878d6b4f..dea4100b9e3 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 48a36a5fb08..fe2fea24f63 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 e8a0ff03e4d..e273b91defb 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 9ed2a5f479f..4552a396ec3 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 71dfda9e1b0..d1a67c9b5fc 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 a50484aa2c1..e81964f2068 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 191f9edaa47..e72fc7a59ed 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 09ce466eeb3..7107761eb2f 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 f4958daf431..1a7c2d7c0bc 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 a859ce9ce4f..21d15478804 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 d9c02944515..560760ef59d 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 f706680c0d4..4ca4891f069 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 46c02f02457..9ec67d4c577 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 fff626dc4a8..fd67dc68858 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 b75d4cbcdd1..6fe995da4d4 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 053f68bc053..e79679f96be 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 646e017b8d5..870f0e7b2d3 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 9d61b73cf88..27c057deccb 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 00e03194d70..81ab8db7d27 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 607039594e2..e7ca4b4195a 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 beb042f7d4c..28b89c05f9b 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 3959b193981..eca7b641f7c 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 702decce073..ce398cd3ce9 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 2a807997877..fa85c145b2e 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 0f3884946d7..07faceb9996 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 841a7eece39..7a46d86a0f0 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 e5f6b14a287..8746bbadb8f 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 694839a2ba4..2203aa3ed3e 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 0b77c00898f..f8b3c728638 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 3f65a80e585..d8a93b374b8 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 311d824e444..b864b610b2a 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 bd7318c3f34..5ca35b100a7 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 5e5c7bfc031..8d5e025ce1d 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 7efc6b40aa9..3972987e3da 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 9bb9feff673..5a7993ceda5 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 2d9325a42cf..7987e193069 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 b563ea78a13..6a6541840bd 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 abc9c665268..3d046e78f1c 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 dbc9b8e6d4f..5ca96149550 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 a42e2e62e42..1a2ffbd7b7c 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 3452a00b54f..fe05590e089 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 598e593ed59..b1f37f458fe 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 23b9fcc8e15..ed656b6f9c9 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 aa23defa153..277554ced51 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 bcf5087a9f4..48b64175239 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 f82124d1f49..eafb6f1f4d6 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 82eb7964db3..d6899755db7 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 cb8c0e9672b..dd0dcd811ab 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 18bbda1e391..8d4def8d131 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 d39679ca23f..ad36a97c21a 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 e6dd2fa17a8..beab4681d86 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 a8662b208d5..4822e0c17d6 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 f7f1cb4415b..4cdd6a7a8b2 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 eacbd84414f..91f8e087759 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 22aca29218c..0bd610964fe 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 35c82803c5f..6ddb54685a9 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 6ed1607eb65..704f39d94f2 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 307dca85b0e..2a99ff0542b 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 1388204899e..5a5e73506b6 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 d07bcddb0db..d8455948e90 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 9801df19df0..e7fe4438d5b 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 ec06011aff7..c2ca06de649 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 853649eeb32..dd609387e16 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 225d4f5ef1f..543e31b3868 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 593da9ca6ba..7b54b4ee09a 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 d74990f1aeb..5715f0802c3 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 bb483e292e1..f5e6f559d98 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 8e47779dadc..a44ea6cb436 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 142d7ecfa7c..632b9616d79 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 dde20becae2..31a26b87425 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 8c14eed09ce..e6cecaaf315 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 45637f94a91..c96a7f09d49 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 4df9db5f9b2..0b7c9bdbcee 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 e1eb6f2fafb..e911e31b7ad 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 61e2cf89e26..4864d6645c0 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 4d422de7db0..53fd35c1c27 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 db4e44c1942..80ff4d09784 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 7011461e86c..da0abc984d1 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 2ad783816c0..8a6ef5017b3 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 0143284926d..dc7c632d486 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 1da0dc0220e..8f9e58ae472 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 7031b7244f7..f9e6493dca5 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 5bc41b67f12..d74b18b9ebe 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 de6985295d0..62e7f410220 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 571469683d7..7e419d01698 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 8389fc69a9b..02dcd573977 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 b2e186c47b1..b87134e2f07 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 00efd856194..b3252f82836 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 d891382a4ef..08a784a91b7 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 4724201aa95..16393133f38 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 45e77138ed3..0fb0d82ccac 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 cc39fc3d7db..74df9389aab 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 00b4c6fc911..828aaf4ea1f 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 28808f9ac2c..de322ffa6f5 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 2510e92fd70..37d0f1a5c56 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 a644851390b..0793862b8dd 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 f560d335b78..bb4bf80013a 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 9a3567c8c2a..4acdc4af1c3 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 b82e046065f..409073058a5 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 2e0483ffbcc..6b3aefad58e 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 bf590e6b3e7..a495ddd38ad 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 abee44fdf55..03435fc51d3 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 9cc4897d845..f24bcad65ab 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 088e1787cbc..16b510f412d 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 ea4bcb1bc10..97d95bedc44 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 e78f28e1c8b..46b3cada8b5 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 08fc28ce554..764f6fb9f90 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 b62d5e15c43..7e37362f3be 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 00000000000..28b916ed395 --- /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 773f974fe98..e868f4b50c8 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 db15290fd82..5710aa45ad9 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 86aa9d85b6b..35cd857d02b 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 afd90f02f42..2a06e1f12e4 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 648b45f1c77..67582942956 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 387737e9d64..f10a7f2ec19 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 3eeb6b4a65e..a7a26ef265d 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 7b007f2b6df..c568a71cd45 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 feb7bbf7419..0a368e2b835 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 7c6de27128c..f1a4c301bc8 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 ae3d1b67f38..d5a6f84e740 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 a0661835b34..031cf6e0908 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 1d57ccc6632..ee9a89337e0 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 7978cb66e54..2bc00ca5576 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 aac2e2a0b01..42048ce2914 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 1c9b5bf35a7..3eb7fc77855 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 0afeade567f..d6e96cf2d13 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 d52937d7596..514e92260c7 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 f556195a0ba..62dd1e50e6a 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 9654e6e1120..5ebee72324c 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 ed648da01a4..20fb3d0576a 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 c640a7c6a45..335641066b5 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 bc1b3e954cc..8fd6d099569 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 18d70120bcd..01c8ae4b21b 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 4860d09f036..a7fdbebab32 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 36dad67542f..1f3018afb00 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 a9f6e8552d5..df3b7b4d56c 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 8519aab2f30..1d5c31211b6 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 84f02ab8782..9638f03ddad 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 0db45f5a1fa..3bc7d16f39f 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 45e6970ae0e..06fd2fec77c 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 730513ab3ca..dd0c79e0794 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 72d01357d2e..dbcb8084c15 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 88ca9cf993e..f37bdc1db50 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 a6a093fcb0b..fa69a0fb5c1 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 63555509837..96e1263c07c 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 919f0abc3e8..989ec058262 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 6bdab470de1..531962fd4c7 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 498ee53a6bd..b834fff201b 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 82c11f9df11..8b99ad9c920 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 66c59485530..17013137541 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 1728b027356..a3b6f4de9b6 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 60e146cf7b3..4624ceab7aa 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 9f990c47cf6..317aa4445d8 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 fe16b2f48b1..9673bb0d06a 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 5462f47ed39..ae089aaa810 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 21888d4f94b..a0052e8fa6d 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 e435f40f565..2ba3af58d13 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 ec9295fb1e4..10067d901ac 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 442acf2e18b..06cfa086dd1 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 5cc54c97680..909d4b19d2c 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 20e38ce1236..6df8c0d379b 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 7f6abe476d5..11a1308dee3 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 4f19d10c031..27a0e7737b9 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 d2e751094f1..1f47bd2c03b 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 8b98eb65d6f..4d0beed1228 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 8d778631173..a67b6d56f03 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 79303ef9953..fbcf4464cc4 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 739b80447d5..177ed7407ed 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 9ed4e6706bf..78b4b1be823 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 cb89da465d6..71bc093dac0 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 0468d99cffd..997344d3aec 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 e2bd52e8f21..2023ec96a62 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 510434243cf..3b430574b4f 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 f0a46d0d296..164fd03b47e 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 539c96932b3..cc9f743e10a 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 aa7f5fba5e7..1a158612e4c 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 675431b9774..cac99e7eb2c 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 919909732e3..f96cdac5f93 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 6b852fc3342..a6106533855 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 8724f80253a..d350dd8981f 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 1cefdfb5230..7f4bfaacafe 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 9e8a73e7d2e..099fad8f75c 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 b6723e2eafb..6922f0ebbd3 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 065c71da949..43a5016b846 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 682d8d769d0..6a7d2abf0cd 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 717c0989eac..b25b7b9ee0f 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 4f754a793e4..fcf0b332630 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 46d50809fba..396350a74e6 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 dbb60c52779..e09ed1ef3ac 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 100a7a0fed4..c8394044019 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 4f9c15a3199..2464cf400a2 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 29e947291b1..99ecbe72163 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 ef8f5e253d9..dbdfdd28f5e 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 31522c92215..49e184f2bca 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 3825f661694..acc47c9837f 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 5b1781dfc83..de9f09650f3 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 3764db3e0f2..c8bdc4ef1a7 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 83893c4fe4b..5e0ab2552af 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 f2f71f8493a..cbd9af7c2d0 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 3aa15d7a1a7..cefb72ff74f 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 e86b1b742a5..a9b19c0f257 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 dd4089393db..b332c1281c2 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 15f8e1436e7..8c0dc36dd41 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 c12993c9777..06943d3bee0 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 7773c4c8af4..ebb7cbd6f99 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 1f0e5df3fb0..9282647c435 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 ed7efff9848..68e9f4cff60 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 9d02e911b5d..52853f26d26 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 bd7e8b41443..be3cc5f2b6c 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 defb2e8cf37..e223ea1735c 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 5df3ccdfd9d..0f210885b03 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 6d250d2f25e..c3d6c1e9ec0 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 beeec63c24d..e40119f9cd7 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 7eb47d55d7c..4acec88ffc3 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 2b7f71c92de..9ff1e19d3ca 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 f458fde4edf..23d83ca05e6 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 be6b60614de..c7e3649e9f0 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 e226abcc953..16b945e6ef6 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 22101c2f50e..e46a00c6dcd 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 3861bfa0196..32d8bb49026 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 00d52ab7baf..076f1b05078 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 ef6b48b31ed..635f8688e18 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 6f6d008eb4b..66f004c51e5 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 eae999bf43c..7aa9ffe1950 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 37d0ac4a4c0..4e6c4c7432f 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 a1a2d28f7e8..24ea51a991e 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 1b85d8c2ed5..997731aa02a 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 18cd87718f2..592f9466047 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 c438f7ef2a6..811c567dba1 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 3ae69d8469e..76006ef2ec2 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 c5571b052ba..aa08e7dd06f 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 be89d596f45..d44cf63781c 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 d798d8e0aa7..154d0ba7bda 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 8389fc69a9b..02dcd573977 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 0aa67603ff4..c5a6905a0d8 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 8fb50f8c080..b6610c3e9dd 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 22538a03ced..7d6b2d88f00 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 b3bc4224099..6e5a1ce1236 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 e63db4da986..0d162ee9541 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 3866eb60abc..e8949c07362 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 a66754dded1..834bf679473 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 40845048ee1..019001578dd 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 a355ba72cc8..574f36faec6 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 a59ffa17532..265954ed1de 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 e9fcfbe84b4..9754b012d1a 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 cf5659c780b..0e9e8a419fe 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 eafb95f6e90..5202ea32ced 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 bc428796966..9c3512bec29 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 79f183916c4..cc8398f10ab 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 64f73dec674..0d478fb3ae1 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 edebabfb368..349f8192efd 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 8e2f391d644..1035f378e95 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 ed8ea91af4f..f39822ff298 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 875b6d68979..1d59f0a6062 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 39b8815b888..6988382e395 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 ff850163a5b..36cfaaed7a9 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 00000000000..f2f80528c5d --- /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 3e8531959d3..3061d1efa20 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 4f475ce9389..bb8f8426054 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 6b18e10c8b4..1e96145c5b4 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 cdc4028eb4e..5c486f2c04b 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 a9733c8fb4e..5ffb8b3902e 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 53069980d51..6af37b5d0a8 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 9b1f9442333..aa3d8d8fcce 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 9be893c883d..c6277ecd4b5 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 78afa978916..fa7c4cfe651 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 7a38b9480f5..cb4b4b6c630 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 5fbe4a126bf..6497e2d1a8f 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 d0075797512..1afa828996b 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 4cb1838d035..107632946f0 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 eaf4c6c17cf..176173fee7d 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 7b4e1f16f60..6b08f38a8a1 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 266cb86fb56..72d4bbfd40f 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 3ec4d14fa0a..abb78572fad 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 57ff15d3c16..308c37a41a5 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 35e3e5bf7a2..28670430202 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 4b5c45ecb7e..ce844b27399 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 f79a82ea0b8..03628b4e96d 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 f534ec7ccdc..52e0941db46 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 f548989cca6..067ae041387 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 d4b1b2f583e..b8f0bf246c1 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 e39151e9943..f7104e5f535 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 56775c98bc7..6f07bb8dc96 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 a8cc24b85d1..45d3dedb5ea 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 5511fb71580..ef1fb465bde 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 68230b81238..9cfec22cfe9 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 234aa1efb85..c15e79d3adb 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 fe280951cd1..e08441e7d02 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 85716551dce..caf1902e96b 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 fe3bc500a73..a6409d63128 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 70612445b99..0da60a3770d 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 ca7016341b8..f6e80db7d2d 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 a31654e299e..4a549dfb52b 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 0566e9d5c46..e70872d1b6e 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 cfcb66fcab3..342fe1a2a0c 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 5e3b2af0b14..6d9bff44407 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 c7dbfefaae6..1a01d8bd77c 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 124f56dd894..7c8794adcb6 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 b72d044501c..c7e4aed1d05 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 bc5dd635801..89a54e510be 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 c104f1fa8f2..1831cba3840 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 dc72b400059..f8e8811739a 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 44512562a6b..2c1cfc38cb4 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 84039776650..9df8c46a836 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 2d77c8e6b78..b338c180ebb 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 50378685a81..ffb2f31dd6c 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 e26019cfcce..18e199a5c73 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 f8044c456bf..f02ad6ca354 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 8ffefc8f775..16bffc19810 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 14a03f1b537..e30ac263c57 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 b68a7d95e4d..cf158bf6ed5 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 b52617eceb1..657203dd8fe 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 c4703c698a9..665fcfc8493 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 bf747e16dd8..61eaec7aa17 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 2f7e2e16ad0..ef523acddc7 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 3ba8ba9faa4..7cddbf22dc6 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 f152c2ea412..40270e914a1 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 fc06a45ec15..5a0593aaaf8 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 76fd1f0a998..8cc05a9fef4 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 3a2d4ea50a2..ceae3ba05f8 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 eb186a60a65..8af86d3d08a 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 d4d96ba2d16..98d5c1de492 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 104ab577879..4f86ff72388 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 f7b5c5db08d..5c9e0ebcfcf 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 0d020cebfc1..ce6eeb96922 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 b7224a327a5..e0c1885e77c 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 bb4dbdee532..8531db164db 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 da481160a01..12019ea8aa2 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 76178431498..d29f3394083 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 65e06985c33..afbab90f221 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 339f216fdf0..a4c0067fc29 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 a6fa2d028e4..4ebf8bd9040 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 2c742a29764..1d1240c1805 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 bfce918c221..8e543dd524c 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 c22eab40cd2..9038243b28f 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 372b640e403..7c856fe0a2c 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 d39fb44549d..8b32e7d2dcf 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 066c57c8498..806b9e6d016 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 6805e923ad6..ac9e4b6d58e 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 635a0177130..67f8bdc9dae 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 0444498f3d8..caf3fc849d0 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 054d8ee47d1..0a1a756c147 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 4bf9c0f898c..30f61b2d334 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 f2a3559f8ba..4a9fb961318 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 50c7d714f1c..85ba5bb20a7 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 6bf5dd1744d..f3df5e50dc2 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 c4921d9ffc5..a3a1f8ee31e 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 1a87bf1fec2..0b1517b01c7 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 7ade7702f83..0ea82a83670 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 383f9c0361e..e34f694507e 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 05b56c3ba6d..e2fed9d5573 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 69004e08707..5dc9046ed57 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 e93c316ebb3..f15328129a2 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 3c700339e7d..1a94f921d48 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 aa10182f1d0..9d1070ddef8 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 64b363e79f2..317d0160ca6 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 198c26e7cee..964d5f07351 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 c2e6a03d221..96657f7f771 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 4bd9ab93a45..a378df5db31 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 6bff2ccf199..f9570c9c339 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 ba4384d0400..c6ab28c280f 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 58e6219b177..c7f719e82c0 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 958f18195e2..6f4d531e4bc 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 33f585af349..de3618218bd 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 747c4a2721e..498b96bd876 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 f8395547fa5..d99d4c73acd 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 1dbe9ce4dfd..04ee1a6aa24 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 2e6047d7891..ed0c5caffe0 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 d5bd7d3da9c..9e44053b09f 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 3fbbeaa0133..61fcff9cc3c 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 1fa56ff1459..64de40ec956 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 a05e0ce3d3e..5f5d47aa0cb 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 9e6798ac15a..e065fb16aaa 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 2e8273392e3..290d0fa16fd 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 fa179cf2c58..9be708dc4b3 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 34f453dd4c1..4d4bb3ffe3c 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 4622784537f..2c27217bf72 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 44d85b1a8bb..141f275434a 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 beb4329ce35..6aa521641aa 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 6f19f274196..4c02ba8b476 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 d7866b4955a..48a83ddbc1d 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 d563757261d..6ccc3cd7e61 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 4181c017d82..549088dc94e 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 51e73c868b5..16c565d9981 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 3aa7634bda3..ce8f839f314 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 12718e17240..8061adbf831 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 c47cb6940ee..e12d528e362 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 b0519405180..45b1ffd0b98 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 f0c77393363..d12b054e0ca 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 f891637d3d7..1b2a7c0deff 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 2140eacbc19..c928762fc34 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 57e852ff377..e94c9e2a503 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 83858f931cf..6feef015614 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 63361396940..25115fbd8fc 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 8e084b04abb..bb6fa553d2a 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 df609ad89d1..3aa1f532e15 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 8d7227f1d12..bb90f7c02e1 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 03021ed9378..faba4964392 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 8389fc69a9b..02dcd573977 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 13e9f46ffc3..e38e660ab28 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 93fe2c44f59..d00d340584d 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 876509ef89d..01b967198f5 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 8141e4b2a72..33ecd95512f 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 b610949945e..32af37d451d 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 03d8d7de2b8..d001a44128b 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 4cec85a062d..18935b3760e 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 8a0a648dfca..49acd4d9674 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 b90ba424616..4671981e4d1 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 fd21693cff3..b3d06555c7e 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 159d7f41cbe..5fcb80f44f7 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 09f7a04df36..eae361a193e 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 5754ca0f409..67a34bfc275 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 b1a8a33dd5c..1786ba34c22 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 11fcc6ab0bc..25c8c90e8b9 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 30c64856f99..097c1e83fff 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 c964d17861a..77275bf0059 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 ee2573098b5..322faa06a30 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 7f2b41ed46e..80c159d947e 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 912db14bf24..4eae519430a 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 1b877b581fa..951ccd466ea 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 063376aa901..fb4e23e69da 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 00000000000..7b75a06df8c --- /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 16d87489627..13181accd80 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 0f2018847ad..1d2e268cdf8 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 1206ee2c6bf..9b7b05350bb 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 f0d197c2024..bab71776239 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 358bfa4049b..daee314c3db 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 1d82fa1c029..216b6b505ca 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 41fa09f9f38..e3fe0a619f6 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 b95e0386930..5d855943eea 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 9803a9fda35..819ce72b2e3 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 29564354edf..e8cd3a2e072 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 0fcd880c96f..9d6603341b3 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 87d673da882..d292560b68b 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 a76e963b2d2..9a96bd32776 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 17ddca86bb1..67680101b6e 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 c42cf98ca2f..6c01d72fc89 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 7b1b5ddd8f2..d189cc1be6e 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 35a6161302b..6def749eedb 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 970680b7fd2..8b9dd1b56a5 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 3aff2a08ed6..e16699b6e18 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 a1dca47d6df..862ab365a1f 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 689fcd9901e..a47253d96ed 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 efe346ade20..76064e74941 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 4eb0ea9c722..6f2fe55fb4b 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 498842b896b..fbd77485b01 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 ede54658b1a..edda23ca117 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 399b977b5fe..b469adf76d9 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 626fe74ba3b..0332dad7af4 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 b09b9998061..e4e0d969eec 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 bacd111ec39..7cf610da1b9 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 06360e03568..bce41a2e738 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 2e8f0f60256..2ef3ab03df6 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 7bfaf5ae2f1..68d5de305f2 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 0f798c09554..1b3200cf0ae 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 5f6c1e2be1d..a3e2c0110e6 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 74dc7ae9152..df3736da3a7 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 99a1de6d747..d539a8fdced 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 acfa25439c2..d06f5d2c40a 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 26752c3a14e..caaff52bef4 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 12fcb9721a0..abc690ee6cc 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 18c6f56137e..39750fa3158 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 e0b8f8ee48c..29987c0a41e 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 1d44739feaf..6e68ae69970 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 931550a709c..0f47ea69a22 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 453b18d9a58..6e0b5c5df5e 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 a76473878df..b59b95ba03b 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 dc20c42406b..19c5cbf3955 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 dbe407784ee..02507891175 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 0177ddf2dc3..8060f60fa79 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 c907d478ba0..812642cf032 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 0baabb5c641..77035f44ce8 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 ec9587f91cc..b7a710875cf 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 9a3bade6c02..c25887e8623 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 ada9ea63ad4..9b352ea690e 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 25bb0bdf6b7..e0416b81f8c 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 3ac2925b104..4e072ddc5a0 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 4d7ca1b1aa9..6aab6720219 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 867af452dda..641b554d70d 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 5f0de35f082..d32566e3b4d 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 8408461f3a7..0fb8f726a03 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 32366581d42..40cedd582a1 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 74a859e5fc0..78915554de5 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 854997b38bf..c1e202c62fb 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 2a064fc4a67..93333c4cd17 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 3a3f477d0e6..8d8104bd7c7 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 5e0016c3422..243ebebda91 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 25a37e50c7d..6d337bc26fd 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 d598e3f8cf6..32a8efe4658 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 26b0ef364a3..9b242bc0506 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 3bed07c7c29..83369c460f5 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 f4deab110b9..7dc3862f93d 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 045140fff0f..bc51ee9274d 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 9890146bd8e..defada7c723 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 64a05f98f90..44b92684ee2 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 39863ce7e2f..70cfb3a6d6e 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 83888154452..a124cfa0671 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 9df8cbf392e..89d931e3ec4 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 fe00590b448..7cd57b1d47a 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 63bdd07e7fa..95496748d9c 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 684db633557..8b4b47f4396 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 753d80e839e..f01089483e0 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 09ae9a2f77e..46864e56711 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 bd765a8ee19..a961806f374 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 359dd5b82ac..cf516c52ed9 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 857b456e212..28a287472da 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 3ac82145bef..d9e014757e4 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 388ec021112..81aa2b63eb1 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 7d02a2ce4ec..aa828627340 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 4e4fc721ad0..b4a98e5fa34 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 80508176c02..c1073230fe2 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 75836732892..7ea8cb61a30 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 9ba91539b8a..39d61bec19b 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 b3a43dd32ab..020cc831ee4 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 5c95ed00571..85a7d049255 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 4ebb0fb9d47..dfe374bf3d1 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 6abf60df48e..f045d7efe28 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 8bd4c1cb3dd..1a887372c2d 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 48b0aa9a592..fe9602596ef 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 0b3e69677af..e46da2df8b3 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 ace2908b2f2..63f8609987d 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 57eda32172f..c6c4587d733 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 c88b4cae3ce..a1d4733e79c 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 df29f34801a..f7ecfb13eec 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 7aa7dfc1271..2ab78f20999 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 7f4bab64097..e1a5754b9b9 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 7cee3241c3b..ee5d23fae46 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 c97ecb3898a..82704d3b8c6 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 1eea4ddb926..50db4aaf199 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 a9011be7e3c..06403205a82 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 c7649dc0313..dab8e0fd228 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 2be3525c3e3..999aea79dac 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 0a3eb89c65d..609907e9c2f 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 2037f04c915..dd771a765cd 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 d3888381f7c..2eb32c1ba66 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 a05026167e9..fa3c57ef19e 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 74dcf83e26a..9814bacd397 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 60ca353bfe6..02bbe4cc077 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 91dc06743ed..17f78812ae4 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 4cfe1ead345..e7cb5f3d8a6 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 3d23910a99f..c8f8931ab81 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 be78cb54d47..85ad74bf4b9 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 5eb1b37574b..19a86d4182d 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 bd623631b68..82b3a53174b 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 cdd9512216d..6744a35b687 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 72979e71093..e105a3e2bba 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 d18f744b3d0..cb29c778da9 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 53f26bbfff8..49076c1467e 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 5a7dff4b813..7cea02aaca3 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 756d55dc257..8aad337dbcd 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 8122309d6a4..a7301c5a7ca 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 6e5fbe2c5a5..e825f722729 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 6775bdaeaff..d6d368b31f8 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 65d538aad23..7d0c988ab1b 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 fed9edaab2b..3433ad4c99e 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 06c1f142f76..49572104d6e 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 c219ab7fab6..eb8c8267ec0 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 828002263fb..75ce8ccb7fa 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 c7369d12f7e..cbccafdb746 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 106e2f50169..fcd49b30aab 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 0e891820cee..34b3de6c1d3 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 8389fc69a9b..02dcd573977 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 dc50d75124e..1e665e0037c 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 bb140982f0a..a5dce77f7cb 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 d73da0f482d..c5393caa48c 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 9585b3620f6..582fbfd85cb 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 b57b563a6d4..e49bc10c302 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 3410b08a05d..b0f5ea649f3 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 becd2bacbf3..0b4a724c17e 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 40584b5e80d..0fb945f640f 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 9fe88fc5c6b..e6999011c15 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 06993e346c3..a4a84b45ce7 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 6770a97d667..74b52dfffe1 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 3e0f9b7cfc5..238afd0c4c6 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 bfa74091476..2f6e14d1ad1 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 afecf3e6aa2..06259fd5a84 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 aa9dcbf66ac..0be9a56eb3b 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 919f132f7eb..db58eaa6c8d 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 d957929f2b2..7007695d9f3 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 b314aa79e5a..3e34ed7075a 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 00bdeb6f13d..83dddfe491d 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 4569c2c750b..b5ded88c28b 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 f8989bf7f3e..254dd526e5b 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 1ebb5041b2f..e50ad0ccdcb 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 00000000000..a151f349444 --- /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 1ba39633117..f0a361cb3d4 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 1ec763db658..bdc73247368 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 65e38c50bfd..ce7b8d9f8fa 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 6364e8a7063..da378acab52 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 eb2d3cb22e5..a00c35add86 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 d144103fa62..d81479f3237 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 760efb84afe..42b57bb4acf 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 d8fdbebb973..49f4a0aa0d2 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 6dfdff52c3f..4dab0fb6f2f 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 c1e5c59a666..1a6add1a49a 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 8d41157b50e..35af1514818 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 00f4be8da3f..eeaf5aef772 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 31049737907..5de8b17def0 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 7414c4239be..d801a723f74 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 cf2527c3c5b..e78577ca5b7 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 ffac80ec0d2..b5697b219cb 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 ffa05516cf8..3debfcdd474 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 1d915b82b8b..800153dc96b 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 227484e0e0b..225b384d161 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 7493fd150fe..eaf27615d81 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 2974814023c..5eacc749047 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 fb7c9c4b61f..8ae73854e3d 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 6c266f70b7a..e46ce19b8c8 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 aad8e074ae1..cb9d4296b24 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 7e348e82dff..aae6ce806bb 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 6a587829385..c2b9587100d 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 d9497acd9dc..ac1067881ef 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 6085b6dd563..bd23fdc59c0 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 d954bb37f28..ebda3d7443f 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 bb3c1620a41..819952a047e 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 ca336a1479f..b702f70cef1 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 281f38ee357..4d40dd72e52 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 2bb5fa8719d..a01d0f1925d 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 2a560d74305..eb4594e1a9f 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 1b8cda32052..db952d02c01 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 a3372b7eda3..38bff56038b 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 7a8db686bb6..8a6f9d7476f 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 85f2fbd4582..f3f6a820c9c 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 1633f31cd22..da2e14e6880 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 d88d40f894e..77365f559eb 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 acfd6e0eee8..7fde8a7ff7a 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 eb82479173f..9c71e113cd9 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 5718f3b58d3..951b5fd163d 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 d71b795ce3e..d46dec92892 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 603a608d56f..7c40050ea4c 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 e109339b20e..e15dbd0cc6f 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 3e85732c038..384fe2abc1b 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 383e5a88bf1..b13c72637aa 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 7eb95fe69d1..ea17d6b7fa5 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 93742c5e767..e9a5ca3d23e 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 f3bf8dfc181..716cf9cf113 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 ff7c79ede6c..890bdd11985 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 cb61eb4a118..937e4b8b3c9 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 9b9d59eb202..b8972416cfd 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 60967d40762..d9a8d83c87c 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 a574ce7cedc..8aa4b42ad89 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 6e84203d8d9..c65f47907a1 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 0da183b90c6..a34a2b14ab5 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 091f8923be0..3b501dc1ecb 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 da4102f9406..04f9639a198 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 fd17277c31b..ff627dd979e 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 4cad7075089..c2695c47224 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 84d7f9f7b96..26bc9945239 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 5c2edfac81a..b09e28b0206 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 be5347732fa..30b3cb3a79a 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 e553fb4b3d8..1d102157a3f 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 798d32aaf18..da91877794a 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 a960e8e3915..e7936b3a032 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 b810a1248eb..99f31365ae4 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 cbc20d88c7a..a211df85232 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 321a077984b..d45f57c9f25 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 c6597eb76ad..08110a805e6 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 f69083729e4..2ea44df465f 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 aacb930e341..d16ef8c1a37 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 736d7bdbc3e..a9783f93615 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 fdabba9c03d..a1a0c592039 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 eea26f3a153..a28c9fb5b82 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 9df08d78504..f82f3c6a963 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 0e42e7a493a..efff7517c48 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 18ac5c7b70a..f149f1bdbbc 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 32d340a6f0b..9213079ef7c 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 2a2f0068783..89e034e5c18 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 e60d277af7e..1592d68fd4a 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 6d3c4e59ff8..a8962f3dc2d 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 586db914dee..3e2697bc7de 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 62b73c5c9f1..b688a65c386 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 e1742049417..a65170f59a7 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 aae50863ae3..7ab5e2c1612 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 00000000000..c995e195b57 --- /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 eedede8a449..56cf393a925 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 00000000000..0398e63eb74 --- /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 90f81a4e7c8..cbb74189287 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 a4352e481a8..755ddfb31a3 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 04c93efe562..2ce9aedaeb2 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 2e424d355ce..d15d2b336df 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 1333e09f380..9749a96363f 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 1999c00fa4a..aff2af5f0a0 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 33c67fc9899..e2e02f15dbf 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 991d9b4bca5..c5a1a01b862 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 5db1d4bed52..e6d3870d869 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 77a3943055b..bf8004818b7 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 88723e587cf..abf93856ce9 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 6f0610ff0a5..f14b133ad80 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 828056e923a..d7fd8310825 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 4a20b4b4ccf..397befc1adf 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 1cc00c1c542..d83837d28a5 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 f90516ed662..5e25ee088c1 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 ee88a888318..e9c6dafaa2e 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 0acbc3f023f..fc4c2a0210e 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 a8f13b835a8..c1f4869da2b 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 c9e084deabd..f85d83be7a9 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 b67225dd056..e622dee78d5 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 da07bffa90c..67a2a6e3951 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 f16390975d8..8ab38451358 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 e731c503738..8d2cc70ab7a 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 aa5eb9c1737..8db160ae847 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 ac00bd668de..3eefa1ac099 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 3a21b5c29d4..9224dcd0009 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 8d56cbd9124..95266583cc9 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 f3dda3e6f63..3aec7b93598 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 c302d32bcbc..777b1675336 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 8403252ef77..dfa838d3f34 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 c4b7ccc2998..ed7a8e74fc7 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 73ca40fd567..c676d226866 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 41bf9a40c9b..a027905b56c 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 e15c4bc8b4b..7f209d67efc 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 7f632c23014..0c3d3aa8be8 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 589ced53392..c59a540c052 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 a5cf0d0c203..ecfc2aadaf6 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 9209d343ebb..8d5e52ef802 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 0878e34c59b..d62f45c0b1f 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 10d005a8024..0b039ce37b3 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 9ae67b9e760..57fc3d5ac1f 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 26639f31b6f..3540f2f72f6 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 f98c297e8eb..426e501973d 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 8389fc69a9b..02dcd573977 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 e53120c6b84..21ac8d164a2 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 42b45f6068f..ad095d402bf 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 6602d2391d7..7fb6135b1b4 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 327c9b0a7a8..e395d40752e 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 eb5135eb768..241cf355d32 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 41ca623fcd4..be218988561 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 7cebfdc60e0..6734a9a08c4 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 6722ccb57e3..1fb5d23cb10 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 9b36f22caeb..e26fe16263f 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 f223b31497e..6e4ff2225ff 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 4b7e937d698..bfbf2684268 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 fa57a2a8791..837ca9db316 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 5aa884661a5..a4c1a9d7bd6 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 3b6af2fe72c..3fa44789f9b 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 89d8df2d4f6..d181e3780ac 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 777effbd1f0..d0b27495f2b 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 0f0501eda88..10d1cd52f19 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 fbba196db3f..05f193aeea0 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 fd42305b699..1f5fc4a578a 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 7de589f64d7..112cc0bb0d1 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 cacb844d426..878ae77d0b2 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 da80011034c..d3c0753cd53 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 00000000000..cee2bcfde57 --- /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 b179dc398af..b67b37b9127 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 38cffbe3697..9aa8e1b2789 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 c2a14e2dfaa..347aa983380 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 c49e4fea42f..2ca016a0a87 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 eac8337b158..330aafd79c2 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 542775c9891..5c0155b7615 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 8f7e2c075a4..fa3458cd0fd 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 1703404acee..6750f615efb 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 3bccf7e3650..3e1f2bb4bb7 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 bf29a3409e2..39d5e684e6b 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 2ec99c5009c..57af14b8a28 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 3046980c004..73103936205 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 fff72eb689f..cd4e6264f7a 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 73a36da84ab..c00fdadb068 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 31177d32270..0e9b659ee16 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 b0ca0b09e58..48b0b5145f8 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 27fbdd4039d..720dc4c99c2 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 29fdc1be022..629ccd0c0ee 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 28a3c04f27e..e61d1c50ab6 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 efef3ca107b..469f2003c88 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 ab6578cbcec..acbc626941a 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 56e5b548ce2..30bd5987151 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 6c2e45b3d92..81ced0874dd 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 b9c725ecfa5..25c0b5159e5 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 4983546265f..33010fba901 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 e159e21aafc..f56ed4f928b 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 7cba92ec7ca..beeaa32d79c 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 e2c2578ddb1..813b38db9cf 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 48d95ea90d9..807867e5769 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 b929b57b23f..458a7817481 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 541f5d4d386..f1c349262fc 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 69f52df8687..4c94d9ff502 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 c95abbc6065..b55db57a520 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 5f730cae7f9..34d6994c7e8 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 98901324d53..0ffd49124be 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 21f89fedc32..1c6a360dee6 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 26589292f4c..d6d58e80f65 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 bc5e50122f2..d14c62dbfff 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 ee93011504c..eb310c4c85c 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 36946efb3e3..35e7d4e91ba 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 b95ab4016b7..f4c906261b9 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 ec94d825c72..1424582bc76 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 49f08c55f6f..afac2b1ef8a 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 4980c4a35af..da289f5eebe 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 e04fbbe32b0..fd3aa3ebeac 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 6288ffdaf0c..8942cacdda7 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 f90ab1e58bc..b3fd04fbc85 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 1ca684584fe..e303ff5f534 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 0eea3b9e141..ba456b4c0c3 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 7e860c14449..a37b4b30ca0 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 5c29d48d098..e14dd0c7b66 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 ba01cb00d7e..c534a39070c 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 1e7fd7cd2a3..411fdf20c67 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 c9745795adc..14fb769dfb5 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 66850d66ba8..fce046360b4 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 dca6968cca0..42f73ac348e 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 a0dc51986c2..bddcacd9e00 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 5aa58182e16..dd4e26d43ce 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 17d67167e58..63ef903c076 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 fc86a6a0a71..5183718f36f 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 08c9849560f..d42ea01894a 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 4a5012bd3d1..904b824e495 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 a340e5c0d3e..774f9c33999 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 7e901fb9800..5d43161fd44 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 9c83fa6bed0..4f0aae547e8 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 48e9ffdffe8..e2023159fe1 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 536d575eebd..2ee82ddf477 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 d3eef3ae5ac..5fecf498d64 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 3e9db92629e..43aa702fd34 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 e5df37d6e22..33ccb670466 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 f96ee0ded7b..d2afe3563a4 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 6175531d80c..6e9309f4c26 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 49b27fbe6f7..fa2585a7cfe 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 954cfc88755..4eac24d205a 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 1feca81f0aa..fb7df05a986 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 9f0a1163ce9..3014357d50f 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 4f6a6b7b18e..1dececc3772 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 c91458860b1..02fb2bbdc29 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 844a40c326a..0c0038b20b5 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 d3f6ed9d120..5237120dd5c 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 aa285c80102..9f475e8f6ed 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 00000000000..4d167d9bb6f --- /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 4c77d4855e8..1cbdcdd86b4 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 328227b7019..194af1035bf 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 b4524aa156e..0bd75c3fe0e 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 6889d3de102..7c452da8966 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 00000000000..6bf0b24bb4a --- /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 97b46d6dbc9..fc1dbe7ce9c 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 3b9a2006002..aa2e4a27834 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 698dd887a2e..79a66290354 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 00000000000..e8abe087f9e --- /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 df09cdf2374..04c25c3766f 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 6043ce706ce..4dfd27ba66c 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 00000000000..4cc4d207a03 --- /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 818095db247..59a14f6416d 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 a7e8aa5f747..3bd7361ca92 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 00000000000..5c6e43faa29 --- /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 eb72a2a6201..697294cd60f 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 3b4b3c67b9e..583297c8c5d 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 00000000000..4815b736ed2 --- /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 adfa2254529..e4b248582a6 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 8389fc69a9b..02dcd573977 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 8e9bae28e86..a0775eadd06 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 3ba86bbcd4f..a2a027503b3 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 b2f656f06ea..f9f96a18200 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 618bada9c82..442b299f624 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 5b622d8c741..991ee0b5bfb 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 8e6079b9104..aef0a0fde82 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 bb00c829f72..5b294395d01 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 ed8017d1e18..6ba6a742e64 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 d938bb867af..560f16b5de7 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 306a623e10f..a81392a86a9 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 82d0b2cb4b0..4d54c5d1c9e 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 4be34651659..5f5e9358aa7 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 cc5c295d710..14166cb2b3b 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 1b2244a31ee..39db777e06a 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 4ff5a42c877..25fb2612175 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 8d58897b616..324ee88fb33 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 d3895732e44..1001e71f352 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 64f14a55def..76c96445912 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 e1190bb2ea7..65560a373b8 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 23bfdda314f..9abb26bb48b 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 7ad6c0636cc..2faba83030a 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 6167674be1e..96c39710c25 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 00000000000..b440436ba90 --- /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 792c42a7cde..7fe90f7c357 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 64fea49775a..ce5bedf2c80 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 a02b163aa7f..93abcb47b4f 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 be2201e9f3e..bc95a8b5dd0 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 3fd32b41220..31f30c48b1f 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 ab3dbf58ea3..6e4a53ea342 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 60a0923b763..05f7e860196 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 75fc04acc44..aebb0401864 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 66e2ec0d3c9..957c91e2c61 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 8469fa48624..f8fef1d2bed 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 38cc83104ec..b2ea5dd659e 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 afd7d4806fc..cb66a015c59 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 424214e9388..12aed078f45 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 31ecc2ccda1..026989ba9dd 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 524ccfd8436..459c6b5389e 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 c3ee9cab458..ff42de3726d 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 680ac55b1bf..98e7a8c740a 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 2163b9acbb8..a8a472eb747 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 15fba8d105e..b2afc94de48 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 95a562e8da1..ca8efb2238a 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 8098610b0b5..8e108719c29 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 8d57664e27a..d1be0fd7a81 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 5f282bebfa7..4e63f368073 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 e8b39fbdddf..b0b3b0ba2ea 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 e3bf69eb4b6..f108b4f8129 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 6e0a48ebffc..73c922a1ef0 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 ef2fe01c31c..df70b4df7b3 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 4fcac784790..70fca10701a 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 07909111ff4..17cc40f27f6 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 30342cd861c..4c3efebcc7e 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 51f87ca1cb2..94a495d1031 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 06675c794c8..f4a168e419b 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 e6ce4ccad53..863ccecb865 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 31f4368c511..7802197df48 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 d2491f5533e..b0d6ca37ff1 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 17b0a988346..89029c6a904 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 40c3bedf175..f9110e3aa70 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 7c0c5b2bac3..1c43a0552c4 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 eeddad72b03..8020707f14e 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 0618dad49ed..d1922c3ec57 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 aa68e877984..8b633205f32 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 ac2a499d8b5..2bd169f926e 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 4088c70141e..39ada7a4c92 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 590d11a6163..ffe786440ad 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 f19d43603ae..40e9a515c7e 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 f1432484316..6b739f7aa41 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 4a07cc6a3df..7ef5e89317e 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 f4218a718fd..29e0b92e02b 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 d480fcc24cd..4ad122d6e0a 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 6bf79f42e3a..5c2c66ef933 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 c7c4aa51c10..c2c7376d210 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 21a6c69c9ba..0414293c9dd 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 4be91d74c76..0c56537db51 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 6e60f06a1e5..19d19751fa6 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 9e598b43589..6e174b54503 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 c065ee0f872..f057e6bbbf4 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 eb7584bfdc4..5c394446db6 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 fbe0fe27d77..c33836bdade 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 be1e3944744..1a61259e6c9 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 e0273565436..8c665ab4d21 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 6f618663b17..7c17d2e8c6e 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 2bd8c649549..aedd1e0d890 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 0903d1d1db4..3eeb7ff1079 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 765822a30a4..eee06b555ce 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 2f6514244ae..ad738df55f6 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 de5eec30716..e90e30cda01 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 fae8b356513..ca47e1432da 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 bc855383e0d..037d0ddb859 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 904f20218fa..8955c1f0563 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 d9b9daf6a36..856f84fbf54 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 077316fb546..b373ee70d5e 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 6d27191bd9d..7428224cba1 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 73dd4936c95..cc565bfc59e 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 08e47b941ba..fafaa9a84b8 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 99088a08abb..84492f2f975 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 6c337958a3f..c00191d8f5e 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 db19b9fcf41..0260caef12f 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 3f01d91839d..75f9fd44b1b 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 0e1ef0605f5..18d08912463 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 d7f3d98240c..88a7764e8a4 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 527c2c6710b..60f3c784ece 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 4ca91dd164c..2f1bcd9dcf8 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 a29f4e12e84..f7f1292953a 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 9fcb0e779cd..c2335452d95 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 eb4f116ced4..3f4a6c637a2 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 eb5f6eaeba5..53cf17154fe 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 1c174372790..98e5f67cf69 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 950eeb3cb71..4ac3f8e5b13 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 41004e7b506..1d67c2ba4b2 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 e651f76b997..dc34bb51e70 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 6fc9642eb7a..ee6e1fca5ee 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 e13327efdac..3850dad02a2 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 bd71b27989f..a74ed649023 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 428aa028f84..0c6d17f7917 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 4347ae69748..d56264f7632 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 fd26301a5cc..d0b69c192c0 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 2a3ae55c013..eca969d2f3d 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 99e22a91439..66a33e9bc44 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 7680b962983..e8a6c35d632 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 8717cd5e6a7..03ac0a1affa 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 350ebe57b68..8ab1bb696fb 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 841b765f372..c387d3592fb 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 e27ee42cf8b..1870acd141c 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 ad74a8c927a..9a6dc748bea 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 a4f3eba8c24..4e835d8b909 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 dbe1e3f50f9..dd2dc3d7f7d 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 124edd016b7..9c821f92d93 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 a19b58c3017..53e20c56886 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 38d78167905..082fca84027 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 1ceab2c94fb..6bfdacd15d8 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 c1619e0ef45..92f8333d0c2 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 950ee901f42..d0beb944877 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 40cc6cdfcac..f193764ebae 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 7d8cf4d58e0..c22b7b690f1 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 2516e4da679..f1496977dd9 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 0ad28f98dec..21aec855671 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 b7b9144df81..8b14a50ed0e 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 7145df6fef7..aa061f37d6c 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 73005fd9c5a..7c84d18d578 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 e317d0703d1..5ebdf2d0b0d 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 07e3aeb5059..4b204653785 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 c9b865d07ac..63344bb22e8 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 297a2cf0cf3..ebf5947fe03 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 4745495be35..11107aab7e9 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 14985397643..737139fac05 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 3df5169786b..95b0e60076a 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 d80e7433319..d8dd95d1fc0 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 0eb0ccdfeb3..18aa5004c35 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 40a27ca6e5a..a2f98c61fed 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 d399c98d6af..0a2c4461079 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 5b50d63948f..a645b670754 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 555e95066b1..7d591b4dbbf 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 81f07983ead..1e224fdf072 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 906c86ce1b7..0795e4a45f9 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 8389fc69a9b..02dcd573977 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 99ef1887049..4642e58f5c5 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 d437cb9bc91..e367d79e299 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 dfcf71bf56f..054564c0750 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 3cad6233c90..514536f0088 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 3e37dfa993a..4ffa29d2590 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 ea706e8e06f..660e25c0a6e 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 6dea67af60d..d0ac8ae5285 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 9508b8bdb20..e4444d841c8 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 a07c86339fa..76ef7366f72 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 00dc8ff6fe9..486c5187d55 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 3cd9fd78e1a..2468025eca4 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 a1d3383852c..d909bd4bab4 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 68ccd42cb49..eb5fae60ece 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 13f7f5dff17..d3cca25906c 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 df7cbaf539b..d3dfe28baf8 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 755a5206ea2..acef7dd7451 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 e86562d708d..b6795ed1cbd 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 d41e94722a4..9f719e186b2 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 f3561f91be3..b2cdaff7673 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 689ce8f6110..dda6ee6706a 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 41d0ffa6fc8..c7bcee03fda 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 f2adc2da45b..7fc848a44f4 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 00000000000..fa28b4f086c --- /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 430a8b04915..333578f6b40 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 cf21fa92c96..8dc4a8c57c1 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 0e152ab285a..f61217e219a 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 cd723a174b9..80c7aa3e77d 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 59031427cad..a7f7a21f73e 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 f9bb831356f..776b02f962d 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 ab224c02ec5..f8a240d79a9 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 cb78d9e8ded..50ba11b1a08 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 8d30a0aa6ce..97836b4ad29 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 5306546dcf9..d70bf66b104 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 d9afcdf5869..34436a0115c 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 882a633e126..2b3fa3e22ca 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 f2a257565b3..c593f30ed54 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 044596fef70..a37a9e399a2 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 4cb81d3d7d5..27d48505ced 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 c8cf17ccc66..d720c092b53 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 38a0118518d..a7c06c13f47 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 ee1bd513e99..cf25fbb73cb 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 277a3a6a9d6..275d530b316 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 d32a7de204d..d519050db28 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 5f8502b1119..e57d8008cec 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 c9ab88d4c9d..9ef13d1ed55 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 2641ef93e46..5f687c2954c 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 8fd96cb3293..b319498571a 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 6d6909934c1..1819470b771 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 7fe08649bd8..d829cfc6a1f 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 b888ab0c684..0eb6d7bcce6 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 91862064948..92d1f190d0b 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 a0b8236aa68..d229c5ea26a 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 97484b1222f..7cb9cc2e6fe 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 d53ccd9a741..4a8e9c1970f 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 7f90dddcb87..46e0bfbe87c 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 1bae9eaffef..0304bbca4d8 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 975f25cce6b..dd7f035ddbe 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 8e96c810830..b0336e59d04 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 9051eb88683..157ce915cfe 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 bb074d4c907..1af8786b640 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 754905f72e0..db09897d010 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 97556255bcf..7315cbb274c 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 35aad934feb..84b97f3c7e2 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 2e5d0c451f0..3461730a0c8 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 45656869e3e..f50ffadbcda 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 1c7361ce0a6..1cb10d4520f 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 177f435e2ca..1eb6e20002c 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 d46ffe07d97..f3367419b79 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 48bc96a0485..213c3d09897 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 27d38841819..dc82e20c688 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 d3de3327db5..f6626a63bf2 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 b3db8d664b0..2c2b2b705a0 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 3bbcccb1aae..98042fe4150 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 1353099f121..22a40183d8b 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 3e67decf05a..c931176d82a 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 cfed7079d6d..12c2da28004 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 5806916ae03..fc16030f4fd 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 4dedc9a94c4..fedc291dd95 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 4c731501a34..03c11bfd1c5 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 11f062733bd..0e1cb5f187b 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 37139d49fd3..f86ef0019c3 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 20b4f9e2c7c..416dd267d6b 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 181c4bd5f63..28108c9c1f9 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 f4763a68559..8f19a0dc2ca 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 7e448aa5c8a..b63ea518e34 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 2feee885a9d..06282ba0507 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 b86d130141b..0bd10e580fd 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 067df42a93c..dc72c557e42 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 7a5cb49c475..deef6c5494e 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 60ccd8f5e21..ce04e0bb4a4 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 026468417de..33672f1d6f9 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 da5b79b6402..e01c9737ce4 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 e81c660064b..e2cd89d7463 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 69c95133575..653dea87ebc 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 3e84b0e30b6..e0ec102eb4b 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 6e29a76299c..e25ecf85e3c 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 81927450618..45e9a989f7e 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 df598bbfe35..860a829f105 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 ff35304a576..d3bf28084ec 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 a5bc4789c61..7220cc327fe 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 4d0f17a1c1a..80f17e6c239 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 d609611ab3f..da7207c825b 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 8d98a7a34f9..850e3952a1c 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 53bd52395c7..03fbdaab61b 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 497b86e9000..acae981715f 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 96a43890ab2..7eb65a5168e 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 ac7c7b733f6..526e7cda1f7 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 568da068d1e..e86f988da34 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 58ca157d701..dc31f1f95c1 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 a4ef75a3331..5622ee0f454 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 a85d5b8e871..b74b8c2483a 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 56e31aa909a..2c2346ab84b 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 00000000000..5815be240b2 --- /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 94da86791b2..af5cf854fd3 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 b501713cb38..39726872678 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 8552e00e559..49e63b7c2e4 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 00000000000..f8062fd5e68 --- /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 494ca24f05b..80e240437a2 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 2f953befcdf..9591c096fdc 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 a91372e0018..50cb36deccc 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 00000000000..2750e22d24a --- /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 fad1bb0a184..2a1f88135a6 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 8389fc69a9b..02dcd573977 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 628455e5a8f..5c6795eb692 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 c3efc738997..1d8afa412e0 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 9d2211a9592..3ad006901c2 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 2d1718030a4..eab74642233 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 62ffdfd845c..5d726d89c65 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 269d997a1b5..d7b550af690 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 ac608eafd26..1c5119cd72a 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 0c25b4eea93..aea79e561ee 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 5e34e6c2f7d..917b7525778 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 377094739c8..637eabd6177 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 409294c2642..422d3080747 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 c7c8a3f0786..a7a15a82dd7 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 5428e0a15fd..30bf7122329 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 410a34cd6ff..ec80ea2f5a9 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 4e591379f60..ecc4388df87 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 10eb2a4ca92..1906f2d7528 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 1b7e913b318..3b6b01fa68e 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 be09a9567da..9ce88b0391d 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 36f4ab11352..89bf0e89f71 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 1a844ade69f..562433aa9c4 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 c12deb59435..ec8a24f57e5 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 638e454f51f..27d5dfd04a0 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 00000000000..1ffd5f14584 --- /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 9f3d4e8a94b..c59c330848f 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 edad3dda139..8dd47e80f70 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 a7c784fbf3c..cc2a05bc87a 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 71b62fcbeb3..cc96bbfb927 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 8576f2c7874..66a689dfe2d 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 6895039afd3..11e5462ccf0 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 d02a3b438a8..6b568b7e1fc 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 fd0919fd485..970a4299d4b 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 fd9bb6d9aa3..6925e72d123 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 d67363a8dac..5f5f9bbc41c 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 03b9e99b612..f3f2a2623f1 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 0e3c631561e..917da4d7664 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 aa7e0bf9360..0c0325ae7e5 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 15ece6a7e30..09496eda69b 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 721f41eb495..d3a5f1a7b84 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 c94d354baaa..9d98e761016 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 fcae8774271..9cf2909791d 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 b7e034b6b1b..081026fa12f 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 9e87524ea4e..fb68870b84f 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 fcd72dcabe7..6f0dc465f70 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 296573c9270..3cfb75a2b15 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 4c8ea1221c5..eab6268f132 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 d6ca8c64697..80d53afa120 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 66dce01fac4..6827f1c5bd2 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 052f63b5d4b..7480d58c69b 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 3b7da512edf..b174046ea74 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 a53eb8ff573..5d29adb257d 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 f4ca329a8dc..ded1877a210 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 512df222041..ed94168a1c7 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 da7ebe1781c..13b5e639558 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 c8baf9cfa3e..d5654e81f50 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 dcd0b7ee3b2..e570e726b89 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 9a67257b3fe..4f2fd3e60ed 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 1083008e0da..17fdc9ab4c6 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 c51bd642bd2..409fdc70b29 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 569dc2e233c..61bc0ceeba9 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 8832528c3a0..5bf4874e5f9 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 d43132f5ca9..a682d256a11 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 f10638ec64c..6952c6e6ce2 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 e1be33c641c..2d6c198883a 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 e11d764b431..f386b10e90e 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 6610790bb48..387482027d0 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 a83205ff006..12e4a2fd846 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 518d73145f6..cf1e0d7439d 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 794b26336ef..127f1eeae1d 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 d980dd3690e..e8a07921653 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 1a5686735a1..dbaeea799d9 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 cc213b01042..85f3d5d8d18 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 512c7dc69df..948fa484f3d 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 e39984068c9..0c82001a144 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 2ccbe432d19..f69bac1bad5 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 a4456f2165f..8f4655c834b 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 22ace01ae65..74309180076 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 7d23f7ae72e..b7cb4830145 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 361394f5bad..17f8e01052d 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 bf5f588c19f..e70d0167002 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 5f29e3422ab..17ca5f7d7f0 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 6df261d4a63..a4fb4facfd2 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 77ae97e850f..d6995f6d2d4 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 8ddcd9d8c7e..e40923a1e2f 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 4a1263d3b37..8de0070aa6b 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 d3d43b884f0..8915572959f 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 07c28349279..3c3155d470c 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 ce4b601c68b..0a1913b0f0f 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 cd412a88831..3d6b63be029 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 c635a193e0d..3221dc3b23d 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 3d7c53c978a..6715fdd31a0 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 73df50c23d4..5c67a900a50 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 87e95dca6d7..1b8ccb4c43c 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 15340407e1b..532ef4a062b 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 485d10ab22f..8b0fed94d38 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 c77a2b6a7ec..f1b841967d2 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 6a51afe58b7..0e3c1bdeea1 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 0b9a2a788c3..88788e48cc8 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 5c5fb3d12cc..412cdc800c7 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 b4f7edd4a4b..6536577e709 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 297bced212e..63757470ae2 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 816987f10ba..ff7c78f1e0c 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 04dca959cc8..2a3c179945f 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 8d21ce7c65f..3d76d8f7c83 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 13806a74b1c..07f60b943b7 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 3ead157e55d..a2696603492 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 bd61b28e196..77443464692 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 11aff159615..639d7a73f79 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 5a113025616..c3dd623f6dc 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 7e00b1f1eaa..a63b9810795 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 05c9a96de2e..13fd15a6ff0 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 50cc124bb89..eec5c5f3a96 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 336514993ae..48d55351939 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 49f734d3918..5b3cfca66af 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 8d6ca7f5982..a80d5b64e1d 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 4c10d9e1ec9..b20cd92ace1 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 0027adf668e..f91d3e76de5 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 1513396b785..8bfba64d421 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 61fb29eca55..9317d3fc91b 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 9c127731d7a..ed5c4aa30cf 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 f00c9d4b377..d0bacbeeea5 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 8fb0b00c963..c07e8fc55e5 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 f79d8157a0c..0044c235bbd 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 1d763580f65..11555c19463 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 7ee723c08d1..bef4e106450 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 f3b6a4dca57..5096d02c61e 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 d23056bcb18..cb54fd7d271 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 f92b07c07cb..c2d3c994411 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 bf6aef58bb0..54595106c22 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 d64a488569e..f96cc85476b 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 55354df9c0f..29e950468a0 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 1ccb73dfbce..fa6b611c418 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 103c2157d1a..7be1c67d8ee 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 5b4dcff86c4..1f3513af877 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 8d48ed15788..3c34514f9f1 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 1fac8d2fe8e..b64ffc52472 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 378d137f531..fc39b62923e 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 bd4e9947250..da11807a26a 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 90b39b4ae5c..ef2970d1d92 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 7b90642dc41..231a821d67e 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 25eedac281c..c7a815f6979 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 d122ec73ea9..c20a83559aa 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 8ff2cc6c490..5a5e3fce6aa 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 d73618db123..792716b00f2 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 424ae23246a..1003fa57775 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 4e0074f475d..5267f0b22d0 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 5192456fd6e..35cec8fe920 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 d8aa96d12e5..b7232ae3f7a 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 817f58b00f5..23f0a8d28bc 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 691390d5a9a..2585f35c065 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 59bd62a1d44..9f0bca130f7 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 79f32639a7a..3d697bda6d5 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 101c3f4fd9e..af088532ccc 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 fb7549ac0cc..3369dda3ba0 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 66c8561864b..2e504f13a4d 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 89cf4c421b0..b999ae8c47f 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 c3bba4fd904..d55e606c840 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 afc3c40b75f..2d68ad0bdd4 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 2891bb56b22..09ae3fa2056 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 8ec0db81a4e..9121f34f9ce 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 e1e4b683b29..9fdedbd431e 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 3c17006c204..89a2d71e191 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 6bac729bcd8..f7b32358dea 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 267141d5a41..f1819f59d84 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 30395df63d8..cc873d067f4 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 cabfb435411..0215d9cd946 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 f8ee922b250..5c57bafe059 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 ebfd5ae00c0..cb8b573189a 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 8680819fd7f..1eb30c003ca 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 3e6a0646165..d567466c854 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 0910acd5a48..bca205ce951 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 71db57225d5..f224e89cbd9 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 f3dafe5742f..1f789fa165f 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 4ee6340efc3..9e6a1918f5a 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 734dad3d9d7..40bc72c5076 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 38240120da6..183f60815a9 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 d004f6dcb1d..28874698f1b 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 1ba0851d03e..097110c6a88 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 396f8d07d9d..8a0b82b5eff 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 8ddf6a7a17f..1d291d32948 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 311044837dc..0c01aace0f0 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 0eced168fb1..08963fa79b2 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 2c4aaea36c0..6e719ccf3d2 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 4b1c31642ed..c84c80fbb0a 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 60c4ab4c779..49021f0a8a6 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 c9076d869b4..08a98fbdc18 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 8a8ba360ef4..a969f9425a1 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 1c5d08004ad..7a606fb14ea 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 775c347dcac..d3fd3424a39 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 f3f6075970c..c46f142e459 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 237f841b8a2..730c4070e1e 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 d88d4811e15..eaba5c61618 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 ce864daff9d..092399053ac 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 2308e6d303a..e4a9860c764 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 5b1cdab1ddc..301c4d35c6a 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 d74de194c2a..bc16bcb91fd 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 9eac019337d..376c2a1f78e 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 2d11a18437e..e5cdd9325d9 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 dd775062137..a17a24388a3 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 3c28160b605..9434442ac42 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 8316809893b..81fadf529fe 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 ed8bd10e95a..4d4fbeb87b3 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 81b3f576132..a7c61f2fac3 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 b8abb9888bf..c1a9e6006d2 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 2a675063dcd..d5af2632221 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 f80ad75f8a3..4dcdef0dadc 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 20ae211eefb..e76cc0c4e0a 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 1f8d76eb3c1..77689c99dd2 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 d3e914977f7..29b6ae5b98d 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 106581ecc1e..130aea9552f 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 382d1d1455f..cc81d546fb1 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 fe4aa378264..60d748fc7d6 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 2158146ed75..2ecd6512b12 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 99b6360e74a..c8155875bd9 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 fdaedfc376f..fbb3c59edf9 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 c20d8c0ffb4..97c716465ef 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 629f9452c57..9e4d0b9104d 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 ee34d67764d..488c82e233e 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 e99a3aa463a..25d7b3c4e5f 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 a8b58d6a5ec..f2bb34b8bdf 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 a14f3acc17b..02e29219dd0 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 ac16e7885b8..7484af94754 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 9c289c8b3cc..775a97d2c74 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 629111bfaf8..ea6ef556094 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 d269d2a60f7..33e251ea073 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 3a77df3239a..c5fe5c4f3c5 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 7928d0c6dd5..d9888d84309 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 f936417c6e1..fcd822cb55b 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 d30a9451157..d742c39f2e0 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 bbea721600c..a5f0b716487 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 6a151484afd..07164612a15 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 2af1970f92e..535708e6940 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 33a6f019282..537d81152ae 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 adfe4c9ad6b..cacf9705abd 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 bc65ba16d49..b09df3148ca 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 687387f5c68..ec2e75099b5 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 132f4688f46..ba105fab148 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 74f4eb51d98..0b260ba3f9b 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 c433ba60b2e..ed9558de8fa 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 2d854b52bac..da947577da2 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 1acf667a07b..800b5eb318b 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 3139fa62d44..ae41b2e0e6d 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 d63439f08e0..60ece89f313 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 07c0d6ffd27..21f842d594a 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 3eb246bbc7b..90b24f5a0b9 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 159dac2137c..5bf1d07ce89 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 0ddf7341021..9bd92e4d037 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 59dbc7c1577..65deaccb788 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 2ba47948e13..32b1d130ea3 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 eaccf364023..de8bc312431 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 892475314ea..b112eb32d5e 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 d054901abea..74f971ac58b 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 7f61b10ea30..ed685c765d1 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 700931bb221..b93adac7221 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 6ce3bd8188e..54a494bcb99 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 9146d025a86..06b6131e84d 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 3d96ea168dd..d51b31d6803 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 da4fc6cb31d..6b3ff45d7c6 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 2993c81ae26..cca7e6291ec 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 012501cf492..ea7e0610b86 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 205a038c756..bac4b6a7545 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 fe64db0605a..890e1cb1838 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 f37235975c0..a4e43f23e6a 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 9836d6eec5d..4cfe66686fe 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 a0340fc5955..b6f33b140e0 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 32c8569c9cf..9c426632cf9 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 da1cc477a53..36e5f1dc8dc 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 1be66727233..62070245932 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 04881aabd06..569df28c1de 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 b2736ecfa1b..e42f8af3cab 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 8389fc69a9b..02dcd573977 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 ebe0107dbfc..438a66608db 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 4a37c994c48..13637202d4f 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 b90a661ee89..2aa9966ec1e 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 a6739479fa3..ccc27c3ed26 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 681e4af5b46..a653459d09b 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 c3e7f078e81..894a360a11f 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 d23ea18c9e0..4b95eef5622 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 fe832df1a86..3565ad80b09 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 cd3dc7bd455..2647de0257d 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 27285cffb18..04c8e43234a 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 88c2ac04dcf..f52d4ff9ec0 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 482c33cc484..a1c0f49e7de 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 0d2acb3bc9b..7f4095e6e08 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 3b73f6ea6ec..614dd641024 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 a054679fff8..daa41a6e08e 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 75679cfa70f..505d5349315 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 4939c98089a..3b478bafc98 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 57bca4885ac..0b32ed3f756 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 77bab9191d4..4e95315467b 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 4dbe36ab75e..3b9021c2f22 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 5ad8eefc0cd..510480ae939 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 eaabf1060b6..aa917215775 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 00000000000..a835cd1c1d5 --- /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 7736d8941e6..2812d541d44 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 3fc6f20b92e..71f382668e9 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 636e210d6af..60765d0bdbb 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 fc07458f491..178b7ad9318 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 3ba0f396ec9..11518bb5a9e 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 1576a2cb777..57e116f6779 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 e578ff51cc5..a5188a0e85c 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 867731040c5..24ebce729b7 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 9991b07ddc4..1f1aaad271b 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 8c9881cdc8f..02bc553ca81 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 b788c989e92..ef2a533e427 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 00edc7a2747..9f64ec319a4 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 84ea50a23d1..b79d9313649 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 517073db269..ad0cf7c81d0 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 08436fa4483..a8f586e3f05 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 3e9320dc292..89b6dfd7e97 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 1aa1ae02cc9..8bb6aef790e 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 8935bf084a1..c7d825af77b 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 ff275fb16e7..4ab9b6c05f9 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 13c1a8106b7..311b185a9f9 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 bf751fa530b..a3ed30170ac 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 8be52282182..7ca54299103 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 35bf0bbde56..f7491b41315 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 c58ba29c503..cb620b24510 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 f38f84ce83e..029cfc959bf 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 d47fb2792aa..ddfd8d9c28d 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 6413ddf878f..1fc3802898c 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 1ae891dea0f..a2f311425bc 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 1b3cd517d3e..d0cb4dbde54 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 1e652ebb6f2..9a248618f07 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 c2c1cfe48bb..60d60b8eb53 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 97ec5dd0514..73bee11abde 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 8cb9b07da1e..f7ea28ee89e 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 c80c8aa6218..59f354bed6b 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 44764ae74be..d05fcf8f27e 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 748b276a6e7..cc404ed09af 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 e4a7a5241a9..092d704a7d8 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 4e1edc55f53..c258e9ef771 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 b4d9e21bb65..c18a38251c3 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 9cfb7151917..0c2e642ebb5 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 6268d1f4c4c..28659a95030 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 10dc3f2520f..00f6000001f 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 e67de05613e..66b3b50a159 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 05acc18c4d4..8fd2c9218ca 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 a4f4be5a936..d7f7cd77248 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 65da234798c..28e956040c7 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 69b26232302..7ec62573d40 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 d15e7d335f1..e904556a5e9 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 803911bf663..7d63afcff5f 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 264114c6dcd..ea955af8f47 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 7e1e1f133de..e676df67f4e 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 ea99a6caf1c..2103f75fd7f 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 1f31e900d2d..19ca9a04f70 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 8a5f2dbcb8c..8bbed59639e 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 96b1387bf58..1e405b14317 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 24348a256e9..87a2b19d877 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 161c3ae4334..d3eaf08adc0 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 def7f4142b2..93b3fa08eb4 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 6202bd0d5bd..a2947387ca9 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 9cf80038f64..c3db06216f0 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 c3d10f04bb4..d08fa8cfb62 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 452a113f2a4..6d7e00d76c9 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 f0e782f4fba..fcac0bca24c 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 59dcc857e1a..8505c9ce19d 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 8d27b02d0b0..c0d7a8cdf2d 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 cc2f3c9b54b..2712d5c4ad7 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 723a9c1a46c..5b80a0cb0c4 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 02ed7e31032..f448145afa7 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 68ab94b28ea..7a75168ffcc 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 3171e915ff6..f2310788af6 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 4aa991ed0c1..0b85f3a2ada 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 0d1ea8d2167..9627d37dbf2 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 0f191685667..dcb2b1e9926 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 3d79d9c9f0f..54633060b3e 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 468da823bf5..42af87a6eb3 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 fd93d697c43..0c0f1e76391 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 78d7e7adcea..cffd56d9622 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 09024f29a72..3f3a2b9fb9e 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 eef0db07172..fc685be5dfb 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 2368eb06bc4..9f9de6e6965 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 238ba37ac80..b3a947f8619 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 0126b543095..3432d8f830f 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 f9d3e5c08a0..8f8f52d7437 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 29807dd3375..47477517474 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 f03b3be4cac..1cda32d6b53 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 878937fd748..466d497ebca 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 92c0bb8566f..1ace732fe13 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 6d42068e7d8..b60084808b0 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 d8adbe852cd..aea5aadc211 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 b19d61addc1..867ef5a3dcd 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 7ba25f96398..05c1dd71544 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 9eb06d1c2b2..f72c3d8a0d2 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 ba4e3529960..5dd65c11354 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 d1c91628069..7a9a5f62814 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 86c17b3a188..dd4a8bf1ad7 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 edb275414ec..21160e012a2 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 4e50ba059b1..b5d774c5e32 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 94c61da88c2..7d242b17b2e 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 7bbad4567b4..c4f74d9e21d 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 929f6811cbc..a1e748ab27f 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 9fa561efb00..19029139876 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 ab610a8d542..29e01cae561 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 d2d1419957e..ad928ab3952 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 97677374290..8a56bcca3e8 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 92ac0b5a129..26d597c5599 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 533f76c40c3..2a3e111f7c8 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 d0165cf6ced..0b488102571 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 546c9ab3d01..376f60b6b29 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 00000000000..e29238b92be --- /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 bc72cd22d94..23deb82b0cb 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 2908378d0f9..e50dbeaf1fc 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 42b267d50c3..e4c8420c3a1 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 3bf5e76799e..f9197b52c8f 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 00000000000..a7d77ffeef5 --- /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 126f76a326b..c78e15c192c 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 8d873cd4297..d6d8c2aaad1 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 4525cda84c0..72c9ade156a 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 a7ad2d75a82..90404f4093e 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 13a4e9b89e0..fe9bc8116f9 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 1b0e398ed49..23fe2e379ce 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 837c21ec492..384ceafd283 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 c3e069578bb..b644565623f 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 5deab182efb..7d2056176e0 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 a002f35eb00..a627f692e6b 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 6f2c926cee9..674bb692946 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 1b513782c3a..9647356bbb4 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 da56a2594ca..e38da30534a 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 dd0d0e00709..8ae55a8e5db 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 4cba9bad12d..952ccb921bb 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 561dba8a50e..98db413764d 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 7f4df9be7fd..6bc1fab9f00 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 7aa8a85ace9..6f19dcac5d7 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 b6aa113dd2c..b42f3d54d0d 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 7fb79439615..49637a30aa5 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 3526467d12e..f91cfe5a5e3 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 53d3c859a58..86f5b648677 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 c546fcf24e6..ab64e8366e2 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 fc5d5da208e..6249a9bcd5d 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 270336eb44a..fc38163a6f7 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 3cad4f7d166..1772694767d 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 2eb638eff21..ff98f1e6693 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 83de24525e7..1ee7bfffaa7 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 d2b2cb9dcc5..6f75d00e515 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 b9f4776c073..fde0f3ee090 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 e38437af29d..a958995424a 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 3605b17a3c7..3d75b71b393 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 b63ae752b7f..4c97d463c34 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 9cb6c6f1ea2..ce066da385c 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 8473f1743cd..f4cb30e3378 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 681815fe744..4e3b0857c7b 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 36aed912f15..aae39aaa1ce 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 4a492668554..ef3f46668ba 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 1bb4a834174..0d7a94c4c78 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 705c1de293c..f16f37b5707 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 046cbd755d0..06923bc8c6b 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 bff895bc793..9347f35663a 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 1b1219d81b4..22209593819 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 b6a52f32928..84aad49bb3c 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 91c958e80e9..777182357b6 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 8bffae37dd8..409c2e19512 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 cf90bf260d9..bd05ab1ec20 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 7c6dc8c4b12..a7aa0fdb167 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 f5187144162..dfad3743f6f 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 18e9bcb633f..79080c9dea7 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 4907daa5ee2..63ddde9fa01 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 25f39156b5e..f6b25baacef 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 0788e0d3ed3..f9d3a433383 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 42d144352d4..aff22ab0521 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 ea59020a970..a15807e451b 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 118dc0ef1ff..4f2d151e12d 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 4e1bde19c42..dff17007d39 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 b82c35d76b9..f13213018b1 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 b0e788fed94..28acd414188 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 757fd387585..66dd6aa137b 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 46bb0b47d03..a37ac3661a7 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 b3087027748..e7c8474e595 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 6068e68983d..82381a2d12e 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 0a6d7d5a9c1..999f27728d4 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 0202ff6edd3..1ca75731b9e 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 a6a52d13ed6..6de9a64b9fd 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 0d589a0553a..58cae057887 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 37560192dfb..87fe3f9dd41 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 89634eed3bb..26c65880feb 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 7882607939c..cc427affea7 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 99c122b9dc2..02baef7571b 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 f52a5ed34c1..ddf5651b95a 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 13a38b8456a..35c68cb1ce3 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 3118ffdd2e0..1a8d7fa578d 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 315a32e9e9f..1410c11dc44 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 99640fbb239..40dd0cbd24f 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 1a180953a5c..1f9199915e0 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 8b15194fbb6..ed39496c509 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 b518cdd5c2d..02a58684ff6 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 00000000000..266d74a7ac9 --- /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 2a3d1f53080..73bb7b90013 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 aa9721d7adc..5dc21b4e8d9 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 8633e67de68..1d821d7ad70 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 00000000000..e64f1c007f7 --- /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 5ab6e41baa4..61f6981855e 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 08ed7fa9ed0..b54e9de7a7a 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 00000000000..64fe2b2157a --- /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 f8ffff38f68..67127adda5c 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 c59a08d80c6..e63bc3e617d 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 00000000000..83ad3327b2d --- /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 d85e1b4425a..130714d307c 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 352264926ff..88b2fed38ef 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 a77c4f32cc9..0d20abe6abb 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 3677d0ad6ac..ab34861252a 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 2bdb9826ec2..0d4dc58fe73 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 06ac4cdcd93..be57ee7ca22 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 7417173559f..afb272503e1 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 8389fc69a9b..02dcd573977 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 8bb5a4cb204..7fa8c085706 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 16f801f934d..4cb0507baba 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 812ecc9003e..b0f844fef09 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 1ec8c812eec..ab1cc8caee2 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 9b7790a7b1f..62b8b984400 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 d6bf9bbc922..fdea2a2f9b7 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 3995b58ea4e..5f8eb250b96 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 db51e0c1c34..3726ff334e2 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 19acd2fde3b..7fc8c91c58f 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 b9526e538dd..b1a41f428df 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 29edfd47f0e..e65f0b8a4ea 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 15c96d1e82d..0df49ca806e 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 9395334d75a..3b00369842f 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 bf013587ad8..3fa5a75066d 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 8e5d58c1566..b862ef3bc29 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 1b9d6d0e4f9..66e4439dedb 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 dda1f5d2339..1fe00bbbcb8 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 351c0431fee..c0f4159b3ce 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 2bc80fb0cf3..ce352a58360 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 d207cb61a48..f3683656aa3 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 77cfc5eaba0..9a7341c3185 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 413e0bc17a7..d0289e66b27 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 00000000000..4339f6232c0 --- /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 757cb58a190..c18377a3f70 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 33e42093ce0..5321b41fedf 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 98d68cfbea4..93af8739d8e 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 52460c02edd..dada332b647 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 ebf188f25c2..b71ec654c23 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 1106e90e237..d5836519fb8 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 88942ef0a8e..171489554af 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 22bb88e2641..f525715f82d 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 786fa51c028..834d2c5f879 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 38d6c05a33b..a166a294620 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 99aa2d167c3..2c252e2522d 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 3d9f8a75bcf..9b611b6682f 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 1de6bdefc56..48bdd2022e0 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 249f0f10af4..a708183923c 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 b1aac86aa3d..3140074b2fd 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 a4ccc7e17f2..fd0ec79e3a7 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 8c524d813ac..730812ceb31 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 63b7a0eaf3e..85293a9322c 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 0d479828f11..2eff2d5f35c 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 2492811ecee..f5470472578 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 05788f3d0f3..4eb561dc02f 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 7aa4679db47..36ef23c8caa 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 2d2d5e5ce17..03de9c3188a 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 6c7e1a6b136..4b611e2964c 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 878193fe946..1f8562b5395 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 47d97137fba..73856138506 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 e3cffe70136..a23a060c3d4 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 7e24a9e2a55..bfcdc60248c 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 67224e1d9c8..aba74e49615 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 8e12d07ff10..45c1dce7ae4 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 96ede4f0c42..d1dd320fcd7 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 876f83d60c7..b0572d6312b 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 d0404c1acfd..7a796084edf 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 7416e8c4551..ca5742c8856 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 72e73683ef8..b0d04cc513c 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 81a8a79c4fd..6c521a2dfb8 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 ee0dfd41d45..94ae8dbfea0 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 88fe57386ec..c33f0dbf05b 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 9571476078f..ada3d84cd05 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 23ef553f3af..2911fd32df6 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 e5ae6f2e1a7..f5f0da3892b 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 f0f4d102f91..19d935e26d5 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 8cb0eb8d98f..94dfe561f21 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 d7143048265..3494df89085 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 e4e964ae5b2..502d2579f6a 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 40fec5f636b..f17879e71dc 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 022fe9f10e4..a5cab68388a 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 014bdc7e11c..e995d356c3d 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 ae8e05e1f5f..b9c5cd3d6da 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 b611cd3514f..86cecc7e452 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 bf63ad86f7b..7c7c5b5339d 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 3965815b86d..3d60be76c17 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 761af6b9d11..5e4e7e91fd9 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 68fad742098..618ee9c3254 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 b76eab9a3f1..ec7941831d6 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 ba89bdccfc4..96e5d18ec3a 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 fb3d7b7f602..4d6de58cb71 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 3271a78fa21..52c202f1280 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 441012483b1..0c02eada0cb 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 d093a376d6c..8beafa55dec 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 d96c4ed83ea..d35ce89ae49 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 cce00fb52fa..bbb4171d245 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 dc9be9c7576..825cbe90497 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 3d50208c5c4..6405c6532bd 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 08195a9e375..ea791b8e47a 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 8e3b1e56265..04976a2fb12 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 a2899fad6ce..434f24c99b3 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 1f3e54c41e3..7851d24985f 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 be1c7f42929..de8f79b724b 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 7c5bf2f672c..fd790d830d8 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 f36c14f69eb..f3b81f0f1c4 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 fe4ff47214a..f4f83d0e8d4 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 41e68b15ac7..3d368c44129 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 e243e7c1705..1c08d1ff13e 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 ab03c79b3a3..a20c0fcf750 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 cdcdb421adb..e40b576a3b5 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 150df37e6e3..c29140c34ff 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 97ad2a47f6c..75668af3396 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 c75d79c1c67..cc362d26913 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 364e7dfbd3b..320367b21f5 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 859b38a2276..0fb04d5fe2a 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 1cd1428fd82..242760722ab 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 eb0fb7db852..b956eb32af5 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 608330df118..1eaa6d9932a 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 1ded49d7d69..a6929866883 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 886b1c20bf9..ad5ea34771c 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 3c57da3b7e1..592118467fa 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 0b0187c672d..8dc4b0173a7 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 240c6f55fcc..7e8568e9eb1 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 05b9c5aab01..6083345aedb 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 54c639667df..1a93307eb69 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 024806e5f2c..9aaafc622e8 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 46b89da34e1..111a9fc3434 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 96e7526d850..317a3bd2f0a 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 7ff17461c0e..7c725397d01 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 1629d005f42..66ddb3a1927 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 d3812c27f1f..d9fdfbb7876 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 9c0f2793d35..1f9992e5238 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 d91418a6aaf..85eb454b1a5 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 a4bc87d29ac..86c4dca7aba 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 d4f4870b01e..608e0ac1ba0 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 f4185877722..3e2c8f6d7cd 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 690c363cede..3a0fbf6694e 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 2751be1b62c..b5643e151d3 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 7dd8e1d2512..4e103d204a7 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 468b4080629..ad748999b28 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 054b1d6a229..b120a6e4522 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 3090959c607..b59d7849cbf 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 b5b6f367e52..1201829005b 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 86b1eda62c7..2d1ebb80b4b 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 49eea99e5ce..803c94992ee 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 c79a1c41ec7..4355220dc49 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 daa38a336d9..8f62555875a 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 691fd4d7356..f1f7e7d1f80 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 6727759562c..709cdcda081 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 84654e7d8cb..859aac0577f 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 9542f2f5103..87916b8ee13 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 b542914f9da..022beb0a9f7 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 f72890be66b..cf7cdd00e93 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 372d7c450f2..348ce9166d5 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 200d2efbaa9..18207c7e822 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 bab4ab5d29f..6f94396ea0d 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 18709c9258b..fc7af636b9a 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 ec07edce873..3a6e9b48201 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 00000000000..878d30014c6 --- /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 3d030d21186..86bfc15931b 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 db28bc6783b..b83ee5e3ce8 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 4c6d51a7348..f884dc44a6a 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 e7efb36bf70..9b3a56fd111 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 61926fc87b4..243ca1e9e79 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 ca0fffa8ab4..d9742a0eae4 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 b1924f1454a..52c5e4002fd 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 00000000000..e54a8c69374 --- /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 d7ac23ebbc1..29cb9d1b8ee 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 990a7d3eaeb..f488c18efc9 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 ed6ca94d055..43f29a7ef52 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 9e8acdf57c5..6308a2af191 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 bd3698cea39..954c6ffdd0f 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 3dea2639bc9..72c3d7b2cfc 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 4b382565da2..6eba1722b20 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 bd64073e854..d99f637d006 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 aff3fef1b8a..7d52b650b45 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 2a7e839b9d4..15f116b9649 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 44b54d224be..4270e46a1a9 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 4983b9f75bc..d12e03a9260 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 46ac8f1e0b6..4e226755c87 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 26c098022e1..145a62c19fc 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 15fb8f179b9..9a87345a4e1 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 69019ceda1d..8b85bb8b895 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 95d9d8247da..ae26736962c 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 a587b4d18fd..51c8a7ac72f 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 f0fe1a46bf6..40edb73e0a6 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 3872a1ccb92..4d172aca4b5 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 6730f9a0e76..d573b299289 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 ca25a6ec679..c29bd903a60 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 9c969b0776c..56452b0893f 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 8e2b5694895..ca24d2609f9 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 0b539d35f6d..21c706f9755 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 7683b8f13e6..89df0de8ccf 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 bae736ae427..38a5a9fbf91 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 7563bc87fa9..18efc1b3b41 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 80f8e4bf193..3507c823392 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 c91d49b9dc0..8360793d9f7 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 41952c9215b..48e8492c294 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 224a6a354e4..524d89cca83 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 72004a2e820..29f052b6059 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 1e4ef90fcad..12818304b21 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 ca9bec65885..c228fd296e8 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 d4dc565bdc4..a58e5473f0b 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 9f604b28975..3a9d6f23599 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 43bd057b89b..7af08e2f46a 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 fba1614edd4..feff0f7286c 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 5f58a20932a..4482e32cc6b 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 9d3d253f498..abffeeee3c1 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 d33da1cd148..afc27cc076c 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 e62abcc842b..b59c91e8ca1 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 b6d0acc2888..1d01699d6fc 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 7fc1c49661f..0cf3a371ca4 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 a5abeb1ad96..25e53f96372 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 22c2086f44e..451d35c9183 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 7c0653cd070..b7de5f98a28 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 cb4700ed309..8018474653c 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 f7553f5df21..52c0f4c425e 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 419c9023f57..3e388c4c5a4 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 c070ccdd383..d76f84a1d1b 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 698fb63eccf..49e406223b6 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 fb71acdb790..d32cefc72dc 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 49e1e507666..e0b06fcd87d 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 73747035c44..f86362accb7 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 ed0f003db19..fcefbc81c0d 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 49e406223b6..54e47b3bab9 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 536d8d838d7..7525b4f195c 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 b86759fa183..287d58274c9 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 eb85fbbf072..fdc5f70f2e3 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 4059a6b6f58..ee2adfc51db 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 af2e7d38617..219f93374e3 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 a2f749c719b..dbd464e7020 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(