diff --git a/packages/javascript/plotlywidget/package-lock.json b/packages/javascript/plotlywidget/package-lock.json index 5eace29b5cc..3aa8a1384b1 100644 --- a/packages/javascript/plotlywidget/package-lock.json +++ b/packages/javascript/plotlywidget/package-lock.json @@ -297,9 +297,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.2", + "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-1.2.2.tgz", + "integrity": "sha512-GeJdumh5Do1JvnE2QbbLixZmJg6CzOfpzcAuS+qZadWK1Gj+yY/mj7IOVlgXCBg/yDqDmitGwSius+rrTpm8RA==" }, "@mapbox/unitbezier": { "version": "0.0.0", @@ -319,6 +319,11 @@ "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz", "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==" }, + "@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", @@ -358,43 +363,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": { @@ -778,9 +783,9 @@ "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==" + "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==" }, "bindings": { "version": "1.5.0", @@ -1582,11 +1587,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", @@ -1671,8 +1671,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "optional": true, "requires": { "ms": "2.0.0" } @@ -1695,6 +1693,11 @@ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" + }, "define-property": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", @@ -2028,11 +2031,6 @@ "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", @@ -2617,22 +2615,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", @@ -3378,6 +3360,14 @@ "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", "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==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, "ieee754": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", @@ -3426,11 +3416,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==" - }, "incremental-convex-hull": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/incremental-convex-hull/-/incremental-convex-hull-1.0.1.tgz", @@ -4277,9 +4262,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true, - "optional": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "multipipe": { "version": "0.3.1", @@ -4339,6 +4322,11 @@ } } }, + "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", @@ -4405,6 +4393,31 @@ "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" + }, + "dependencies": { + "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" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, "neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", @@ -4926,10 +4939,10 @@ } }, "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": "https://101968-45646037-gh.circle-artifacts.com/0/plotly.js.tgz", + "integrity": "sha512-KA7zPKUwULD/thPSu1ecblgeDC46tIlj4mdEWWxKCZIJc57Tv/6k2jboEepUelfXYdwZ9utRdO/2Ckm3hxOZ6Q==", "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", @@ -4944,16 +4957,13 @@ "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", @@ -4971,22 +4981,23 @@ "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": "^6.0.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", @@ -5048,6 +5059,16 @@ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" }, + "probe-image-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/probe-image-size/-/probe-image-size-6.0.0.tgz", + "integrity": "sha512-99PZ5+RU4gqiTfK5ZDMDkZtn6eL4WlKfFyVJV7lFQvH3iGmQ85DqMTOdxorERO26LHkevR2qsxnHp0x/2UDJPA==", + "requires": { + "deepmerge": "^4.0.0", + "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", @@ -5060,9 +5081,9 @@ "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==" + "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", @@ -5305,9 +5326,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", @@ -5328,9 +5349,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", @@ -5339,7 +5360,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" } }, "remove-trailing-separator": { @@ -5552,11 +5573,21 @@ "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==" + }, "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==" + }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -6059,6 +6090,14 @@ } } }, + "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" + } + }, "stream-shift": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", @@ -6153,9 +6192,9 @@ "integrity": "sha1-CSDitN9nyOrulsa2I0/inoc9upk=" }, "supercluster": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-7.1.0.tgz", - "integrity": "sha512-LDasImUAFMhTqhK+cUXfy9C2KTUqJ3gucLjmNLNFmKWOnDUBxLFLH9oKuXOTCLveecmxh8fbk8kgh6Q0gsfe2w==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-7.1.2.tgz", + "integrity": "sha512-bGA0pk3DYMjLTY1h+rbh0imi/I8k/Lg0rzdBGfyQs0Xkiix7jK2GUmH1qSD8+jq6U0Vu382QHr3+rbbiHqdKJA==", "requires": { "kdbush": "^3.0.0" } diff --git a/packages/javascript/plotlywidget/package.json b/packages/javascript/plotlywidget/package.json index adc9b7b0b03..a55ded044e3 100644 --- a/packages/javascript/plotlywidget/package.json +++ b/packages/javascript/plotlywidget/package.json @@ -33,7 +33,7 @@ "typescript": "~3.1.1" }, "dependencies": { - "plotly.js": "^1.58.4", + "plotly.js": "https://101968-45646037-gh.circle-artifacts.com/0/plotly.js.tgz", "@jupyter-widgets/base": "^2.0.0 || ^3.0.0 || ^4.0.0", "lodash": "^4.17.4" }, diff --git a/packages/python/plotly/codegen/resources/plot-schema.json b/packages/python/plotly/codegen/resources/plot-schema.json index 7552e48e7df..6258eb3d572 100644 --- a/packages/python/plotly/codegen/resources/plot-schema.json +++ b/packages/python/plotly/codegen/resources/plot-schema.json @@ -151,7 +151,7 @@ "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." + "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", @@ -170,7 +170,7 @@ "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." + "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": { @@ -202,28 +202,24 @@ 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, @@ -232,13 +228,11 @@ }, "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." @@ -247,31 +241,26 @@ "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" + "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", - "role": "data" + "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, - "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", @@ -292,14 +281,12 @@ "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 @@ -307,7 +294,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -316,14 +302,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -332,19 +316,16 @@ "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" } @@ -357,7 +338,6 @@ "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 @@ -366,7 +346,6 @@ "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 @@ -375,25 +354,21 @@ "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" } @@ -403,7 +378,6 @@ "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." }, @@ -412,7 +386,6 @@ "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." }, @@ -431,7 +404,6 @@ }, "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." }, @@ -439,13 +411,11 @@ "valType": "data_array", "editType": "calc+clearAxisTypes", "anim": true, - "description": "Sets the x coordinates.", - "role": "data" + "description": "Sets the x coordinates." }, "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." @@ -453,7 +423,6 @@ "dx": { "valType": "number", "dflt": 1, - "role": "info", "editType": "calc", "anim": true, "description": "Sets the x coordinate step. See `x0` for more info." @@ -462,13 +431,11 @@ "valType": "data_array", "editType": "calc+clearAxisTypes", "anim": true, - "description": "Sets the y coordinates.", - "role": "data" + "description": "Sets the y coordinates." }, "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." @@ -476,7 +443,6 @@ "dy": { "valType": "number", "dflt": 1, - "role": "info", "editType": "calc", "anim": true, "description": "Sets the y coordinate step. See `y0` for more info." @@ -484,26 +450,22 @@ "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." }, @@ -515,7 +477,6 @@ "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." }, @@ -527,20 +488,17 @@ "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" @@ -556,7 +514,6 @@ "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." }, @@ -567,13 +524,11 @@ "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", @@ -581,7 +536,6 @@ }, "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. ", @@ -589,7 +543,6 @@ }, "hovertext": { "valType": "string", - "role": "info", "dflt": "", "arrayOk": true, "editType": "style", @@ -605,7 +558,6 @@ "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*." }, @@ -615,13 +567,11 @@ "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 ``.", @@ -630,7 +580,6 @@ "line": { "color": { "valType": "color", - "role": "style", "editType": "style", "anim": true, "description": "Sets the line color." @@ -639,7 +588,6 @@ "valType": "number", "min": 0, "dflt": 2, - "role": "style", "editType": "style", "anim": true, "description": "Sets the line width (in px)." @@ -655,7 +603,6 @@ "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." }, @@ -664,7 +611,6 @@ "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)." }, @@ -679,14 +625,12 @@ "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." }, @@ -696,14 +640,12 @@ "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*." }, @@ -718,13 +660,11 @@ "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." @@ -1210,7 +1150,6 @@ ], "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." }, @@ -1219,7 +1158,6 @@ "min": 0, "max": 1, "arrayOk": true, - "role": "style", "editType": "style", "anim": true, "description": "Sets the marker opacity." @@ -1229,7 +1167,6 @@ "min": 0, "dflt": 6, "arrayOk": true, - "role": "style", "editType": "calc", "anim": true, "description": "Sets the marker size (in px)." @@ -1238,14 +1175,12 @@ "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`." }, @@ -1253,7 +1188,6 @@ "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." }, @@ -1264,7 +1198,6 @@ "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." }, @@ -1273,7 +1206,6 @@ "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." @@ -1282,14 +1214,12 @@ "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": {}, @@ -1297,7 +1227,6 @@ }, "cmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -1307,7 +1236,6 @@ }, "cmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -1317,7 +1245,6 @@ }, "cmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -1325,7 +1252,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -1335,7 +1261,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -1343,14 +1268,12 @@ }, "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", @@ -1359,13 +1282,11 @@ "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" } @@ -1381,14 +1302,12 @@ ], "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." }, @@ -1396,13 +1315,11 @@ "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" } @@ -1411,14 +1328,12 @@ "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": {}, @@ -1426,7 +1341,6 @@ }, "cmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -1436,7 +1350,6 @@ }, "cmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -1446,7 +1359,6 @@ }, "cmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -1454,7 +1366,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -1464,7 +1375,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -1472,14 +1382,12 @@ }, "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." @@ -1491,14 +1399,12 @@ "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.", @@ -1510,7 +1416,6 @@ "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" @@ -1519,7 +1424,6 @@ "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" }, @@ -1528,7 +1432,6 @@ "dflt": 1.02, "min": -2, "max": 3, - "role": "style", "description": "Sets the x position of the color bar (in plot fraction).", "editType": "colorbars" }, @@ -1540,13 +1443,11 @@ "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.", @@ -1554,7 +1455,6 @@ }, "y": { "valType": "number", - "role": "style", "dflt": 0.5, "min": -2, "max": 3, @@ -1568,14 +1468,12 @@ "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.", @@ -1584,7 +1482,6 @@ "outlinecolor": { "valType": "color", "dflt": "#444", - "role": "style", "editType": "colorbars", "description": "Sets the axis line color." }, @@ -1592,20 +1489,17 @@ "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.", @@ -1613,7 +1507,6 @@ }, "bgcolor": { "valType": "color", - "role": "style", "dflt": "rgba(0,0,0,0)", "description": "Sets the color of padded area.", "editType": "colorbars" @@ -1625,7 +1518,6 @@ "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)." @@ -1634,13 +1526,11 @@ "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" @@ -1649,7 +1539,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "colorbars", "impliedEdits": { "tickmode": "linear" @@ -1659,14 +1548,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -1675,7 +1562,6 @@ "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": "" @@ -1691,7 +1577,6 @@ "inside bottom" ], "dflt": "outside", - "role": "info", "description": "Determines where tick labels are drawn.", "editType": "colorbars" }, @@ -1699,7 +1584,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "colorbars", "description": "Sets the tick length (in px)." }, @@ -1707,28 +1591,24 @@ "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*.", @@ -1736,13 +1616,11 @@ }, "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", @@ -1752,14 +1630,12 @@ "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*" }, @@ -1768,14 +1644,12 @@ "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", @@ -1792,20 +1666,17 @@ "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`." }, @@ -1817,7 +1688,6 @@ "tickprefix": { "valType": "string", "dflt": "", - "role": "style", "editType": "colorbars", "description": "Sets a tick label prefix." }, @@ -1830,14 +1700,12 @@ "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." }, @@ -1850,14 +1718,12 @@ "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" }, @@ -1872,7 +1738,6 @@ "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." }, @@ -1880,7 +1745,6 @@ "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*." }, @@ -1893,21 +1757,18 @@ "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*.", @@ -1915,13 +1776,11 @@ }, "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.", @@ -1935,7 +1794,6 @@ "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" @@ -1946,14 +1804,12 @@ "_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*.", @@ -1961,13 +1817,11 @@ }, "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`.", @@ -1980,7 +1834,6 @@ "top", "bottom" ], - "role": "style", "dflt": "top", "description": "Deprecated in favor of color bar's `title.side`.", "editType": "colorbars" @@ -1990,20 +1843,17 @@ "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", @@ -2012,25 +1862,21 @@ "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" } @@ -2041,20 +1887,17 @@ "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." }, @@ -2064,7 +1907,6 @@ "textfont": { "color": { "valType": "color", - "role": "style", "editType": "style", "description": "Sets the text font color of selected points." }, @@ -2080,20 +1922,17 @@ "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." }, @@ -2103,7 +1942,6 @@ "textfont": { "color": { "valType": "color", - "role": "style", "editType": "style", "description": "Sets the text font color of unselected points, applied only when a selection exists." }, @@ -2128,14 +1966,12 @@ ], "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", @@ -2144,14 +1980,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "calc", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "style", "arrayOk": true }, @@ -2160,39 +1994,23 @@ "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." }, @@ -2204,33 +2022,28 @@ "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" + "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.", - "role": "data" + "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, - "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." }, @@ -2238,7 +2051,6 @@ "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" }, @@ -2246,24 +2058,20 @@ "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." }, @@ -2271,14 +2079,12 @@ "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." }, @@ -2286,7 +2092,6 @@ "_deprecated": { "opacity": { "valType": "number", - "role": "style", "editType": "style", "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity." } @@ -2294,13 +2099,11 @@ "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" } @@ -2308,7 +2111,6 @@ "error_y": { "visible": { "valType": "boolean", - "role": "info", "editType": "calc", "description": "Determines whether or not this set of error bars is visible." }, @@ -2320,33 +2122,28 @@ "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" + "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.", - "role": "data" + "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, - "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." }, @@ -2354,7 +2151,6 @@ "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" }, @@ -2362,19 +2158,16 @@ "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." }, @@ -2382,14 +2175,12 @@ "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." }, @@ -2397,7 +2188,6 @@ "_deprecated": { "opacity": { "valType": "number", - "role": "style", "editType": "style", "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity." } @@ -2405,13 +2195,11 @@ "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" } @@ -2436,7 +2224,6 @@ "thai", "ummalqura" ], - "role": "info", "editType": "calc", "dflt": "gregorian", "description": "Sets the calendar system to use with `x` date data." @@ -2461,102 +2248,76 @@ "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" } } }, @@ -2585,28 +2346,24 @@ 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, @@ -2615,13 +2372,11 @@ }, "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." @@ -2630,31 +2385,26 @@ "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" + "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", - "role": "data" + "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, - "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", @@ -2675,14 +2425,12 @@ "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 @@ -2690,7 +2438,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -2699,14 +2446,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -2715,19 +2460,16 @@ "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" } @@ -2740,7 +2482,6 @@ "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 @@ -2749,7 +2490,6 @@ "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 @@ -2758,25 +2498,21 @@ "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" } @@ -2786,7 +2522,6 @@ "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." }, @@ -2795,7 +2530,6 @@ "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." }, @@ -2814,7 +2548,6 @@ }, "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." }, @@ -2822,13 +2555,11 @@ "valType": "data_array", "editType": "calc+clearAxisTypes", "anim": true, - "description": "Sets the x coordinates.", - "role": "data" + "description": "Sets the x coordinates." }, "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." @@ -2836,7 +2567,6 @@ "dx": { "valType": "number", "dflt": 1, - "role": "info", "editType": "calc", "anim": true, "description": "Sets the x coordinate step. See `x0` for more info." @@ -2845,13 +2575,11 @@ "valType": "data_array", "editType": "calc+clearAxisTypes", "anim": true, - "description": "Sets the y coordinates.", - "role": "data" + "description": "Sets the y coordinates." }, "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." @@ -2859,7 +2587,6 @@ "dy": { "valType": "number", "dflt": 1, - "role": "info", "editType": "calc", "anim": true, "description": "Sets the y coordinate step. See `y0` for more info." @@ -2867,26 +2594,22 @@ "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." }, @@ -2898,7 +2621,6 @@ "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." }, @@ -2910,13 +2632,11 @@ "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", @@ -2924,7 +2644,6 @@ }, "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`.", @@ -2932,7 +2651,6 @@ }, "hovertext": { "valType": "string", - "role": "info", "dflt": "", "arrayOk": true, "editType": "style", @@ -2940,7 +2658,6 @@ }, "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 ``.", @@ -2948,7 +2665,6 @@ }, "textposition": { "valType": "enumerated", - "role": "info", "values": [ "inside", "outside", @@ -2968,21 +2684,18 @@ "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", @@ -2991,14 +2704,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "calc", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "style", "arrayOk": true }, @@ -3007,19 +2718,16 @@ "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" } @@ -3027,7 +2735,6 @@ "insidetextfont": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "calc", @@ -3036,14 +2743,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "calc", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "style", "arrayOk": true }, @@ -3052,19 +2757,16 @@ "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" } @@ -3072,7 +2774,6 @@ "outsidetextfont": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "calc", @@ -3081,14 +2782,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "calc", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "style", "arrayOk": true }, @@ -3097,19 +2796,16 @@ "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" } @@ -3122,7 +2818,6 @@ "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." @@ -3130,13 +2825,11 @@ "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" @@ -3148,7 +2841,6 @@ "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." }, @@ -3156,7 +2848,6 @@ "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." }, @@ -3165,7 +2856,6 @@ "dflt": null, "min": 0, "arrayOk": true, - "role": "info", "editType": "calc", "description": "Sets the bar width (in position axis units)." }, @@ -3175,7 +2865,6 @@ "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.", @@ -3185,13 +2874,11 @@ "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": {}, @@ -3199,7 +2886,6 @@ }, "cmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -3209,7 +2895,6 @@ }, "cmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -3219,7 +2904,6 @@ }, "cmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -3227,7 +2911,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -3237,7 +2920,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -3245,14 +2927,12 @@ }, "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", @@ -3261,13 +2941,11 @@ "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" } @@ -3276,13 +2954,11 @@ "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": {}, @@ -3290,7 +2966,6 @@ }, "cmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -3300,7 +2975,6 @@ }, "cmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -3310,7 +2984,6 @@ }, "cmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -3318,7 +2991,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -3328,7 +3000,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -3336,14 +3007,12 @@ }, "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." @@ -3355,14 +3024,12 @@ "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.", @@ -3374,7 +3041,6 @@ "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" @@ -3383,7 +3049,6 @@ "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" }, @@ -3392,7 +3057,6 @@ "dflt": 1.02, "min": -2, "max": 3, - "role": "style", "description": "Sets the x position of the color bar (in plot fraction).", "editType": "colorbars" }, @@ -3404,13 +3068,11 @@ "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.", @@ -3418,7 +3080,6 @@ }, "y": { "valType": "number", - "role": "style", "dflt": 0.5, "min": -2, "max": 3, @@ -3432,14 +3093,12 @@ "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.", @@ -3448,7 +3107,6 @@ "outlinecolor": { "valType": "color", "dflt": "#444", - "role": "style", "editType": "colorbars", "description": "Sets the axis line color." }, @@ -3456,20 +3114,17 @@ "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.", @@ -3477,7 +3132,6 @@ }, "bgcolor": { "valType": "color", - "role": "style", "dflt": "rgba(0,0,0,0)", "description": "Sets the color of padded area.", "editType": "colorbars" @@ -3489,7 +3143,6 @@ "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)." @@ -3498,13 +3151,11 @@ "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" @@ -3513,7 +3164,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "colorbars", "impliedEdits": { "tickmode": "linear" @@ -3523,14 +3173,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -3539,7 +3187,6 @@ "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": "" @@ -3555,7 +3202,6 @@ "inside bottom" ], "dflt": "outside", - "role": "info", "description": "Determines where tick labels are drawn.", "editType": "colorbars" }, @@ -3563,7 +3209,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "colorbars", "description": "Sets the tick length (in px)." }, @@ -3571,28 +3216,24 @@ "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*.", @@ -3600,13 +3241,11 @@ }, "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", @@ -3616,14 +3255,12 @@ "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*" }, @@ -3632,14 +3269,12 @@ "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", @@ -3656,20 +3291,17 @@ "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`." }, @@ -3681,7 +3313,6 @@ "tickprefix": { "valType": "string", "dflt": "", - "role": "style", "editType": "colorbars", "description": "Sets a tick label prefix." }, @@ -3694,14 +3325,12 @@ "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." }, @@ -3714,14 +3343,12 @@ "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" }, @@ -3736,7 +3363,6 @@ "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." }, @@ -3744,7 +3370,6 @@ "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*." }, @@ -3757,21 +3382,18 @@ "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*.", @@ -3779,13 +3401,11 @@ }, "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.", @@ -3799,7 +3419,6 @@ "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" @@ -3810,14 +3429,12 @@ "_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*.", @@ -3825,13 +3442,11 @@ }, "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`.", @@ -3844,7 +3459,6 @@ "top", "bottom" ], - "role": "style", "dflt": "top", "description": "Deprecated in favor of color bar's `title.side`.", "editType": "colorbars" @@ -3854,20 +3468,17 @@ "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", @@ -3879,34 +3490,29 @@ "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." @@ -3917,13 +3523,11 @@ "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." }, @@ -3933,7 +3537,6 @@ "textfont": { "color": { "valType": "color", - "role": "style", "editType": "style", "description": "Sets the text font color of selected points." }, @@ -3949,13 +3552,11 @@ "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." }, @@ -3965,7 +3566,6 @@ "textfont": { "color": { "valType": "color", - "role": "style", "editType": "style", "description": "Sets the text font color of unselected points, applied only when a selection exists." }, @@ -3975,22 +3575,9 @@ "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", @@ -4002,7 +3589,6 @@ "error_x": { "visible": { "valType": "boolean", - "role": "info", "editType": "calc", "description": "Determines whether or not this set of error bars is visible." }, @@ -4014,33 +3600,28 @@ "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" + "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.", - "role": "data" + "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, - "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." }, @@ -4048,7 +3629,6 @@ "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" }, @@ -4056,24 +3636,20 @@ "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." }, @@ -4081,14 +3657,12 @@ "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." }, @@ -4096,7 +3670,6 @@ "_deprecated": { "opacity": { "valType": "number", - "role": "style", "editType": "style", "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity." } @@ -4104,13 +3677,11 @@ "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" } @@ -4118,7 +3689,6 @@ "error_y": { "visible": { "valType": "boolean", - "role": "info", "editType": "calc", "description": "Determines whether or not this set of error bars is visible." }, @@ -4130,33 +3700,28 @@ "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" + "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.", - "role": "data" + "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, - "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." }, @@ -4164,7 +3729,6 @@ "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" }, @@ -4172,19 +3736,16 @@ "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." }, @@ -4192,14 +3753,12 @@ "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." }, @@ -4207,7 +3766,6 @@ "_deprecated": { "opacity": { "valType": "number", - "role": "style", "editType": "style", "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity." } @@ -4215,13 +3773,11 @@ "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" } @@ -4246,7 +3802,6 @@ "thai", "ummalqura" ], - "role": "info", "editType": "calc", "dflt": "gregorian", "description": "Sets the calendar system to use with `x` date data." @@ -4271,120 +3826,91 @@ "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": { @@ -4397,7 +3923,6 @@ "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." }, @@ -4409,7 +3934,6 @@ "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." }, @@ -4417,7 +3941,6 @@ "valType": "number", "min": 0, "max": 1, - "role": "style", "editType": "calc", "description": "Sets the gap (in plot fraction) between bars of adjacent location coordinates." }, @@ -4426,7 +3949,6 @@ "min": 0, "max": 1, "dflt": 0, - "role": "style", "editType": "calc", "description": "Sets the gap (in plot fraction) between bars of the same location coordinate." } @@ -4457,28 +3979,24 @@ 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, @@ -4487,38 +4005,32 @@ }, "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" + "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", - "role": "data" + "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, - "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", @@ -4539,14 +4051,12 @@ "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 @@ -4554,7 +4064,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -4563,14 +4072,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -4579,19 +4086,16 @@ "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" } @@ -4604,7 +4108,6 @@ "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 @@ -4613,7 +4116,6 @@ "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 @@ -4622,25 +4124,21 @@ "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" } @@ -4650,7 +4148,6 @@ "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." }, @@ -4659,7 +4156,6 @@ "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." }, @@ -4678,69 +4174,58 @@ }, "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" + "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.", - "role": "data" + "description": "Sets the x sample data or coordinates. See overview for more info." }, "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." }, @@ -4752,7 +4237,6 @@ "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." }, @@ -4764,49 +4248,41 @@ "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." }, @@ -4815,13 +4291,11 @@ "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." }, @@ -4833,7 +4307,6 @@ "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*." }, @@ -4841,7 +4314,6 @@ "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)." }, @@ -4849,7 +4321,6 @@ "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" }, @@ -4860,19 +4331,16 @@ "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." }, @@ -4882,7 +4350,6 @@ "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)." }, @@ -4894,14 +4361,12 @@ "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." @@ -4910,7 +4375,6 @@ "outliercolor": { "valType": "color", "dflt": "rgba(0, 0, 0, 0)", - "role": "style", "editType": "style", "description": "Sets the color of the outlier sample points." }, @@ -5394,7 +4858,6 @@ ], "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." }, @@ -5403,7 +4866,6 @@ "min": 0, "max": 1, "arrayOk": false, - "role": "style", "editType": "style", "description": "Sets the marker opacity.", "dflt": 1 @@ -5413,14 +4875,12 @@ "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." }, @@ -5428,7 +4888,6 @@ "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" @@ -5437,14 +4896,12 @@ "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" }, @@ -5452,7 +4909,6 @@ "valType": "number", "min": 0, "dflt": 1, - "role": "style", "editType": "style", "description": "Sets the border line width (in px) of the outlier sample points." }, @@ -5465,13 +4921,11 @@ "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", @@ -5482,7 +4936,6 @@ }, "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." }, @@ -5491,20 +4944,17 @@ "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." @@ -5515,20 +4965,17 @@ "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." }, @@ -5544,20 +4991,17 @@ "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." }, @@ -5569,7 +5013,6 @@ }, "text": { "valType": "string", - "role": "info", "dflt": "", "arrayOk": true, "editType": "calc", @@ -5577,7 +5020,6 @@ }, "hovertext": { "valType": "string", - "role": "info", "dflt": "", "arrayOk": true, "editType": "style", @@ -5585,7 +5027,6 @@ }, "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 ``.", @@ -5598,7 +5039,6 @@ "points" ], "dflt": "boxes+points", - "role": "info", "editType": "style", "description": "Do the hover effects highlight individual boxes or sample points or both?" }, @@ -5622,7 +5062,6 @@ "thai", "ummalqura" ], - "role": "info", "editType": "calc", "dflt": "gregorian", "description": "Sets the calendar system to use with `x` date data." @@ -5647,124 +5086,104 @@ "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" } @@ -5777,7 +5196,6 @@ "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." }, @@ -5786,7 +5204,6 @@ "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." }, @@ -5795,7 +5212,6 @@ "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." } @@ -5822,21 +5238,18 @@ 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, @@ -5845,38 +5258,32 @@ }, "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" + "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", - "role": "data" + "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, - "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", @@ -5897,14 +5304,12 @@ "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 @@ -5912,7 +5317,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -5921,14 +5325,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -5937,19 +5339,16 @@ "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" } @@ -5962,7 +5361,6 @@ "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 @@ -5971,7 +5369,6 @@ "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 @@ -5980,25 +5377,21 @@ "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" } @@ -6008,7 +5401,6 @@ "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." }, @@ -6017,7 +5409,6 @@ "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." }, @@ -6036,15 +5427,13 @@ }, "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" + "description": "Sets the z data." }, "x": { "valType": "data_array", @@ -6052,13 +5441,11 @@ "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": { @@ -6068,7 +5455,6 @@ "dx": { "valType": "number", "dflt": 1, - "role": "info", "editType": "calc", "description": "Sets the x coordinate step. See `x0` for more info.", "impliedEdits": { @@ -6081,13 +5467,11 @@ "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": { @@ -6097,7 +5481,6 @@ "dy": { "valType": "number", "dflt": 1, - "role": "info", "editType": "calc", "description": "Sets the y coordinate step. See `y0` for more info.", "impliedEdits": { @@ -6107,7 +5490,6 @@ "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": { @@ -6117,7 +5499,6 @@ "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": { @@ -6126,7 +5507,6 @@ }, "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": { @@ -6135,7 +5515,6 @@ }, "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": { @@ -6150,7 +5529,6 @@ "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": { @@ -6165,7 +5543,6 @@ "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": { @@ -6175,19 +5552,16 @@ "text": { "valType": "data_array", "editType": "calc", - "description": "Sets the text elements associated with each z value.", - "role": "data" + "description": "Sets the text elements associated with each z value." }, "hovertext": { "valType": "data_array", "editType": "calc", - "description": "Same as `text`.", - "role": "data" + "description": "Same as `text`." }, "transpose": { "valType": "boolean", "dflt": false, - "role": "info", "editType": "calc", "description": "Transposes the z data." }, @@ -6197,7 +5571,6 @@ "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)." }, @@ -6207,7 +5580,6 @@ "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)" }, @@ -6219,20 +5591,17 @@ 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." }, @@ -6240,7 +5609,6 @@ "valType": "number", "dflt": 0, "min": 0, - "role": "style", "editType": "plot", "description": "Sets the horizontal gap (in pixels) between bricks." }, @@ -6248,20 +5616,17 @@ "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 ``.", @@ -6269,14 +5634,12 @@ }, "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": {}, @@ -6284,7 +5647,6 @@ }, "zmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -6294,7 +5656,6 @@ }, "zmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -6304,7 +5665,6 @@ }, "zmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -6312,7 +5672,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -6322,7 +5681,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": false, "editType": "calc", "impliedEdits": {}, @@ -6330,14 +5688,12 @@ }, "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." @@ -6349,14 +5705,12 @@ "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.", @@ -6368,7 +5722,6 @@ "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" @@ -6377,7 +5730,6 @@ "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" }, @@ -6386,7 +5738,6 @@ "dflt": 1.02, "min": -2, "max": 3, - "role": "style", "description": "Sets the x position of the color bar (in plot fraction).", "editType": "colorbars" }, @@ -6398,13 +5749,11 @@ "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.", @@ -6412,7 +5761,6 @@ }, "y": { "valType": "number", - "role": "style", "dflt": 0.5, "min": -2, "max": 3, @@ -6426,14 +5774,12 @@ "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.", @@ -6442,7 +5788,6 @@ "outlinecolor": { "valType": "color", "dflt": "#444", - "role": "style", "editType": "colorbars", "description": "Sets the axis line color." }, @@ -6450,20 +5795,17 @@ "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.", @@ -6471,7 +5813,6 @@ }, "bgcolor": { "valType": "color", - "role": "style", "dflt": "rgba(0,0,0,0)", "description": "Sets the color of padded area.", "editType": "colorbars" @@ -6483,7 +5824,6 @@ "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)." @@ -6492,13 +5832,11 @@ "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" @@ -6507,7 +5845,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "colorbars", "impliedEdits": { "tickmode": "linear" @@ -6517,14 +5854,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -6533,7 +5868,6 @@ "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": "" @@ -6549,7 +5883,6 @@ "inside bottom" ], "dflt": "outside", - "role": "info", "description": "Determines where tick labels are drawn.", "editType": "colorbars" }, @@ -6557,7 +5890,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "colorbars", "description": "Sets the tick length (in px)." }, @@ -6565,28 +5897,24 @@ "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*.", @@ -6594,13 +5922,11 @@ }, "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", @@ -6610,14 +5936,12 @@ "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*" }, @@ -6626,14 +5950,12 @@ "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", @@ -6650,20 +5972,17 @@ "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`." }, @@ -6675,7 +5994,6 @@ "tickprefix": { "valType": "string", "dflt": "", - "role": "style", "editType": "colorbars", "description": "Sets a tick label prefix." }, @@ -6688,14 +6006,12 @@ "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." }, @@ -6708,14 +6024,12 @@ "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" }, @@ -6730,7 +6044,6 @@ "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." }, @@ -6738,7 +6051,6 @@ "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*." }, @@ -6751,21 +6063,18 @@ "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*.", @@ -6773,13 +6082,11 @@ }, "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.", @@ -6793,7 +6100,6 @@ "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" @@ -6804,14 +6110,12 @@ "_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*.", @@ -6819,13 +6123,11 @@ }, "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`.", @@ -6838,7 +6140,6 @@ "top", "bottom" ], - "role": "style", "dflt": "top", "description": "Deprecated in favor of color bar's `title.side`.", "editType": "colorbars" @@ -6848,20 +6149,17 @@ "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", @@ -6887,7 +6185,6 @@ "thai", "ummalqura" ], - "role": "info", "editType": "calc", "dflt": "gregorian", "description": "Sets the calendar system to use with `x` date data." @@ -6912,82 +6209,69 @@ "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" } @@ -7018,28 +6302,24 @@ 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, @@ -7048,44 +6328,37 @@ }, "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" + "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", - "role": "data" + "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, - "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", @@ -7106,14 +6379,12 @@ "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 @@ -7121,7 +6392,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -7130,14 +6400,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -7146,19 +6414,16 @@ "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" } @@ -7171,7 +6436,6 @@ "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 @@ -7180,7 +6444,6 @@ "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 @@ -7189,25 +6452,21 @@ "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" } @@ -7217,7 +6476,6 @@ "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." }, @@ -7226,7 +6484,6 @@ "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." }, @@ -7245,25 +6502,21 @@ }, "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" + "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.", - "role": "data" + "description": "Sets the sample data to be binned on the y axis." }, "text": { "valType": "string", - "role": "info", "dflt": "", "arrayOk": true, "editType": "calc", @@ -7271,7 +6524,6 @@ }, "hovertext": { "valType": "string", - "role": "info", "dflt": "", "arrayOk": true, "editType": "style", @@ -7279,7 +6531,6 @@ }, "orientation": { "valType": "enumerated", - "role": "info", "values": [ "v", "h" @@ -7296,7 +6547,6 @@ "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." @@ -7311,7 +6561,6 @@ "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)." }, @@ -7319,7 +6568,6 @@ "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." }, @@ -7330,7 +6578,6 @@ "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." }, @@ -7342,7 +6589,6 @@ "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." }, @@ -7353,26 +6599,22 @@ "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." }, @@ -7383,26 +6625,22 @@ "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." }, @@ -7412,27 +6650,23 @@ "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 ``.", @@ -7444,7 +6678,6 @@ "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 @@ -7453,13 +6686,11 @@ "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": {}, @@ -7467,7 +6698,6 @@ }, "cmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -7477,7 +6707,6 @@ }, "cmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -7487,7 +6716,6 @@ }, "cmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -7495,7 +6723,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -7505,7 +6732,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -7513,14 +6739,12 @@ }, "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", @@ -7529,13 +6753,11 @@ "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" } @@ -7544,13 +6766,11 @@ "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": {}, @@ -7558,7 +6778,6 @@ }, "cmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -7568,7 +6787,6 @@ }, "cmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -7578,7 +6796,6 @@ }, "cmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -7586,7 +6803,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -7596,7 +6812,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -7604,14 +6819,12 @@ }, "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." @@ -7623,14 +6836,12 @@ "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.", @@ -7642,7 +6853,6 @@ "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" @@ -7651,7 +6861,6 @@ "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" }, @@ -7660,7 +6869,6 @@ "dflt": 1.02, "min": -2, "max": 3, - "role": "style", "description": "Sets the x position of the color bar (in plot fraction).", "editType": "colorbars" }, @@ -7672,13 +6880,11 @@ "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.", @@ -7686,7 +6892,6 @@ }, "y": { "valType": "number", - "role": "style", "dflt": 0.5, "min": -2, "max": 3, @@ -7700,14 +6905,12 @@ "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.", @@ -7716,7 +6919,6 @@ "outlinecolor": { "valType": "color", "dflt": "#444", - "role": "style", "editType": "colorbars", "description": "Sets the axis line color." }, @@ -7724,20 +6926,17 @@ "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.", @@ -7745,7 +6944,6 @@ }, "bgcolor": { "valType": "color", - "role": "style", "dflt": "rgba(0,0,0,0)", "description": "Sets the color of padded area.", "editType": "colorbars" @@ -7757,7 +6955,6 @@ "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)." @@ -7766,13 +6963,11 @@ "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" @@ -7781,7 +6976,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "colorbars", "impliedEdits": { "tickmode": "linear" @@ -7791,14 +6985,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -7807,7 +6999,6 @@ "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": "" @@ -7823,7 +7014,6 @@ "inside bottom" ], "dflt": "outside", - "role": "info", "description": "Determines where tick labels are drawn.", "editType": "colorbars" }, @@ -7831,7 +7021,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "colorbars", "description": "Sets the tick length (in px)." }, @@ -7839,28 +7028,24 @@ "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*.", @@ -7868,13 +7053,11 @@ }, "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", @@ -7884,14 +7067,12 @@ "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*" }, @@ -7900,14 +7081,12 @@ "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", @@ -7924,20 +7103,17 @@ "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`." }, @@ -7949,7 +7125,6 @@ "tickprefix": { "valType": "string", "dflt": "", - "role": "style", "editType": "colorbars", "description": "Sets a tick label prefix." }, @@ -7962,14 +7137,12 @@ "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." }, @@ -7982,14 +7155,12 @@ "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" }, @@ -8004,7 +7175,6 @@ "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." }, @@ -8012,7 +7182,6 @@ "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*." }, @@ -8025,21 +7194,18 @@ "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*.", @@ -8047,13 +7213,11 @@ }, "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.", @@ -8067,7 +7231,6 @@ "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" @@ -8078,14 +7241,12 @@ "_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*.", @@ -8093,13 +7254,11 @@ }, "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`.", @@ -8112,7 +7271,6 @@ "top", "bottom" ], - "role": "style", "dflt": "top", "description": "Deprecated in favor of color bar's `title.side`.", "editType": "colorbars" @@ -8122,20 +7280,17 @@ "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", @@ -8147,34 +7302,29 @@ "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." @@ -8185,13 +7335,11 @@ "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." }, @@ -8201,7 +7349,6 @@ "textfont": { "color": { "valType": "color", - "role": "style", "editType": "style", "description": "Sets the text font color of selected points." }, @@ -8217,13 +7364,11 @@ "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." }, @@ -8233,7 +7378,6 @@ "textfont": { "color": { "valType": "color", - "role": "style", "editType": "style", "description": "Sets the text font color of unselected points, applied only when a selection exists." }, @@ -8246,7 +7390,6 @@ "_deprecated": { "bardir": { "valType": "enumerated", - "role": "info", "editType": "calc", "values": [ "v", @@ -8258,7 +7401,6 @@ "error_x": { "visible": { "valType": "boolean", - "role": "info", "editType": "calc", "description": "Determines whether or not this set of error bars is visible." }, @@ -8270,33 +7412,28 @@ "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" + "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.", - "role": "data" + "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, - "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." }, @@ -8304,7 +7441,6 @@ "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" }, @@ -8312,24 +7448,20 @@ "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." }, @@ -8337,14 +7469,12 @@ "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." }, @@ -8352,7 +7482,6 @@ "_deprecated": { "opacity": { "valType": "number", - "role": "style", "editType": "style", "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity." } @@ -8360,13 +7489,11 @@ "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" } @@ -8374,7 +7501,6 @@ "error_y": { "visible": { "valType": "boolean", - "role": "info", "editType": "calc", "description": "Determines whether or not this set of error bars is visible." }, @@ -8386,33 +7512,28 @@ "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" + "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.", - "role": "data" + "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, - "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." }, @@ -8420,7 +7541,6 @@ "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" }, @@ -8428,19 +7548,16 @@ "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." }, @@ -8448,14 +7565,12 @@ "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." }, @@ -8463,7 +7578,6 @@ "_deprecated": { "opacity": { "valType": "number", - "role": "style", "editType": "style", "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity." } @@ -8471,13 +7585,11 @@ "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" } @@ -8502,7 +7614,6 @@ "thai", "ummalqura" ], - "role": "info", "editType": "calc", "dflt": "gregorian", "description": "Sets the calendar system to use with `x` date data." @@ -8527,76 +7638,64 @@ "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" } @@ -8611,7 +7710,6 @@ "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." }, @@ -8623,7 +7721,6 @@ "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." }, @@ -8631,7 +7728,6 @@ "valType": "number", "min": 0, "max": 1, - "role": "style", "editType": "calc", "description": "Sets the gap (in plot fraction) between bars of adjacent location coordinates." }, @@ -8640,7 +7736,6 @@ "min": 0, "max": 1, "dflt": 0, - "role": "style", "editType": "calc", "description": "Sets the gap (in plot fraction) between bars of the same location coordinate." } @@ -8669,21 +7764,18 @@ 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, @@ -8692,38 +7784,32 @@ }, "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" + "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", - "role": "data" + "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, - "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", @@ -8744,14 +7830,12 @@ "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 @@ -8759,7 +7843,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -8768,14 +7851,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -8784,19 +7865,16 @@ "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" } @@ -8809,7 +7887,6 @@ "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 @@ -8818,7 +7895,6 @@ "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 @@ -8827,25 +7903,21 @@ "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" } @@ -8855,7 +7927,6 @@ "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." }, @@ -8864,7 +7935,6 @@ "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." }, @@ -8883,40 +7953,34 @@ }, "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" + "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.", - "role": "data" + "description": "Sets the sample data to be binned on the y axis." }, "z": { "valType": "data_array", "editType": "calc", - "description": "Sets the aggregation data.", - "role": "data" + "description": "Sets the aggregation data." }, "marker": { "color": { "valType": "data_array", "editType": "calc", - "description": "Sets the aggregation data.", - "role": "data" + "description": "Sets the aggregation data." }, "editType": "calc", "role": "object", "colorsrc": { "valType": "string", - "role": "info", "description": "Sets the source reference on Chart Studio Cloud for color .", "editType": "none" } @@ -8931,7 +7995,6 @@ "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)." }, @@ -8944,7 +8007,6 @@ "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." @@ -8953,26 +8015,22 @@ "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). " }, @@ -8983,26 +8041,22 @@ "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). " }, @@ -9012,34 +8066,29 @@ "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`" @@ -9048,7 +8097,6 @@ "valType": "number", "dflt": 0, "min": 0, - "role": "style", "editType": "plot", "description": "Sets the horizontal gap (in pixels) between bricks." }, @@ -9056,7 +8104,6 @@ "valType": "number", "dflt": 0, "min": 0, - "role": "style", "editType": "plot", "description": "Sets the vertical gap (in pixels) between bricks." }, @@ -9068,20 +8115,17 @@ 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 ``.", @@ -9089,14 +8133,12 @@ }, "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": {}, @@ -9104,7 +8146,6 @@ }, "zmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -9114,7 +8155,6 @@ }, "zmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -9124,7 +8164,6 @@ }, "zmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -9132,7 +8171,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -9142,7 +8180,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": false, "editType": "calc", "impliedEdits": {}, @@ -9150,14 +8187,12 @@ }, "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." @@ -9169,14 +8204,12 @@ "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.", @@ -9188,7 +8221,6 @@ "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" @@ -9197,7 +8229,6 @@ "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" }, @@ -9206,7 +8237,6 @@ "dflt": 1.02, "min": -2, "max": 3, - "role": "style", "description": "Sets the x position of the color bar (in plot fraction).", "editType": "colorbars" }, @@ -9218,13 +8248,11 @@ "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.", @@ -9232,7 +8260,6 @@ }, "y": { "valType": "number", - "role": "style", "dflt": 0.5, "min": -2, "max": 3, @@ -9246,14 +8273,12 @@ "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.", @@ -9262,7 +8287,6 @@ "outlinecolor": { "valType": "color", "dflt": "#444", - "role": "style", "editType": "colorbars", "description": "Sets the axis line color." }, @@ -9270,20 +8294,17 @@ "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.", @@ -9291,7 +8312,6 @@ }, "bgcolor": { "valType": "color", - "role": "style", "dflt": "rgba(0,0,0,0)", "description": "Sets the color of padded area.", "editType": "colorbars" @@ -9303,7 +8323,6 @@ "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)." @@ -9312,13 +8331,11 @@ "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" @@ -9327,7 +8344,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "colorbars", "impliedEdits": { "tickmode": "linear" @@ -9337,14 +8353,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -9353,7 +8367,6 @@ "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": "" @@ -9369,7 +8382,6 @@ "inside bottom" ], "dflt": "outside", - "role": "info", "description": "Determines where tick labels are drawn.", "editType": "colorbars" }, @@ -9377,7 +8389,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "colorbars", "description": "Sets the tick length (in px)." }, @@ -9385,28 +8396,24 @@ "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*.", @@ -9414,13 +8421,11 @@ }, "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", @@ -9430,14 +8435,12 @@ "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*" }, @@ -9446,14 +8449,12 @@ "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", @@ -9470,20 +8471,17 @@ "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`." }, @@ -9495,7 +8493,6 @@ "tickprefix": { "valType": "string", "dflt": "", - "role": "style", "editType": "colorbars", "description": "Sets a tick label prefix." }, @@ -9508,14 +8505,12 @@ "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." }, @@ -9528,14 +8523,12 @@ "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" }, @@ -9550,7 +8543,6 @@ "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." }, @@ -9558,7 +8550,6 @@ "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*." }, @@ -9571,21 +8562,18 @@ "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*.", @@ -9593,13 +8581,11 @@ }, "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.", @@ -9613,7 +8599,6 @@ "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" @@ -9624,14 +8609,12 @@ "_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*.", @@ -9639,13 +8622,11 @@ }, "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`.", @@ -9658,7 +8639,6 @@ "top", "bottom" ], - "role": "style", "dflt": "top", "description": "Deprecated in favor of color bar's `title.side`.", "editType": "colorbars" @@ -9668,20 +8648,17 @@ "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", @@ -9707,7 +8684,6 @@ "thai", "ummalqura" ], - "role": "info", "editType": "calc", "dflt": "gregorian", "description": "Sets the calendar system to use with `x` date data." @@ -9732,70 +8708,59 @@ "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" } @@ -9825,28 +8790,24 @@ 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, @@ -9855,38 +8816,32 @@ }, "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" + "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", - "role": "data" + "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, - "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", @@ -9907,14 +8862,12 @@ "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 @@ -9922,7 +8875,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -9931,14 +8883,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -9947,19 +8897,16 @@ "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" } @@ -9972,7 +8919,6 @@ "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 @@ -9981,7 +8927,6 @@ "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 @@ -9990,25 +8935,21 @@ "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" } @@ -10018,7 +8959,6 @@ "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." }, @@ -10027,7 +8967,6 @@ "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." }, @@ -10046,40 +8985,34 @@ }, "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" + "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.", - "role": "data" + "description": "Sets the sample data to be binned on the y axis." }, "z": { "valType": "data_array", "editType": "calc", - "description": "Sets the aggregation data.", - "role": "data" + "description": "Sets the aggregation data." }, "marker": { "color": { "valType": "data_array", "editType": "calc", - "description": "Sets the aggregation data.", - "role": "data" + "description": "Sets the aggregation data." }, "editType": "calc", "role": "object", "colorsrc": { "valType": "string", - "role": "info", "description": "Sets the source reference on Chart Studio Cloud for color .", "editType": "none" } @@ -10094,7 +9027,6 @@ "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)." }, @@ -10107,7 +9039,6 @@ "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." @@ -10116,26 +9047,22 @@ "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). " }, @@ -10146,26 +9073,22 @@ "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). " }, @@ -10175,34 +9098,29 @@ "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`" @@ -10210,7 +9128,6 @@ "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`." @@ -10219,7 +9136,6 @@ "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." }, @@ -10231,14 +9147,12 @@ "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 @@ -10248,7 +9162,6 @@ "end": { "valType": "number", "dflt": null, - "role": "style", "editType": "plot", "impliedEdits": { "^autocontour": false @@ -10259,7 +9172,6 @@ "valType": "number", "dflt": null, "min": 0, - "role": "style", "editType": "plot", "impliedEdits": { "^autocontour": false @@ -10275,28 +9187,24 @@ "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", @@ -10304,13 +9212,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot" }, "color": { "valType": "color", - "role": "style", "editType": "style" }, "editType": "plot", @@ -10320,7 +9226,6 @@ "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" }, @@ -10341,7 +9246,6 @@ "](", ")[" ], - "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." @@ -10349,7 +9253,6 @@ "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." }, @@ -10363,14 +9266,12 @@ "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 @@ -10386,7 +9287,6 @@ "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*)." }, @@ -10395,7 +9295,6 @@ "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." }, @@ -10405,13 +9304,11 @@ "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 ``.", @@ -10419,7 +9316,6 @@ }, "zauto": { "valType": "boolean", - "role": "info", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -10427,7 +9323,6 @@ }, "zmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -10437,7 +9332,6 @@ }, "zmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -10447,7 +9341,6 @@ }, "zmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -10455,7 +9348,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -10465,7 +9357,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -10473,14 +9364,12 @@ }, "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." @@ -10492,14 +9381,12 @@ "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.", @@ -10511,7 +9398,6 @@ "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" @@ -10520,7 +9406,6 @@ "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" }, @@ -10529,7 +9414,6 @@ "dflt": 1.02, "min": -2, "max": 3, - "role": "style", "description": "Sets the x position of the color bar (in plot fraction).", "editType": "colorbars" }, @@ -10541,13 +9425,11 @@ "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.", @@ -10555,7 +9437,6 @@ }, "y": { "valType": "number", - "role": "style", "dflt": 0.5, "min": -2, "max": 3, @@ -10569,14 +9450,12 @@ "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.", @@ -10585,7 +9464,6 @@ "outlinecolor": { "valType": "color", "dflt": "#444", - "role": "style", "editType": "colorbars", "description": "Sets the axis line color." }, @@ -10593,20 +9471,17 @@ "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.", @@ -10614,7 +9489,6 @@ }, "bgcolor": { "valType": "color", - "role": "style", "dflt": "rgba(0,0,0,0)", "description": "Sets the color of padded area.", "editType": "colorbars" @@ -10626,7 +9500,6 @@ "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)." @@ -10635,13 +9508,11 @@ "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" @@ -10650,7 +9521,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "colorbars", "impliedEdits": { "tickmode": "linear" @@ -10660,14 +9530,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -10676,7 +9544,6 @@ "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": "" @@ -10692,7 +9559,6 @@ "inside bottom" ], "dflt": "outside", - "role": "info", "description": "Determines where tick labels are drawn.", "editType": "colorbars" }, @@ -10700,7 +9566,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "colorbars", "description": "Sets the tick length (in px)." }, @@ -10708,28 +9573,24 @@ "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*.", @@ -10737,13 +9598,11 @@ }, "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", @@ -10753,14 +9612,12 @@ "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*" }, @@ -10769,14 +9626,12 @@ "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", @@ -10793,20 +9648,17 @@ "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`." }, @@ -10818,7 +9670,6 @@ "tickprefix": { "valType": "string", "dflt": "", - "role": "style", "editType": "colorbars", "description": "Sets a tick label prefix." }, @@ -10831,14 +9682,12 @@ "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." }, @@ -10851,14 +9700,12 @@ "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" }, @@ -10873,7 +9720,6 @@ "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." }, @@ -10881,7 +9727,6 @@ "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*." }, @@ -10894,21 +9739,18 @@ "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*.", @@ -10916,13 +9758,11 @@ }, "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.", @@ -10936,7 +9776,6 @@ "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" @@ -10947,14 +9786,12 @@ "_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*.", @@ -10962,13 +9799,11 @@ }, "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`.", @@ -10981,7 +9816,6 @@ "top", "bottom" ], - "role": "style", "dflt": "top", "description": "Deprecated in favor of color bar's `title.side`.", "editType": "colorbars" @@ -10991,20 +9825,17 @@ "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", @@ -11030,7 +9861,6 @@ "thai", "ummalqura" ], - "role": "info", "editType": "calc", "dflt": "gregorian", "description": "Sets the calendar system to use with `x` date data." @@ -11055,70 +9885,59 @@ "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" } @@ -11146,28 +9965,24 @@ 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, @@ -11176,38 +9991,32 @@ }, "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" + "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", - "role": "data" + "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, - "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", @@ -11228,14 +10037,12 @@ "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 @@ -11243,7 +10050,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -11252,14 +10058,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -11268,19 +10072,16 @@ "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" } @@ -11293,7 +10094,6 @@ "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 @@ -11302,7 +10102,6 @@ "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 @@ -11311,25 +10110,21 @@ "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" } @@ -11339,7 +10134,6 @@ "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." }, @@ -11348,7 +10142,6 @@ "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." }, @@ -11367,15 +10160,13 @@ }, "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" + "description": "Sets the z data." }, "x": { "valType": "data_array", @@ -11383,13 +10174,11 @@ "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": { @@ -11399,7 +10188,6 @@ "dx": { "valType": "number", "dflt": 1, - "role": "info", "editType": "calc", "description": "Sets the x coordinate step. See `x0` for more info.", "impliedEdits": { @@ -11412,13 +10200,11 @@ "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": { @@ -11428,7 +10214,6 @@ "dy": { "valType": "number", "dflt": 1, - "role": "info", "editType": "calc", "description": "Sets the y coordinate step. See `y0` for more info.", "impliedEdits": { @@ -11438,7 +10223,6 @@ "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": { @@ -11448,7 +10232,6 @@ "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": { @@ -11457,13 +10240,11 @@ }, "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." }, @@ -11475,7 +10256,6 @@ "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": { @@ -11490,7 +10270,6 @@ "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": { @@ -11500,19 +10279,16 @@ "text": { "valType": "data_array", "editType": "calc", - "description": "Sets the text elements associated with each z value.", - "role": "data" + "description": "Sets the text elements associated with each z value." }, "hovertext": { "valType": "data_array", "editType": "calc", - "description": "Same as `text`.", - "role": "data" + "description": "Same as `text`." }, "transpose": { "valType": "boolean", "dflt": false, - "role": "info", "editType": "calc", "description": "Transposes the z data." }, @@ -11522,7 +10298,6 @@ "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)." }, @@ -11532,20 +10307,17 @@ "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 ``.", @@ -11554,26 +10326,22 @@ "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`." @@ -11582,7 +10350,6 @@ "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." }, @@ -11594,14 +10361,12 @@ "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 @@ -11611,7 +10376,6 @@ "end": { "valType": "number", "dflt": null, - "role": "style", "editType": "plot", "impliedEdits": { "^autocontour": false @@ -11622,7 +10386,6 @@ "valType": "number", "dflt": null, "min": 0, - "role": "style", "editType": "plot", "impliedEdits": { "^autocontour": false @@ -11638,28 +10401,24 @@ "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", @@ -11667,13 +10426,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot" }, "color": { "valType": "color", - "role": "style", "editType": "style" }, "editType": "plot", @@ -11683,7 +10440,6 @@ "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" }, @@ -11704,7 +10460,6 @@ "](", ")[" ], - "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." @@ -11712,7 +10467,6 @@ "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." }, @@ -11726,14 +10480,12 @@ "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*." }, @@ -11748,7 +10500,6 @@ "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*)." }, @@ -11757,7 +10508,6 @@ "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." }, @@ -11766,7 +10516,6 @@ }, "zauto": { "valType": "boolean", - "role": "info", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -11774,7 +10523,6 @@ }, "zmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -11784,7 +10532,6 @@ }, "zmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -11794,7 +10541,6 @@ }, "zmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -11802,7 +10548,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -11812,7 +10557,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": false, "editType": "calc", "impliedEdits": {}, @@ -11820,14 +10564,12 @@ }, "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." @@ -11839,14 +10581,12 @@ "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.", @@ -11858,7 +10598,6 @@ "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" @@ -11867,7 +10606,6 @@ "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" }, @@ -11876,7 +10614,6 @@ "dflt": 1.02, "min": -2, "max": 3, - "role": "style", "description": "Sets the x position of the color bar (in plot fraction).", "editType": "colorbars" }, @@ -11888,13 +10625,11 @@ "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.", @@ -11902,7 +10637,6 @@ }, "y": { "valType": "number", - "role": "style", "dflt": 0.5, "min": -2, "max": 3, @@ -11916,14 +10650,12 @@ "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.", @@ -11932,7 +10664,6 @@ "outlinecolor": { "valType": "color", "dflt": "#444", - "role": "style", "editType": "colorbars", "description": "Sets the axis line color." }, @@ -11940,20 +10671,17 @@ "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.", @@ -11961,7 +10689,6 @@ }, "bgcolor": { "valType": "color", - "role": "style", "dflt": "rgba(0,0,0,0)", "description": "Sets the color of padded area.", "editType": "colorbars" @@ -11973,7 +10700,6 @@ "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)." @@ -11982,13 +10708,11 @@ "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" @@ -11997,7 +10721,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "colorbars", "impliedEdits": { "tickmode": "linear" @@ -12007,14 +10730,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -12023,7 +10744,6 @@ "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": "" @@ -12039,7 +10759,6 @@ "inside bottom" ], "dflt": "outside", - "role": "info", "description": "Determines where tick labels are drawn.", "editType": "colorbars" }, @@ -12047,7 +10766,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "colorbars", "description": "Sets the tick length (in px)." }, @@ -12055,28 +10773,24 @@ "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*.", @@ -12084,13 +10798,11 @@ }, "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", @@ -12100,14 +10812,12 @@ "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*" }, @@ -12116,14 +10826,12 @@ "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", @@ -12140,20 +10848,17 @@ "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`." }, @@ -12165,7 +10870,6 @@ "tickprefix": { "valType": "string", "dflt": "", - "role": "style", "editType": "colorbars", "description": "Sets a tick label prefix." }, @@ -12178,14 +10882,12 @@ "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." }, @@ -12198,14 +10900,12 @@ "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" }, @@ -12220,7 +10920,6 @@ "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." }, @@ -12228,7 +10927,6 @@ "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*." }, @@ -12241,21 +10939,18 @@ "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*.", @@ -12263,13 +10958,11 @@ }, "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.", @@ -12283,7 +10976,6 @@ "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" @@ -12294,14 +10986,12 @@ "_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*.", @@ -12309,13 +10999,11 @@ }, "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`.", @@ -12328,7 +11016,6 @@ "top", "bottom" ], - "role": "style", "dflt": "top", "description": "Deprecated in favor of color bar's `title.side`.", "editType": "colorbars" @@ -12338,20 +11025,17 @@ "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", @@ -12377,7 +11061,6 @@ "thai", "ummalqura" ], - "role": "info", "editType": "calc", "dflt": "gregorian", "description": "Sets the calendar system to use with `x` date data." @@ -12402,82 +11085,69 @@ "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" } @@ -12505,28 +11175,24 @@ 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, @@ -12535,52 +11201,44 @@ }, "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" + "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", - "role": "data" + "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, - "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 @@ -12588,7 +11246,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -12597,14 +11254,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -12613,19 +11268,16 @@ "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" } @@ -12638,7 +11290,6 @@ "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 @@ -12647,7 +11298,6 @@ "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 @@ -12656,25 +11306,21 @@ "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" } @@ -12684,7 +11330,6 @@ "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." }, @@ -12693,7 +11338,6 @@ "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." }, @@ -12712,31 +11356,26 @@ }, "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" + "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`.", - "role": "data" + "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`.", - "role": "data" + "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", - "role": "info", "dflt": 0, "min": 0, "editType": "calc", @@ -12752,14 +11391,12 @@ "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", @@ -12767,7 +11404,6 @@ }, "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`.", @@ -12775,7 +11411,6 @@ }, "hovertext": { "valType": "string", - "role": "info", "dflt": "", "arrayOk": true, "editType": "style", @@ -12784,7 +11419,6 @@ "line": { "color": { "valType": "color", - "role": "style", "editType": "style", "description": "Sets the line color." }, @@ -12792,7 +11426,6 @@ "valType": "number", "min": 0, "dflt": 2, - "role": "style", "editType": "style", "description": "Sets the line width (in px)." }, @@ -12807,7 +11440,6 @@ "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*)." }, @@ -12818,7 +11450,6 @@ "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." }, @@ -12827,7 +11458,6 @@ "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)." }, @@ -12837,14 +11467,12 @@ "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*." }, @@ -12855,14 +11483,12 @@ "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." }, @@ -13347,7 +11973,6 @@ ], "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." }, @@ -13356,7 +11981,6 @@ "min": 0, "max": 1, "arrayOk": true, - "role": "style", "editType": "style", "description": "Sets the marker opacity." }, @@ -13364,7 +11988,6 @@ "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." }, @@ -13373,14 +11996,12 @@ "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`." }, @@ -13388,7 +12009,6 @@ "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." }, @@ -13399,7 +12019,6 @@ "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." }, @@ -13408,7 +12027,6 @@ "valType": "number", "min": 0, "arrayOk": true, - "role": "style", "editType": "style", "description": "Sets the width (in px) of the lines bounding the marker points." }, @@ -13416,13 +12034,11 @@ "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": {}, @@ -13430,7 +12046,6 @@ }, "cmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -13440,7 +12055,6 @@ }, "cmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -13450,7 +12064,6 @@ }, "cmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -13458,7 +12071,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -13468,7 +12080,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -13476,14 +12087,12 @@ }, "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", @@ -13492,13 +12101,11 @@ "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" } @@ -13514,14 +12121,12 @@ ], "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." }, @@ -13529,13 +12134,11 @@ "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" } @@ -13544,13 +12147,11 @@ "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": {}, @@ -13558,7 +12159,6 @@ }, "cmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -13568,7 +12168,6 @@ }, "cmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -13578,7 +12177,6 @@ }, "cmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -13586,7 +12184,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -13596,7 +12193,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -13604,14 +12200,12 @@ }, "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." @@ -13623,14 +12217,12 @@ "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.", @@ -13642,7 +12234,6 @@ "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" @@ -13651,7 +12242,6 @@ "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" }, @@ -13660,7 +12250,6 @@ "dflt": 1.02, "min": -2, "max": 3, - "role": "style", "description": "Sets the x position of the color bar (in plot fraction).", "editType": "colorbars" }, @@ -13672,13 +12261,11 @@ "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.", @@ -13686,7 +12273,6 @@ }, "y": { "valType": "number", - "role": "style", "dflt": 0.5, "min": -2, "max": 3, @@ -13700,14 +12286,12 @@ "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.", @@ -13716,7 +12300,6 @@ "outlinecolor": { "valType": "color", "dflt": "#444", - "role": "style", "editType": "colorbars", "description": "Sets the axis line color." }, @@ -13724,20 +12307,17 @@ "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.", @@ -13745,7 +12325,6 @@ }, "bgcolor": { "valType": "color", - "role": "style", "dflt": "rgba(0,0,0,0)", "description": "Sets the color of padded area.", "editType": "colorbars" @@ -13757,7 +12336,6 @@ "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)." @@ -13766,13 +12344,11 @@ "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" @@ -13781,7 +12357,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "colorbars", "impliedEdits": { "tickmode": "linear" @@ -13791,14 +12366,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -13807,7 +12380,6 @@ "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": "" @@ -13823,7 +12395,6 @@ "inside bottom" ], "dflt": "outside", - "role": "info", "description": "Determines where tick labels are drawn.", "editType": "colorbars" }, @@ -13831,7 +12402,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "colorbars", "description": "Sets the tick length (in px)." }, @@ -13839,28 +12409,24 @@ "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*.", @@ -13868,13 +12434,11 @@ }, "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", @@ -13884,14 +12448,12 @@ "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*" }, @@ -13900,14 +12462,12 @@ "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", @@ -13924,20 +12484,17 @@ "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`." }, @@ -13949,7 +12506,6 @@ "tickprefix": { "valType": "string", "dflt": "", - "role": "style", "editType": "colorbars", "description": "Sets a tick label prefix." }, @@ -13962,14 +12518,12 @@ "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." }, @@ -13982,14 +12536,12 @@ "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" }, @@ -14004,7 +12556,6 @@ "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." }, @@ -14012,7 +12563,6 @@ "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*." }, @@ -14025,21 +12575,18 @@ "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*.", @@ -14047,13 +12594,11 @@ }, "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.", @@ -14067,7 +12612,6 @@ "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" @@ -14078,14 +12622,12 @@ "_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*.", @@ -14093,13 +12635,11 @@ }, "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`.", @@ -14112,7 +12652,6 @@ "top", "bottom" ], - "role": "style", "dflt": "top", "description": "Deprecated in favor of color bar's `title.side`.", "editType": "colorbars" @@ -14122,20 +12661,17 @@ "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", @@ -14144,25 +12680,21 @@ "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" } @@ -14170,7 +12702,6 @@ "textfont": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "calc", @@ -14179,14 +12710,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "calc", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "style", "arrayOk": true }, @@ -14195,19 +12724,16 @@ "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" } @@ -14227,7 +12753,6 @@ ], "dflt": "middle center", "arrayOk": true, - "role": "style", "editType": "calc", "description": "Sets the positions of the `text` elements with respects to the (x,y) coordinates." }, @@ -14237,20 +12762,17 @@ "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." }, @@ -14260,7 +12782,6 @@ "textfont": { "color": { "valType": "color", - "role": "style", "editType": "style", "description": "Sets the text font color of selected points." }, @@ -14276,20 +12797,17 @@ "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." }, @@ -14299,7 +12817,6 @@ "textfont": { "color": { "valType": "color", - "role": "style", "editType": "style", "description": "Sets the text font color of unselected points, applied only when a selection exists." }, @@ -14311,7 +12828,6 @@ }, "hoverinfo": { "valType": "flaglist", - "role": "info", "flags": [ "a", "b", @@ -14335,13 +12851,11 @@ "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 ``.", @@ -14349,80 +12863,67 @@ }, "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" } @@ -14453,28 +12954,24 @@ 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, @@ -14483,38 +12980,32 @@ }, "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" + "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", - "role": "data" + "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, - "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", @@ -14535,14 +13026,12 @@ "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 @@ -14550,7 +13039,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -14559,14 +13047,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -14575,19 +13061,16 @@ "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" } @@ -14600,7 +13083,6 @@ "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 @@ -14609,7 +13091,6 @@ "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 @@ -14618,25 +13099,21 @@ "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" } @@ -14646,7 +13123,6 @@ "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." }, @@ -14655,7 +13131,6 @@ "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." }, @@ -14674,37 +13149,31 @@ }, "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" + "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.", - "role": "data" + "description": "Sets the x sample data or coordinates. See overview for more info." }, "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)." }, @@ -14714,20 +13183,17 @@ "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" @@ -14739,7 +13205,6 @@ "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." }, @@ -14751,7 +13216,6 @@ "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." }, @@ -14767,20 +13231,17 @@ "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", @@ -14791,7 +13252,6 @@ }, "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." }, @@ -14803,7 +13263,6 @@ "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*." }, @@ -14811,7 +13270,6 @@ "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." }, @@ -14819,14 +13277,12 @@ "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." @@ -14835,7 +13291,6 @@ "outliercolor": { "valType": "color", "dflt": "rgba(0, 0, 0, 0)", - "role": "style", "editType": "style", "description": "Sets the color of the outlier sample points." }, @@ -15319,7 +13774,6 @@ ], "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." }, @@ -15328,7 +13782,6 @@ "min": 0, "max": 1, "arrayOk": false, - "role": "style", "editType": "style", "description": "Sets the marker opacity.", "dflt": 1 @@ -15338,14 +13791,12 @@ "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." }, @@ -15353,7 +13804,6 @@ "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" @@ -15362,14 +13812,12 @@ "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" }, @@ -15377,7 +13825,6 @@ "valType": "number", "min": 0, "dflt": 1, - "role": "style", "editType": "style", "description": "Sets the border line width (in px) of the outlier sample points." }, @@ -15389,7 +13836,6 @@ }, "text": { "valType": "string", - "role": "info", "dflt": "", "arrayOk": true, "editType": "calc", @@ -15397,7 +13843,6 @@ }, "hovertext": { "valType": "string", - "role": "info", "dflt": "", "arrayOk": true, "editType": "style", @@ -15405,7 +13850,6 @@ }, "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 ``.", @@ -15415,7 +13859,6 @@ "visible": { "valType": "boolean", "dflt": false, - "role": "info", "editType": "plot", "description": "Determines if an miniature box plot is drawn inside the violins. " }, @@ -15424,27 +13867,23 @@ "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." }, @@ -15458,20 +13897,17 @@ "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." }, @@ -15486,20 +13922,17 @@ "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." @@ -15510,20 +13943,17 @@ "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." }, @@ -15539,20 +13969,17 @@ "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." }, @@ -15573,75 +14000,63 @@ "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" } @@ -15654,7 +14069,6 @@ "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." }, @@ -15663,7 +14077,6 @@ "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." }, @@ -15672,7 +14085,6 @@ "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." } @@ -15701,28 +14113,24 @@ 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, @@ -15731,52 +14139,44 @@ }, "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" + "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", - "role": "data" + "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, - "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 @@ -15784,7 +14184,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -15793,14 +14192,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -15809,19 +14206,16 @@ "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" } @@ -15834,7 +14228,6 @@ "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 @@ -15843,7 +14236,6 @@ "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 @@ -15852,25 +14244,21 @@ "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" } @@ -15880,7 +14268,6 @@ "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." }, @@ -15889,7 +14276,6 @@ "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." }, @@ -15908,73 +14294,62 @@ }, "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" + "description": "Sets the x coordinates." }, "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" + "description": "Sets the y coordinates." }, "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." }, @@ -15986,7 +14361,6 @@ "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." }, @@ -15998,13 +14372,11 @@ "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", @@ -16012,7 +14384,6 @@ }, "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 ``.", @@ -16020,7 +14391,6 @@ }, "hoverinfo": { "valType": "flaglist", - "role": "info", "flags": [ "name", "x", @@ -16053,14 +14423,12 @@ "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`.", @@ -16068,7 +14436,6 @@ }, "text": { "valType": "string", - "role": "info", "dflt": "", "arrayOk": true, "editType": "calc", @@ -16076,7 +14443,6 @@ }, "textposition": { "valType": "enumerated", - "role": "info", "values": [ "inside", "outside", @@ -16096,21 +14462,18 @@ "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", @@ -16119,14 +14482,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "calc", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "style", "arrayOk": true }, @@ -16135,19 +14496,16 @@ "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" } @@ -16155,7 +14513,6 @@ "insidetextfont": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "calc", @@ -16164,14 +14521,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "calc", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "style", "arrayOk": true }, @@ -16180,19 +14535,16 @@ "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" } @@ -16200,7 +14552,6 @@ "outsidetextfont": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "calc", @@ -16209,14 +14560,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "calc", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "style", "arrayOk": true }, @@ -16225,19 +14574,16 @@ "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" } @@ -16250,7 +14596,6 @@ "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." @@ -16258,13 +14603,11 @@ "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" @@ -16276,7 +14619,6 @@ "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." }, @@ -16285,7 +14627,6 @@ "dflt": null, "min": 0, "arrayOk": false, - "role": "info", "editType": "calc", "description": "Sets the bar width (in position axis units)." }, @@ -16295,7 +14636,6 @@ "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 @@ -16304,13 +14644,11 @@ "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": {}, @@ -16318,7 +14656,6 @@ }, "cmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -16328,7 +14665,6 @@ }, "cmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -16338,7 +14674,6 @@ }, "cmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -16346,7 +14681,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -16356,7 +14690,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -16364,14 +14697,12 @@ }, "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", @@ -16380,13 +14711,11 @@ "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" } @@ -16395,13 +14724,11 @@ "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": {}, @@ -16409,7 +14736,6 @@ }, "cmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -16419,7 +14745,6 @@ }, "cmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -16429,7 +14754,6 @@ }, "cmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -16437,7 +14761,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -16447,7 +14770,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -16455,14 +14777,12 @@ }, "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." @@ -16474,14 +14794,12 @@ "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.", @@ -16493,7 +14811,6 @@ "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" @@ -16502,7 +14819,6 @@ "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" }, @@ -16511,7 +14827,6 @@ "dflt": 1.02, "min": -2, "max": 3, - "role": "style", "description": "Sets the x position of the color bar (in plot fraction).", "editType": "colorbars" }, @@ -16523,13 +14838,11 @@ "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.", @@ -16537,7 +14850,6 @@ }, "y": { "valType": "number", - "role": "style", "dflt": 0.5, "min": -2, "max": 3, @@ -16551,14 +14863,12 @@ "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.", @@ -16567,7 +14877,6 @@ "outlinecolor": { "valType": "color", "dflt": "#444", - "role": "style", "editType": "colorbars", "description": "Sets the axis line color." }, @@ -16575,20 +14884,17 @@ "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.", @@ -16596,7 +14902,6 @@ }, "bgcolor": { "valType": "color", - "role": "style", "dflt": "rgba(0,0,0,0)", "description": "Sets the color of padded area.", "editType": "colorbars" @@ -16608,7 +14913,6 @@ "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)." @@ -16617,13 +14921,11 @@ "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" @@ -16632,7 +14934,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "colorbars", "impliedEdits": { "tickmode": "linear" @@ -16642,14 +14943,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -16658,7 +14957,6 @@ "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": "" @@ -16674,7 +14972,6 @@ "inside bottom" ], "dflt": "outside", - "role": "info", "description": "Determines where tick labels are drawn.", "editType": "colorbars" }, @@ -16682,7 +14979,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "colorbars", "description": "Sets the tick length (in px)." }, @@ -16690,28 +14986,24 @@ "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*.", @@ -16719,13 +15011,11 @@ }, "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", @@ -16735,14 +15025,12 @@ "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*" }, @@ -16751,14 +15039,12 @@ "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", @@ -16775,20 +15061,17 @@ "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`." }, @@ -16800,7 +15083,6 @@ "tickprefix": { "valType": "string", "dflt": "", - "role": "style", "editType": "colorbars", "description": "Sets a tick label prefix." }, @@ -16813,14 +15095,12 @@ "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." }, @@ -16833,14 +15113,12 @@ "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" }, @@ -16855,7 +15133,6 @@ "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." }, @@ -16863,7 +15140,6 @@ "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*." }, @@ -16876,21 +15152,18 @@ "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*.", @@ -16898,13 +15171,11 @@ }, "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.", @@ -16918,7 +15189,6 @@ "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" @@ -16929,14 +15199,12 @@ "_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*.", @@ -16944,13 +15212,11 @@ }, "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`.", @@ -16963,7 +15229,6 @@ "top", "bottom" ], - "role": "style", "dflt": "top", "description": "Deprecated in favor of color bar's `title.side`.", "editType": "colorbars" @@ -16973,20 +15238,17 @@ "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", @@ -16998,20 +15260,17 @@ "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" } @@ -17019,14 +15278,12 @@ "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" @@ -17035,7 +15292,6 @@ "valType": "number", "min": 0, "dflt": 0, - "role": "style", "editType": "plot", "description": "Sets the line width (in px)." }, @@ -17050,7 +15306,6 @@ "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*)." }, @@ -17060,7 +15315,6 @@ "visible": { "valType": "boolean", "dflt": true, - "role": "info", "editType": "plot", "description": "Determines if connector regions and lines are drawn." }, @@ -17069,95 +15323,80 @@ }, "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" } @@ -17171,7 +15410,6 @@ "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." }, @@ -17179,7 +15417,6 @@ "valType": "number", "min": 0, "max": 1, - "role": "style", "editType": "calc", "description": "Sets the gap (in plot fraction) between bars of adjacent location coordinates." }, @@ -17188,7 +15425,6 @@ "min": 0, "max": 1, "dflt": 0, - "role": "style", "editType": "calc", "description": "Sets the gap (in plot fraction) between bars of the same location coordinate." } @@ -17217,28 +15453,24 @@ 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, @@ -17247,52 +15479,44 @@ }, "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" + "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", - "role": "data" + "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, - "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 @@ -17300,7 +15524,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -17309,14 +15532,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -17325,19 +15546,16 @@ "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" } @@ -17350,7 +15568,6 @@ "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 @@ -17359,7 +15576,6 @@ "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 @@ -17368,25 +15584,21 @@ "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" } @@ -17396,7 +15608,6 @@ "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." }, @@ -17405,7 +15616,6 @@ "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." }, @@ -17424,14 +15634,12 @@ }, "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." }, @@ -17439,73 +15647,62 @@ "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" + "description": "Sets the x coordinates." }, "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" + "description": "Sets the y coordinates." }, "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." }, @@ -17517,7 +15714,6 @@ "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." }, @@ -17529,13 +15725,11 @@ "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", @@ -17543,7 +15737,6 @@ }, "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 ``.", @@ -17551,7 +15744,6 @@ }, "hoverinfo": { "valType": "flaglist", - "role": "info", "flags": [ "name", "x", @@ -17583,14 +15775,12 @@ "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`.", @@ -17598,7 +15788,6 @@ }, "text": { "valType": "string", - "role": "info", "dflt": "", "arrayOk": true, "editType": "calc", @@ -17606,7 +15795,6 @@ }, "textposition": { "valType": "enumerated", - "role": "info", "values": [ "inside", "outside", @@ -17626,21 +15814,18 @@ "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", @@ -17649,14 +15834,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "calc", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "style", "arrayOk": true }, @@ -17665,19 +15848,16 @@ "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" } @@ -17685,7 +15865,6 @@ "insidetextfont": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "calc", @@ -17694,14 +15873,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "calc", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "style", "arrayOk": true }, @@ -17710,19 +15887,16 @@ "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" } @@ -17730,7 +15904,6 @@ "outsidetextfont": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "calc", @@ -17739,14 +15912,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "calc", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "style", "arrayOk": true }, @@ -17755,19 +15926,16 @@ "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" } @@ -17780,7 +15948,6 @@ "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." @@ -17788,13 +15955,11 @@ "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" @@ -17806,7 +15971,6 @@ "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." }, @@ -17815,7 +15979,6 @@ "dflt": null, "min": 0, "arrayOk": true, - "role": "info", "editType": "calc", "description": "Sets the bar width (in position axis units)." }, @@ -17824,7 +15987,6 @@ "color": { "valType": "color", "arrayOk": false, - "role": "style", "editType": "style", "description": "Sets the marker color of all increasing values." }, @@ -17832,7 +15994,6 @@ "color": { "valType": "color", "arrayOk": false, - "role": "style", "editType": "style", "description": "Sets the line color of all increasing values." }, @@ -17840,7 +16001,6 @@ "valType": "number", "min": 0, "arrayOk": false, - "role": "style", "editType": "style", "description": "Sets the line width of all increasing values.", "dflt": 0 @@ -17859,7 +16019,6 @@ "color": { "valType": "color", "arrayOk": false, - "role": "style", "editType": "style", "description": "Sets the marker color of all decreasing values." }, @@ -17867,7 +16026,6 @@ "color": { "valType": "color", "arrayOk": false, - "role": "style", "editType": "style", "description": "Sets the line color of all decreasing values." }, @@ -17875,7 +16033,6 @@ "valType": "number", "min": 0, "arrayOk": false, - "role": "style", "editType": "style", "description": "Sets the line width of all decreasing values.", "dflt": 0 @@ -17894,7 +16051,6 @@ "color": { "valType": "color", "arrayOk": false, - "role": "style", "editType": "style", "description": "Sets the marker color of all intermediate sums and total values." }, @@ -17902,7 +16058,6 @@ "color": { "valType": "color", "arrayOk": false, - "role": "style", "editType": "style", "description": "Sets the line color of all intermediate sums and total values." }, @@ -17910,7 +16065,6 @@ "valType": "number", "min": 0, "arrayOk": false, - "role": "style", "editType": "style", "description": "Sets the line width of all intermediate sums and total values.", "dflt": 0 @@ -17928,7 +16082,6 @@ "line": { "color": { "valType": "color", - "role": "style", "editType": "style", "description": "Sets the line color.", "dflt": "#444" @@ -17937,7 +16090,6 @@ "valType": "number", "min": 0, "dflt": 2, - "role": "style", "editType": "plot", "description": "Sets the line width (in px)." }, @@ -17952,7 +16104,6 @@ "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*)." }, @@ -17966,14 +16117,12 @@ "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. " }, @@ -17982,113 +16131,95 @@ }, "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" } @@ -18101,7 +16232,6 @@ "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." }, @@ -18109,7 +16239,6 @@ "valType": "number", "min": 0, "max": 1, - "role": "style", "editType": "calc", "description": "Sets the gap (in plot fraction) between bars of adjacent location coordinates." }, @@ -18118,7 +16247,6 @@ "min": 0, "max": 1, "dflt": 0, - "role": "style", "editType": "calc", "description": "Sets the gap (in plot fraction) between bars of the same location coordinate." } @@ -18145,14 +16273,12 @@ 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, @@ -18161,46 +16287,39 @@ }, "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" + "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", - "role": "data" + "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, - "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 @@ -18208,7 +16327,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -18217,14 +16335,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -18233,19 +16349,16 @@ "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" } @@ -18258,7 +16371,6 @@ "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 @@ -18267,7 +16379,6 @@ "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 @@ -18276,25 +16387,21 @@ "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" } @@ -18304,7 +16411,6 @@ "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." }, @@ -18313,7 +16419,6 @@ "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." }, @@ -18322,19 +16427,16 @@ }, "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." }, @@ -18347,10 +16449,19 @@ "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`." }, + "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": [ @@ -18371,7 +16482,6 @@ "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]." }, @@ -18395,53 +16505,45 @@ "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" + "description": "Sets the text elements associated with each z value." }, "hovertext": { "valType": "data_array", "editType": "plot", - "description": "Same as `text`.", - "role": "data" + "description": "Same as `text`." }, "hoverinfo": { "valType": "flaglist", - "role": "info", "flags": [ "x", "y", @@ -18462,7 +16564,6 @@ }, "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 ``.", @@ -18470,63 +16571,53 @@ }, "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" } @@ -18552,28 +16643,24 @@ 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, @@ -18582,46 +16669,39 @@ }, "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" + "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", - "role": "data" + "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, - "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 @@ -18629,7 +16709,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -18638,14 +16717,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -18654,19 +16731,16 @@ "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" } @@ -18679,7 +16753,6 @@ "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 @@ -18688,7 +16761,6 @@ "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 @@ -18697,25 +16769,21 @@ "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" } @@ -18725,7 +16793,6 @@ "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." }, @@ -18734,7 +16801,6 @@ "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." }, @@ -18753,26 +16819,22 @@ }, "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" + "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", - "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." @@ -18780,20 +16842,17 @@ "values": { "valType": "data_array", "editType": "calc", - "description": "Sets the values of the sectors. If omitted, we count occurrences of each label.", - "role": "data" + "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.", - "role": "data" + "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", - "role": "style", "dflt": "#444", "arrayOk": true, "editType": "style", @@ -18801,7 +16860,6 @@ }, "width": { "valType": "number", - "role": "style", "min": 0, "dflt": 0, "arrayOk": true, @@ -18812,13 +16870,11 @@ "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" } @@ -18827,7 +16883,6 @@ "role": "object", "colorssrc": { "valType": "string", - "role": "info", "description": "Sets the source reference on Chart Studio Cloud for colors .", "editType": "none" } @@ -18835,12 +16890,10 @@ "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" + "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", - "role": "info", "dflt": "", "arrayOk": true, "editType": "style", @@ -18848,14 +16901,12 @@ }, "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", @@ -18870,7 +16921,6 @@ }, "hoverinfo": { "valType": "flaglist", - "role": "info", "flags": [ "label", "text", @@ -18890,7 +16940,6 @@ }, "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 ``.", @@ -18898,7 +16947,6 @@ }, "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`.", @@ -18906,7 +16954,6 @@ }, "textposition": { "valType": "enumerated", - "role": "info", "values": [ "inside", "outside", @@ -18921,7 +16968,6 @@ "textfont": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "plot", @@ -18930,14 +16976,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "plot", "arrayOk": true }, @@ -18946,26 +16990,22 @@ "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", @@ -18979,7 +17019,6 @@ "insidetextfont": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "plot", @@ -18988,14 +17027,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "plot", "arrayOk": true }, @@ -19004,19 +17041,16 @@ "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" } @@ -19024,7 +17058,6 @@ "outsidetextfont": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "plot", @@ -19033,14 +17066,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "plot", "arrayOk": true }, @@ -19049,19 +17080,16 @@ "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" } @@ -19069,7 +17097,6 @@ "automargin": { "valType": "boolean", "dflt": false, - "role": "info", "editType": "plot", "description": "Determines whether outside text labels can push the margins." }, @@ -19077,14 +17104,12 @@ "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", @@ -19093,14 +17118,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "plot", "arrayOk": true }, @@ -19109,19 +17132,16 @@ "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" } @@ -19137,7 +17157,6 @@ "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." }, @@ -19147,7 +17166,6 @@ "domain": { "x": { "valType": "info_array", - "role": "info", "editType": "calc", "items": [ { @@ -19171,7 +17189,6 @@ }, "y": { "valType": "info_array", - "role": "info", "editType": "calc", "items": [ { @@ -19198,7 +17215,6 @@ "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 ." }, @@ -19206,7 +17222,6 @@ "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 ." }, @@ -19214,7 +17229,6 @@ }, "hole": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 0, @@ -19223,7 +17237,6 @@ }, "sort": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "description": "Determines whether or not the sectors are reordered from largest to smallest." @@ -19234,14 +17247,12 @@ "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, @@ -19250,7 +17261,6 @@ }, "pull": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 0, @@ -19262,14 +17272,12 @@ "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", @@ -19278,14 +17286,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "plot", "arrayOk": true }, @@ -19303,80 +17309,67 @@ "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" } @@ -19384,26 +17377,22 @@ "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" } @@ -19425,14 +17414,12 @@ 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, @@ -19441,13 +17428,11 @@ }, "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." @@ -19456,33 +17441,28 @@ "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" + "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", - "role": "data" + "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, - "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 @@ -19490,7 +17470,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -19499,14 +17478,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -19515,19 +17492,16 @@ "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" } @@ -19540,7 +17514,6 @@ "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 @@ -19549,7 +17522,6 @@ "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 @@ -19558,25 +17530,21 @@ "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" } @@ -19586,7 +17554,6 @@ "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." }, @@ -19595,7 +17562,6 @@ "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." }, @@ -19614,27 +17580,23 @@ }, "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" + "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.", - "role": "data" + "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.", - "role": "data" + "description": "Sets the values associated with each of the sectors. Use with `branchvalues` to determine how the values are summed." }, "branchvalues": { "valType": "enumerated", @@ -19644,7 +17606,6 @@ ], "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": { @@ -19655,20 +17616,17 @@ ], "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." }, @@ -19676,13 +17634,11 @@ "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" + "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", - "role": "style", "dflt": null, "arrayOk": true, "editType": "style", @@ -19690,7 +17646,6 @@ }, "width": { "valType": "number", - "role": "style", "min": 0, "dflt": 1, "arrayOk": true, @@ -19701,13 +17656,11 @@ "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" } @@ -19715,7 +17668,6 @@ "editType": "calc", "cauto": { "valType": "boolean", - "role": "info", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -19723,7 +17675,6 @@ }, "cmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -19733,7 +17684,6 @@ }, "cmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -19743,7 +17693,6 @@ }, "cmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -19751,7 +17700,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -19761,7 +17709,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -19769,14 +17716,12 @@ }, "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." @@ -19788,14 +17733,12 @@ "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.", @@ -19807,7 +17750,6 @@ "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" @@ -19816,7 +17758,6 @@ "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" }, @@ -19825,7 +17766,6 @@ "dflt": 1.02, "min": -2, "max": 3, - "role": "style", "description": "Sets the x position of the color bar (in plot fraction).", "editType": "colorbars" }, @@ -19837,13 +17777,11 @@ "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.", @@ -19851,7 +17789,6 @@ }, "y": { "valType": "number", - "role": "style", "dflt": 0.5, "min": -2, "max": 3, @@ -19865,14 +17802,12 @@ "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.", @@ -19881,7 +17816,6 @@ "outlinecolor": { "valType": "color", "dflt": "#444", - "role": "style", "editType": "colorbars", "description": "Sets the axis line color." }, @@ -19889,20 +17823,17 @@ "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.", @@ -19910,7 +17841,6 @@ }, "bgcolor": { "valType": "color", - "role": "style", "dflt": "rgba(0,0,0,0)", "description": "Sets the color of padded area.", "editType": "colorbars" @@ -19922,7 +17852,6 @@ "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)." @@ -19931,13 +17860,11 @@ "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" @@ -19946,7 +17873,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "colorbars", "impliedEdits": { "tickmode": "linear" @@ -19956,14 +17882,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -19972,7 +17896,6 @@ "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": "" @@ -19988,7 +17911,6 @@ "inside bottom" ], "dflt": "outside", - "role": "info", "description": "Determines where tick labels are drawn.", "editType": "colorbars" }, @@ -19996,7 +17918,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "colorbars", "description": "Sets the tick length (in px)." }, @@ -20004,28 +17925,24 @@ "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*.", @@ -20033,13 +17950,11 @@ }, "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", @@ -20049,14 +17964,12 @@ "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*" }, @@ -20065,14 +17978,12 @@ "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", @@ -20089,20 +18000,17 @@ "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`." }, @@ -20114,7 +18022,6 @@ "tickprefix": { "valType": "string", "dflt": "", - "role": "style", "editType": "colorbars", "description": "Sets a tick label prefix." }, @@ -20127,14 +18034,12 @@ "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." }, @@ -20147,14 +18052,12 @@ "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" }, @@ -20169,7 +18072,6 @@ "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." }, @@ -20177,7 +18079,6 @@ "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*." }, @@ -20190,21 +18091,18 @@ "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*.", @@ -20212,13 +18110,11 @@ }, "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.", @@ -20232,7 +18128,6 @@ "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" @@ -20243,14 +18138,12 @@ "_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*.", @@ -20258,13 +18151,11 @@ }, "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`.", @@ -20277,7 +18168,6 @@ "top", "bottom" ], - "role": "style", "dflt": "top", "description": "Deprecated in favor of color bar's `title.side`.", "editType": "colorbars" @@ -20287,20 +18177,17 @@ "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", @@ -20309,7 +18196,6 @@ "role": "object", "colorssrc": { "valType": "string", - "role": "info", "description": "Sets the source reference on Chart Studio Cloud for colors .", "editType": "none" } @@ -20318,7 +18204,6 @@ "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" @@ -20329,12 +18214,10 @@ "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" + "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", - "role": "info", "flags": [ "label", "text", @@ -20352,7 +18235,6 @@ }, "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`.", @@ -20360,7 +18242,6 @@ }, "hovertext": { "valType": "string", - "role": "info", "dflt": "", "arrayOk": true, "editType": "style", @@ -20368,7 +18249,6 @@ }, "hoverinfo": { "valType": "flaglist", - "role": "info", "flags": [ "label", "text", @@ -20391,7 +18271,6 @@ }, "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 ``.", @@ -20400,7 +18279,6 @@ "textfont": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "plot", @@ -20409,14 +18287,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "plot", "arrayOk": true }, @@ -20425,26 +18301,22 @@ "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", @@ -20458,7 +18330,6 @@ "insidetextfont": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "plot", @@ -20467,14 +18338,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "plot", "arrayOk": true }, @@ -20483,19 +18352,16 @@ "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" } @@ -20503,7 +18369,6 @@ "outsidetextfont": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "plot", @@ -20512,14 +18377,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "plot", "arrayOk": true }, @@ -20528,33 +18391,28 @@ "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." @@ -20563,7 +18421,6 @@ "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." }, @@ -20573,7 +18430,6 @@ "domain": { "x": { "valType": "info_array", - "role": "info", "editType": "calc", "items": [ { @@ -20597,7 +18453,6 @@ }, "y": { "valType": "info_array", - "role": "info", "editType": "calc", "items": [ { @@ -20624,7 +18479,6 @@ "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 ." }, @@ -20632,7 +18486,6 @@ "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 ." }, @@ -20640,67 +18493,56 @@ }, "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" } @@ -20708,14 +18550,12 @@ "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." } @@ -20737,14 +18577,12 @@ 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, @@ -20753,13 +18591,11 @@ }, "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." @@ -20768,33 +18604,28 @@ "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" + "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", - "role": "data" + "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, - "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 @@ -20802,7 +18633,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -20811,14 +18641,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -20827,19 +18655,16 @@ "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" } @@ -20852,7 +18677,6 @@ "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 @@ -20861,7 +18685,6 @@ "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 @@ -20870,25 +18693,21 @@ "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" } @@ -20898,7 +18717,6 @@ "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." }, @@ -20907,7 +18725,6 @@ "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." }, @@ -20926,27 +18743,23 @@ }, "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" + "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.", - "role": "data" + "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.", - "role": "data" + "description": "Sets the values associated with each of the sectors. Use with `branchvalues` to determine how the values are summed." }, "branchvalues": { "valType": "enumerated", @@ -20956,7 +18769,6 @@ ], "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": { @@ -20967,20 +18779,17 @@ ], "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." }, @@ -20996,13 +18805,11 @@ "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", @@ -21010,7 +18817,6 @@ }, "flip": { "valType": "flaglist", - "role": "info", "flags": [ "x", "y" @@ -21021,7 +18827,6 @@ }, "pad": { "valType": "number", - "role": "style", "min": 0, "dflt": 3, "editType": "plot", @@ -21034,28 +18839,24 @@ "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)." @@ -21066,8 +18867,7 @@ "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" + "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", @@ -21077,13 +18877,11 @@ "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", @@ -21091,7 +18889,6 @@ }, "width": { "valType": "number", - "role": "style", "min": 0, "dflt": 1, "arrayOk": true, @@ -21102,13 +18899,11 @@ "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" } @@ -21116,7 +18911,6 @@ "editType": "calc", "cauto": { "valType": "boolean", - "role": "info", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -21124,7 +18918,6 @@ }, "cmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -21134,7 +18927,6 @@ }, "cmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -21144,7 +18936,6 @@ }, "cmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -21152,7 +18943,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -21162,7 +18952,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -21170,14 +18959,12 @@ }, "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." @@ -21189,14 +18976,12 @@ "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.", @@ -21208,7 +18993,6 @@ "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" @@ -21217,7 +19001,6 @@ "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" }, @@ -21226,7 +19009,6 @@ "dflt": 1.02, "min": -2, "max": 3, - "role": "style", "description": "Sets the x position of the color bar (in plot fraction).", "editType": "colorbars" }, @@ -21238,13 +19020,11 @@ "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.", @@ -21252,7 +19032,6 @@ }, "y": { "valType": "number", - "role": "style", "dflt": 0.5, "min": -2, "max": 3, @@ -21266,14 +19045,12 @@ "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.", @@ -21282,7 +19059,6 @@ "outlinecolor": { "valType": "color", "dflt": "#444", - "role": "style", "editType": "colorbars", "description": "Sets the axis line color." }, @@ -21290,20 +19066,17 @@ "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.", @@ -21311,7 +19084,6 @@ }, "bgcolor": { "valType": "color", - "role": "style", "dflt": "rgba(0,0,0,0)", "description": "Sets the color of padded area.", "editType": "colorbars" @@ -21323,7 +19095,6 @@ "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)." @@ -21332,13 +19103,11 @@ "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" @@ -21347,7 +19116,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "colorbars", "impliedEdits": { "tickmode": "linear" @@ -21357,14 +19125,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -21373,7 +19139,6 @@ "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": "" @@ -21389,7 +19154,6 @@ "inside bottom" ], "dflt": "outside", - "role": "info", "description": "Determines where tick labels are drawn.", "editType": "colorbars" }, @@ -21397,7 +19161,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "colorbars", "description": "Sets the tick length (in px)." }, @@ -21405,28 +19168,24 @@ "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*.", @@ -21434,13 +19193,11 @@ }, "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", @@ -21450,14 +19207,12 @@ "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*" }, @@ -21466,14 +19221,12 @@ "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", @@ -21490,20 +19243,17 @@ "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`." }, @@ -21515,7 +19265,6 @@ "tickprefix": { "valType": "string", "dflt": "", - "role": "style", "editType": "colorbars", "description": "Sets a tick label prefix." }, @@ -21528,14 +19277,12 @@ "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." }, @@ -21548,14 +19295,12 @@ "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" }, @@ -21570,7 +19315,6 @@ "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." }, @@ -21578,7 +19322,6 @@ "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*." }, @@ -21591,21 +19334,18 @@ "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*.", @@ -21613,13 +19353,11 @@ }, "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.", @@ -21633,7 +19371,6 @@ "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" @@ -21644,14 +19381,12 @@ "_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*.", @@ -21659,13 +19394,11 @@ }, "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`.", @@ -21678,7 +19411,6 @@ "top", "bottom" ], - "role": "style", "dflt": "top", "description": "Deprecated in favor of color bar's `title.side`.", "editType": "colorbars" @@ -21688,20 +19420,17 @@ "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", @@ -21710,7 +19439,6 @@ "role": "object", "colorssrc": { "valType": "string", - "role": "info", "description": "Sets the source reference on Chart Studio Cloud for colors .", "editType": "none" } @@ -21719,7 +19447,6 @@ "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." }, @@ -21730,7 +19457,6 @@ "bottom" ], "dflt": "top", - "role": "info", "editType": "plot", "description": "Determines on which side of the the treemap the `pathbar` should be presented." }, @@ -21744,21 +19470,18 @@ "\\" ], "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", @@ -21767,14 +19490,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "plot", "arrayOk": true }, @@ -21783,19 +19504,16 @@ "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" } @@ -21806,12 +19524,10 @@ "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" + "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", - "role": "info", "flags": [ "label", "text", @@ -21829,7 +19545,6 @@ }, "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`.", @@ -21837,7 +19552,6 @@ }, "hovertext": { "valType": "string", - "role": "info", "dflt": "", "arrayOk": true, "editType": "style", @@ -21845,7 +19559,6 @@ }, "hoverinfo": { "valType": "flaglist", - "role": "info", "flags": [ "label", "text", @@ -21868,7 +19581,6 @@ }, "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 ``.", @@ -21877,7 +19589,6 @@ "textfont": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "plot", @@ -21886,14 +19597,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "plot", "arrayOk": true }, @@ -21902,19 +19611,16 @@ "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" } @@ -21922,7 +19628,6 @@ "insidetextfont": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "plot", @@ -21931,14 +19636,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "plot", "arrayOk": true }, @@ -21947,19 +19650,16 @@ "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" } @@ -21967,7 +19667,6 @@ "outsidetextfont": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "plot", @@ -21976,14 +19675,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "plot", "arrayOk": true }, @@ -21992,19 +19689,16 @@ "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" } @@ -22023,13 +19717,11 @@ "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." @@ -22038,7 +19730,6 @@ "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." }, @@ -22048,7 +19739,6 @@ "domain": { "x": { "valType": "info_array", - "role": "info", "editType": "calc", "items": [ { @@ -22072,7 +19762,6 @@ }, "y": { "valType": "info_array", - "role": "info", "editType": "calc", "items": [ { @@ -22099,7 +19788,6 @@ "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 ." }, @@ -22107,7 +19795,6 @@ "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 ." }, @@ -22115,67 +19802,56 @@ }, "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" } @@ -22183,14 +19859,12 @@ "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." } @@ -22216,28 +19890,24 @@ 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, @@ -22246,46 +19916,39 @@ }, "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" + "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", - "role": "data" + "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, - "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 @@ -22293,7 +19956,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -22302,14 +19964,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -22318,19 +19978,16 @@ "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" } @@ -22343,7 +20000,6 @@ "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 @@ -22352,7 +20008,6 @@ "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 @@ -22361,25 +20016,21 @@ "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" } @@ -22389,7 +20040,6 @@ "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." }, @@ -22398,7 +20048,6 @@ "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." }, @@ -22417,26 +20066,22 @@ }, "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" + "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", - "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." @@ -22444,20 +20089,17 @@ "values": { "valType": "data_array", "editType": "calc", - "description": "Sets the values of the sectors. If omitted, we count occurrences of each label.", - "role": "data" + "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.", - "role": "data" + "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", - "role": "style", "dflt": null, "arrayOk": true, "editType": "style", @@ -22465,7 +20107,6 @@ }, "width": { "valType": "number", - "role": "style", "min": 0, "dflt": 1, "arrayOk": true, @@ -22476,13 +20117,11 @@ "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" } @@ -22491,7 +20130,6 @@ "role": "object", "colorssrc": { "valType": "string", - "role": "info", "description": "Sets the source reference on Chart Studio Cloud for colors .", "editType": "none" } @@ -22499,12 +20137,10 @@ "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" + "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", - "role": "info", "dflt": "", "arrayOk": true, "editType": "style", @@ -22512,14 +20148,12 @@ }, "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", @@ -22534,7 +20168,6 @@ }, "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`.", @@ -22542,7 +20175,6 @@ }, "hoverinfo": { "valType": "flaglist", - "role": "info", "flags": [ "label", "text", @@ -22562,7 +20194,6 @@ }, "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 ``.", @@ -22570,7 +20201,6 @@ }, "textposition": { "valType": "enumerated", - "role": "info", "values": [ "inside", "none" @@ -22583,7 +20213,6 @@ "textfont": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "plot", @@ -22592,14 +20221,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "plot", "arrayOk": true }, @@ -22608,19 +20235,16 @@ "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" } @@ -22628,7 +20252,6 @@ "insidetextfont": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "plot", @@ -22637,14 +20260,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "plot", "arrayOk": true }, @@ -22653,19 +20274,16 @@ "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" } @@ -22674,14 +20292,12 @@ "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", @@ -22690,14 +20306,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "plot", "arrayOk": true }, @@ -22706,19 +20320,16 @@ "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" } @@ -22730,7 +20341,6 @@ "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" @@ -22741,7 +20351,6 @@ "domain": { "x": { "valType": "info_array", - "role": "info", "editType": "calc", "items": [ { @@ -22765,7 +20374,6 @@ }, "y": { "valType": "info_array", - "role": "info", "editType": "calc", "items": [ { @@ -22792,7 +20400,6 @@ "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 ." }, @@ -22800,7 +20407,6 @@ "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 ." }, @@ -22808,7 +20414,6 @@ }, "aspectratio": { "valType": "number", - "role": "info", "min": 0, "dflt": 1, "editType": "plot", @@ -22816,7 +20421,6 @@ }, "baseratio": { "valType": "number", - "role": "info", "min": 0, "max": 1, "dflt": 0.333, @@ -22825,67 +20429,56 @@ }, "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" } @@ -22893,26 +20486,22 @@ "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" } @@ -22940,28 +20529,24 @@ 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, @@ -22970,46 +20555,39 @@ }, "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" + "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", - "role": "data" + "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, - "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 @@ -23017,7 +20595,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -23026,14 +20603,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -23042,19 +20617,16 @@ "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" } @@ -23067,7 +20639,6 @@ "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 @@ -23076,7 +20647,6 @@ "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 @@ -23085,25 +20655,21 @@ "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" } @@ -23113,7 +20679,6 @@ "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." }, @@ -23122,7 +20687,6 @@ "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." }, @@ -23141,31 +20705,26 @@ }, "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" + "description": "Sets the x coordinates." }, "y": { "valType": "data_array", "editType": "calc+clearAxisTypes", - "description": "Sets the y coordinates.", - "role": "data" + "description": "Sets the y coordinates." }, "z": { "valType": "data_array", "description": "Sets the z coordinates.", - "editType": "calc+clearAxisTypes", - "role": "data" + "editType": "calc+clearAxisTypes" }, "text": { "valType": "string", - "role": "info", "dflt": "", "arrayOk": true, "editType": "calc", @@ -23173,7 +20732,6 @@ }, "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. ", @@ -23181,7 +20739,6 @@ }, "hovertext": { "valType": "string", - "role": "info", "dflt": "", "arrayOk": true, "editType": "calc", @@ -23189,7 +20746,6 @@ }, "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 ``.", @@ -23205,14 +20761,12 @@ "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, @@ -23225,7 +20779,6 @@ }, "surfacecolor": { "valType": "color", - "role": "style", "description": "Sets the surface fill color.", "editType": "calc" }, @@ -23233,14 +20786,12 @@ "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, @@ -23249,7 +20800,6 @@ }, "scale": { "valType": "number", - "role": "style", "min": 0, "max": 10, "dflt": 0.6666666666666666, @@ -23262,14 +20812,12 @@ "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, @@ -23278,7 +20826,6 @@ }, "scale": { "valType": "number", - "role": "style", "min": 0, "max": 10, "dflt": 0.6666666666666666, @@ -23291,14 +20838,12 @@ "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, @@ -23307,7 +20852,6 @@ }, "scale": { "valType": "number", - "role": "style", "min": 0, "max": 10, "dflt": 0.6666666666666666, @@ -23323,7 +20867,6 @@ "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." }, @@ -23332,7 +20875,6 @@ "valType": "number", "min": 0, "dflt": 2, - "role": "style", "editType": "calc", "description": "Sets the line width (in px)." }, @@ -23347,20 +20889,17 @@ "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": {}, @@ -23368,7 +20907,6 @@ }, "cmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -23378,7 +20916,6 @@ }, "cmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -23388,7 +20925,6 @@ }, "cmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -23396,7 +20932,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -23406,7 +20941,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -23414,14 +20948,12 @@ }, "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." @@ -23433,14 +20965,12 @@ "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.", @@ -23452,7 +20982,6 @@ "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" @@ -23461,7 +20990,6 @@ "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" }, @@ -23470,7 +20998,6 @@ "dflt": 1.02, "min": -2, "max": 3, - "role": "style", "description": "Sets the x position of the color bar (in plot fraction).", "editType": "calc" }, @@ -23482,13 +21009,11 @@ "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.", @@ -23496,7 +21021,6 @@ }, "y": { "valType": "number", - "role": "style", "dflt": 0.5, "min": -2, "max": 3, @@ -23510,14 +21034,12 @@ "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.", @@ -23526,7 +21048,6 @@ "outlinecolor": { "valType": "color", "dflt": "#444", - "role": "style", "editType": "calc", "description": "Sets the axis line color." }, @@ -23534,20 +21055,17 @@ "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.", @@ -23555,7 +21073,6 @@ }, "bgcolor": { "valType": "color", - "role": "style", "dflt": "rgba(0,0,0,0)", "description": "Sets the color of padded area.", "editType": "calc" @@ -23567,7 +21084,6 @@ "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)." @@ -23576,13 +21092,11 @@ "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" @@ -23591,7 +21105,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "calc", "impliedEdits": { "tickmode": "linear" @@ -23601,14 +21114,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -23617,7 +21128,6 @@ "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": "" @@ -23633,7 +21143,6 @@ "inside bottom" ], "dflt": "outside", - "role": "info", "description": "Determines where tick labels are drawn.", "editType": "calc" }, @@ -23641,7 +21150,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "calc", "description": "Sets the tick length (in px)." }, @@ -23649,28 +21157,24 @@ "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*.", @@ -23678,13 +21182,11 @@ }, "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", @@ -23694,14 +21196,12 @@ "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*" }, @@ -23710,14 +21210,12 @@ "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", @@ -23734,20 +21232,17 @@ "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`." }, @@ -23759,7 +21254,6 @@ "tickprefix": { "valType": "string", "dflt": "", - "role": "style", "editType": "calc", "description": "Sets a tick label prefix." }, @@ -23772,14 +21266,12 @@ "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." }, @@ -23792,14 +21284,12 @@ "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" }, @@ -23814,7 +21304,6 @@ "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." }, @@ -23822,7 +21311,6 @@ "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*." }, @@ -23835,21 +21323,18 @@ "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*.", @@ -23857,13 +21342,11 @@ }, "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.", @@ -23877,7 +21360,6 @@ "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" @@ -23888,14 +21370,12 @@ "_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*.", @@ -23903,13 +21383,11 @@ }, "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`.", @@ -23922,7 +21400,6 @@ "top", "bottom" ], - "role": "style", "dflt": "top", "description": "Deprecated in favor of color bar's `title.side`.", "editType": "calc" @@ -23932,20 +21409,17 @@ "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", @@ -23955,7 +21429,6 @@ "role": "object", "colorsrc": { "valType": "string", - "role": "info", "description": "Sets the source reference on Chart Studio Cloud for color .", "editType": "none" } @@ -23973,7 +21446,6 @@ "cross", "x" ], - "role": "style", "dflt": "circle", "arrayOk": true, "description": "Sets the marker symbol type.", @@ -23984,14 +21456,12 @@ "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`." }, @@ -23999,7 +21469,6 @@ "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." }, @@ -24010,7 +21479,6 @@ "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." }, @@ -24019,7 +21487,6 @@ "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." }, @@ -24030,14 +21497,12 @@ "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.", @@ -24049,7 +21514,6 @@ "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" @@ -24058,7 +21522,6 @@ "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" }, @@ -24067,7 +21530,6 @@ "dflt": 1.02, "min": -2, "max": 3, - "role": "style", "description": "Sets the x position of the color bar (in plot fraction).", "editType": "calc" }, @@ -24079,13 +21541,11 @@ "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.", @@ -24093,7 +21553,6 @@ }, "y": { "valType": "number", - "role": "style", "dflt": 0.5, "min": -2, "max": 3, @@ -24107,14 +21566,12 @@ "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.", @@ -24123,7 +21580,6 @@ "outlinecolor": { "valType": "color", "dflt": "#444", - "role": "style", "editType": "calc", "description": "Sets the axis line color." }, @@ -24131,20 +21587,17 @@ "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.", @@ -24152,7 +21605,6 @@ }, "bgcolor": { "valType": "color", - "role": "style", "dflt": "rgba(0,0,0,0)", "description": "Sets the color of padded area.", "editType": "calc" @@ -24164,7 +21616,6 @@ "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)." @@ -24173,13 +21624,11 @@ "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" @@ -24188,7 +21637,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "calc", "impliedEdits": { "tickmode": "linear" @@ -24198,14 +21646,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -24214,7 +21660,6 @@ "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": "" @@ -24230,7 +21675,6 @@ "inside bottom" ], "dflt": "outside", - "role": "info", "description": "Determines where tick labels are drawn.", "editType": "calc" }, @@ -24238,7 +21682,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "calc", "description": "Sets the tick length (in px)." }, @@ -24246,28 +21689,24 @@ "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*.", @@ -24275,13 +21714,11 @@ }, "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", @@ -24291,14 +21728,12 @@ "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*" }, @@ -24307,14 +21742,12 @@ "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", @@ -24331,20 +21764,17 @@ "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`." }, @@ -24356,7 +21786,6 @@ "tickprefix": { "valType": "string", "dflt": "", - "role": "style", "editType": "calc", "description": "Sets a tick label prefix." }, @@ -24369,14 +21798,12 @@ "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." }, @@ -24389,14 +21816,12 @@ "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" }, @@ -24411,7 +21836,6 @@ "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." }, @@ -24419,7 +21843,6 @@ "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*." }, @@ -24432,21 +21855,18 @@ "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*.", @@ -24454,13 +21874,11 @@ }, "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.", @@ -24474,7 +21892,6 @@ "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" @@ -24485,14 +21902,12 @@ "_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*.", @@ -24500,13 +21915,11 @@ }, "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`.", @@ -24519,7 +21932,6 @@ "top", "bottom" ], - "role": "style", "dflt": "top", "description": "Deprecated in favor of color bar's `title.side`.", "editType": "calc" @@ -24529,13 +21941,11 @@ "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" } @@ -24545,20 +21955,17 @@ "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": {}, @@ -24566,7 +21973,6 @@ }, "cmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -24576,7 +21982,6 @@ }, "cmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -24586,7 +21991,6 @@ }, "cmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -24594,7 +21998,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -24604,7 +22007,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -24612,14 +22014,12 @@ }, "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", @@ -24629,7 +22029,6 @@ "role": "object", "colorsrc": { "valType": "string", - "role": "info", "description": "Sets the source reference on Chart Studio Cloud for color .", "editType": "none" } @@ -24637,13 +22036,11 @@ "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": {}, @@ -24651,7 +22048,6 @@ }, "cmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -24661,7 +22057,6 @@ }, "cmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -24671,7 +22066,6 @@ }, "cmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -24679,7 +22073,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -24689,7 +22082,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -24697,21 +22089,18 @@ }, "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", @@ -24721,19 +22110,16 @@ "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" } @@ -24753,27 +22139,23 @@ ], "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", @@ -24784,20 +22166,17 @@ "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", @@ -24818,7 +22197,6 @@ "error_x": { "visible": { "valType": "boolean", - "role": "info", "editType": "calc", "description": "Determines whether or not this set of error bars is visible." }, @@ -24830,33 +22208,28 @@ "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" + "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.", - "role": "data" + "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, - "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." }, @@ -24864,7 +22237,6 @@ "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" }, @@ -24872,24 +22244,20 @@ "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." }, @@ -24897,14 +22265,12 @@ "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." }, @@ -24912,7 +22278,6 @@ "_deprecated": { "opacity": { "valType": "number", - "role": "style", "editType": "calc", "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity." } @@ -24920,13 +22285,11 @@ "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" } @@ -24934,7 +22297,6 @@ "error_y": { "visible": { "valType": "boolean", - "role": "info", "editType": "calc", "description": "Determines whether or not this set of error bars is visible." }, @@ -24946,33 +22308,28 @@ "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" + "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.", - "role": "data" + "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, - "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." }, @@ -24980,7 +22337,6 @@ "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" }, @@ -24988,24 +22344,20 @@ "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." }, @@ -25013,14 +22365,12 @@ "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." }, @@ -25028,7 +22378,6 @@ "_deprecated": { "opacity": { "valType": "number", - "role": "style", "editType": "calc", "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity." } @@ -25036,13 +22385,11 @@ "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" } @@ -25050,7 +22397,6 @@ "error_z": { "visible": { "valType": "boolean", - "role": "info", "editType": "calc", "description": "Determines whether or not this set of error bars is visible." }, @@ -25062,33 +22408,28 @@ "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" + "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.", - "role": "data" + "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, - "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." }, @@ -25096,7 +22437,6 @@ "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" }, @@ -25104,19 +22444,16 @@ "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." }, @@ -25124,14 +22461,12 @@ "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." }, @@ -25139,7 +22474,6 @@ "_deprecated": { "opacity": { "valType": "number", - "role": "style", "editType": "calc", "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity." } @@ -25147,13 +22481,11 @@ "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" } @@ -25178,7 +22510,6 @@ "thai", "ummalqura" ], - "role": "info", "editType": "calc", "dflt": "gregorian", "description": "Sets the calendar system to use with `x` date data." @@ -25203,7 +22534,6 @@ "thai", "ummalqura" ], - "role": "info", "editType": "calc", "dflt": "gregorian", "description": "Sets the calendar system to use with `y` date data." @@ -25228,87 +22558,73 @@ "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" } @@ -25334,60 +22650,51 @@ 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" + "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", - "role": "data" + "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, - "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 @@ -25395,7 +22702,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -25404,14 +22710,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -25420,19 +22724,16 @@ "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" } @@ -25445,7 +22746,6 @@ "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 @@ -25454,7 +22754,6 @@ "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 @@ -25463,25 +22762,21 @@ "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" } @@ -25491,7 +22786,6 @@ "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." }, @@ -25500,7 +22794,6 @@ "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." }, @@ -25509,31 +22802,26 @@ }, "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" + "editType": "calc+clearAxisTypes" }, "x": { "valType": "data_array", "description": "Sets the x coordinates.", - "editType": "calc+clearAxisTypes", - "role": "data" + "editType": "calc+clearAxisTypes" }, "y": { "valType": "data_array", "description": "Sets the y coordinates.", - "editType": "calc+clearAxisTypes", - "role": "data" + "editType": "calc+clearAxisTypes" }, "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.", @@ -25541,7 +22829,6 @@ }, "hovertext": { "valType": "string", - "role": "info", "dflt": "", "arrayOk": true, "description": "Same as `text`.", @@ -25549,7 +22836,6 @@ }, "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 ``.", @@ -25558,19 +22844,16 @@ "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" + "editType": "calc" }, "cauto": { "valType": "boolean", - "role": "info", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -25578,7 +22861,6 @@ }, "cmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -25588,7 +22870,6 @@ }, "cmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -25598,7 +22879,6 @@ }, "cmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -25606,7 +22886,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -25616,7 +22895,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": false, "editType": "calc", "impliedEdits": {}, @@ -25624,14 +22902,12 @@ }, "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." @@ -25643,14 +22919,12 @@ "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.", @@ -25662,7 +22936,6 @@ "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" @@ -25671,7 +22944,6 @@ "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" }, @@ -25680,7 +22952,6 @@ "dflt": 1.02, "min": -2, "max": 3, - "role": "style", "description": "Sets the x position of the color bar (in plot fraction).", "editType": "calc" }, @@ -25692,13 +22963,11 @@ "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.", @@ -25706,7 +22975,6 @@ }, "y": { "valType": "number", - "role": "style", "dflt": 0.5, "min": -2, "max": 3, @@ -25720,14 +22988,12 @@ "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.", @@ -25736,7 +23002,6 @@ "outlinecolor": { "valType": "color", "dflt": "#444", - "role": "style", "editType": "calc", "description": "Sets the axis line color." }, @@ -25744,20 +23009,17 @@ "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.", @@ -25765,7 +23027,6 @@ }, "bgcolor": { "valType": "color", - "role": "style", "dflt": "rgba(0,0,0,0)", "description": "Sets the color of padded area.", "editType": "calc" @@ -25777,7 +23038,6 @@ "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)." @@ -25786,13 +23046,11 @@ "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" @@ -25801,7 +23059,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "calc", "impliedEdits": { "tickmode": "linear" @@ -25811,14 +23068,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -25827,7 +23082,6 @@ "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": "" @@ -25843,7 +23097,6 @@ "inside bottom" ], "dflt": "outside", - "role": "info", "description": "Determines where tick labels are drawn.", "editType": "calc" }, @@ -25851,7 +23104,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "calc", "description": "Sets the tick length (in px)." }, @@ -25859,28 +23111,24 @@ "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*.", @@ -25888,13 +23136,11 @@ }, "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", @@ -25904,14 +23150,12 @@ "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*" }, @@ -25920,14 +23164,12 @@ "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", @@ -25944,20 +23186,17 @@ "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`." }, @@ -25969,7 +23208,6 @@ "tickprefix": { "valType": "string", "dflt": "", - "role": "style", "editType": "calc", "description": "Sets a tick label prefix." }, @@ -25982,14 +23220,12 @@ "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." }, @@ -26002,14 +23238,12 @@ "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" }, @@ -26024,7 +23258,6 @@ "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." }, @@ -26032,7 +23265,6 @@ "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*." }, @@ -26045,21 +23277,18 @@ "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*.", @@ -26067,13 +23296,11 @@ }, "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.", @@ -26087,7 +23314,6 @@ "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" @@ -26098,14 +23324,12 @@ "_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*.", @@ -26113,13 +23337,11 @@ }, "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`.", @@ -26132,7 +23354,6 @@ "top", "bottom" ], - "role": "style", "dflt": "top", "description": "Deprecated in favor of color bar's `title.side`.", "editType": "calc" @@ -26142,20 +23363,17 @@ "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", @@ -26165,7 +23383,6 @@ "x": { "show": { "valType": "boolean", - "role": "info", "dflt": false, "description": "Determines whether or not contour lines about the x dimension are drawn.", "editType": "calc" @@ -26173,14 +23390,12 @@ "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`" }, @@ -26188,28 +23403,24 @@ "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" @@ -26219,21 +23430,18 @@ }, "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, @@ -26242,21 +23450,18 @@ }, "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, @@ -26269,7 +23474,6 @@ "y": { "show": { "valType": "boolean", - "role": "info", "dflt": false, "description": "Determines whether or not contour lines about the y dimension are drawn.", "editType": "calc" @@ -26277,14 +23481,12 @@ "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`" }, @@ -26292,28 +23494,24 @@ "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" @@ -26323,21 +23521,18 @@ }, "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, @@ -26346,21 +23541,18 @@ }, "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, @@ -26373,7 +23565,6 @@ "z": { "show": { "valType": "boolean", - "role": "info", "dflt": false, "description": "Determines whether or not contour lines about the z dimension are drawn.", "editType": "calc" @@ -26381,14 +23572,12 @@ "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`" }, @@ -26396,28 +23585,24 @@ "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" @@ -26427,21 +23612,18 @@ }, "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, @@ -26450,21 +23632,18 @@ }, "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, @@ -26479,7 +23658,6 @@ }, "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" @@ -26487,7 +23665,6 @@ "lightposition": { "x": { "valType": "number", - "role": "style", "min": -100000, "max": 100000, "dflt": 10, @@ -26496,7 +23673,6 @@ }, "y": { "valType": "number", - "role": "style", "min": -100000, "max": 100000, "dflt": 10000, @@ -26505,7 +23681,6 @@ }, "z": { "valType": "number", - "role": "style", "min": -100000, "max": 100000, "dflt": 0, @@ -26518,7 +23693,6 @@ "lighting": { "ambient": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 0.8, @@ -26527,7 +23701,6 @@ }, "diffuse": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 0.8, @@ -26536,7 +23709,6 @@ }, "specular": { "valType": "number", - "role": "style", "min": 0, "max": 2, "dflt": 0.05, @@ -26545,7 +23717,6 @@ }, "roughness": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 0.5, @@ -26554,7 +23725,6 @@ }, "fresnel": { "valType": "number", - "role": "style", "min": 0, "max": 5, "dflt": 0.2, @@ -26566,7 +23736,6 @@ }, "opacity": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 1, @@ -26575,7 +23744,6 @@ }, "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'." }, @@ -26595,7 +23763,6 @@ }, "hoverinfo": { "valType": "flaglist", - "role": "info", "flags": [ "x", "y", @@ -26615,7 +23782,6 @@ }, "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." @@ -26640,7 +23806,6 @@ "thai", "ummalqura" ], - "role": "info", "editType": "calc", "dflt": "gregorian", "description": "Sets the calendar system to use with `x` date data." @@ -26665,7 +23830,6 @@ "thai", "ummalqura" ], - "role": "info", "editType": "calc", "dflt": "gregorian", "description": "Sets the calendar system to use with `y` date data." @@ -26690,81 +23854,68 @@ "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" } @@ -26789,60 +23940,51 @@ 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" + "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", - "role": "data" + "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, - "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 @@ -26850,7 +23992,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -26859,14 +24000,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -26875,19 +24014,16 @@ "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" } @@ -26900,7 +24036,6 @@ "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 @@ -26909,7 +24044,6 @@ "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 @@ -26918,25 +24052,21 @@ "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" } @@ -26946,7 +24076,6 @@ "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." }, @@ -26955,7 +24084,6 @@ "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." }, @@ -26964,57 +24092,48 @@ }, "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.", @@ -27022,7 +24141,6 @@ }, "fill": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 1, @@ -27044,7 +24162,6 @@ "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" }, @@ -27054,14 +24171,12 @@ "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, @@ -27075,7 +24190,6 @@ "x": { "show": { "valType": "boolean", - "role": "info", "dflt": false, "description": "Determines whether or not slice planes about the x dimension are drawn.", "editType": "calc" @@ -27083,13 +24197,11 @@ "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, @@ -27100,7 +24212,6 @@ "role": "object", "locationssrc": { "valType": "string", - "role": "info", "description": "Sets the source reference on Chart Studio Cloud for locations .", "editType": "none" } @@ -27108,7 +24219,6 @@ "y": { "show": { "valType": "boolean", - "role": "info", "dflt": false, "description": "Determines whether or not slice planes about the y dimension are drawn.", "editType": "calc" @@ -27116,13 +24226,11 @@ "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, @@ -27133,7 +24241,6 @@ "role": "object", "locationssrc": { "valType": "string", - "role": "info", "description": "Sets the source reference on Chart Studio Cloud for locations .", "editType": "none" } @@ -27141,7 +24248,6 @@ "z": { "show": { "valType": "boolean", - "role": "info", "dflt": false, "description": "Determines whether or not slice planes about the z dimension are drawn.", "editType": "calc" @@ -27149,13 +24255,11 @@ "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, @@ -27166,7 +24270,6 @@ "role": "object", "locationssrc": { "valType": "string", - "role": "info", "description": "Sets the source reference on Chart Studio Cloud for locations .", "editType": "none" } @@ -27178,14 +24281,12 @@ "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, @@ -27198,14 +24299,12 @@ "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, @@ -27218,14 +24317,12 @@ "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, @@ -27240,7 +24337,6 @@ }, "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.", @@ -27248,7 +24344,6 @@ }, "hovertext": { "valType": "string", - "role": "info", "dflt": "", "arrayOk": true, "description": "Same as `text`.", @@ -27256,7 +24351,6 @@ }, "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 ``.", @@ -27264,14 +24358,12 @@ }, "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": {}, @@ -27279,7 +24371,6 @@ }, "cmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -27289,7 +24380,6 @@ }, "cmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -27299,7 +24389,6 @@ }, "cmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -27307,7 +24396,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -27317,7 +24405,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -27325,14 +24412,12 @@ }, "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." @@ -27344,14 +24429,12 @@ "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.", @@ -27363,7 +24446,6 @@ "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" @@ -27372,7 +24454,6 @@ "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" }, @@ -27381,7 +24462,6 @@ "dflt": 1.02, "min": -2, "max": 3, - "role": "style", "description": "Sets the x position of the color bar (in plot fraction).", "editType": "calc" }, @@ -27393,13 +24473,11 @@ "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.", @@ -27407,7 +24485,6 @@ }, "y": { "valType": "number", - "role": "style", "dflt": 0.5, "min": -2, "max": 3, @@ -27421,14 +24498,12 @@ "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.", @@ -27437,7 +24512,6 @@ "outlinecolor": { "valType": "color", "dflt": "#444", - "role": "style", "editType": "calc", "description": "Sets the axis line color." }, @@ -27445,20 +24519,17 @@ "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.", @@ -27466,7 +24537,6 @@ }, "bgcolor": { "valType": "color", - "role": "style", "dflt": "rgba(0,0,0,0)", "description": "Sets the color of padded area.", "editType": "calc" @@ -27478,7 +24548,6 @@ "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)." @@ -27487,13 +24556,11 @@ "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" @@ -27502,7 +24569,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "calc", "impliedEdits": { "tickmode": "linear" @@ -27512,14 +24578,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -27528,7 +24592,6 @@ "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": "" @@ -27544,7 +24607,6 @@ "inside bottom" ], "dflt": "outside", - "role": "info", "description": "Determines where tick labels are drawn.", "editType": "calc" }, @@ -27552,7 +24614,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "calc", "description": "Sets the tick length (in px)." }, @@ -27560,28 +24621,24 @@ "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*.", @@ -27589,13 +24646,11 @@ }, "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", @@ -27605,14 +24660,12 @@ "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*" }, @@ -27621,14 +24674,12 @@ "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", @@ -27645,20 +24696,17 @@ "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`." }, @@ -27670,7 +24718,6 @@ "tickprefix": { "valType": "string", "dflt": "", - "role": "style", "editType": "calc", "description": "Sets a tick label prefix." }, @@ -27683,14 +24730,12 @@ "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." }, @@ -27703,14 +24748,12 @@ "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" }, @@ -27725,7 +24768,6 @@ "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." }, @@ -27733,7 +24775,6 @@ "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*." }, @@ -27746,21 +24787,18 @@ "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*.", @@ -27768,13 +24806,11 @@ }, "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.", @@ -27788,7 +24824,6 @@ "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" @@ -27799,14 +24834,12 @@ "_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*.", @@ -27814,13 +24847,11 @@ }, "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`.", @@ -27833,7 +24864,6 @@ "top", "bottom" ], - "role": "style", "dflt": "top", "description": "Deprecated in favor of color bar's `title.side`.", "editType": "calc" @@ -27843,20 +24873,17 @@ "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", @@ -27864,7 +24891,6 @@ }, "opacity": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 1, @@ -27874,7 +24900,6 @@ "lightposition": { "x": { "valType": "number", - "role": "style", "min": -100000, "max": 100000, "dflt": 100000, @@ -27883,7 +24908,6 @@ }, "y": { "valType": "number", - "role": "style", "min": -100000, "max": 100000, "dflt": 100000, @@ -27892,7 +24916,6 @@ }, "z": { "valType": "number", - "role": "style", "min": -100000, "max": 100000, "dflt": 0, @@ -27905,7 +24928,6 @@ "lighting": { "vertexnormalsepsilon": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 1e-12, @@ -27914,7 +24936,6 @@ }, "facenormalsepsilon": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 0, @@ -27924,7 +24945,6 @@ "editType": "calc", "ambient": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 0.8, @@ -27933,7 +24953,6 @@ }, "diffuse": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 0.8, @@ -27942,7 +24961,6 @@ }, "specular": { "valType": "number", - "role": "style", "min": 0, "max": 2, "dflt": 0.05, @@ -27951,7 +24969,6 @@ }, "roughness": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 0.5, @@ -27960,7 +24977,6 @@ }, "fresnel": { "valType": "number", - "role": "style", "min": 0, "max": 5, "dflt": 0.2, @@ -27971,7 +24987,6 @@ }, "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." @@ -27979,21 +24994,18 @@ "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, @@ -28005,7 +25017,6 @@ }, "hoverinfo": { "valType": "flaglist", - "role": "info", "flags": [ "x", "y", @@ -28025,74 +25036,62 @@ }, "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" } @@ -28117,60 +25116,51 @@ 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" + "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", - "role": "data" + "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, - "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 @@ -28178,7 +25168,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -28187,14 +25176,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -28203,19 +25190,16 @@ "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" } @@ -28228,7 +25212,6 @@ "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 @@ -28237,7 +25220,6 @@ "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 @@ -28246,25 +25228,21 @@ "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" } @@ -28274,7 +25252,6 @@ "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." }, @@ -28283,7 +25260,6 @@ "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." }, @@ -28292,57 +25268,48 @@ }, "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.", @@ -28350,7 +25317,6 @@ }, "fill": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 1, @@ -28372,7 +25338,6 @@ "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" }, @@ -28382,14 +25347,12 @@ "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, @@ -28403,7 +25366,6 @@ "x": { "show": { "valType": "boolean", - "role": "info", "dflt": false, "description": "Determines whether or not slice planes about the x dimension are drawn.", "editType": "calc" @@ -28411,13 +25373,11 @@ "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, @@ -28428,7 +25388,6 @@ "role": "object", "locationssrc": { "valType": "string", - "role": "info", "description": "Sets the source reference on Chart Studio Cloud for locations .", "editType": "none" } @@ -28436,7 +25395,6 @@ "y": { "show": { "valType": "boolean", - "role": "info", "dflt": false, "description": "Determines whether or not slice planes about the y dimension are drawn.", "editType": "calc" @@ -28444,13 +25402,11 @@ "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, @@ -28461,7 +25417,6 @@ "role": "object", "locationssrc": { "valType": "string", - "role": "info", "description": "Sets the source reference on Chart Studio Cloud for locations .", "editType": "none" } @@ -28469,7 +25424,6 @@ "z": { "show": { "valType": "boolean", - "role": "info", "dflt": false, "description": "Determines whether or not slice planes about the z dimension are drawn.", "editType": "calc" @@ -28477,13 +25431,11 @@ "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, @@ -28494,7 +25446,6 @@ "role": "object", "locationssrc": { "valType": "string", - "role": "info", "description": "Sets the source reference on Chart Studio Cloud for locations .", "editType": "none" } @@ -28506,14 +25457,12 @@ "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, @@ -28526,14 +25475,12 @@ "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, @@ -28546,14 +25493,12 @@ "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, @@ -28568,7 +25513,6 @@ }, "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.", @@ -28576,7 +25520,6 @@ }, "hovertext": { "valType": "string", - "role": "info", "dflt": "", "arrayOk": true, "description": "Same as `text`.", @@ -28584,7 +25527,6 @@ }, "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 ``.", @@ -28592,7 +25534,6 @@ }, "cauto": { "valType": "boolean", - "role": "info", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -28600,7 +25541,6 @@ }, "cmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -28610,7 +25550,6 @@ }, "cmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -28620,7 +25559,6 @@ }, "cmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -28628,7 +25566,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -28638,7 +25575,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -28646,14 +25582,12 @@ }, "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." @@ -28665,14 +25599,12 @@ "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.", @@ -28684,7 +25616,6 @@ "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" @@ -28693,7 +25624,6 @@ "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" }, @@ -28702,7 +25632,6 @@ "dflt": 1.02, "min": -2, "max": 3, - "role": "style", "description": "Sets the x position of the color bar (in plot fraction).", "editType": "calc" }, @@ -28714,13 +25643,11 @@ "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.", @@ -28728,7 +25655,6 @@ }, "y": { "valType": "number", - "role": "style", "dflt": 0.5, "min": -2, "max": 3, @@ -28742,14 +25668,12 @@ "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.", @@ -28758,7 +25682,6 @@ "outlinecolor": { "valType": "color", "dflt": "#444", - "role": "style", "editType": "calc", "description": "Sets the axis line color." }, @@ -28766,20 +25689,17 @@ "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.", @@ -28787,7 +25707,6 @@ }, "bgcolor": { "valType": "color", - "role": "style", "dflt": "rgba(0,0,0,0)", "description": "Sets the color of padded area.", "editType": "calc" @@ -28799,7 +25718,6 @@ "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)." @@ -28808,13 +25726,11 @@ "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" @@ -28823,7 +25739,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "calc", "impliedEdits": { "tickmode": "linear" @@ -28833,14 +25748,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -28849,7 +25762,6 @@ "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": "" @@ -28865,7 +25777,6 @@ "inside bottom" ], "dflt": "outside", - "role": "info", "description": "Determines where tick labels are drawn.", "editType": "calc" }, @@ -28873,7 +25784,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "calc", "description": "Sets the tick length (in px)." }, @@ -28881,28 +25791,24 @@ "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*.", @@ -28910,13 +25816,11 @@ }, "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", @@ -28926,14 +25830,12 @@ "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*" }, @@ -28942,14 +25844,12 @@ "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", @@ -28966,20 +25866,17 @@ "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`." }, @@ -28991,7 +25888,6 @@ "tickprefix": { "valType": "string", "dflt": "", - "role": "style", "editType": "calc", "description": "Sets a tick label prefix." }, @@ -29004,14 +25900,12 @@ "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." }, @@ -29024,14 +25918,12 @@ "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" }, @@ -29046,7 +25938,6 @@ "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." }, @@ -29054,7 +25945,6 @@ "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*." }, @@ -29067,21 +25957,18 @@ "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*.", @@ -29089,13 +25976,11 @@ }, "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.", @@ -29109,7 +25994,6 @@ "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" @@ -29120,14 +26004,12 @@ "_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*.", @@ -29135,13 +26017,11 @@ }, "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`.", @@ -29154,7 +26034,6 @@ "top", "bottom" ], - "role": "style", "dflt": "top", "description": "Deprecated in favor of color bar's `title.side`.", "editType": "calc" @@ -29164,20 +26043,17 @@ "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", @@ -29185,7 +26061,6 @@ }, "opacity": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 1, @@ -29194,14 +26069,12 @@ }, "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, @@ -29210,7 +26083,6 @@ }, "y": { "valType": "number", - "role": "style", "min": -100000, "max": 100000, "dflt": 100000, @@ -29219,7 +26091,6 @@ }, "z": { "valType": "number", - "role": "style", "min": -100000, "max": 100000, "dflt": 0, @@ -29232,7 +26103,6 @@ "lighting": { "vertexnormalsepsilon": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 1e-12, @@ -29241,7 +26111,6 @@ }, "facenormalsepsilon": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 0, @@ -29251,7 +26120,6 @@ "editType": "calc", "ambient": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 0.8, @@ -29260,7 +26128,6 @@ }, "diffuse": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 0.8, @@ -29269,7 +26136,6 @@ }, "specular": { "valType": "number", - "role": "style", "min": 0, "max": 2, "dflt": 0.05, @@ -29278,7 +26144,6 @@ }, "roughness": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 0.5, @@ -29287,7 +26152,6 @@ }, "fresnel": { "valType": "number", - "role": "style", "min": 0, "max": 5, "dflt": 0.2, @@ -29298,7 +26162,6 @@ }, "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." @@ -29306,21 +26169,18 @@ "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, @@ -29332,7 +26192,6 @@ }, "hoverinfo": { "valType": "flaglist", - "role": "info", "flags": [ "x", "y", @@ -29352,81 +26211,68 @@ }, "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" } @@ -29451,60 +26297,51 @@ 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" + "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", - "role": "data" + "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, - "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 @@ -29512,7 +26349,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -29521,14 +26357,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -29537,19 +26371,16 @@ "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" } @@ -29562,7 +26393,6 @@ "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 @@ -29571,7 +26401,6 @@ "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 @@ -29580,25 +26409,21 @@ "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" } @@ -29608,7 +26433,6 @@ "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." }, @@ -29617,7 +26441,6 @@ "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." }, @@ -29626,49 +26449,41 @@ }, "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" + "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.", - "role": "data" + "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.", - "role": "data" + "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.", - "role": "data" + "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.", - "role": "data" + "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.", - "role": "data" + "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", - "role": "info", "dflt": "", "arrayOk": true, "editType": "calc", @@ -29676,7 +26491,6 @@ }, "hovertext": { "valType": "string", - "role": "info", "dflt": "", "arrayOk": true, "editType": "calc", @@ -29684,7 +26498,6 @@ }, "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 ``.", @@ -29692,7 +26505,6 @@ }, "delaunayaxis": { "valType": "enumerated", - "role": "info", "values": [ "x", "y", @@ -29704,7 +26516,6 @@ }, "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." @@ -29712,8 +26523,7 @@ "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" + "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", @@ -29723,30 +26533,25 @@ ], "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": {}, @@ -29754,7 +26559,6 @@ }, "cmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -29764,7 +26568,6 @@ }, "cmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -29774,7 +26577,6 @@ }, "cmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -29782,7 +26584,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -29792,7 +26593,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -29800,14 +26600,12 @@ }, "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." @@ -29819,14 +26617,12 @@ "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.", @@ -29838,7 +26634,6 @@ "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" @@ -29847,7 +26642,6 @@ "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" }, @@ -29856,7 +26650,6 @@ "dflt": 1.02, "min": -2, "max": 3, - "role": "style", "description": "Sets the x position of the color bar (in plot fraction).", "editType": "colorbars" }, @@ -29868,13 +26661,11 @@ "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.", @@ -29882,7 +26673,6 @@ }, "y": { "valType": "number", - "role": "style", "dflt": 0.5, "min": -2, "max": 3, @@ -29896,14 +26686,12 @@ "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.", @@ -29912,7 +26700,6 @@ "outlinecolor": { "valType": "color", "dflt": "#444", - "role": "style", "editType": "colorbars", "description": "Sets the axis line color." }, @@ -29920,20 +26707,17 @@ "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.", @@ -29941,7 +26725,6 @@ }, "bgcolor": { "valType": "color", - "role": "style", "dflt": "rgba(0,0,0,0)", "description": "Sets the color of padded area.", "editType": "colorbars" @@ -29953,7 +26736,6 @@ "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)." @@ -29962,13 +26744,11 @@ "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" @@ -29977,7 +26757,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "colorbars", "impliedEdits": { "tickmode": "linear" @@ -29987,14 +26766,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -30003,7 +26780,6 @@ "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": "" @@ -30019,7 +26795,6 @@ "inside bottom" ], "dflt": "outside", - "role": "info", "description": "Determines where tick labels are drawn.", "editType": "colorbars" }, @@ -30027,7 +26802,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "colorbars", "description": "Sets the tick length (in px)." }, @@ -30035,28 +26809,24 @@ "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*.", @@ -30064,13 +26834,11 @@ }, "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", @@ -30080,14 +26848,12 @@ "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*" }, @@ -30096,14 +26862,12 @@ "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", @@ -30120,20 +26884,17 @@ "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`." }, @@ -30145,7 +26906,6 @@ "tickprefix": { "valType": "string", "dflt": "", - "role": "style", "editType": "colorbars", "description": "Sets a tick label prefix." }, @@ -30158,14 +26918,12 @@ "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." }, @@ -30178,14 +26936,12 @@ "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" }, @@ -30200,7 +26956,6 @@ "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." }, @@ -30208,7 +26963,6 @@ "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*." }, @@ -30221,21 +26975,18 @@ "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*.", @@ -30243,13 +26994,11 @@ }, "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.", @@ -30263,7 +27012,6 @@ "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" @@ -30274,14 +27022,12 @@ "_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*.", @@ -30289,13 +27035,11 @@ }, "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`.", @@ -30308,7 +27052,6 @@ "top", "bottom" ], - "role": "style", "dflt": "top", "description": "Deprecated in favor of color bar's `title.side`.", "editType": "colorbars" @@ -30318,20 +27061,17 @@ "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", @@ -30339,7 +27079,6 @@ }, "opacity": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 1, @@ -30348,7 +27087,6 @@ }, "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." @@ -30356,21 +27094,18 @@ "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, @@ -30383,7 +27118,6 @@ "lightposition": { "x": { "valType": "number", - "role": "style", "min": -100000, "max": 100000, "dflt": 100000, @@ -30392,7 +27126,6 @@ }, "y": { "valType": "number", - "role": "style", "min": -100000, "max": 100000, "dflt": 100000, @@ -30401,7 +27134,6 @@ }, "z": { "valType": "number", - "role": "style", "min": -100000, "max": 100000, "dflt": 0, @@ -30414,7 +27146,6 @@ "lighting": { "vertexnormalsepsilon": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 1e-12, @@ -30423,7 +27154,6 @@ }, "facenormalsepsilon": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 0.000001, @@ -30433,7 +27163,6 @@ "editType": "calc", "ambient": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 0.8, @@ -30442,7 +27171,6 @@ }, "diffuse": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 0.8, @@ -30451,7 +27179,6 @@ }, "specular": { "valType": "number", - "role": "style", "min": 0, "max": 2, "dflt": 0.05, @@ -30460,7 +27187,6 @@ }, "roughness": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 0.5, @@ -30469,7 +27195,6 @@ }, "fresnel": { "valType": "number", - "role": "style", "min": 0, "max": 5, "dflt": 0.2, @@ -30480,7 +27205,6 @@ }, "hoverinfo": { "valType": "flaglist", - "role": "info", "flags": [ "x", "y", @@ -30500,7 +27224,6 @@ }, "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." @@ -30525,7 +27248,6 @@ "thai", "ummalqura" ], - "role": "info", "editType": "calc", "dflt": "gregorian", "description": "Sets the calendar system to use with `x` date data." @@ -30550,7 +27272,6 @@ "thai", "ummalqura" ], - "role": "info", "editType": "calc", "dflt": "gregorian", "description": "Sets the calendar system to use with `y` date data." @@ -30575,111 +27296,93 @@ "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" } @@ -30704,60 +27407,51 @@ 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" + "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", - "role": "data" + "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, - "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 @@ -30765,7 +27459,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -30774,14 +27467,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -30790,19 +27481,16 @@ "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" } @@ -30815,7 +27503,6 @@ "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 @@ -30824,7 +27511,6 @@ "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 @@ -30833,25 +27519,21 @@ "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" } @@ -30861,7 +27543,6 @@ "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." }, @@ -30870,7 +27551,6 @@ "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." }, @@ -30879,45 +27559,38 @@ }, "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" + "description": "Sets the x components of the vector field." }, "v": { "valType": "data_array", "editType": "calc", - "description": "Sets the y components of the vector field.", - "role": "data" + "description": "Sets the y components of the vector field." }, "w": { "valType": "data_array", "editType": "calc", - "description": "Sets the z components of the vector field.", - "role": "data" + "description": "Sets the z components of the vector field." }, "sizemode": { "valType": "enumerated", @@ -30925,21 +27598,18 @@ "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", @@ -30952,7 +27622,6 @@ }, "text": { "valType": "string", - "role": "info", "dflt": "", "arrayOk": true, "editType": "calc", @@ -30960,7 +27629,6 @@ }, "hovertext": { "valType": "string", - "role": "info", "dflt": "", "arrayOk": true, "editType": "calc", @@ -30968,7 +27636,6 @@ }, "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 ``.", @@ -30976,14 +27643,12 @@ }, "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": {}, @@ -30991,7 +27656,6 @@ }, "cmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -31001,7 +27665,6 @@ }, "cmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -31011,7 +27674,6 @@ }, "cmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -31019,7 +27681,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -31029,7 +27690,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -31037,14 +27697,12 @@ }, "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." @@ -31056,14 +27714,12 @@ "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.", @@ -31075,7 +27731,6 @@ "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" @@ -31084,7 +27739,6 @@ "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" }, @@ -31093,7 +27747,6 @@ "dflt": 1.02, "min": -2, "max": 3, - "role": "style", "description": "Sets the x position of the color bar (in plot fraction).", "editType": "colorbars" }, @@ -31105,13 +27758,11 @@ "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.", @@ -31119,7 +27770,6 @@ }, "y": { "valType": "number", - "role": "style", "dflt": 0.5, "min": -2, "max": 3, @@ -31133,14 +27783,12 @@ "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.", @@ -31149,7 +27797,6 @@ "outlinecolor": { "valType": "color", "dflt": "#444", - "role": "style", "editType": "colorbars", "description": "Sets the axis line color." }, @@ -31157,20 +27804,17 @@ "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.", @@ -31178,7 +27822,6 @@ }, "bgcolor": { "valType": "color", - "role": "style", "dflt": "rgba(0,0,0,0)", "description": "Sets the color of padded area.", "editType": "colorbars" @@ -31190,7 +27833,6 @@ "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)." @@ -31199,13 +27841,11 @@ "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" @@ -31214,7 +27854,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "colorbars", "impliedEdits": { "tickmode": "linear" @@ -31224,14 +27863,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -31240,7 +27877,6 @@ "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": "" @@ -31256,7 +27892,6 @@ "inside bottom" ], "dflt": "outside", - "role": "info", "description": "Determines where tick labels are drawn.", "editType": "colorbars" }, @@ -31264,7 +27899,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "colorbars", "description": "Sets the tick length (in px)." }, @@ -31272,28 +27906,24 @@ "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*.", @@ -31301,13 +27931,11 @@ }, "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", @@ -31317,14 +27945,12 @@ "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*" }, @@ -31333,14 +27959,12 @@ "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", @@ -31357,20 +27981,17 @@ "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`." }, @@ -31382,7 +28003,6 @@ "tickprefix": { "valType": "string", "dflt": "", - "role": "style", "editType": "colorbars", "description": "Sets a tick label prefix." }, @@ -31395,14 +28015,12 @@ "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." }, @@ -31415,14 +28033,12 @@ "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" }, @@ -31437,7 +28053,6 @@ "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." }, @@ -31445,7 +28060,6 @@ "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*." }, @@ -31458,21 +28072,18 @@ "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*.", @@ -31480,13 +28091,11 @@ }, "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.", @@ -31500,7 +28109,6 @@ "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" @@ -31511,14 +28119,12 @@ "_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*.", @@ -31526,13 +28132,11 @@ }, "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`.", @@ -31545,7 +28149,6 @@ "top", "bottom" ], - "role": "style", "dflt": "top", "description": "Deprecated in favor of color bar's `title.side`.", "editType": "colorbars" @@ -31555,20 +28158,17 @@ "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", @@ -31576,7 +28176,6 @@ }, "opacity": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 1, @@ -31586,7 +28185,6 @@ "lightposition": { "x": { "valType": "number", - "role": "style", "min": -100000, "max": 100000, "dflt": 100000, @@ -31595,7 +28193,6 @@ }, "y": { "valType": "number", - "role": "style", "min": -100000, "max": 100000, "dflt": 100000, @@ -31604,7 +28201,6 @@ }, "z": { "valType": "number", - "role": "style", "min": -100000, "max": 100000, "dflt": 0, @@ -31617,7 +28213,6 @@ "lighting": { "vertexnormalsepsilon": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 1e-12, @@ -31626,7 +28221,6 @@ }, "facenormalsepsilon": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 0.000001, @@ -31636,7 +28230,6 @@ "editType": "calc", "ambient": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 0.8, @@ -31645,7 +28238,6 @@ }, "diffuse": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 0.8, @@ -31654,7 +28246,6 @@ }, "specular": { "valType": "number", - "role": "style", "min": 0, "max": 2, "dflt": 0.05, @@ -31663,7 +28254,6 @@ }, "roughness": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 0.5, @@ -31672,7 +28262,6 @@ }, "fresnel": { "valType": "number", - "role": "style", "min": 0, "max": 5, "dflt": 0.2, @@ -31683,7 +28272,6 @@ }, "hoverinfo": { "valType": "flaglist", - "role": "info", "flags": [ "x", "y", @@ -31707,86 +28295,72 @@ }, "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" } @@ -31811,60 +28385,51 @@ 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" + "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", - "role": "data" + "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, - "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 @@ -31872,7 +28437,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -31881,14 +28445,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -31897,19 +28459,16 @@ "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" } @@ -31922,7 +28481,6 @@ "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 @@ -31931,7 +28489,6 @@ "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 @@ -31940,25 +28497,21 @@ "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" } @@ -31968,7 +28521,6 @@ "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." }, @@ -31977,7 +28529,6 @@ "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." }, @@ -31986,82 +28537,69 @@ }, "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" + "description": "Sets the x components of the vector field." }, "v": { "valType": "data_array", "editType": "calc", - "description": "Sets the y components of the vector field.", - "role": "data" + "description": "Sets the y components of the vector field." }, "w": { "valType": "data_array", "editType": "calc", - "description": "Sets the z components of the vector field.", - "role": "data" + "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", - "role": "data" + "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", - "role": "data" + "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", - "role": "data" + "description": "Sets the z components of the starting position of the streamtubes" }, "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" } @@ -32070,13 +28608,11 @@ "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, @@ -32084,21 +28620,18 @@ }, "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 ``.", @@ -32106,14 +28639,12 @@ }, "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": {}, @@ -32121,7 +28652,6 @@ }, "cmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -32131,7 +28661,6 @@ }, "cmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -32141,7 +28670,6 @@ }, "cmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -32149,7 +28677,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -32159,7 +28686,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -32167,14 +28693,12 @@ }, "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." @@ -32186,14 +28710,12 @@ "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.", @@ -32205,7 +28727,6 @@ "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" @@ -32214,7 +28735,6 @@ "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" }, @@ -32223,7 +28743,6 @@ "dflt": 1.02, "min": -2, "max": 3, - "role": "style", "description": "Sets the x position of the color bar (in plot fraction).", "editType": "colorbars" }, @@ -32235,13 +28754,11 @@ "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.", @@ -32249,7 +28766,6 @@ }, "y": { "valType": "number", - "role": "style", "dflt": 0.5, "min": -2, "max": 3, @@ -32263,14 +28779,12 @@ "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.", @@ -32279,7 +28793,6 @@ "outlinecolor": { "valType": "color", "dflt": "#444", - "role": "style", "editType": "colorbars", "description": "Sets the axis line color." }, @@ -32287,20 +28800,17 @@ "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.", @@ -32308,7 +28818,6 @@ }, "bgcolor": { "valType": "color", - "role": "style", "dflt": "rgba(0,0,0,0)", "description": "Sets the color of padded area.", "editType": "colorbars" @@ -32320,7 +28829,6 @@ "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)." @@ -32329,13 +28837,11 @@ "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" @@ -32344,7 +28850,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "colorbars", "impliedEdits": { "tickmode": "linear" @@ -32354,14 +28859,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -32370,7 +28873,6 @@ "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": "" @@ -32386,7 +28888,6 @@ "inside bottom" ], "dflt": "outside", - "role": "info", "description": "Determines where tick labels are drawn.", "editType": "colorbars" }, @@ -32394,7 +28895,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "colorbars", "description": "Sets the tick length (in px)." }, @@ -32402,28 +28902,24 @@ "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*.", @@ -32431,13 +28927,11 @@ }, "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", @@ -32447,14 +28941,12 @@ "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*" }, @@ -32463,14 +28955,12 @@ "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", @@ -32487,20 +28977,17 @@ "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`." }, @@ -32512,7 +28999,6 @@ "tickprefix": { "valType": "string", "dflt": "", - "role": "style", "editType": "colorbars", "description": "Sets a tick label prefix." }, @@ -32525,14 +29011,12 @@ "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." }, @@ -32545,14 +29029,12 @@ "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" }, @@ -32567,7 +29049,6 @@ "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." }, @@ -32575,7 +29056,6 @@ "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*." }, @@ -32588,21 +29068,18 @@ "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*.", @@ -32610,13 +29087,11 @@ }, "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.", @@ -32630,7 +29105,6 @@ "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" @@ -32641,14 +29115,12 @@ "_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*.", @@ -32656,13 +29128,11 @@ }, "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`.", @@ -32675,7 +29145,6 @@ "top", "bottom" ], - "role": "style", "dflt": "top", "description": "Deprecated in favor of color bar's `title.side`.", "editType": "colorbars" @@ -32685,20 +29154,17 @@ "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", @@ -32706,7 +29172,6 @@ }, "opacity": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 1, @@ -32716,7 +29181,6 @@ "lightposition": { "x": { "valType": "number", - "role": "style", "min": -100000, "max": 100000, "dflt": 100000, @@ -32725,7 +29189,6 @@ }, "y": { "valType": "number", - "role": "style", "min": -100000, "max": 100000, "dflt": 100000, @@ -32734,7 +29197,6 @@ }, "z": { "valType": "number", - "role": "style", "min": -100000, "max": 100000, "dflt": 0, @@ -32747,7 +29209,6 @@ "lighting": { "vertexnormalsepsilon": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 1e-12, @@ -32756,7 +29217,6 @@ }, "facenormalsepsilon": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 0.000001, @@ -32766,7 +29226,6 @@ "editType": "calc", "ambient": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 0.8, @@ -32775,7 +29234,6 @@ }, "diffuse": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 0.8, @@ -32784,7 +29242,6 @@ }, "specular": { "valType": "number", - "role": "style", "min": 0, "max": 2, "dflt": 0.05, @@ -32793,7 +29250,6 @@ }, "roughness": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 0.5, @@ -32802,7 +29258,6 @@ }, "fresnel": { "valType": "number", - "role": "style", "min": 0, "max": 5, "dflt": 0.2, @@ -32813,7 +29268,6 @@ }, "hoverinfo": { "valType": "flaglist", - "role": "info", "flags": [ "x", "y", @@ -32838,74 +29292,62 @@ }, "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" } @@ -32933,28 +29375,24 @@ 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, @@ -32963,52 +29401,44 @@ }, "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" + "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", - "role": "data" + "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, - "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 @@ -33016,7 +29446,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -33025,14 +29454,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -33041,19 +29468,16 @@ "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" } @@ -33066,7 +29490,6 @@ "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 @@ -33075,7 +29498,6 @@ "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 @@ -33084,25 +29506,21 @@ "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" } @@ -33112,7 +29530,6 @@ "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." }, @@ -33121,7 +29538,6 @@ "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." }, @@ -33140,27 +29556,23 @@ }, "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" + "editType": "calc" }, "lat": { "valType": "data_array", "description": "Sets the latitude coordinates (in degrees North).", - "editType": "calc", - "role": "data" + "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", - "role": "data" + "editType": "calc" }, "locationmode": { "valType": "enumerated", @@ -33170,20 +29582,17 @@ "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*." @@ -33198,14 +29607,12 @@ "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", @@ -33213,7 +29620,6 @@ }, "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`.", @@ -33221,7 +29627,6 @@ }, "hovertext": { "valType": "string", - "role": "info", "dflt": "", "arrayOk": true, "editType": "calc", @@ -33230,7 +29635,6 @@ "textfont": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "calc", @@ -33239,14 +29643,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "calc", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "calc", "arrayOk": true }, @@ -33255,19 +29657,16 @@ "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" } @@ -33287,14 +29686,12 @@ ], "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." }, @@ -33302,7 +29699,6 @@ "valType": "number", "min": 0, "dflt": 2, - "role": "style", "editType": "calc", "description": "Sets the line width (in px)." }, @@ -33317,7 +29713,6 @@ "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*)." }, @@ -33327,7 +29722,6 @@ "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." }, @@ -33812,7 +30206,6 @@ ], "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." }, @@ -33821,7 +30214,6 @@ "min": 0, "max": 1, "arrayOk": true, - "role": "style", "editType": "calc", "description": "Sets the marker opacity." }, @@ -33830,14 +30222,12 @@ "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`." }, @@ -33845,7 +30235,6 @@ "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." }, @@ -33856,7 +30245,6 @@ "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." }, @@ -33867,14 +30255,12 @@ "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.", @@ -33886,7 +30272,6 @@ "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" @@ -33895,7 +30280,6 @@ "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" }, @@ -33904,7 +30288,6 @@ "dflt": 1.02, "min": -2, "max": 3, - "role": "style", "description": "Sets the x position of the color bar (in plot fraction).", "editType": "calc" }, @@ -33916,13 +30299,11 @@ "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.", @@ -33930,7 +30311,6 @@ }, "y": { "valType": "number", - "role": "style", "dflt": 0.5, "min": -2, "max": 3, @@ -33944,14 +30324,12 @@ "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.", @@ -33960,7 +30338,6 @@ "outlinecolor": { "valType": "color", "dflt": "#444", - "role": "style", "editType": "calc", "description": "Sets the axis line color." }, @@ -33968,20 +30345,17 @@ "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.", @@ -33989,7 +30363,6 @@ }, "bgcolor": { "valType": "color", - "role": "style", "dflt": "rgba(0,0,0,0)", "description": "Sets the color of padded area.", "editType": "calc" @@ -34001,7 +30374,6 @@ "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)." @@ -34010,13 +30382,11 @@ "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" @@ -34025,7 +30395,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "calc", "impliedEdits": { "tickmode": "linear" @@ -34035,14 +30404,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -34051,7 +30418,6 @@ "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": "" @@ -34067,7 +30433,6 @@ "inside bottom" ], "dflt": "outside", - "role": "info", "description": "Determines where tick labels are drawn.", "editType": "calc" }, @@ -34075,7 +30440,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "calc", "description": "Sets the tick length (in px)." }, @@ -34083,28 +30447,24 @@ "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*.", @@ -34112,13 +30472,11 @@ }, "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", @@ -34128,14 +30486,12 @@ "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*" }, @@ -34144,14 +30500,12 @@ "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", @@ -34168,20 +30522,17 @@ "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`." }, @@ -34193,7 +30544,6 @@ "tickprefix": { "valType": "string", "dflt": "", - "role": "style", "editType": "calc", "description": "Sets a tick label prefix." }, @@ -34206,14 +30556,12 @@ "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." }, @@ -34226,14 +30574,12 @@ "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" }, @@ -34248,7 +30594,6 @@ "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." }, @@ -34256,7 +30601,6 @@ "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*." }, @@ -34269,21 +30613,18 @@ "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*.", @@ -34291,13 +30632,11 @@ }, "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.", @@ -34311,7 +30650,6 @@ "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" @@ -34322,14 +30660,12 @@ "_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*.", @@ -34337,13 +30673,11 @@ }, "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`.", @@ -34356,7 +30690,6 @@ "top", "bottom" ], - "role": "style", "dflt": "top", "description": "Deprecated in favor of color bar's `title.side`.", "editType": "calc" @@ -34366,13 +30699,11 @@ "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" } @@ -34382,20 +30713,17 @@ "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": {}, @@ -34403,7 +30731,6 @@ }, "cmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -34413,7 +30740,6 @@ }, "cmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -34423,7 +30749,6 @@ }, "cmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -34431,7 +30756,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -34441,7 +30765,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -34449,14 +30772,12 @@ }, "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", @@ -34466,13 +30787,11 @@ "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" } @@ -34488,14 +30807,12 @@ ], "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." }, @@ -34503,13 +30820,11 @@ "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" } @@ -34517,13 +30832,11 @@ "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": {}, @@ -34531,7 +30844,6 @@ }, "cmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -34541,7 +30853,6 @@ }, "cmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -34551,7 +30862,6 @@ }, "cmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -34559,7 +30869,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -34569,7 +30878,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -34577,21 +30885,18 @@ }, "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", @@ -34601,25 +30906,21 @@ "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" } @@ -34631,13 +30932,11 @@ "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." }, @@ -34647,20 +30946,17 @@ "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." }, @@ -34670,7 +30966,6 @@ "textfont": { "color": { "valType": "color", - "role": "style", "editType": "calc", "description": "Sets the text font color of selected points." }, @@ -34686,20 +30981,17 @@ "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." }, @@ -34709,7 +31001,6 @@ "textfont": { "color": { "valType": "color", - "role": "style", "editType": "calc", "description": "Sets the text font color of unselected points, applied only when a selection exists." }, @@ -34721,7 +31012,6 @@ }, "hoverinfo": { "valType": "flaglist", - "role": "info", "flags": [ "lon", "lat", @@ -34741,7 +31031,6 @@ }, "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 ``.", @@ -34749,80 +31038,67 @@ }, "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" } @@ -34848,66 +31124,56 @@ 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" + "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", - "role": "data" + "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, - "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 @@ -34915,7 +31181,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -34924,14 +31189,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -34940,19 +31203,16 @@ "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" } @@ -34965,7 +31225,6 @@ "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 @@ -34974,7 +31233,6 @@ "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 @@ -34983,25 +31241,21 @@ "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" } @@ -35011,7 +31265,6 @@ "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." }, @@ -35020,7 +31273,6 @@ "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." }, @@ -35039,15 +31291,13 @@ }, "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" + "description": "Sets the coordinates via location IDs or names. See `locationmode` for more info." }, "locationmode": { "valType": "enumerated", @@ -35057,7 +31307,6 @@ "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" @@ -35065,25 +31314,21 @@ "z": { "valType": "data_array", "editType": "calc", - "description": "Sets the color values.", - "role": "data" + "description": "Sets the color values." }, "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", @@ -35091,7 +31336,6 @@ }, "hovertext": { "valType": "string", - "role": "info", "dflt": "", "arrayOk": true, "editType": "calc", @@ -35102,7 +31346,6 @@ "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" @@ -35111,7 +31354,6 @@ "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 @@ -35120,13 +31362,11 @@ "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" } @@ -35137,7 +31377,6 @@ "min": 0, "max": 1, "dflt": 1, - "role": "style", "editType": "style", "description": "Sets the opacity of the locations." }, @@ -35145,7 +31384,6 @@ "role": "object", "opacitysrc": { "valType": "string", - "role": "info", "description": "Sets the source reference on Chart Studio Cloud for opacity .", "editType": "none" } @@ -35156,7 +31394,6 @@ "valType": "number", "min": 0, "max": 1, - "role": "style", "editType": "calc", "description": "Sets the marker opacity of selected points." }, @@ -35172,7 +31409,6 @@ "valType": "number", "min": 0, "max": 1, - "role": "style", "editType": "calc", "description": "Sets the marker opacity of unselected points, applied only when a selection exists." }, @@ -35184,7 +31420,6 @@ }, "hoverinfo": { "valType": "flaglist", - "role": "info", "flags": [ "location", "z", @@ -35203,7 +31438,6 @@ }, "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 ``.", @@ -35211,14 +31445,12 @@ }, "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": {}, @@ -35226,7 +31458,6 @@ }, "zmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -35236,7 +31467,6 @@ }, "zmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -35246,7 +31476,6 @@ }, "zmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -35254,7 +31483,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -35264,7 +31492,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -35272,14 +31499,12 @@ }, "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." @@ -35291,14 +31516,12 @@ "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.", @@ -35310,7 +31533,6 @@ "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" @@ -35319,7 +31541,6 @@ "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" }, @@ -35328,7 +31549,6 @@ "dflt": 1.02, "min": -2, "max": 3, - "role": "style", "description": "Sets the x position of the color bar (in plot fraction).", "editType": "colorbars" }, @@ -35340,13 +31560,11 @@ "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.", @@ -35354,7 +31572,6 @@ }, "y": { "valType": "number", - "role": "style", "dflt": 0.5, "min": -2, "max": 3, @@ -35368,14 +31585,12 @@ "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.", @@ -35384,7 +31599,6 @@ "outlinecolor": { "valType": "color", "dflt": "#444", - "role": "style", "editType": "colorbars", "description": "Sets the axis line color." }, @@ -35392,20 +31606,17 @@ "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.", @@ -35413,7 +31624,6 @@ }, "bgcolor": { "valType": "color", - "role": "style", "dflt": "rgba(0,0,0,0)", "description": "Sets the color of padded area.", "editType": "colorbars" @@ -35425,7 +31635,6 @@ "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)." @@ -35434,13 +31643,11 @@ "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" @@ -35449,7 +31656,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "colorbars", "impliedEdits": { "tickmode": "linear" @@ -35459,14 +31665,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -35475,7 +31679,6 @@ "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": "" @@ -35491,7 +31694,6 @@ "inside bottom" ], "dflt": "outside", - "role": "info", "description": "Determines where tick labels are drawn.", "editType": "colorbars" }, @@ -35499,7 +31701,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "colorbars", "description": "Sets the tick length (in px)." }, @@ -35507,28 +31708,24 @@ "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*.", @@ -35536,13 +31733,11 @@ }, "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", @@ -35552,14 +31747,12 @@ "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*" }, @@ -35568,14 +31761,12 @@ "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", @@ -35592,20 +31783,17 @@ "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`." }, @@ -35617,7 +31805,6 @@ "tickprefix": { "valType": "string", "dflt": "", - "role": "style", "editType": "colorbars", "description": "Sets a tick label prefix." }, @@ -35630,14 +31817,12 @@ "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." }, @@ -35650,14 +31835,12 @@ "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" }, @@ -35672,7 +31855,6 @@ "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." }, @@ -35680,7 +31862,6 @@ "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*." }, @@ -35693,21 +31874,18 @@ "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*.", @@ -35715,13 +31893,11 @@ }, "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.", @@ -35735,7 +31911,6 @@ "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" @@ -35746,14 +31921,12 @@ "_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*.", @@ -35761,13 +31934,11 @@ }, "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`.", @@ -35780,7 +31951,6 @@ "top", "bottom" ], - "role": "style", "dflt": "top", "description": "Deprecated in favor of color bar's `title.side`.", "editType": "colorbars" @@ -35790,20 +31960,17 @@ "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", @@ -35811,62 +31978,52 @@ }, "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" } @@ -35897,65 +32054,55 @@ 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" + "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", - "role": "data" + "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, - "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", @@ -35976,14 +32123,12 @@ "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 @@ -35991,7 +32136,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -36000,14 +32144,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -36016,19 +32158,16 @@ "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" } @@ -36041,7 +32180,6 @@ "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 @@ -36050,7 +32188,6 @@ "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 @@ -36059,25 +32196,21 @@ "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" } @@ -36087,7 +32220,6 @@ "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." }, @@ -36096,7 +32228,6 @@ "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." }, @@ -36115,73 +32246,62 @@ }, "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" + "description": "Sets the x coordinates." }, "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" + "description": "Sets the y coordinates." }, "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." }, @@ -36193,7 +32313,6 @@ "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." }, @@ -36205,13 +32324,11 @@ "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", @@ -36219,7 +32336,6 @@ }, "hovertext": { "valType": "string", - "role": "info", "dflt": "", "arrayOk": true, "editType": "calc", @@ -36240,14 +32356,12 @@ ], "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", @@ -36256,14 +32370,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "calc", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "calc", "arrayOk": true }, @@ -36272,19 +32384,16 @@ "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" } @@ -36299,14 +32408,12 @@ "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." }, @@ -36314,7 +32421,6 @@ "valType": "number", "min": 0, "dflt": 2, - "role": "style", "editType": "calc", "description": "Sets the line width (in px)." }, @@ -36328,7 +32434,6 @@ "vhv" ], "dflt": "linear", - "role": "style", "editType": "calc", "description": "Determines the line shape. The values correspond to step-wise line shapes." }, @@ -36343,7 +32448,6 @@ "longdashdot" ], "dflt": "solid", - "role": "style", "description": "Sets the style of the lines.", "editType": "calc" }, @@ -36354,13 +32458,11 @@ "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": {}, @@ -36368,7 +32470,6 @@ }, "cmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -36378,7 +32479,6 @@ }, "cmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -36388,7 +32488,6 @@ }, "cmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -36396,7 +32495,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -36406,7 +32504,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -36414,14 +32511,12 @@ }, "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." @@ -36433,14 +32528,12 @@ "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.", @@ -36452,7 +32545,6 @@ "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" @@ -36461,7 +32553,6 @@ "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" }, @@ -36470,7 +32561,6 @@ "dflt": 1.02, "min": -2, "max": 3, - "role": "style", "description": "Sets the x position of the color bar (in plot fraction).", "editType": "calc" }, @@ -36482,13 +32572,11 @@ "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.", @@ -36496,7 +32584,6 @@ }, "y": { "valType": "number", - "role": "style", "dflt": 0.5, "min": -2, "max": 3, @@ -36510,14 +32597,12 @@ "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.", @@ -36526,7 +32611,6 @@ "outlinecolor": { "valType": "color", "dflt": "#444", - "role": "style", "editType": "calc", "description": "Sets the axis line color." }, @@ -36534,20 +32618,17 @@ "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.", @@ -36555,7 +32636,6 @@ }, "bgcolor": { "valType": "color", - "role": "style", "dflt": "rgba(0,0,0,0)", "description": "Sets the color of padded area.", "editType": "calc" @@ -36567,7 +32647,6 @@ "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)." @@ -36576,13 +32655,11 @@ "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" @@ -36591,7 +32668,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "calc", "impliedEdits": { "tickmode": "linear" @@ -36601,14 +32677,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -36617,7 +32691,6 @@ "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": "" @@ -36633,7 +32706,6 @@ "inside bottom" ], "dflt": "outside", - "role": "info", "description": "Determines where tick labels are drawn.", "editType": "calc" }, @@ -36641,7 +32713,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "calc", "description": "Sets the tick length (in px)." }, @@ -36649,28 +32720,24 @@ "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*.", @@ -36678,13 +32745,11 @@ }, "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", @@ -36694,14 +32759,12 @@ "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*" }, @@ -36710,14 +32773,12 @@ "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", @@ -36734,20 +32795,17 @@ "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`." }, @@ -36759,7 +32817,6 @@ "tickprefix": { "valType": "string", "dflt": "", - "role": "style", "editType": "calc", "description": "Sets a tick label prefix." }, @@ -36772,14 +32829,12 @@ "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." }, @@ -36792,14 +32847,12 @@ "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" }, @@ -36814,7 +32867,6 @@ "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." }, @@ -36822,7 +32874,6 @@ "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*." }, @@ -36835,21 +32886,18 @@ "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*.", @@ -36857,13 +32905,11 @@ }, "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.", @@ -36877,7 +32923,6 @@ "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" @@ -36888,14 +32933,12 @@ "_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*.", @@ -36903,13 +32946,11 @@ }, "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`.", @@ -36922,7 +32963,6 @@ "top", "bottom" ], - "role": "style", "dflt": "top", "description": "Deprecated in favor of color bar's `title.side`.", "editType": "calc" @@ -36932,20 +32972,17 @@ "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", @@ -37431,7 +33468,6 @@ ], "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." }, @@ -37440,14 +33476,12 @@ "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`." }, @@ -37455,7 +33489,6 @@ "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." }, @@ -37466,7 +33499,6 @@ "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." }, @@ -37475,7 +33507,6 @@ "min": 0, "max": 1, "arrayOk": true, - "role": "style", "editType": "calc", "description": "Sets the marker opacity." }, @@ -37483,13 +33514,11 @@ "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": {}, @@ -37497,7 +33526,6 @@ }, "cmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -37507,7 +33535,6 @@ }, "cmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -37517,7 +33544,6 @@ }, "cmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -37525,7 +33551,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -37535,7 +33560,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -37543,14 +33567,12 @@ }, "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", @@ -37560,7 +33582,6 @@ "valType": "number", "min": 0, "arrayOk": true, - "role": "style", "editType": "calc", "description": "Sets the width (in px) of the lines bounding the marker points." }, @@ -37568,13 +33589,11 @@ "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" } @@ -37583,25 +33602,21 @@ "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" } @@ -37609,7 +33624,6 @@ "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." }, @@ -37624,14 +33638,12 @@ "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." }, @@ -37641,20 +33653,17 @@ "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." }, @@ -37664,7 +33673,6 @@ "textfont": { "color": { "valType": "color", - "role": "style", "editType": "calc", "description": "Sets the text font color of selected points." }, @@ -37680,20 +33688,17 @@ "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." }, @@ -37703,7 +33708,6 @@ "textfont": { "color": { "valType": "color", - "role": "style", "editType": "calc", "description": "Sets the text font color of unselected points, applied only when a selection exists." }, @@ -37715,7 +33719,6 @@ }, "opacity": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 1, @@ -37724,7 +33727,6 @@ }, "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 ``.", @@ -37732,7 +33734,6 @@ }, "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. ", @@ -37741,7 +33742,6 @@ "error_x": { "visible": { "valType": "boolean", - "role": "info", "editType": "calc", "description": "Determines whether or not this set of error bars is visible." }, @@ -37753,33 +33753,28 @@ "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" + "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.", - "role": "data" + "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, - "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." }, @@ -37787,7 +33782,6 @@ "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" }, @@ -37795,24 +33789,20 @@ "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." }, @@ -37820,14 +33810,12 @@ "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." }, @@ -37835,7 +33823,6 @@ "_deprecated": { "opacity": { "valType": "number", - "role": "style", "editType": "calc", "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity." } @@ -37843,13 +33830,11 @@ "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" } @@ -37857,7 +33842,6 @@ "error_y": { "visible": { "valType": "boolean", - "role": "info", "editType": "calc", "description": "Determines whether or not this set of error bars is visible." }, @@ -37869,33 +33853,28 @@ "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" + "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.", - "role": "data" + "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, - "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." }, @@ -37903,7 +33882,6 @@ "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" }, @@ -37911,19 +33889,16 @@ "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." }, @@ -37931,14 +33906,12 @@ "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." }, @@ -37946,7 +33919,6 @@ "_deprecated": { "opacity": { "valType": "number", - "role": "style", "editType": "calc", "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity." } @@ -37954,13 +33926,11 @@ "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" } @@ -37985,7 +33955,6 @@ "thai", "ummalqura" ], - "role": "info", "editType": "calc", "dflt": "gregorian", "description": "Sets the calendar system to use with `x` date data." @@ -38010,88 +33979,74 @@ "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" } @@ -38120,65 +34075,55 @@ 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" + "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", - "role": "data" + "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, - "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", @@ -38199,14 +34144,12 @@ "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 @@ -38214,7 +34157,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -38223,14 +34165,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -38239,19 +34179,16 @@ "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" } @@ -38264,7 +34201,6 @@ "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 @@ -38273,7 +34209,6 @@ "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 @@ -38282,25 +34217,21 @@ "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" } @@ -38310,7 +34241,6 @@ "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." }, @@ -38319,7 +34249,6 @@ "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." }, @@ -38338,7 +34267,6 @@ }, "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." }, @@ -38347,20 +34275,17 @@ "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." }, @@ -38373,14 +34298,12 @@ "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." }, @@ -38390,20 +34313,17 @@ "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" } @@ -38413,7 +34333,6 @@ }, "text": { "valType": "string", - "role": "info", "dflt": "", "arrayOk": true, "editType": "calc", @@ -38421,7 +34340,6 @@ }, "hovertext": { "valType": "string", - "role": "info", "dflt": "", "arrayOk": true, "editType": "calc", @@ -38429,7 +34347,6 @@ }, "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 ``.", @@ -38439,13 +34356,11 @@ "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": {}, @@ -38453,7 +34368,6 @@ }, "cmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "style", "impliedEdits": { @@ -38463,7 +34377,6 @@ }, "cmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "style", "impliedEdits": { @@ -38473,7 +34386,6 @@ }, "cmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -38481,7 +34393,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -38491,7 +34402,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -38499,14 +34409,12 @@ }, "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." @@ -38518,14 +34426,12 @@ "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.", @@ -38537,7 +34443,6 @@ "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" @@ -38546,7 +34451,6 @@ "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" }, @@ -38555,7 +34459,6 @@ "dflt": 1.02, "min": -2, "max": 3, - "role": "style", "description": "Sets the x position of the color bar (in plot fraction).", "editType": "colorbars" }, @@ -38567,13 +34470,11 @@ "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.", @@ -38581,7 +34482,6 @@ }, "y": { "valType": "number", - "role": "style", "dflt": 0.5, "min": -2, "max": 3, @@ -38595,14 +34495,12 @@ "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.", @@ -38611,7 +34509,6 @@ "outlinecolor": { "valType": "color", "dflt": "#444", - "role": "style", "editType": "colorbars", "description": "Sets the axis line color." }, @@ -38619,20 +34516,17 @@ "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.", @@ -38640,7 +34534,6 @@ }, "bgcolor": { "valType": "color", - "role": "style", "dflt": "rgba(0,0,0,0)", "description": "Sets the color of padded area.", "editType": "colorbars" @@ -38652,7 +34545,6 @@ "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)." @@ -38661,13 +34553,11 @@ "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" @@ -38676,7 +34566,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "colorbars", "impliedEdits": { "tickmode": "linear" @@ -38686,14 +34575,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -38702,7 +34589,6 @@ "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": "" @@ -38718,7 +34604,6 @@ "inside bottom" ], "dflt": "outside", - "role": "info", "description": "Determines where tick labels are drawn.", "editType": "colorbars" }, @@ -38726,7 +34611,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "colorbars", "description": "Sets the tick length (in px)." }, @@ -38734,28 +34618,24 @@ "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*.", @@ -38763,13 +34643,11 @@ }, "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", @@ -38779,14 +34657,12 @@ "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*" }, @@ -38795,14 +34671,12 @@ "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", @@ -38819,20 +34693,17 @@ "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`." }, @@ -38844,7 +34715,6 @@ "tickprefix": { "valType": "string", "dflt": "", - "role": "style", "editType": "colorbars", "description": "Sets a tick label prefix." }, @@ -38857,14 +34727,12 @@ "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." }, @@ -38877,14 +34745,12 @@ "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" }, @@ -38899,7 +34765,6 @@ "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." }, @@ -38907,7 +34772,6 @@ "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*." }, @@ -38920,21 +34784,18 @@ "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*.", @@ -38942,13 +34803,11 @@ }, "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.", @@ -38962,7 +34821,6 @@ "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" @@ -38973,14 +34831,12 @@ "_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*.", @@ -38988,13 +34844,11 @@ }, "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`.", @@ -39007,7 +34861,6 @@ "top", "bottom" ], - "role": "style", "dflt": "top", "description": "Deprecated in favor of color bar's `title.side`.", "editType": "colorbars" @@ -39017,20 +34870,17 @@ "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", @@ -39516,7 +35366,6 @@ ], "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." }, @@ -39525,14 +35374,12 @@ "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`." }, @@ -39540,7 +35387,6 @@ "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." }, @@ -39551,7 +35397,6 @@ "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." }, @@ -39560,7 +35405,6 @@ "min": 0, "max": 1, "arrayOk": true, - "role": "style", "editType": "style", "description": "Sets the marker opacity." }, @@ -39568,13 +35412,11 @@ "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": {}, @@ -39582,7 +35424,6 @@ }, "cmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -39592,7 +35433,6 @@ }, "cmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -39602,7 +35442,6 @@ }, "cmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -39610,7 +35449,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -39620,7 +35458,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -39628,14 +35465,12 @@ }, "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", @@ -39645,7 +35480,6 @@ "valType": "number", "min": 0, "arrayOk": true, - "role": "style", "editType": "calc", "description": "Sets the width (in px) of the lines bounding the marker points." }, @@ -39653,13 +35487,11 @@ "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" } @@ -39668,25 +35500,21 @@ "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" } @@ -39694,7 +35522,6 @@ "xaxes": { "valType": "info_array", "freeLength": true, - "role": "info", "editType": "calc", "items": { "valType": "subplotid", @@ -39706,7 +35533,6 @@ "yaxes": { "valType": "info_array", "freeLength": true, - "role": "info", "editType": "calc", "items": { "valType": "subplotid", @@ -39718,7 +35544,6 @@ "diagonal": { "visible": { "valType": "boolean", - "role": "info", "dflt": true, "editType": "calc", "description": "Determines whether or not subplots on the diagonal are displayed." @@ -39728,14 +35553,12 @@ }, "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." @@ -39746,20 +35569,17 @@ "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." }, @@ -39775,20 +35595,17 @@ "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." }, @@ -39800,7 +35617,6 @@ }, "opacity": { "valType": "number", - "role": "style", "min": 0, "max": 1, "dflt": 1, @@ -39809,43 +35625,36 @@ }, "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" } @@ -39871,28 +35680,24 @@ 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, @@ -39901,38 +35706,32 @@ }, "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" + "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", - "role": "data" + "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, - "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", @@ -39953,14 +35752,12 @@ "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 @@ -39968,7 +35765,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -39977,14 +35773,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -39993,19 +35787,16 @@ "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" } @@ -40018,7 +35809,6 @@ "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 @@ -40027,7 +35817,6 @@ "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 @@ -40036,25 +35825,21 @@ "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" } @@ -40064,7 +35849,6 @@ "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." }, @@ -40073,7 +35857,6 @@ "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." }, @@ -40082,49 +35865,41 @@ }, "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" + "description": "Sets the x coordinates." }, "y": { "valType": "data_array", "editType": "calc+clearAxisTypes", - "description": "Sets the y coordinates.", - "role": "data" + "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]`", - "role": "data" + "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.", - "role": "data" + "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.", - "role": "data" + "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.", - "role": "data" + "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", - "role": "info", "dflt": "", "arrayOk": true, "editType": "calc", @@ -40134,7 +35909,6 @@ "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." }, @@ -40144,14 +35918,12 @@ "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." }, @@ -40160,7 +35932,6 @@ "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." }, @@ -40168,7 +35939,6 @@ "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." }, @@ -40176,7 +35946,6 @@ "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." }, @@ -40185,7 +35954,6 @@ "min": 0, "max": 1, "dflt": 0, - "role": "style", "editType": "calc", "description": "Specifies what fraction of the marker area is covered with the border." }, @@ -40197,81 +35965,68 @@ }, "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" } @@ -40297,14 +36052,12 @@ 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, @@ -40313,38 +36066,32 @@ }, "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" + "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", - "role": "data" + "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, - "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", @@ -40365,14 +36112,12 @@ "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 @@ -40380,7 +36125,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -40389,14 +36133,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -40405,19 +36147,16 @@ "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" } @@ -40430,7 +36169,6 @@ "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 @@ -40439,7 +36177,6 @@ "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 @@ -40448,25 +36185,21 @@ "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" } @@ -40476,7 +36209,6 @@ "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." }, @@ -40485,7 +36217,6 @@ "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." }, @@ -40504,15 +36235,13 @@ }, "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" + "description": "Sets the z data." }, "x": { "valType": "data_array", @@ -40520,13 +36249,11 @@ "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": { @@ -40536,7 +36263,6 @@ "dx": { "valType": "number", "dflt": 1, - "role": "info", "editType": "calc", "description": "Sets the x coordinate step. See `x0` for more info.", "impliedEdits": { @@ -40549,13 +36275,11 @@ "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": { @@ -40565,7 +36289,6 @@ "dy": { "valType": "number", "dflt": 1, - "role": "info", "editType": "calc", "description": "Sets the y coordinate step. See `y0` for more info.", "impliedEdits": { @@ -40575,13 +36298,11 @@ "text": { "valType": "data_array", "editType": "calc", - "description": "Sets the text elements associated with each z value.", - "role": "data" + "description": "Sets the text elements associated with each z value." }, "transpose": { "valType": "boolean", "dflt": false, - "role": "info", "editType": "calc", "description": "Transposes the z data." }, @@ -40591,7 +36312,6 @@ "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)." }, @@ -40601,7 +36321,6 @@ "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)" }, @@ -40612,13 +36331,11 @@ 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": {}, @@ -40626,7 +36343,6 @@ }, "zmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -40636,7 +36352,6 @@ }, "zmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -40646,7 +36361,6 @@ }, "zmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -40654,7 +36368,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -40664,7 +36377,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": false, "editType": "calc", "impliedEdits": {}, @@ -40672,14 +36384,12 @@ }, "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." @@ -40691,14 +36401,12 @@ "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.", @@ -40710,7 +36418,6 @@ "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" @@ -40719,7 +36426,6 @@ "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" }, @@ -40728,7 +36434,6 @@ "dflt": 1.02, "min": -2, "max": 3, - "role": "style", "description": "Sets the x position of the color bar (in plot fraction).", "editType": "calc" }, @@ -40740,13 +36445,11 @@ "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.", @@ -40754,7 +36457,6 @@ }, "y": { "valType": "number", - "role": "style", "dflt": 0.5, "min": -2, "max": 3, @@ -40768,14 +36470,12 @@ "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.", @@ -40784,7 +36484,6 @@ "outlinecolor": { "valType": "color", "dflt": "#444", - "role": "style", "editType": "calc", "description": "Sets the axis line color." }, @@ -40792,20 +36491,17 @@ "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.", @@ -40813,7 +36509,6 @@ }, "bgcolor": { "valType": "color", - "role": "style", "dflt": "rgba(0,0,0,0)", "description": "Sets the color of padded area.", "editType": "calc" @@ -40825,7 +36520,6 @@ "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)." @@ -40834,13 +36528,11 @@ "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" @@ -40849,7 +36541,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "calc", "impliedEdits": { "tickmode": "linear" @@ -40859,14 +36550,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -40875,7 +36564,6 @@ "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": "" @@ -40891,7 +36579,6 @@ "inside bottom" ], "dflt": "outside", - "role": "info", "description": "Determines where tick labels are drawn.", "editType": "calc" }, @@ -40899,7 +36586,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "calc", "description": "Sets the tick length (in px)." }, @@ -40907,28 +36593,24 @@ "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*.", @@ -40936,13 +36618,11 @@ }, "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", @@ -40952,14 +36632,12 @@ "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*" }, @@ -40968,14 +36646,12 @@ "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", @@ -40992,20 +36668,17 @@ "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`." }, @@ -41017,7 +36690,6 @@ "tickprefix": { "valType": "string", "dflt": "", - "role": "style", "editType": "calc", "description": "Sets a tick label prefix." }, @@ -41030,14 +36702,12 @@ "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." }, @@ -41050,14 +36720,12 @@ "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" }, @@ -41072,7 +36740,6 @@ "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." }, @@ -41080,7 +36747,6 @@ "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*." }, @@ -41093,21 +36759,18 @@ "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*.", @@ -41115,13 +36778,11 @@ }, "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.", @@ -41135,7 +36796,6 @@ "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" @@ -41146,14 +36806,12 @@ "_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*.", @@ -41161,13 +36819,11 @@ }, "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`.", @@ -41180,7 +36836,6 @@ "top", "bottom" ], - "role": "style", "dflt": "top", "description": "Deprecated in favor of color bar's `title.side`.", "editType": "calc" @@ -41190,20 +36845,17 @@ "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", @@ -41211,63 +36863,53 @@ }, "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" } @@ -41294,39 +36936,33 @@ 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" + "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", - "role": "data" + "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, - "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." }, @@ -41335,7 +36971,6 @@ "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." }, @@ -41344,7 +36979,6 @@ "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." }, @@ -41363,14 +36997,12 @@ }, "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": [ { @@ -41394,7 +37026,6 @@ }, "y": { "valType": "info_array", - "role": "info", "editType": "plot", "items": [ { @@ -41421,7 +37052,6 @@ "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 ." }, @@ -41429,7 +37059,6 @@ "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 ." }, @@ -41438,13 +37067,11 @@ "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" @@ -41456,7 +37083,6 @@ "labelfont": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "plot", @@ -41464,13 +37090,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot" }, "color": { "valType": "color", - "role": "style", "editType": "plot" }, "editType": "plot", @@ -41480,7 +37104,6 @@ "tickfont": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "plot", @@ -41488,13 +37111,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot" }, "color": { "valType": "color", - "role": "style", "editType": "plot" }, "editType": "plot", @@ -41504,7 +37125,6 @@ "rangefont": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "plot", @@ -41512,13 +37132,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot" }, "color": { "valType": "color", - "role": "style", "editType": "plot" }, "editType": "plot", @@ -41530,39 +37148,33 @@ "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" + "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`.", - "role": "data" + "description": "Sets the text displayed at the ticks position via `tickvals`." }, "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", @@ -41578,7 +37190,6 @@ }, "constraintrange": { "valType": "info_array", - "role": "info", "freeLength": true, "dimensions": "1-2", "items": [ @@ -41597,13 +37208,11 @@ "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." }, @@ -41611,32 +37220,27 @@ "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" } @@ -41649,13 +37253,11 @@ "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": {}, @@ -41663,7 +37265,6 @@ }, "cmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -41673,7 +37274,6 @@ }, "cmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -41683,7 +37283,6 @@ }, "cmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -41691,7 +37290,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": [ [ @@ -41770,7 +37368,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": false, "editType": "calc", "impliedEdits": {}, @@ -41778,14 +37375,12 @@ }, "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." @@ -41797,14 +37392,12 @@ "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.", @@ -41816,7 +37409,6 @@ "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" @@ -41825,7 +37417,6 @@ "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" }, @@ -41834,7 +37425,6 @@ "dflt": 1.02, "min": -2, "max": 3, - "role": "style", "description": "Sets the x position of the color bar (in plot fraction).", "editType": "colorbars" }, @@ -41846,13 +37436,11 @@ "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.", @@ -41860,7 +37448,6 @@ }, "y": { "valType": "number", - "role": "style", "dflt": 0.5, "min": -2, "max": 3, @@ -41874,14 +37461,12 @@ "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.", @@ -41890,7 +37475,6 @@ "outlinecolor": { "valType": "color", "dflt": "#444", - "role": "style", "editType": "colorbars", "description": "Sets the axis line color." }, @@ -41898,20 +37482,17 @@ "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.", @@ -41919,7 +37500,6 @@ }, "bgcolor": { "valType": "color", - "role": "style", "dflt": "rgba(0,0,0,0)", "description": "Sets the color of padded area.", "editType": "colorbars" @@ -41931,7 +37511,6 @@ "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)." @@ -41940,13 +37519,11 @@ "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" @@ -41955,7 +37532,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "colorbars", "impliedEdits": { "tickmode": "linear" @@ -41965,14 +37541,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -41981,7 +37555,6 @@ "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": "" @@ -41997,7 +37570,6 @@ "inside bottom" ], "dflt": "outside", - "role": "info", "description": "Determines where tick labels are drawn.", "editType": "colorbars" }, @@ -42005,7 +37577,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "colorbars", "description": "Sets the tick length (in px)." }, @@ -42013,28 +37584,24 @@ "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*.", @@ -42042,13 +37609,11 @@ }, "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", @@ -42058,14 +37623,12 @@ "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*" }, @@ -42074,14 +37637,12 @@ "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", @@ -42098,20 +37659,17 @@ "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`." }, @@ -42123,7 +37681,6 @@ "tickprefix": { "valType": "string", "dflt": "", - "role": "style", "editType": "colorbars", "description": "Sets a tick label prefix." }, @@ -42136,14 +37693,12 @@ "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." }, @@ -42156,14 +37711,12 @@ "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" }, @@ -42178,7 +37731,6 @@ "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." }, @@ -42186,7 +37738,6 @@ "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*." }, @@ -42199,21 +37750,18 @@ "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*.", @@ -42221,13 +37769,11 @@ }, "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.", @@ -42241,7 +37787,6 @@ "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" @@ -42252,14 +37797,12 @@ "_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*.", @@ -42267,13 +37810,11 @@ }, "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`.", @@ -42286,7 +37827,6 @@ "top", "bottom" ], - "role": "style", "dflt": "top", "description": "Deprecated in favor of color bar's `title.side`.", "editType": "colorbars" @@ -42296,20 +37836,17 @@ "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", @@ -42318,26 +37855,22 @@ "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" } @@ -42361,27 +37894,23 @@ 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." }, @@ -42390,7 +37919,6 @@ "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." }, @@ -42399,7 +37927,6 @@ "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." }, @@ -42418,14 +37945,12 @@ }, "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": [ { @@ -42449,7 +37974,6 @@ }, "y": { "valType": "info_array", - "role": "info", "editType": "calc", "items": [ { @@ -42476,7 +38000,6 @@ "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 ." }, @@ -42484,7 +38007,6 @@ "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 ." }, @@ -42492,7 +38014,6 @@ }, "hoverinfo": { "valType": "flaglist", - "role": "info", "flags": [ "count", "probability" @@ -42515,13 +38036,11 @@ "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 ``." @@ -42534,14 +38053,12 @@ "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." }, @@ -42552,14 +38069,12 @@ "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", @@ -42567,13 +38082,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "calc" }, "color": { "valType": "color", - "role": "style", "editType": "calc" }, "editType": "calc", @@ -42583,7 +38096,6 @@ "tickfont": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "calc", @@ -42591,13 +38103,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "calc" }, "color": { "valType": "color", - "role": "style", "editType": "calc" }, "editType": "calc", @@ -42609,7 +38119,6 @@ "dimension": { "label": { "valType": "string", - "role": "info", "editType": "calc", "description": "The shown name of the dimension." }, @@ -42622,32 +38131,27 @@ "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." }, @@ -42656,26 +38160,22 @@ "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" } @@ -42688,13 +38188,11 @@ "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": {}, @@ -42702,7 +38200,6 @@ }, "cmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -42712,7 +38209,6 @@ }, "cmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -42722,7 +38218,6 @@ }, "cmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -42730,7 +38225,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -42740,7 +38234,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -42748,14 +38241,12 @@ }, "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." @@ -42767,14 +38258,12 @@ "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.", @@ -42786,7 +38275,6 @@ "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" @@ -42795,7 +38283,6 @@ "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" }, @@ -42804,7 +38291,6 @@ "dflt": 1.02, "min": -2, "max": 3, - "role": "style", "description": "Sets the x position of the color bar (in plot fraction).", "editType": "colorbars" }, @@ -42816,13 +38302,11 @@ "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.", @@ -42830,7 +38314,6 @@ }, "y": { "valType": "number", - "role": "style", "dflt": 0.5, "min": -2, "max": 3, @@ -42844,14 +38327,12 @@ "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.", @@ -42860,7 +38341,6 @@ "outlinecolor": { "valType": "color", "dflt": "#444", - "role": "style", "editType": "colorbars", "description": "Sets the axis line color." }, @@ -42868,20 +38348,17 @@ "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.", @@ -42889,7 +38366,6 @@ }, "bgcolor": { "valType": "color", - "role": "style", "dflt": "rgba(0,0,0,0)", "description": "Sets the color of padded area.", "editType": "colorbars" @@ -42901,7 +38377,6 @@ "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)." @@ -42910,13 +38385,11 @@ "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" @@ -42925,7 +38398,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "colorbars", "impliedEdits": { "tickmode": "linear" @@ -42935,14 +38407,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -42951,7 +38421,6 @@ "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": "" @@ -42967,7 +38436,6 @@ "inside bottom" ], "dflt": "outside", - "role": "info", "description": "Determines where tick labels are drawn.", "editType": "colorbars" }, @@ -42975,7 +38443,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "colorbars", "description": "Sets the tick length (in px)." }, @@ -42983,28 +38450,24 @@ "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*.", @@ -43012,13 +38475,11 @@ }, "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", @@ -43028,14 +38489,12 @@ "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*" }, @@ -43044,14 +38503,12 @@ "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", @@ -43068,20 +38525,17 @@ "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`." }, @@ -43093,7 +38547,6 @@ "tickprefix": { "valType": "string", "dflt": "", - "role": "style", "editType": "colorbars", "description": "Sets a tick label prefix." }, @@ -43106,14 +38559,12 @@ "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." }, @@ -43126,14 +38577,12 @@ "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" }, @@ -43148,7 +38597,6 @@ "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." }, @@ -43156,7 +38604,6 @@ "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*." }, @@ -43169,21 +38616,18 @@ "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*.", @@ -43191,13 +38635,11 @@ }, "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.", @@ -43211,7 +38653,6 @@ "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" @@ -43222,14 +38663,12 @@ "_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*.", @@ -43237,13 +38676,11 @@ }, "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`.", @@ -43256,7 +38693,6 @@ "top", "bottom" ], - "role": "style", "dflt": "top", "description": "Deprecated in favor of color bar's `title.side`.", "editType": "colorbars" @@ -43266,20 +38702,17 @@ "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", @@ -43292,13 +38725,11 @@ "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 ``." @@ -43306,7 +38737,6 @@ "role": "object", "colorsrc": { "valType": "string", - "role": "info", "description": "Sets the source reference on Chart Studio Cloud for color .", "editType": "none" } @@ -43316,19 +38746,16 @@ "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" } @@ -43357,28 +38784,24 @@ 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, @@ -43387,52 +38810,44 @@ }, "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" + "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", - "role": "data" + "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, - "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 @@ -43440,7 +38855,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -43449,14 +38863,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -43465,19 +38877,16 @@ "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" } @@ -43490,7 +38899,6 @@ "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 @@ -43499,7 +38907,6 @@ "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 @@ -43508,25 +38915,21 @@ "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" } @@ -43536,7 +38939,6 @@ "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." }, @@ -43545,7 +38947,6 @@ "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." }, @@ -43564,21 +38965,18 @@ }, "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" + "editType": "calc" }, "lat": { "valType": "data_array", "description": "Sets the latitude coordinates (in degrees North).", - "editType": "calc", - "role": "data" + "editType": "calc" }, "mode": { "valType": "flaglist", @@ -43590,14 +38988,12 @@ "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", @@ -43605,7 +39001,6 @@ }, "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`.", @@ -43613,7 +39008,6 @@ }, "hovertext": { "valType": "string", - "role": "info", "dflt": "", "arrayOk": true, "editType": "calc", @@ -43622,7 +39016,6 @@ "line": { "color": { "valType": "color", - "role": "style", "editType": "calc", "description": "Sets the line color." }, @@ -43630,7 +39023,6 @@ "valType": "number", "min": 0, "dflt": 2, - "role": "style", "editType": "calc", "description": "Sets the line width (in px)." }, @@ -43640,7 +39032,6 @@ "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." }, @@ -43648,7 +39039,6 @@ "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" @@ -43656,7 +39046,6 @@ "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" @@ -43664,7 +39053,6 @@ "allowoverlap": { "valType": "boolean", "dflt": false, - "role": "style", "description": "Flag to draw all symbols, even if they overlap.", "editType": "calc" }, @@ -43673,7 +39061,6 @@ "min": 0, "max": 1, "arrayOk": true, - "role": "style", "editType": "calc", "description": "Sets the marker opacity." }, @@ -43682,14 +39069,12 @@ "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`." }, @@ -43697,7 +39082,6 @@ "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." }, @@ -43708,20 +39092,17 @@ "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": {}, @@ -43729,7 +39110,6 @@ }, "cmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -43739,7 +39119,6 @@ }, "cmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -43749,7 +39128,6 @@ }, "cmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -43757,7 +39135,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -43767,7 +39144,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -43775,14 +39151,12 @@ }, "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." @@ -43794,14 +39168,12 @@ "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.", @@ -43813,7 +39185,6 @@ "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" @@ -43822,7 +39193,6 @@ "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" }, @@ -43831,7 +39201,6 @@ "dflt": 1.02, "min": -2, "max": 3, - "role": "style", "description": "Sets the x position of the color bar (in plot fraction).", "editType": "calc" }, @@ -43843,13 +39212,11 @@ "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.", @@ -43857,7 +39224,6 @@ }, "y": { "valType": "number", - "role": "style", "dflt": 0.5, "min": -2, "max": 3, @@ -43871,14 +39237,12 @@ "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.", @@ -43887,7 +39251,6 @@ "outlinecolor": { "valType": "color", "dflt": "#444", - "role": "style", "editType": "calc", "description": "Sets the axis line color." }, @@ -43895,20 +39258,17 @@ "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.", @@ -43916,7 +39276,6 @@ }, "bgcolor": { "valType": "color", - "role": "style", "dflt": "rgba(0,0,0,0)", "description": "Sets the color of padded area.", "editType": "calc" @@ -43928,7 +39287,6 @@ "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)." @@ -43937,13 +39295,11 @@ "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" @@ -43952,7 +39308,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "calc", "impliedEdits": { "tickmode": "linear" @@ -43962,14 +39317,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -43978,7 +39331,6 @@ "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": "" @@ -43994,7 +39346,6 @@ "inside bottom" ], "dflt": "outside", - "role": "info", "description": "Determines where tick labels are drawn.", "editType": "calc" }, @@ -44002,7 +39353,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "calc", "description": "Sets the tick length (in px)." }, @@ -44010,28 +39360,24 @@ "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*.", @@ -44039,13 +39385,11 @@ }, "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", @@ -44055,14 +39399,12 @@ "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*" }, @@ -44071,14 +39413,12 @@ "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", @@ -44095,20 +39435,17 @@ "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`." }, @@ -44120,7 +39457,6 @@ "tickprefix": { "valType": "string", "dflt": "", - "role": "style", "editType": "calc", "description": "Sets a tick label prefix." }, @@ -44133,14 +39469,12 @@ "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." }, @@ -44153,14 +39487,12 @@ "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" }, @@ -44175,7 +39507,6 @@ "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." }, @@ -44183,7 +39514,6 @@ "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*." }, @@ -44196,21 +39526,18 @@ "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*.", @@ -44218,13 +39545,11 @@ }, "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.", @@ -44238,7 +39563,6 @@ "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" @@ -44249,14 +39573,12 @@ "_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*.", @@ -44264,13 +39586,11 @@ }, "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`.", @@ -44283,7 +39603,6 @@ "top", "bottom" ], - "role": "style", "dflt": "top", "description": "Deprecated in favor of color bar's `title.side`.", "editType": "calc" @@ -44293,20 +39612,17 @@ "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", @@ -44316,31 +39632,26 @@ "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" } @@ -44352,20 +39663,17 @@ "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*.", @@ -44374,13 +39682,11 @@ }, "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*.", @@ -44402,13 +39708,11 @@ ], "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" }, @@ -44418,20 +39722,17 @@ "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." }, @@ -44447,20 +39748,17 @@ "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." }, @@ -44472,7 +39770,6 @@ }, "hoverinfo": { "valType": "flaglist", - "role": "info", "flags": [ "lon", "lat", @@ -44491,7 +39788,6 @@ }, "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 ``.", @@ -44499,68 +39795,57 @@ }, "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" } @@ -44588,66 +39873,56 @@ 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" + "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", - "role": "data" + "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, - "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 @@ -44655,7 +39930,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -44664,14 +39938,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -44680,19 +39952,16 @@ "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" } @@ -44705,7 +39974,6 @@ "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 @@ -44714,7 +39982,6 @@ "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 @@ -44723,25 +39990,21 @@ "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" } @@ -44751,7 +40014,6 @@ "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." }, @@ -44760,7 +40022,6 @@ "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." }, @@ -44779,44 +40040,37 @@ }, "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" + "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.", - "role": "data" + "description": "Sets the color values." }, "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", @@ -44824,7 +40078,6 @@ }, "hovertext": { "valType": "string", - "role": "info", "dflt": "", "arrayOk": true, "editType": "calc", @@ -44835,7 +40088,6 @@ "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" @@ -44844,7 +40096,6 @@ "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 @@ -44853,13 +40104,11 @@ "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" } @@ -44870,7 +40119,6 @@ "min": 0, "max": 1, "dflt": 1, - "role": "style", "editType": "plot", "description": "Sets the opacity of the locations." }, @@ -44878,7 +40126,6 @@ "role": "object", "opacitysrc": { "valType": "string", - "role": "info", "description": "Sets the source reference on Chart Studio Cloud for opacity .", "editType": "none" } @@ -44889,7 +40136,6 @@ "valType": "number", "min": 0, "max": 1, - "role": "style", "editType": "plot", "description": "Sets the marker opacity of selected points." }, @@ -44905,7 +40151,6 @@ "valType": "number", "min": 0, "max": 1, - "role": "style", "editType": "plot", "description": "Sets the marker opacity of unselected points, applied only when a selection exists." }, @@ -44917,7 +40162,6 @@ }, "hoverinfo": { "valType": "flaglist", - "role": "info", "flags": [ "location", "z", @@ -44936,7 +40180,6 @@ }, "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 ``.", @@ -44944,14 +40187,12 @@ }, "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": {}, @@ -44959,7 +40200,6 @@ }, "zmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -44969,7 +40209,6 @@ }, "zmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -44979,7 +40218,6 @@ }, "zmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -44987,7 +40225,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -44997,7 +40234,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -45005,14 +40241,12 @@ }, "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." @@ -45024,14 +40258,12 @@ "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.", @@ -45043,7 +40275,6 @@ "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" @@ -45052,7 +40283,6 @@ "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" }, @@ -45061,7 +40291,6 @@ "dflt": 1.02, "min": -2, "max": 3, - "role": "style", "description": "Sets the x position of the color bar (in plot fraction).", "editType": "colorbars" }, @@ -45073,13 +40302,11 @@ "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.", @@ -45087,7 +40314,6 @@ }, "y": { "valType": "number", - "role": "style", "dflt": 0.5, "min": -2, "max": 3, @@ -45101,14 +40327,12 @@ "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.", @@ -45117,7 +40341,6 @@ "outlinecolor": { "valType": "color", "dflt": "#444", - "role": "style", "editType": "colorbars", "description": "Sets the axis line color." }, @@ -45125,20 +40348,17 @@ "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.", @@ -45146,7 +40366,6 @@ }, "bgcolor": { "valType": "color", - "role": "style", "dflt": "rgba(0,0,0,0)", "description": "Sets the color of padded area.", "editType": "colorbars" @@ -45158,7 +40377,6 @@ "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)." @@ -45167,13 +40385,11 @@ "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" @@ -45182,7 +40398,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "colorbars", "impliedEdits": { "tickmode": "linear" @@ -45192,14 +40407,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -45208,7 +40421,6 @@ "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": "" @@ -45224,7 +40436,6 @@ "inside bottom" ], "dflt": "outside", - "role": "info", "description": "Determines where tick labels are drawn.", "editType": "colorbars" }, @@ -45232,7 +40443,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "colorbars", "description": "Sets the tick length (in px)." }, @@ -45240,28 +40450,24 @@ "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*.", @@ -45269,13 +40475,11 @@ }, "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", @@ -45285,14 +40489,12 @@ "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*" }, @@ -45301,14 +40503,12 @@ "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", @@ -45325,20 +40525,17 @@ "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`." }, @@ -45350,7 +40547,6 @@ "tickprefix": { "valType": "string", "dflt": "", - "role": "style", "editType": "colorbars", "description": "Sets a tick label prefix." }, @@ -45363,14 +40559,12 @@ "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." }, @@ -45383,14 +40577,12 @@ "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" }, @@ -45405,7 +40597,6 @@ "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." }, @@ -45413,7 +40604,6 @@ "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*." }, @@ -45426,21 +40616,18 @@ "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*.", @@ -45448,13 +40635,11 @@ }, "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.", @@ -45468,7 +40653,6 @@ "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" @@ -45479,14 +40663,12 @@ "_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*.", @@ -45494,13 +40676,11 @@ }, "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`.", @@ -45513,7 +40693,6 @@ "top", "bottom" ], - "role": "style", "dflt": "top", "description": "Deprecated in favor of color bar's `title.side`.", "editType": "colorbars" @@ -45523,20 +40702,17 @@ "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", @@ -45544,62 +40720,52 @@ }, "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" } @@ -45626,21 +40792,18 @@ 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, @@ -45649,46 +40812,39 @@ }, "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" + "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", - "role": "data" + "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, - "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 @@ -45696,7 +40852,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -45705,14 +40860,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -45721,19 +40874,16 @@ "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" } @@ -45746,7 +40896,6 @@ "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 @@ -45755,7 +40904,6 @@ "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 @@ -45764,25 +40912,21 @@ "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" } @@ -45792,7 +40936,6 @@ "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." }, @@ -45801,7 +40944,6 @@ "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." }, @@ -45820,31 +40962,26 @@ }, "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" + "editType": "calc" }, "lat": { "valType": "data_array", "description": "Sets the latitude coordinates (in degrees North).", - "editType": "calc", - "role": "data" + "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", - "role": "data" + "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", - "role": "info", "editType": "plot", "arrayOk": true, "min": 1, @@ -45853,13 +40990,11 @@ }, "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", @@ -45867,7 +41002,6 @@ }, "hovertext": { "valType": "string", - "role": "info", "dflt": "", "arrayOk": true, "editType": "calc", @@ -45875,7 +41009,6 @@ }, "hoverinfo": { "valType": "flaglist", - "role": "info", "flags": [ "lon", "lat", @@ -45895,7 +41028,6 @@ }, "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 ``.", @@ -45903,14 +41035,12 @@ }, "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": {}, @@ -45918,7 +41048,6 @@ }, "zmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -45928,7 +41057,6 @@ }, "zmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -45938,7 +41066,6 @@ }, "zmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -45946,7 +41073,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -45956,7 +41082,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -45964,14 +41089,12 @@ }, "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." @@ -45983,14 +41106,12 @@ "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.", @@ -46002,7 +41123,6 @@ "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" @@ -46011,7 +41131,6 @@ "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" }, @@ -46020,7 +41139,6 @@ "dflt": 1.02, "min": -2, "max": 3, - "role": "style", "description": "Sets the x position of the color bar (in plot fraction).", "editType": "colorbars" }, @@ -46032,13 +41150,11 @@ "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.", @@ -46046,7 +41162,6 @@ }, "y": { "valType": "number", - "role": "style", "dflt": 0.5, "min": -2, "max": 3, @@ -46060,14 +41175,12 @@ "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.", @@ -46076,7 +41189,6 @@ "outlinecolor": { "valType": "color", "dflt": "#444", - "role": "style", "editType": "colorbars", "description": "Sets the axis line color." }, @@ -46084,20 +41196,17 @@ "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.", @@ -46105,7 +41214,6 @@ }, "bgcolor": { "valType": "color", - "role": "style", "dflt": "rgba(0,0,0,0)", "description": "Sets the color of padded area.", "editType": "colorbars" @@ -46117,7 +41225,6 @@ "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)." @@ -46126,13 +41233,11 @@ "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" @@ -46141,7 +41246,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "colorbars", "impliedEdits": { "tickmode": "linear" @@ -46151,14 +41255,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -46167,7 +41269,6 @@ "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": "" @@ -46183,7 +41284,6 @@ "inside bottom" ], "dflt": "outside", - "role": "info", "description": "Determines where tick labels are drawn.", "editType": "colorbars" }, @@ -46191,7 +41291,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "colorbars", "description": "Sets the tick length (in px)." }, @@ -46199,28 +41298,24 @@ "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*.", @@ -46228,13 +41323,11 @@ }, "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", @@ -46244,14 +41337,12 @@ "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*" }, @@ -46260,14 +41351,12 @@ "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", @@ -46284,20 +41373,17 @@ "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`." }, @@ -46309,7 +41395,6 @@ "tickprefix": { "valType": "string", "dflt": "", - "role": "style", "editType": "colorbars", "description": "Sets a tick label prefix." }, @@ -46322,14 +41407,12 @@ "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." }, @@ -46342,14 +41425,12 @@ "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" }, @@ -46364,7 +41445,6 @@ "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." }, @@ -46372,7 +41452,6 @@ "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*." }, @@ -46385,21 +41464,18 @@ "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*.", @@ -46407,13 +41483,11 @@ }, "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.", @@ -46427,7 +41501,6 @@ "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" @@ -46438,14 +41511,12 @@ "_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*.", @@ -46453,13 +41524,11 @@ }, "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`.", @@ -46472,7 +41541,6 @@ "top", "bottom" ], - "role": "style", "dflt": "top", "description": "Deprecated in favor of color bar's `title.side`.", "editType": "colorbars" @@ -46482,20 +41550,17 @@ "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", @@ -46503,74 +41568,62 @@ }, "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" } @@ -46594,45 +41647,38 @@ 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" + "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", - "role": "data" + "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, - "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." }, @@ -46641,7 +41687,6 @@ "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." }, @@ -46650,7 +41695,6 @@ "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." }, @@ -46659,13 +41703,11 @@ }, "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", @@ -46680,14 +41722,12 @@ "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 @@ -46695,7 +41735,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "calc", @@ -46704,14 +41743,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "calc", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "calc", "arrayOk": true }, @@ -46720,19 +41757,16 @@ "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" } @@ -46745,7 +41779,6 @@ "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 @@ -46754,7 +41787,6 @@ "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 @@ -46763,25 +41795,21 @@ "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" } @@ -46789,7 +41817,6 @@ "domain": { "x": { "valType": "info_array", - "role": "info", "items": [ { "valType": "number", @@ -46813,7 +41840,6 @@ }, "y": { "valType": "info_array", - "role": "info", "items": [ { "valType": "number", @@ -46839,7 +41865,6 @@ "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" }, @@ -46847,7 +41872,6 @@ "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" }, @@ -46861,21 +41885,18 @@ "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" }, @@ -46888,14 +41909,12 @@ "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*.", @@ -46903,13 +41922,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "calc" }, "color": { "valType": "color", - "role": "style", "editType": "calc" }, "description": "Sets the font for node labels", @@ -46920,7 +41937,6 @@ "label": { "valType": "data_array", "dflt": [], - "role": "data", "description": "The shown name of the node.", "editType": "calc" }, @@ -46937,27 +41953,23 @@ "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" @@ -46965,13 +41977,11 @@ "customdata": { "valType": "data_array", "editType": "calc", - "description": "Assigns extra data to each node.", - "role": "data" + "description": "Assigns extra data to each node." }, "line": { "color": { "valType": "color", - "role": "style", "dflt": "#444", "arrayOk": true, "description": "Sets the color of the `line` around each `node`.", @@ -46979,7 +41989,6 @@ }, "width": { "valType": "number", - "role": "style", "min": 0, "dflt": 0.5, "arrayOk": true, @@ -46990,13 +41999,11 @@ "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" } @@ -47006,7 +42013,6 @@ "arrayOk": false, "min": 0, "dflt": 20, - "role": "style", "description": "Sets the padding (in px) between the `nodes`.", "editType": "calc" }, @@ -47015,7 +42021,6 @@ "arrayOk": false, "min": 1, "dflt": 20, - "role": "style", "description": "Sets the thickness (in px) of the `nodes`.", "editType": "calc" }, @@ -47027,21 +42032,18 @@ "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 @@ -47049,7 +42051,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "calc", @@ -47058,14 +42059,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "calc", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "calc", "arrayOk": true }, @@ -47074,19 +42073,16 @@ "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" } @@ -47099,7 +42095,6 @@ "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 @@ -47108,7 +42103,6 @@ "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 @@ -47117,32 +42111,27 @@ "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 ``.", @@ -47153,37 +42142,31 @@ "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" } @@ -47192,13 +42175,11 @@ "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" @@ -47206,13 +42187,11 @@ "customdata": { "valType": "data_array", "editType": "calc", - "description": "Assigns extra data to each link.", - "role": "data" + "description": "Assigns extra data to each link." }, "line": { "color": { "valType": "color", - "role": "style", "dflt": "#444", "arrayOk": true, "description": "Sets the color of the `line` around each `link`.", @@ -47220,7 +42199,6 @@ }, "width": { "valType": "number", - "role": "style", "min": 0, "dflt": 0, "arrayOk": true, @@ -47231,27 +42209,23 @@ "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" @@ -47259,7 +42233,6 @@ "value": { "valType": "data_array", "dflt": [], - "role": "data", "description": "A numeric value representing the flow volume value.", "editType": "calc" }, @@ -47271,21 +42244,18 @@ "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 @@ -47293,7 +42263,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "calc", @@ -47302,14 +42271,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "calc", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "calc", "arrayOk": true }, @@ -47318,19 +42285,16 @@ "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" } @@ -47343,7 +42307,6 @@ "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 @@ -47352,7 +42315,6 @@ "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 @@ -47361,32 +42323,27 @@ "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 ``.", @@ -47398,28 +42355,24 @@ "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": [ [ @@ -47438,13 +42391,11 @@ }, "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`." }, @@ -47454,66 +42405,56 @@ "role": "object" }, "description": "The links of the Sankey plot.", - "role": "object", "editType": "calc", + "role": "object", "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" } @@ -47539,20 +42480,17 @@ 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." @@ -47561,19 +42499,16 @@ "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" + "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", - "role": "data" + "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, - "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." }, @@ -47582,7 +42517,6 @@ "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." }, @@ -47591,7 +42525,6 @@ "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." }, @@ -47610,14 +42543,12 @@ }, "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", @@ -47629,7 +42560,6 @@ "value": { "valType": "number", "editType": "calc", - "role": "info", "anim": true, "description": "Sets the number to be displayed." }, @@ -47640,14 +42570,12 @@ "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": [ { @@ -47671,7 +42599,6 @@ }, "y": { "valType": "info_array", - "role": "info", "editType": "calc", "items": [ { @@ -47698,7 +42625,6 @@ "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 ." }, @@ -47706,7 +42632,6 @@ "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 ." }, @@ -47715,7 +42640,6 @@ "title": { "text": { "valType": "string", - "role": "info", "editType": "plot", "description": "Sets the title of this indicator." }, @@ -47726,14 +42650,12 @@ "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", @@ -47741,13 +42663,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot" }, "color": { "valType": "color", - "role": "style", "editType": "plot" }, "editType": "plot", @@ -47761,14 +42681,12 @@ "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", @@ -47776,13 +42694,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot" }, "color": { "valType": "color", - "role": "style", "editType": "plot" }, "editType": "plot", @@ -47792,14 +42708,12 @@ "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." }, @@ -47809,7 +42723,6 @@ "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." }, @@ -47821,7 +42734,6 @@ "left", "right" ], - "role": "info", "dflt": "bottom", "editType": "plot", "description": "Sets the position of delta with respect to the number." @@ -47829,27 +42741,23 @@ "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." @@ -47860,14 +42768,12 @@ "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." @@ -47878,7 +42784,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "plot", @@ -47886,13 +42791,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot" }, "color": { "valType": "color", - "role": "style", "editType": "plot" }, "editType": "plot", @@ -47906,7 +42809,6 @@ "shape": { "valType": "enumerated", "editType": "plot", - "role": "info", "dflt": "angular", "values": [ "angular", @@ -47918,21 +42820,18 @@ "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", @@ -47943,7 +42842,6 @@ }, "thickness": { "valType": "number", - "role": "info", "min": 0, "max": 1, "dflt": 1, @@ -47956,14 +42854,12 @@ }, "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." }, @@ -47971,14 +42867,12 @@ "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", @@ -47994,7 +42888,6 @@ }, "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 @@ -48006,7 +42899,6 @@ "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)." @@ -48015,13 +42907,11 @@ "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" @@ -48030,7 +42920,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "plot", "impliedEdits": { "tickmode": "linear" @@ -48040,14 +42929,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -48056,7 +42943,6 @@ "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" @@ -48065,7 +42951,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "plot", "description": "Sets the tick length (in px)." }, @@ -48073,28 +42958,24 @@ "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*.", @@ -48102,13 +42983,11 @@ }, "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", @@ -48118,14 +42997,12 @@ "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*" }, @@ -48134,14 +43011,12 @@ "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", @@ -48158,20 +43033,17 @@ "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`." }, @@ -48183,7 +43055,6 @@ "tickprefix": { "valType": "string", "dflt": "", - "role": "style", "editType": "plot", "description": "Sets a tick label prefix." }, @@ -48196,14 +43067,12 @@ "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." }, @@ -48216,14 +43085,12 @@ "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" }, @@ -48238,7 +43105,6 @@ "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." }, @@ -48246,7 +43112,6 @@ "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*." }, @@ -48259,7 +43124,6 @@ "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." }, @@ -48267,13 +43131,11 @@ "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" } @@ -48284,20 +43146,17 @@ "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", @@ -48308,7 +43167,6 @@ }, "thickness": { "valType": "number", - "role": "info", "min": 0, "max": 1, "dflt": 1, @@ -48318,7 +43176,6 @@ "editType": "calc", "range": { "valType": "info_array", - "role": "info", "items": [ { "valType": "number", @@ -48334,13 +43191,11 @@ }, "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`." }, @@ -48353,14 +43208,12 @@ "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", @@ -48371,7 +43224,6 @@ }, "thickness": { "valType": "number", - "role": "info", "min": 0, "max": 1, "dflt": 0.85, @@ -48382,7 +43234,6 @@ "valType": "number", "editType": "calc", "dflt": false, - "role": "info", "description": "Sets a treshold value drawn as a line." }, "editType": "plot", @@ -48394,19 +43245,16 @@ }, "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" } @@ -48430,45 +43278,38 @@ 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" + "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", - "role": "data" + "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, - "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", @@ -48489,14 +43330,12 @@ "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 @@ -48504,7 +43343,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -48513,14 +43351,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -48529,19 +43365,16 @@ "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" } @@ -48554,7 +43387,6 @@ "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 @@ -48563,7 +43395,6 @@ "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 @@ -48572,25 +43403,21 @@ "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" } @@ -48600,7 +43427,6 @@ "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." }, @@ -48609,7 +43435,6 @@ "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." }, @@ -48618,14 +43443,12 @@ }, "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", @@ -48649,7 +43472,6 @@ }, "y": { "valType": "info_array", - "role": "info", "items": [ { "valType": "number", @@ -48675,7 +43497,6 @@ "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" }, @@ -48683,7 +43504,6 @@ "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" }, @@ -48694,27 +43514,23 @@ "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" @@ -48723,7 +43539,6 @@ "valType": "string", "arrayOk": true, "dflt": null, - "role": "style", "description": "Prefix for cell values.", "editType": "calc" }, @@ -48731,14 +43546,12 @@ "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" }, @@ -48750,7 +43563,6 @@ "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 @@ -48760,27 +43572,23 @@ "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" } @@ -48790,7 +43598,6 @@ "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" }, @@ -48798,7 +43605,6 @@ "role": "object", "colorsrc": { "valType": "string", - "role": "info", "description": "Sets the source reference on Chart Studio Cloud for color .", "editType": "none" } @@ -48806,7 +43612,6 @@ "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*.", @@ -48815,14 +43620,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "arrayOk": true, "editType": "calc" }, "color": { "valType": "color", - "role": "style", "arrayOk": true, "editType": "calc" }, @@ -48831,19 +43634,16 @@ "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" } @@ -48852,31 +43652,26 @@ "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" } @@ -48884,14 +43679,12 @@ "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" @@ -48900,7 +43693,6 @@ "valType": "string", "arrayOk": true, "dflt": null, - "role": "style", "description": "Prefix for cell values.", "editType": "calc" }, @@ -48908,14 +43700,12 @@ "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" }, @@ -48927,7 +43717,6 @@ "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 @@ -48937,27 +43726,23 @@ "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" } @@ -48966,7 +43751,6 @@ "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" @@ -48975,7 +43759,6 @@ "role": "object", "colorsrc": { "valType": "string", - "role": "info", "description": "Sets the source reference on Chart Studio Cloud for color .", "editType": "none" } @@ -48983,7 +43766,6 @@ "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*.", @@ -48992,14 +43774,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "arrayOk": true, "editType": "calc" }, "color": { "valType": "color", - "role": "style", "arrayOk": true, "editType": "calc" }, @@ -49008,19 +43788,16 @@ "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" } @@ -49029,31 +43806,26 @@ "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" } @@ -49061,37 +43833,31 @@ "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" } @@ -49122,14 +43888,12 @@ 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, @@ -49138,13 +43902,11 @@ }, "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." @@ -49153,19 +43915,16 @@ "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" + "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", - "role": "data" + "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, - "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." }, @@ -49174,7 +43933,6 @@ "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." }, @@ -49183,7 +43941,6 @@ "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." }, @@ -49192,71 +43949,60 @@ }, "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" + "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.", - "role": "data" + "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", - "role": "data" + "description": "An array containing values of the first parameter value" }, "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" + "description": "A two dimensional array of y coordinates at each carpet point." }, "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." @@ -49264,7 +44010,6 @@ "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." }, @@ -49273,21 +44018,18 @@ "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", @@ -49295,13 +44037,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "calc" }, "color": { "valType": "color", - "role": "style", "editType": "calc" }, "editType": "calc", @@ -49310,7 +44050,6 @@ }, "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." @@ -49327,7 +44066,6 @@ "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." }, @@ -49338,7 +44076,6 @@ "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." }, @@ -49350,7 +44087,6 @@ "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*." }, @@ -49362,13 +44098,11 @@ "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": [ { @@ -49385,7 +44119,6 @@ "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." }, @@ -49396,7 +44129,6 @@ "value" ], "dflt": "value", - "role": "info", "editType": "calc" }, "tickmode": { @@ -49406,28 +44138,24 @@ "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" + "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`.", - "role": "data" + "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", @@ -49438,14 +44166,12 @@ "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", @@ -49453,13 +44179,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "calc" }, "color": { "valType": "color", - "role": "style", "editType": "calc" }, "editType": "calc", @@ -49469,14 +44193,12 @@ "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." }, @@ -49489,14 +44211,12 @@ "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." }, @@ -49509,7 +44229,6 @@ "none" ], "dflt": "all", - "role": "style", "editType": "calc", "description": "Same as `showtickprefix` but for tick suffixes." }, @@ -49522,7 +44241,6 @@ "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." }, @@ -49537,7 +44255,6 @@ "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." }, @@ -49545,21 +44262,18 @@ "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*" }, @@ -49568,14 +44282,12 @@ "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", @@ -49592,20 +44304,17 @@ "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`." }, @@ -49623,47 +44332,40 @@ "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." }, @@ -49671,13 +44373,11 @@ "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." }, @@ -49685,13 +44385,11 @@ "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." @@ -49700,7 +44398,6 @@ "valType": "integer", "min": 0, "dflt": 0, - "role": "info", "editType": "calc", "description": "Sets the number of minor grid ticks per major grid tick" }, @@ -49708,52 +44405,44 @@ "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." }, @@ -49761,7 +44450,6 @@ "valType": "number", "min": 0, "dflt": 0, - "role": "info", "editType": "calc", "description": "The starting index of grid lines along the axis" }, @@ -49769,7 +44457,6 @@ "valType": "number", "min": 0, "dflt": 1, - "role": "info", "editType": "calc", "description": "The stride between grid lines along the axis" }, @@ -49777,7 +44464,6 @@ "valType": "integer", "min": 0, "dflt": 0, - "role": "info", "editType": "calc", "description": "The starting index of grid lines along the axis" }, @@ -49785,21 +44471,18 @@ "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", @@ -49807,13 +44490,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "calc" }, "color": { "valType": "color", - "role": "style", "editType": "calc" }, "editType": "calc", @@ -49821,7 +44502,6 @@ }, "titleoffset": { "valType": "number", - "role": "info", "dflt": 10, "editType": "calc", "description": "Deprecated in favor of `title.offset`." @@ -49831,19 +44511,16 @@ "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" } @@ -49851,7 +44528,6 @@ "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." }, @@ -49860,21 +44536,18 @@ "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", @@ -49882,13 +44555,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "calc" }, "color": { "valType": "color", - "role": "style", "editType": "calc" }, "editType": "calc", @@ -49897,7 +44568,6 @@ }, "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." @@ -49914,7 +44584,6 @@ "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." }, @@ -49925,7 +44594,6 @@ "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." }, @@ -49937,7 +44605,6 @@ "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*." }, @@ -49949,13 +44616,11 @@ "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": [ { @@ -49972,7 +44637,6 @@ "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." }, @@ -49983,7 +44647,6 @@ "value" ], "dflt": "value", - "role": "info", "editType": "calc" }, "tickmode": { @@ -49993,28 +44656,24 @@ "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" + "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`.", - "role": "data" + "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", @@ -50025,14 +44684,12 @@ "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", @@ -50040,13 +44697,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "calc" }, "color": { "valType": "color", - "role": "style", "editType": "calc" }, "editType": "calc", @@ -50056,14 +44711,12 @@ "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." }, @@ -50076,14 +44729,12 @@ "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." }, @@ -50096,7 +44747,6 @@ "none" ], "dflt": "all", - "role": "style", "editType": "calc", "description": "Same as `showtickprefix` but for tick suffixes." }, @@ -50109,7 +44759,6 @@ "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." }, @@ -50124,7 +44773,6 @@ "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." }, @@ -50132,21 +44780,18 @@ "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*" }, @@ -50155,14 +44800,12 @@ "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", @@ -50179,20 +44822,17 @@ "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`." }, @@ -50210,47 +44850,40 @@ "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." }, @@ -50258,13 +44891,11 @@ "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." }, @@ -50272,13 +44903,11 @@ "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." @@ -50287,7 +44916,6 @@ "valType": "integer", "min": 0, "dflt": 0, - "role": "info", "editType": "calc", "description": "Sets the number of minor grid ticks per major grid tick" }, @@ -50295,52 +44923,44 @@ "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." }, @@ -50348,7 +44968,6 @@ "valType": "number", "min": 0, "dflt": 0, - "role": "info", "editType": "calc", "description": "The starting index of grid lines along the axis" }, @@ -50356,7 +44975,6 @@ "valType": "number", "min": 0, "dflt": 1, - "role": "info", "editType": "calc", "description": "The stride between grid lines along the axis" }, @@ -50364,7 +44982,6 @@ "valType": "integer", "min": 0, "dflt": 0, - "role": "info", "editType": "calc", "description": "The starting index of grid lines along the axis" }, @@ -50372,21 +44989,18 @@ "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", @@ -50394,13 +45008,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "calc" }, "color": { "valType": "color", - "role": "style", "editType": "calc" }, "editType": "calc", @@ -50408,7 +45020,6 @@ }, "titleoffset": { "valType": "number", - "role": "info", "dflt": 10, "editType": "calc", "description": "Deprecated in favor of `title.offset`." @@ -50418,19 +45029,16 @@ "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" } @@ -50438,7 +45046,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "calc", @@ -50447,14 +45054,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "calc", "dflt": 12 }, "color": { "valType": "color", - "role": "style", "editType": "calc", "dflt": "#444" }, @@ -50465,63 +45070,53 @@ "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" } @@ -50551,28 +45146,24 @@ 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, @@ -50581,52 +45172,44 @@ }, "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" + "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", - "role": "data" + "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, - "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 @@ -50634,7 +45217,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -50643,14 +45225,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -50659,19 +45239,16 @@ "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" } @@ -50684,7 +45261,6 @@ "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 @@ -50693,7 +45269,6 @@ "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 @@ -50702,25 +45277,21 @@ "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" } @@ -50730,7 +45301,6 @@ "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." }, @@ -50739,7 +45309,6 @@ "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." }, @@ -50758,27 +45327,23 @@ }, "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" + "description": "Sets the a-axis coordinates." }, "b": { "valType": "data_array", "editType": "calc", - "description": "Sets the b-axis coordinates.", - "role": "data" + "description": "Sets the b-axis coordinates." }, "mode": { "valType": "flaglist", @@ -50790,14 +45355,12 @@ "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", @@ -50805,7 +45368,6 @@ }, "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`.", @@ -50813,7 +45375,6 @@ }, "hovertext": { "valType": "string", - "role": "info", "dflt": "", "arrayOk": true, "editType": "style", @@ -50822,7 +45383,6 @@ "line": { "color": { "valType": "color", - "role": "style", "editType": "style", "description": "Sets the line color." }, @@ -50830,7 +45390,6 @@ "valType": "number", "min": 0, "dflt": 2, - "role": "style", "editType": "style", "description": "Sets the line width (in px)." }, @@ -50845,7 +45404,6 @@ "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*)." }, @@ -50856,7 +45414,6 @@ "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." }, @@ -50865,7 +45422,6 @@ "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)." }, @@ -50875,7 +45431,6 @@ "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." }, @@ -50886,14 +45441,12 @@ "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." }, @@ -51378,7 +45931,6 @@ ], "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." }, @@ -51387,7 +45939,6 @@ "min": 0, "max": 1, "arrayOk": true, - "role": "style", "editType": "style", "description": "Sets the marker opacity." }, @@ -51395,7 +45946,6 @@ "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." }, @@ -51404,14 +45954,12 @@ "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`." }, @@ -51419,7 +45967,6 @@ "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." }, @@ -51430,7 +45977,6 @@ "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." }, @@ -51439,7 +45985,6 @@ "valType": "number", "min": 0, "arrayOk": true, - "role": "style", "editType": "style", "description": "Sets the width (in px) of the lines bounding the marker points." }, @@ -51447,13 +45992,11 @@ "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": {}, @@ -51461,7 +46004,6 @@ }, "cmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -51471,7 +46013,6 @@ }, "cmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -51481,7 +46022,6 @@ }, "cmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -51489,7 +46029,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -51499,7 +46038,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -51507,14 +46045,12 @@ }, "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", @@ -51523,13 +46059,11 @@ "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" } @@ -51545,14 +46079,12 @@ ], "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." }, @@ -51560,13 +46092,11 @@ "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" } @@ -51575,13 +46105,11 @@ "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": {}, @@ -51589,7 +46117,6 @@ }, "cmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -51599,7 +46126,6 @@ }, "cmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -51609,7 +46135,6 @@ }, "cmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -51617,7 +46142,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -51627,7 +46151,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -51635,14 +46158,12 @@ }, "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." @@ -51654,14 +46175,12 @@ "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.", @@ -51673,7 +46192,6 @@ "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" @@ -51682,7 +46200,6 @@ "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" }, @@ -51691,7 +46208,6 @@ "dflt": 1.02, "min": -2, "max": 3, - "role": "style", "description": "Sets the x position of the color bar (in plot fraction).", "editType": "colorbars" }, @@ -51703,13 +46219,11 @@ "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.", @@ -51717,7 +46231,6 @@ }, "y": { "valType": "number", - "role": "style", "dflt": 0.5, "min": -2, "max": 3, @@ -51731,14 +46244,12 @@ "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.", @@ -51747,7 +46258,6 @@ "outlinecolor": { "valType": "color", "dflt": "#444", - "role": "style", "editType": "colorbars", "description": "Sets the axis line color." }, @@ -51755,20 +46265,17 @@ "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.", @@ -51776,7 +46283,6 @@ }, "bgcolor": { "valType": "color", - "role": "style", "dflt": "rgba(0,0,0,0)", "description": "Sets the color of padded area.", "editType": "colorbars" @@ -51788,7 +46294,6 @@ "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)." @@ -51797,13 +46302,11 @@ "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" @@ -51812,7 +46315,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "colorbars", "impliedEdits": { "tickmode": "linear" @@ -51822,14 +46324,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -51838,7 +46338,6 @@ "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": "" @@ -51854,7 +46353,6 @@ "inside bottom" ], "dflt": "outside", - "role": "info", "description": "Determines where tick labels are drawn.", "editType": "colorbars" }, @@ -51862,7 +46360,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "colorbars", "description": "Sets the tick length (in px)." }, @@ -51870,28 +46367,24 @@ "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*.", @@ -51899,13 +46392,11 @@ }, "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", @@ -51915,14 +46406,12 @@ "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*" }, @@ -51931,14 +46420,12 @@ "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", @@ -51955,20 +46442,17 @@ "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`." }, @@ -51980,7 +46464,6 @@ "tickprefix": { "valType": "string", "dflt": "", - "role": "style", "editType": "colorbars", "description": "Sets a tick label prefix." }, @@ -51993,14 +46476,12 @@ "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." }, @@ -52013,14 +46494,12 @@ "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" }, @@ -52035,7 +46514,6 @@ "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." }, @@ -52043,7 +46521,6 @@ "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*." }, @@ -52056,21 +46533,18 @@ "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*.", @@ -52078,13 +46552,11 @@ }, "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.", @@ -52098,7 +46570,6 @@ "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" @@ -52109,14 +46580,12 @@ "_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*.", @@ -52124,13 +46593,11 @@ }, "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`.", @@ -52143,7 +46610,6 @@ "top", "bottom" ], - "role": "style", "dflt": "top", "description": "Deprecated in favor of color bar's `title.side`.", "editType": "colorbars" @@ -52153,20 +46619,17 @@ "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", @@ -52175,25 +46638,21 @@ "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" } @@ -52201,7 +46660,6 @@ "textfont": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "calc", @@ -52210,14 +46668,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "calc", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "style", "arrayOk": true }, @@ -52226,19 +46682,16 @@ "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" } @@ -52258,7 +46711,6 @@ ], "dflt": "middle center", "arrayOk": true, - "role": "style", "editType": "calc", "description": "Sets the positions of the `text` elements with respects to the (x,y) coordinates." }, @@ -52268,20 +46720,17 @@ "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." }, @@ -52291,7 +46740,6 @@ "textfont": { "color": { "valType": "color", - "role": "style", "editType": "style", "description": "Sets the text font color of selected points." }, @@ -52307,20 +46755,17 @@ "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." }, @@ -52330,7 +46775,6 @@ "textfont": { "color": { "valType": "color", - "role": "style", "editType": "style", "description": "Sets the text font color of unselected points, applied only when a selection exists." }, @@ -52342,7 +46786,6 @@ }, "hoverinfo": { "valType": "flaglist", - "role": "info", "flags": [ "a", "b", @@ -52365,13 +46808,11 @@ "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 ``.", @@ -52379,81 +46820,68 @@ }, "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" } @@ -52487,28 +46915,24 @@ 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, @@ -52517,32 +46941,27 @@ }, "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" + "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", - "role": "data" + "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, - "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." }, @@ -52551,7 +46970,6 @@ "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." }, @@ -52560,7 +46978,6 @@ "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." }, @@ -52569,21 +46986,18 @@ }, "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" + "description": "Sets the z data." }, "a": { "valType": "data_array", @@ -52591,13 +47005,11 @@ "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": { @@ -52607,7 +47019,6 @@ "da": { "valType": "number", "dflt": 1, - "role": "info", "editType": "calc", "description": "Sets the x coordinate step. See `x0` for more info.", "impliedEdits": { @@ -52620,13 +47031,11 @@ "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": { @@ -52636,7 +47045,6 @@ "db": { "valType": "number", "dflt": 1, - "role": "info", "editType": "calc", "description": "Sets the y coordinate step. See `y0` for more info.", "impliedEdits": { @@ -52646,19 +47054,16 @@ "text": { "valType": "data_array", "editType": "calc", - "description": "Sets the text elements associated with each z value.", - "role": "data" + "description": "Sets the text elements associated with each z value." }, "hovertext": { "valType": "data_array", "editType": "calc", - "description": "Same as `text`.", - "role": "data" + "description": "Same as `text`." }, "transpose": { "valType": "boolean", "dflt": false, - "role": "info", "editType": "calc", "description": "Transposes the z data." }, @@ -52668,7 +47073,6 @@ "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)." }, @@ -52678,20 +47082,17 @@ "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`." @@ -52700,7 +47101,6 @@ "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." }, @@ -52712,14 +47112,12 @@ "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 @@ -52729,7 +47127,6 @@ "end": { "valType": "number", "dflt": null, - "role": "style", "editType": "plot", "impliedEdits": { "^autocontour": false @@ -52740,7 +47137,6 @@ "valType": "number", "dflt": null, "min": 0, - "role": "style", "editType": "plot", "impliedEdits": { "^autocontour": false @@ -52755,28 +47151,24 @@ "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", @@ -52784,13 +47176,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot" }, "color": { "valType": "color", - "role": "style", "editType": "style" }, "editType": "plot", @@ -52800,7 +47190,6 @@ "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" }, @@ -52821,7 +47210,6 @@ "](", ")[" ], - "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." @@ -52829,7 +47217,6 @@ "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." }, @@ -52843,14 +47230,12 @@ "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*." }, @@ -52865,7 +47250,6 @@ "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*)." }, @@ -52874,7 +47258,6 @@ "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." }, @@ -52883,7 +47266,6 @@ }, "zauto": { "valType": "boolean", - "role": "info", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -52891,7 +47273,6 @@ }, "zmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -52901,7 +47282,6 @@ }, "zmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -52911,7 +47291,6 @@ }, "zmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -52919,7 +47298,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -52929,7 +47307,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": false, "editType": "calc", "impliedEdits": {}, @@ -52937,14 +47314,12 @@ }, "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." @@ -52956,14 +47331,12 @@ "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.", @@ -52975,7 +47348,6 @@ "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" @@ -52984,7 +47356,6 @@ "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" }, @@ -52993,7 +47364,6 @@ "dflt": 1.02, "min": -2, "max": 3, - "role": "style", "description": "Sets the x position of the color bar (in plot fraction).", "editType": "colorbars" }, @@ -53005,13 +47375,11 @@ "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.", @@ -53019,7 +47387,6 @@ }, "y": { "valType": "number", - "role": "style", "dflt": 0.5, "min": -2, "max": 3, @@ -53033,14 +47400,12 @@ "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.", @@ -53049,7 +47414,6 @@ "outlinecolor": { "valType": "color", "dflt": "#444", - "role": "style", "editType": "colorbars", "description": "Sets the axis line color." }, @@ -53057,20 +47421,17 @@ "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.", @@ -53078,7 +47439,6 @@ }, "bgcolor": { "valType": "color", - "role": "style", "dflt": "rgba(0,0,0,0)", "description": "Sets the color of padded area.", "editType": "colorbars" @@ -53090,7 +47450,6 @@ "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)." @@ -53099,13 +47458,11 @@ "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" @@ -53114,7 +47471,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "colorbars", "impliedEdits": { "tickmode": "linear" @@ -53124,14 +47480,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -53140,7 +47494,6 @@ "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": "" @@ -53156,7 +47509,6 @@ "inside bottom" ], "dflt": "outside", - "role": "info", "description": "Determines where tick labels are drawn.", "editType": "colorbars" }, @@ -53164,7 +47516,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "colorbars", "description": "Sets the tick length (in px)." }, @@ -53172,28 +47523,24 @@ "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*.", @@ -53201,13 +47548,11 @@ }, "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", @@ -53217,14 +47562,12 @@ "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*" }, @@ -53233,14 +47576,12 @@ "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", @@ -53257,20 +47598,17 @@ "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`." }, @@ -53282,7 +47620,6 @@ "tickprefix": { "valType": "string", "dflt": "", - "role": "style", "editType": "colorbars", "description": "Sets a tick label prefix." }, @@ -53295,14 +47632,12 @@ "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." }, @@ -53315,14 +47650,12 @@ "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" }, @@ -53337,7 +47670,6 @@ "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." }, @@ -53345,7 +47677,6 @@ "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*." }, @@ -53358,21 +47689,18 @@ "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*.", @@ -53380,13 +47708,11 @@ }, "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.", @@ -53400,7 +47726,6 @@ "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" @@ -53411,14 +47736,12 @@ "_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*.", @@ -53426,13 +47749,11 @@ }, "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`.", @@ -53445,7 +47766,6 @@ "top", "bottom" ], - "role": "style", "dflt": "top", "description": "Deprecated in favor of color bar's `title.side`.", "editType": "colorbars" @@ -53455,20 +47775,17 @@ "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", @@ -53476,63 +47793,53 @@ }, "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" } @@ -53558,28 +47865,24 @@ 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, @@ -53588,44 +47891,37 @@ }, "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" + "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", - "role": "data" + "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, - "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", @@ -53648,7 +47944,6 @@ "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." }, @@ -53657,7 +47952,6 @@ "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." }, @@ -53676,20 +47970,17 @@ }, "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." }, @@ -53701,46 +47992,39 @@ "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" + "description": "Sets the x coordinates. If absent, linear coordinate will be generated." }, "open": { "valType": "data_array", "editType": "calc", - "description": "Sets the open values.", - "role": "data" + "description": "Sets the open values." }, "high": { "valType": "data_array", "editType": "calc", - "description": "Sets the high values.", - "role": "data" + "description": "Sets the high values." }, "low": { "valType": "data_array", "editType": "calc", - "description": "Sets the low values.", - "role": "data" + "description": "Sets the low values." }, "close": { "valType": "data_array", "editType": "calc", - "description": "Sets the close values.", - "role": "data" + "description": "Sets the close values." }, "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`." }, @@ -53755,7 +48039,6 @@ "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`." }, @@ -53766,7 +48049,6 @@ "line": { "color": { "valType": "color", - "role": "style", "editType": "style", "description": "Sets the line color.", "dflt": "#3D9970" @@ -53775,7 +48057,6 @@ "valType": "number", "min": 0, "dflt": 2, - "role": "style", "editType": "style", "description": "Sets the line width (in px)." }, @@ -53790,7 +48071,6 @@ "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*)." }, @@ -53804,7 +48084,6 @@ "line": { "color": { "valType": "color", - "role": "style", "editType": "style", "description": "Sets the line color.", "dflt": "#FF4136" @@ -53813,7 +48092,6 @@ "valType": "number", "min": 0, "dflt": 2, - "role": "style", "editType": "style", "description": "Sets the line width (in px)." }, @@ -53828,7 +48106,6 @@ "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*)." }, @@ -53840,7 +48117,6 @@ }, "text": { "valType": "string", - "role": "info", "dflt": "", "arrayOk": true, "editType": "calc", @@ -53848,7 +48124,6 @@ }, "hovertext": { "valType": "string", - "role": "info", "dflt": "", "arrayOk": true, "editType": "calc", @@ -53859,21 +48134,18 @@ "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 @@ -53881,7 +48153,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -53890,14 +48161,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -53906,19 +48175,16 @@ "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" } @@ -53931,7 +48197,6 @@ "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 @@ -53940,7 +48205,6 @@ "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 @@ -53948,7 +48212,6 @@ "editType": "none", "split": { "valType": "boolean", - "role": "info", "dflt": false, "editType": "style", "description": "Show hover information (open, close, high, low) in separate labels." @@ -53956,25 +48219,21 @@ "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" } @@ -53999,88 +48258,74 @@ "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" } @@ -54108,28 +48353,24 @@ 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, @@ -54138,44 +48379,37 @@ }, "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" + "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", - "role": "data" + "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, - "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", @@ -54198,7 +48432,6 @@ "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." }, @@ -54207,7 +48440,6 @@ "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." }, @@ -54226,20 +48458,17 @@ }, "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." }, @@ -54251,44 +48480,37 @@ "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" + "description": "Sets the x coordinates. If absent, linear coordinate will be generated." }, "open": { "valType": "data_array", "editType": "calc", - "description": "Sets the open values.", - "role": "data" + "description": "Sets the open values." }, "high": { "valType": "data_array", "editType": "calc", - "description": "Sets the high values.", - "role": "data" + "description": "Sets the high values." }, "low": { "valType": "data_array", "editType": "calc", - "description": "Sets the low values.", - "role": "data" + "description": "Sets the low values." }, "close": { "valType": "data_array", "editType": "calc", - "description": "Sets the close values.", - "role": "data" + "description": "Sets the close values." }, "line": { "width": { "valType": "number", - "role": "style", "min": 0, "dflt": 2, "editType": "style", @@ -54301,14 +48523,12 @@ "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", @@ -54319,7 +48539,6 @@ }, "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." }, @@ -54330,14 +48549,12 @@ "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", @@ -54348,7 +48565,6 @@ }, "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." }, @@ -54357,7 +48573,6 @@ }, "text": { "valType": "string", - "role": "info", "dflt": "", "arrayOk": true, "editType": "calc", @@ -54365,7 +48580,6 @@ }, "hovertext": { "valType": "string", - "role": "info", "dflt": "", "arrayOk": true, "editType": "calc", @@ -54376,21 +48590,18 @@ "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 @@ -54398,7 +48609,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -54407,14 +48617,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -54423,19 +48631,16 @@ "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" } @@ -54448,7 +48653,6 @@ "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 @@ -54457,7 +48661,6 @@ "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 @@ -54465,7 +48668,6 @@ "editType": "none", "split": { "valType": "boolean", - "role": "info", "dflt": false, "editType": "style", "description": "Show hover information (open, close, high, low) in separate labels." @@ -54473,25 +48675,21 @@ "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" } @@ -54516,88 +48714,74 @@ "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" } @@ -54610,7 +48794,6 @@ "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." }, @@ -54619,7 +48802,6 @@ "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." }, @@ -54628,7 +48810,6 @@ "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." } @@ -54656,28 +48837,24 @@ 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, @@ -54686,52 +48863,44 @@ }, "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" + "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", - "role": "data" + "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, - "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 @@ -54739,7 +48908,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -54748,14 +48916,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -54764,19 +48930,16 @@ "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" } @@ -54789,7 +48952,6 @@ "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 @@ -54798,7 +48960,6 @@ "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 @@ -54807,25 +48968,21 @@ "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" } @@ -54835,7 +48992,6 @@ "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." }, @@ -54844,7 +49000,6 @@ "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." }, @@ -54863,7 +49018,6 @@ }, "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." }, @@ -54877,46 +49031,39 @@ "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" + "description": "Sets the radial coordinates" }, "theta": { "valType": "data_array", "editType": "calc+clearAxisTypes", - "description": "Sets the angular coordinates", - "role": "data" + "description": "Sets the angular coordinates" }, "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." }, @@ -54928,13 +49075,11 @@ "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", @@ -54942,7 +49087,6 @@ }, "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`.", @@ -54950,7 +49094,6 @@ }, "hovertext": { "valType": "string", - "role": "info", "dflt": "", "arrayOk": true, "editType": "style", @@ -54959,7 +49102,6 @@ "line": { "color": { "valType": "color", - "role": "style", "editType": "style", "description": "Sets the line color." }, @@ -54967,7 +49109,6 @@ "valType": "number", "min": 0, "dflt": 2, - "role": "style", "editType": "style", "description": "Sets the line width (in px)." }, @@ -54982,7 +49123,6 @@ "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*)." }, @@ -54993,7 +49133,6 @@ "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." }, @@ -55002,7 +49141,6 @@ "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)." }, @@ -55012,7 +49150,6 @@ "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." }, @@ -55497,7 +49634,6 @@ ], "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." }, @@ -55506,7 +49642,6 @@ "min": 0, "max": 1, "arrayOk": true, - "role": "style", "editType": "style", "description": "Sets the marker opacity." }, @@ -55515,7 +49650,6 @@ "min": 0, "dflt": 6, "arrayOk": true, - "role": "style", "editType": "calc", "description": "Sets the marker size (in px)." }, @@ -55523,14 +49657,12 @@ "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`." }, @@ -55538,7 +49670,6 @@ "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." }, @@ -55549,7 +49680,6 @@ "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." }, @@ -55558,7 +49688,6 @@ "valType": "number", "min": 0, "arrayOk": true, - "role": "style", "editType": "style", "description": "Sets the width (in px) of the lines bounding the marker points." }, @@ -55566,13 +49695,11 @@ "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": {}, @@ -55580,7 +49707,6 @@ }, "cmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -55590,7 +49716,6 @@ }, "cmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -55600,7 +49725,6 @@ }, "cmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -55608,7 +49732,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -55618,7 +49741,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -55626,14 +49748,12 @@ }, "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", @@ -55642,13 +49762,11 @@ "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" } @@ -55664,14 +49782,12 @@ ], "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." }, @@ -55679,13 +49795,11 @@ "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" } @@ -55694,13 +49808,11 @@ "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": {}, @@ -55708,7 +49820,6 @@ }, "cmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -55718,7 +49829,6 @@ }, "cmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -55728,7 +49838,6 @@ }, "cmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -55736,7 +49845,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -55746,7 +49854,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -55754,14 +49861,12 @@ }, "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." @@ -55773,14 +49878,12 @@ "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.", @@ -55792,7 +49895,6 @@ "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" @@ -55801,7 +49903,6 @@ "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" }, @@ -55810,7 +49911,6 @@ "dflt": 1.02, "min": -2, "max": 3, - "role": "style", "description": "Sets the x position of the color bar (in plot fraction).", "editType": "colorbars" }, @@ -55822,13 +49922,11 @@ "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.", @@ -55836,7 +49934,6 @@ }, "y": { "valType": "number", - "role": "style", "dflt": 0.5, "min": -2, "max": 3, @@ -55850,14 +49947,12 @@ "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.", @@ -55866,7 +49961,6 @@ "outlinecolor": { "valType": "color", "dflt": "#444", - "role": "style", "editType": "colorbars", "description": "Sets the axis line color." }, @@ -55874,20 +49968,17 @@ "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.", @@ -55895,7 +49986,6 @@ }, "bgcolor": { "valType": "color", - "role": "style", "dflt": "rgba(0,0,0,0)", "description": "Sets the color of padded area.", "editType": "colorbars" @@ -55907,7 +49997,6 @@ "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)." @@ -55916,13 +50005,11 @@ "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" @@ -55931,7 +50018,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "colorbars", "impliedEdits": { "tickmode": "linear" @@ -55941,14 +50027,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -55957,7 +50041,6 @@ "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": "" @@ -55973,7 +50056,6 @@ "inside bottom" ], "dflt": "outside", - "role": "info", "description": "Determines where tick labels are drawn.", "editType": "colorbars" }, @@ -55981,7 +50063,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "colorbars", "description": "Sets the tick length (in px)." }, @@ -55989,28 +50070,24 @@ "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*.", @@ -56018,13 +50095,11 @@ }, "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", @@ -56034,14 +50109,12 @@ "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*" }, @@ -56050,14 +50123,12 @@ "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", @@ -56074,20 +50145,17 @@ "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`." }, @@ -56099,7 +50167,6 @@ "tickprefix": { "valType": "string", "dflt": "", - "role": "style", "editType": "colorbars", "description": "Sets a tick label prefix." }, @@ -56112,14 +50179,12 @@ "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." }, @@ -56132,14 +50197,12 @@ "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" }, @@ -56154,7 +50217,6 @@ "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." }, @@ -56162,7 +50224,6 @@ "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*." }, @@ -56175,21 +50236,18 @@ "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*.", @@ -56197,13 +50255,11 @@ }, "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.", @@ -56217,7 +50273,6 @@ "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" @@ -56228,14 +50283,12 @@ "_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*.", @@ -56243,13 +50296,11 @@ }, "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`.", @@ -56262,7 +50313,6 @@ "top", "bottom" ], - "role": "style", "dflt": "top", "description": "Deprecated in favor of color bar's `title.side`.", "editType": "colorbars" @@ -56272,20 +50322,17 @@ "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", @@ -56294,25 +50341,21 @@ "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" } @@ -56320,7 +50363,6 @@ "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*." }, @@ -56339,14 +50381,12 @@ ], "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", @@ -56355,14 +50395,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "calc", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "style", "arrayOk": true }, @@ -56371,19 +50409,16 @@ "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" } @@ -56395,20 +50430,17 @@ "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", @@ -56431,13 +50463,11 @@ "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 ``.", @@ -56449,20 +50479,17 @@ "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." }, @@ -56472,7 +50499,6 @@ "textfont": { "color": { "valType": "color", - "role": "style", "editType": "style", "description": "Sets the text font color of selected points." }, @@ -56488,20 +50514,17 @@ "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." }, @@ -56511,7 +50534,6 @@ "textfont": { "color": { "valType": "color", - "role": "style", "editType": "style", "description": "Sets the text font color of unselected points, applied only when a selection exists." }, @@ -56523,74 +50545,62 @@ }, "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" } @@ -56620,28 +50630,24 @@ 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, @@ -56650,52 +50656,44 @@ }, "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" + "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", - "role": "data" + "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, - "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 @@ -56703,7 +50701,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -56712,14 +50709,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -56728,19 +50723,16 @@ "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" } @@ -56753,7 +50745,6 @@ "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 @@ -56762,7 +50753,6 @@ "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 @@ -56771,25 +50761,21 @@ "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" } @@ -56799,7 +50785,6 @@ "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." }, @@ -56808,7 +50793,6 @@ "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." }, @@ -56827,7 +50811,6 @@ }, "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." }, @@ -56841,46 +50824,39 @@ "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" + "description": "Sets the radial coordinates" }, "theta": { "valType": "data_array", "editType": "calc+clearAxisTypes", - "description": "Sets the angular coordinates", - "role": "data" + "description": "Sets the angular coordinates" }, "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." }, @@ -56892,13 +50868,11 @@ "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", @@ -56906,7 +50880,6 @@ }, "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`.", @@ -56914,7 +50887,6 @@ }, "hovertext": { "valType": "string", - "role": "info", "dflt": "", "arrayOk": true, "editType": "style", @@ -56922,7 +50894,6 @@ }, "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 ``.", @@ -56931,7 +50902,6 @@ "line": { "color": { "valType": "color", - "role": "style", "editType": "calc", "description": "Sets the line color." }, @@ -56939,7 +50909,6 @@ "valType": "number", "min": 0, "dflt": 2, - "role": "style", "editType": "calc", "description": "Sets the line width (in px)." }, @@ -56953,7 +50922,6 @@ "vhv" ], "dflt": "linear", - "role": "style", "editType": "calc", "description": "Determines the line shape. The values correspond to step-wise line shapes." }, @@ -56968,7 +50936,6 @@ "longdashdot" ], "dflt": "solid", - "role": "style", "description": "Sets the style of the lines.", "editType": "calc" }, @@ -56978,7 +50945,6 @@ "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." }, @@ -56986,13 +50952,11 @@ "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": {}, @@ -57000,7 +50964,6 @@ }, "cmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -57010,7 +50973,6 @@ }, "cmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -57020,7 +50982,6 @@ }, "cmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -57028,7 +50989,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -57038,7 +50998,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -57046,14 +51005,12 @@ }, "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." @@ -57065,14 +51022,12 @@ "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.", @@ -57084,7 +51039,6 @@ "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" @@ -57093,7 +51047,6 @@ "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" }, @@ -57102,7 +51055,6 @@ "dflt": 1.02, "min": -2, "max": 3, - "role": "style", "description": "Sets the x position of the color bar (in plot fraction).", "editType": "calc" }, @@ -57114,13 +51066,11 @@ "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.", @@ -57128,7 +51078,6 @@ }, "y": { "valType": "number", - "role": "style", "dflt": 0.5, "min": -2, "max": 3, @@ -57142,14 +51091,12 @@ "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.", @@ -57158,7 +51105,6 @@ "outlinecolor": { "valType": "color", "dflt": "#444", - "role": "style", "editType": "calc", "description": "Sets the axis line color." }, @@ -57166,20 +51112,17 @@ "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.", @@ -57187,7 +51130,6 @@ }, "bgcolor": { "valType": "color", - "role": "style", "dflt": "rgba(0,0,0,0)", "description": "Sets the color of padded area.", "editType": "calc" @@ -57199,7 +51141,6 @@ "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)." @@ -57208,13 +51149,11 @@ "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" @@ -57223,7 +51162,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "calc", "impliedEdits": { "tickmode": "linear" @@ -57233,14 +51171,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -57249,7 +51185,6 @@ "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": "" @@ -57265,7 +51200,6 @@ "inside bottom" ], "dflt": "outside", - "role": "info", "description": "Determines where tick labels are drawn.", "editType": "calc" }, @@ -57273,7 +51207,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "calc", "description": "Sets the tick length (in px)." }, @@ -57281,28 +51214,24 @@ "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*.", @@ -57310,13 +51239,11 @@ }, "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", @@ -57326,14 +51253,12 @@ "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*" }, @@ -57342,14 +51267,12 @@ "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", @@ -57366,20 +51289,17 @@ "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`." }, @@ -57391,7 +51311,6 @@ "tickprefix": { "valType": "string", "dflt": "", - "role": "style", "editType": "calc", "description": "Sets a tick label prefix." }, @@ -57404,14 +51323,12 @@ "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." }, @@ -57424,14 +51341,12 @@ "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" }, @@ -57446,7 +51361,6 @@ "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." }, @@ -57454,7 +51368,6 @@ "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*." }, @@ -57467,21 +51380,18 @@ "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*.", @@ -57489,13 +51399,11 @@ }, "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.", @@ -57509,7 +51417,6 @@ "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" @@ -57520,14 +51427,12 @@ "_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*.", @@ -57535,13 +51440,11 @@ }, "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`.", @@ -57554,7 +51457,6 @@ "top", "bottom" ], - "role": "style", "dflt": "top", "description": "Deprecated in favor of color bar's `title.side`.", "editType": "calc" @@ -57564,20 +51466,17 @@ "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", @@ -58063,7 +51962,6 @@ ], "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." }, @@ -58072,14 +51970,12 @@ "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`." }, @@ -58087,7 +51983,6 @@ "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." }, @@ -58098,7 +51993,6 @@ "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." }, @@ -58107,7 +52001,6 @@ "min": 0, "max": 1, "arrayOk": true, - "role": "style", "editType": "calc", "description": "Sets the marker opacity." }, @@ -58115,13 +52008,11 @@ "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": {}, @@ -58129,7 +52020,6 @@ }, "cmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -58139,7 +52029,6 @@ }, "cmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": { @@ -58149,7 +52038,6 @@ }, "cmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -58157,7 +52045,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -58167,7 +52054,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -58175,14 +52061,12 @@ }, "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", @@ -58192,7 +52076,6 @@ "valType": "number", "min": 0, "arrayOk": true, - "role": "style", "editType": "calc", "description": "Sets the width (in px) of the lines bounding the marker points." }, @@ -58200,13 +52083,11 @@ "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" } @@ -58215,25 +52096,21 @@ "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" } @@ -58249,14 +52126,12 @@ "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." }, @@ -58275,14 +52150,12 @@ ], "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", @@ -58291,14 +52164,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "calc", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "calc", "arrayOk": true }, @@ -58307,26 +52178,22 @@ "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", @@ -58349,20 +52216,17 @@ "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." }, @@ -58372,7 +52236,6 @@ "textfont": { "color": { "valType": "color", - "role": "style", "editType": "style", "description": "Sets the text font color of selected points." }, @@ -58388,20 +52251,17 @@ "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." }, @@ -58411,7 +52271,6 @@ "textfont": { "color": { "valType": "color", - "role": "style", "editType": "style", "description": "Sets the text font color of unselected points, applied only when a selection exists." }, @@ -58423,74 +52282,62 @@ }, "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" } @@ -58517,28 +52364,24 @@ 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, @@ -58547,52 +52390,44 @@ }, "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" + "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", - "role": "data" + "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, - "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 @@ -58600,7 +52435,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "none", @@ -58609,14 +52443,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "arrayOk": true }, "color": { "valType": "color", - "role": "style", "editType": "none", "arrayOk": true }, @@ -58625,19 +52457,16 @@ "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" } @@ -58650,7 +52479,6 @@ "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 @@ -58659,7 +52487,6 @@ "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 @@ -58668,25 +52495,21 @@ "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" } @@ -58696,7 +52519,6 @@ "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." }, @@ -58705,7 +52527,6 @@ "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." }, @@ -58724,46 +52545,39 @@ }, "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" + "description": "Sets the radial coordinates" }, "theta": { "valType": "data_array", "editType": "calc+clearAxisTypes", - "description": "Sets the angular coordinates", - "role": "data" + "description": "Sets the angular coordinates" }, "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." }, @@ -58775,7 +52589,6 @@ "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." }, @@ -58783,7 +52596,6 @@ "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." }, @@ -58791,7 +52603,6 @@ "valType": "number", "dflt": null, "arrayOk": true, - "role": "info", "editType": "calc", "description": "Shifts the angular position where the bar is drawn (in *thetatunit* units)." }, @@ -58800,13 +52611,11 @@ "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", @@ -58814,7 +52623,6 @@ }, "hovertext": { "valType": "string", - "role": "info", "dflt": "", "arrayOk": true, "editType": "style", @@ -58826,7 +52634,6 @@ "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 @@ -58835,13 +52642,11 @@ "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": {}, @@ -58849,7 +52654,6 @@ }, "cmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -58859,7 +52663,6 @@ }, "cmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -58869,7 +52672,6 @@ }, "cmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -58877,7 +52679,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -58887,7 +52688,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -58895,14 +52695,12 @@ }, "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", @@ -58911,13 +52709,11 @@ "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" } @@ -58926,13 +52722,11 @@ "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": {}, @@ -58940,7 +52734,6 @@ }, "cmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -58950,7 +52743,6 @@ }, "cmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -58960,7 +52752,6 @@ }, "cmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -58968,7 +52759,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -58978,7 +52768,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -58986,14 +52775,12 @@ }, "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." @@ -59005,14 +52792,12 @@ "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.", @@ -59024,7 +52809,6 @@ "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" @@ -59033,7 +52817,6 @@ "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" }, @@ -59042,7 +52825,6 @@ "dflt": 1.02, "min": -2, "max": 3, - "role": "style", "description": "Sets the x position of the color bar (in plot fraction).", "editType": "colorbars" }, @@ -59054,13 +52836,11 @@ "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.", @@ -59068,7 +52848,6 @@ }, "y": { "valType": "number", - "role": "style", "dflt": 0.5, "min": -2, "max": 3, @@ -59082,14 +52861,12 @@ "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.", @@ -59098,7 +52875,6 @@ "outlinecolor": { "valType": "color", "dflt": "#444", - "role": "style", "editType": "colorbars", "description": "Sets the axis line color." }, @@ -59106,20 +52882,17 @@ "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.", @@ -59127,7 +52900,6 @@ }, "bgcolor": { "valType": "color", - "role": "style", "dflt": "rgba(0,0,0,0)", "description": "Sets the color of padded area.", "editType": "colorbars" @@ -59139,7 +52911,6 @@ "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)." @@ -59148,13 +52919,11 @@ "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" @@ -59163,7 +52932,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "colorbars", "impliedEdits": { "tickmode": "linear" @@ -59173,14 +52941,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -59189,7 +52955,6 @@ "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": "" @@ -59205,7 +52970,6 @@ "inside bottom" ], "dflt": "outside", - "role": "info", "description": "Determines where tick labels are drawn.", "editType": "colorbars" }, @@ -59213,7 +52977,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "colorbars", "description": "Sets the tick length (in px)." }, @@ -59221,28 +52984,24 @@ "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*.", @@ -59250,13 +53009,11 @@ }, "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", @@ -59266,14 +53023,12 @@ "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*" }, @@ -59282,14 +53037,12 @@ "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", @@ -59306,20 +53059,17 @@ "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`." }, @@ -59331,7 +53081,6 @@ "tickprefix": { "valType": "string", "dflt": "", - "role": "style", "editType": "colorbars", "description": "Sets a tick label prefix." }, @@ -59344,14 +53093,12 @@ "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." }, @@ -59364,14 +53111,12 @@ "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" }, @@ -59386,7 +53131,6 @@ "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." }, @@ -59394,7 +53138,6 @@ "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*." }, @@ -59407,21 +53150,18 @@ "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*.", @@ -59429,13 +53169,11 @@ }, "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.", @@ -59449,7 +53187,6 @@ "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" @@ -59460,14 +53197,12 @@ "_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*.", @@ -59475,13 +53210,11 @@ }, "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`.", @@ -59494,7 +53227,6 @@ "top", "bottom" ], - "role": "style", "dflt": "top", "description": "Deprecated in favor of color bar's `title.side`.", "editType": "colorbars" @@ -59504,20 +53236,17 @@ "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", @@ -59529,27 +53258,23 @@ "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", @@ -59568,7 +53293,6 @@ }, "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 ``.", @@ -59580,13 +53304,11 @@ "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." }, @@ -59596,7 +53318,6 @@ "textfont": { "color": { "valType": "color", - "role": "style", "editType": "style", "description": "Sets the text font color of selected points." }, @@ -59612,13 +53333,11 @@ "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." }, @@ -59628,7 +53347,6 @@ "textfont": { "color": { "valType": "color", - "role": "style", "editType": "style", "description": "Sets the text font color of unselected points, applied only when a selection exists." }, @@ -59640,80 +53358,67 @@ }, "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" } @@ -59726,7 +53431,6 @@ "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." }, @@ -59735,1076 +53439,223 @@ "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." } } - }, - "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": { + } + }, + "layout": { + "layoutAttributes": { + "font": { + "family": { "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." + "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" }, - "opacity": { + "size": { "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "editType": "style", - "description": "Sets the opacity of the trace." + "min": 1, + "editType": "calc", + "dflt": 12 }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." + "color": { + "valType": "color", + "editType": "calc", + "dflt": "#444" }, - "uid": { + "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": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + "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." }, - "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" + "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" }, - "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" + "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." }, - "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." + "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." }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "x", - "y", - "z", - "text", - "name" + "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" ], - "extras": [ - "all", - "none", - "skip" + "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" ], - "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." + "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`." }, - "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" + "pad": { + "t": { + "valType": "number", + "dflt": 0, + "editType": "layoutstyle", + "description": "The amount of padding (in px) along the top of the component." }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" + "r": { + "valType": "number", + "dflt": 0, + "editType": "layoutstyle", + "description": "The amount of padding (in px) on the right side of the component." }, - "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." + "b": { + "valType": "number", + "dflt": 0, + "editType": "layoutstyle", + "description": "The amount of padding (in px) along the bottom of the component." }, - "maxpoints": { + "l": { "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." + "dflt": 0, + "editType": "layoutstyle", + "description": "The amount of padding (in px) on the left side of the component." }, - "editType": "calc", + "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" }, - "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" + "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." }, - "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." + "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": "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" + "valType": "number", + "min": 0, + "dflt": 80, + "editType": "plot", + "description": "Sets the right margin (in px)." }, "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" - } - } - } - }, - "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)." + "valType": "number", + "min": 0, + "dflt": 100, + "editType": "plot", + "description": "Sets the top margin (in px)." }, "b": { "valType": "number", - "role": "info", "min": 0, "dflt": 80, "editType": "plot", @@ -60812,7 +53663,6 @@ }, "pad": { "valType": "number", - "role": "info", "min": 0, "dflt": 0, "editType": "plot", @@ -60820,7 +53670,6 @@ }, "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." @@ -60830,20 +53679,17 @@ }, "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." @@ -60855,26 +53701,22 @@ "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`." }, @@ -60892,37 +53734,31 @@ "#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`." }, @@ -60934,31 +53770,26 @@ "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`." }, @@ -60970,14 +53801,12 @@ "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)." }, @@ -60992,17 +53821,15 @@ "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" + "editType": "none", + "role": "object" }, "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." }, @@ -61013,7 +53840,6 @@ "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" }, @@ -61022,7 +53848,6 @@ "min": 0, "max": 1, "dflt": 1, - "role": "info", "editType": "none", "description": "Sets the opacity of new shapes." }, @@ -61033,13 +53858,11 @@ "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", @@ -61057,7 +53880,6 @@ "fillcolor": { "valType": "color", "dflt": "rgb(255,0,255)", - "role": "style", "editType": "none", "description": "Sets the color filling the active shape' interior." }, @@ -61066,7 +53888,6 @@ "min": 0, "max": 1, "dflt": 0.5, - "role": "info", "editType": "none", "description": "Sets the opacity of the active shape." }, @@ -61076,14 +53897,12 @@ "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", @@ -61130,7 +53949,6 @@ "back-in-out", "bounce-in-out" ], - "role": "info", "editType": "none", "description": "The easing function used for the transition" }, @@ -61141,7 +53959,6 @@ "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." }, @@ -61152,14 +53969,12 @@ "_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", @@ -61167,13 +53982,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "layoutstyle" }, "color": { "valType": "color", - "role": "style", "editType": "layoutstyle" }, "editType": "layoutstyle", @@ -61182,7 +53995,6 @@ }, "clickmode": { "valType": "flaglist", - "role": "info", "flags": [ "event", "select" @@ -61196,7 +54008,6 @@ }, "dragmode": { "valType": "enumerated", - "role": "info", "values": [ "zoom", "pan", @@ -61217,7 +54028,6 @@ }, "hovermode": { "valType": "enumerated", - "role": "info", "values": [ "x", "y", @@ -61233,7 +54043,6 @@ "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." }, @@ -61241,27 +54050,23 @@ "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", @@ -61270,14 +54075,12 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "none", "dflt": 13 }, "color": { "valType": "color", - "role": "style", "editType": "none" }, "editType": "none", @@ -61292,7 +54095,6 @@ "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" }, @@ -61300,7 +54102,6 @@ "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." }, @@ -61309,7 +54110,6 @@ }, "selectdirection": { "valType": "enumerated", - "role": "info", "values": [ "h", "v", @@ -61324,7 +54124,6 @@ "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." }, @@ -61335,14 +54134,12 @@ "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." }, @@ -61358,7 +54155,6 @@ ], "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." }, @@ -61373,7 +54169,6 @@ ], "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." }, @@ -61388,7 +54183,6 @@ ], "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." }, @@ -61399,7 +54193,6 @@ "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`." }, @@ -61407,7 +54200,6 @@ "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." }, @@ -61415,14 +54207,12 @@ "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": [ { @@ -61446,7 +54236,6 @@ }, "y": { "valType": "info_array", - "role": "info", "editType": "plot", "items": [ { @@ -61480,7 +54269,6 @@ "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." }, @@ -61493,7 +54281,6 @@ "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." }, @@ -61520,7 +54307,6 @@ "thai", "ummalqura" ], - "role": "info", "editType": "calc", "dflt": "gregorian", "description": "Sets the default calendar system to use for interpreting and displaying dates throughout the plot." @@ -61528,28 +54314,24 @@ "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", @@ -61557,13 +54339,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "ticks" }, "color": { "valType": "color", - "role": "style", "editType": "ticks" }, "editType": "ticks", @@ -61572,7 +54352,6 @@ }, "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." @@ -61591,7 +54370,6 @@ "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." @@ -61603,7 +54381,6 @@ "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." }, @@ -61615,7 +54392,6 @@ "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*." @@ -61628,13 +54404,11 @@ "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", @@ -61663,7 +54437,6 @@ "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." }, @@ -61673,7 +54446,6 @@ "/^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." }, @@ -61681,7 +54453,6 @@ "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." }, @@ -61691,7 +54462,6 @@ "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." }, @@ -61705,7 +54475,6 @@ "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." }, @@ -61715,7 +54484,6 @@ "/^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`." }, @@ -61724,14 +54492,12 @@ "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", @@ -61752,14 +54518,12 @@ "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", @@ -61769,7 +54533,6 @@ }, "dvalue": { "valType": "number", - "role": "info", "editType": "calc", "min": 0, "dflt": 86400000, @@ -61778,13 +54541,11 @@ "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`." }, @@ -61800,7 +54561,6 @@ "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)." @@ -61809,13 +54569,11 @@ "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" @@ -61824,7 +54582,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "ticks", "impliedEdits": { "tickmode": "linear" @@ -61834,14 +54591,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -61850,7 +54605,6 @@ "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." }, @@ -61860,7 +54614,6 @@ "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." @@ -61872,7 +54625,6 @@ "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." }, @@ -61891,7 +54643,6 @@ "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." }, @@ -61905,7 +54656,6 @@ "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." }, @@ -61913,7 +54663,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "ticks", "description": "Sets the tick length (in px)." }, @@ -61921,49 +54670,42 @@ "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." }, @@ -61978,7 +54720,6 @@ "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*)." }, @@ -61989,7 +54730,6 @@ "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" @@ -62002,14 +54742,12 @@ "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", @@ -62017,13 +54755,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "ticks" }, "color": { "valType": "color", - "role": "style", "editType": "ticks" }, "editType": "ticks", @@ -62033,14 +54769,12 @@ "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." }, @@ -62053,14 +54787,12 @@ "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." }, @@ -62073,7 +54805,6 @@ "none" ], "dflt": "all", - "role": "style", "editType": "ticks", "description": "Same as `showtickprefix` but for tick suffixes." }, @@ -62086,7 +54817,6 @@ "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." }, @@ -62101,7 +54831,6 @@ "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." }, @@ -62109,21 +54838,18 @@ "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*" }, @@ -62132,14 +54858,12 @@ "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", @@ -62156,20 +54880,17 @@ "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`." }, @@ -62181,21 +54902,18 @@ "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." }, @@ -62203,20 +54921,17 @@ "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." }, @@ -62224,48 +54939,41 @@ "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." }, @@ -62276,7 +54984,6 @@ "/^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`." }, @@ -62288,7 +54995,6 @@ "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." }, @@ -62299,7 +55005,6 @@ "/^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." }, @@ -62310,13 +55015,11 @@ "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", @@ -62343,7 +55046,6 @@ "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*." }, @@ -62368,19 +55070,16 @@ "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`." }, @@ -62388,20 +55087,17 @@ "_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", @@ -62409,13 +55105,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "ticks" }, "color": { "valType": "color", - "role": "style", "editType": "ticks" }, "editType": "ticks", @@ -62426,14 +55120,12 @@ "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." }, @@ -62441,21 +55133,18 @@ "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", @@ -62483,14 +55172,12 @@ "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`" }, @@ -62505,13 +55192,11 @@ "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", @@ -62533,7 +55218,6 @@ "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*." }, @@ -62542,14 +55226,12 @@ "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", @@ -62565,7 +55247,6 @@ }, "stepmode": { "valType": "enumerated", - "role": "info", "values": [ "backward", "todate" @@ -62576,7 +55257,6 @@ }, "count": { "valType": "number", - "role": "info", "min": 0, "dflt": 1, "editType": "plot", @@ -62584,7 +55264,6 @@ }, "label": { "valType": "string", - "role": "info", "editType": "plot", "description": "Sets the text label to appear on the button." }, @@ -62592,13 +55271,11 @@ "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`." }, @@ -62611,7 +55288,6 @@ "valType": "number", "min": -2, "max": 3, - "role": "style", "editType": "plot", "description": "Sets the x position (in normalized coordinates) of the range selector." }, @@ -62624,7 +55300,6 @@ "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." }, @@ -62632,7 +55307,6 @@ "valType": "number", "min": -2, "max": 3, - "role": "style", "editType": "plot", "description": "Sets the y position (in normalized coordinates) of the range selector." }, @@ -62645,14 +55319,12 @@ "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", @@ -62660,13 +55332,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot" }, "color": { "valType": "color", - "role": "style", "editType": "plot" }, "editType": "plot", @@ -62676,20 +55346,17 @@ "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." }, @@ -62697,7 +55364,6 @@ "valType": "number", "min": 0, "dflt": 0, - "role": "style", "editType": "plot", "description": "Sets the width (in px) of the border enclosing the range selector." }, @@ -62724,7 +55390,6 @@ "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`" @@ -62733,19 +55398,16 @@ "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" } @@ -62753,28 +55415,24 @@ "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", @@ -62782,13 +55440,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "ticks" }, "color": { "valType": "color", - "role": "style", "editType": "ticks" }, "editType": "ticks", @@ -62797,7 +55453,6 @@ }, "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." @@ -62816,7 +55471,6 @@ "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." @@ -62828,7 +55482,6 @@ "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." }, @@ -62840,7 +55493,6 @@ "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*." @@ -62853,13 +55505,11 @@ "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", @@ -62888,7 +55538,6 @@ "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." }, @@ -62898,7 +55547,6 @@ "/^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." }, @@ -62906,7 +55554,6 @@ "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." }, @@ -62916,7 +55563,6 @@ "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." }, @@ -62930,7 +55576,6 @@ "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." }, @@ -62940,7 +55585,6 @@ "/^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`." }, @@ -62949,14 +55593,12 @@ "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", @@ -62977,14 +55619,12 @@ "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", @@ -62994,7 +55634,6 @@ }, "dvalue": { "valType": "number", - "role": "info", "editType": "calc", "min": 0, "dflt": 86400000, @@ -63003,13 +55642,11 @@ "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`." }, @@ -63025,7 +55662,6 @@ "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)." @@ -63034,13 +55670,11 @@ "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" @@ -63049,7 +55683,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "ticks", "impliedEdits": { "tickmode": "linear" @@ -63059,14 +55692,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -63075,7 +55706,6 @@ "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." }, @@ -63085,7 +55715,6 @@ "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." @@ -63097,7 +55726,6 @@ "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." }, @@ -63116,7 +55744,6 @@ "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." }, @@ -63130,7 +55757,6 @@ "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." }, @@ -63138,7 +55764,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "ticks", "description": "Sets the tick length (in px)." }, @@ -63146,49 +55771,42 @@ "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." }, @@ -63203,7 +55821,6 @@ "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*)." }, @@ -63214,7 +55831,6 @@ "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" @@ -63227,14 +55843,12 @@ "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", @@ -63242,13 +55856,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "ticks" }, "color": { "valType": "color", - "role": "style", "editType": "ticks" }, "editType": "ticks", @@ -63258,14 +55870,12 @@ "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." }, @@ -63278,14 +55888,12 @@ "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." }, @@ -63298,7 +55906,6 @@ "none" ], "dflt": "all", - "role": "style", "editType": "ticks", "description": "Same as `showtickprefix` but for tick suffixes." }, @@ -63311,7 +55918,6 @@ "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." }, @@ -63326,7 +55932,6 @@ "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." }, @@ -63334,21 +55939,18 @@ "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*" }, @@ -63357,14 +55959,12 @@ "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", @@ -63381,20 +55981,17 @@ "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`." }, @@ -63406,21 +56003,18 @@ "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." }, @@ -63428,20 +56022,17 @@ "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." }, @@ -63449,48 +56040,41 @@ "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." }, @@ -63501,7 +56085,6 @@ "/^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`." }, @@ -63513,7 +56096,6 @@ "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." }, @@ -63524,7 +56106,6 @@ "/^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." }, @@ -63535,13 +56116,11 @@ "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", @@ -63568,7 +56147,6 @@ "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*." }, @@ -63593,19 +56171,16 @@ "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`." }, @@ -63613,20 +56188,17 @@ "_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", @@ -63634,13 +56206,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "ticks" }, "color": { "valType": "color", - "role": "style", "editType": "ticks" }, "editType": "ticks", @@ -63667,7 +56237,6 @@ "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`" @@ -63676,19 +56245,16 @@ "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" } @@ -63697,7 +56263,6 @@ "domain": { "x": { "valType": "info_array", - "role": "info", "items": [ { "valType": "number", @@ -63721,7 +56286,6 @@ }, "y": { "valType": "info_array", - "role": "info", "items": [ { "valType": "number", @@ -63747,7 +56311,6 @@ "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" }, @@ -63755,7 +56318,6 @@ "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" }, @@ -63764,14 +56326,12 @@ }, "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", @@ -63781,14 +56341,12 @@ "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", @@ -63796,13 +56354,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot" }, "color": { "valType": "color", - "role": "style", "editType": "plot" }, "editType": "plot", @@ -63815,7 +56371,6 @@ "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." }, @@ -63826,7 +56381,6 @@ "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)." @@ -63835,13 +56389,11 @@ "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" @@ -63850,7 +56402,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "plot", "impliedEdits": { "tickmode": "linear" @@ -63860,14 +56411,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -63876,7 +56425,6 @@ "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." }, @@ -63884,7 +56432,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "plot", "description": "Sets the tick length (in px)." }, @@ -63892,21 +56439,18 @@ "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." }, @@ -63919,14 +56463,12 @@ "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." }, @@ -63939,14 +56481,12 @@ "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." }, @@ -63959,7 +56499,6 @@ "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." }, @@ -63974,7 +56513,6 @@ "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." }, @@ -63982,21 +56520,18 @@ "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", @@ -64004,13 +56539,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot" }, "color": { "valType": "color", - "role": "style", "editType": "plot" }, "editType": "plot", @@ -64020,14 +56553,12 @@ "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*" }, @@ -64036,14 +56567,12 @@ "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", @@ -64060,20 +56589,17 @@ "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`." }, @@ -64085,21 +56611,18 @@ "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." }, @@ -64107,13 +56630,11 @@ "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 @@ -64121,7 +56642,6 @@ "gridcolor": { "valType": "color", "dflt": "#eee", - "role": "style", "editType": "plot", "description": "Sets the color of the grid lines." }, @@ -64129,7 +56649,6 @@ "valType": "number", "min": 0, "dflt": 1, - "role": "style", "editType": "plot", "description": "Sets the width (in px) of the grid lines." }, @@ -64140,14 +56659,12 @@ "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" @@ -64155,14 +56672,12 @@ "_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", @@ -64170,13 +56685,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot" }, "color": { "valType": "color", - "role": "style", "editType": "plot" }, "editType": "plot", @@ -64186,20 +56699,17 @@ "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" } @@ -64208,14 +56718,12 @@ "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", @@ -64223,13 +56731,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot" }, "color": { "valType": "color", - "role": "style", "editType": "plot" }, "editType": "plot", @@ -64242,7 +56748,6 @@ "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." }, @@ -64253,7 +56758,6 @@ "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)." @@ -64262,13 +56766,11 @@ "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" @@ -64277,7 +56779,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "plot", "impliedEdits": { "tickmode": "linear" @@ -64287,14 +56788,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -64303,7 +56802,6 @@ "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." }, @@ -64311,7 +56809,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "plot", "description": "Sets the tick length (in px)." }, @@ -64319,21 +56816,18 @@ "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." }, @@ -64346,14 +56840,12 @@ "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." }, @@ -64366,14 +56858,12 @@ "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." }, @@ -64386,7 +56876,6 @@ "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." }, @@ -64401,7 +56890,6 @@ "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." }, @@ -64409,21 +56897,18 @@ "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", @@ -64431,13 +56916,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot" }, "color": { "valType": "color", - "role": "style", "editType": "plot" }, "editType": "plot", @@ -64447,14 +56930,12 @@ "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*" }, @@ -64463,14 +56944,12 @@ "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", @@ -64487,20 +56966,17 @@ "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`." }, @@ -64512,21 +56988,18 @@ "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." }, @@ -64534,13 +57007,11 @@ "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 @@ -64548,7 +57019,6 @@ "gridcolor": { "valType": "color", "dflt": "#eee", - "role": "style", "editType": "plot", "description": "Sets the color of the grid lines." }, @@ -64556,7 +57026,6 @@ "valType": "number", "min": 0, "dflt": 1, - "role": "style", "editType": "plot", "description": "Sets the width (in px) of the grid lines." }, @@ -64567,14 +57036,12 @@ "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" @@ -64582,14 +57049,12 @@ "_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", @@ -64597,13 +57062,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot" }, "color": { "valType": "color", - "role": "style", "editType": "plot" }, "editType": "plot", @@ -64613,20 +57076,17 @@ "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" } @@ -64635,14 +57095,12 @@ "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", @@ -64650,13 +57108,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot" }, "color": { "valType": "color", - "role": "style", "editType": "plot" }, "editType": "plot", @@ -64669,7 +57125,6 @@ "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." }, @@ -64680,7 +57135,6 @@ "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)." @@ -64689,13 +57143,11 @@ "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" @@ -64704,7 +57156,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "plot", "impliedEdits": { "tickmode": "linear" @@ -64714,14 +57165,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -64730,7 +57179,6 @@ "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." }, @@ -64738,7 +57186,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "plot", "description": "Sets the tick length (in px)." }, @@ -64746,21 +57193,18 @@ "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." }, @@ -64773,14 +57217,12 @@ "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." }, @@ -64793,14 +57235,12 @@ "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." }, @@ -64813,7 +57253,6 @@ "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." }, @@ -64828,7 +57267,6 @@ "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." }, @@ -64836,21 +57274,18 @@ "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", @@ -64858,13 +57293,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot" }, "color": { "valType": "color", - "role": "style", "editType": "plot" }, "editType": "plot", @@ -64874,14 +57307,12 @@ "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*" }, @@ -64890,14 +57321,12 @@ "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", @@ -64914,20 +57343,17 @@ "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`." }, @@ -64939,21 +57365,18 @@ "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." }, @@ -64961,13 +57384,11 @@ "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 @@ -64975,7 +57396,6 @@ "gridcolor": { "valType": "color", "dflt": "#eee", - "role": "style", "editType": "plot", "description": "Sets the color of the grid lines." }, @@ -64983,7 +57403,6 @@ "valType": "number", "min": 0, "dflt": 1, - "role": "style", "editType": "plot", "description": "Sets the width (in px) of the grid lines." }, @@ -64994,14 +57413,12 @@ "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" @@ -65009,14 +57426,12 @@ "_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", @@ -65024,13 +57439,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot" }, "color": { "valType": "color", - "role": "style", "editType": "plot" }, "editType": "plot", @@ -65040,20 +57453,17 @@ "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" } @@ -65061,7 +57471,6 @@ "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`." }, @@ -65074,7 +57483,6 @@ ], "bgcolor": { "valType": "color", - "role": "style", "dflt": "rgba(0,0,0,0)", "editType": "plot" }, @@ -65082,19 +57490,16 @@ "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" }, @@ -65105,19 +57510,16 @@ "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" }, @@ -65128,19 +57530,16 @@ "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" }, @@ -65151,7 +57550,6 @@ "projection": { "type": { "valType": "enumerated", - "role": "info", "values": [ "perspective", "orthographic" @@ -65169,7 +57567,6 @@ "domain": { "x": { "valType": "info_array", - "role": "info", "editType": "plot", "items": [ { @@ -65193,7 +57590,6 @@ }, "y": { "valType": "info_array", - "role": "info", "editType": "plot", "items": [ { @@ -65220,7 +57616,6 @@ "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 ." }, @@ -65228,7 +57623,6 @@ "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 ." }, @@ -65236,7 +57630,6 @@ }, "aspectmode": { "valType": "enumerated", - "role": "info", "values": [ "auto", "cube", @@ -65251,7 +57644,6 @@ "aspectratio": { "x": { "valType": "number", - "role": "info", "min": 0, "editType": "plot", "impliedEdits": { @@ -65260,7 +57652,6 @@ }, "y": { "valType": "number", - "role": "info", "min": 0, "editType": "plot", "impliedEdits": { @@ -65269,7 +57660,6 @@ }, "z": { "valType": "number", - "role": "info", "min": 0, "editType": "plot", "impliedEdits": { @@ -65287,27 +57677,23 @@ "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.", @@ -65315,28 +57701,24 @@ }, "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" @@ -65344,7 +57726,6 @@ "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." }, @@ -65369,27 +57750,23 @@ "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", @@ -65397,13 +57774,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot" }, "color": { "valType": "color", - "role": "style", "editType": "plot" }, "editType": "plot", @@ -65423,7 +57798,6 @@ "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." @@ -65435,7 +57809,6 @@ "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." }, @@ -65447,7 +57820,6 @@ "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*." @@ -65460,13 +57832,11 @@ "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", @@ -65497,7 +57867,6 @@ "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)." @@ -65506,13 +57875,11 @@ "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" @@ -65521,7 +57888,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "plot", "impliedEdits": { "tickmode": "linear" @@ -65531,14 +57897,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -65547,7 +57911,6 @@ "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." }, @@ -65561,7 +57924,6 @@ "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." }, @@ -65569,7 +57931,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "plot", "description": "Sets the tick length (in px)." }, @@ -65577,28 +57938,24 @@ "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", @@ -65606,13 +57963,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot" }, "color": { "valType": "color", - "role": "style", "editType": "plot" }, "editType": "plot", @@ -65622,14 +57977,12 @@ "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." }, @@ -65642,14 +57995,12 @@ "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." }, @@ -65662,7 +58013,6 @@ "none" ], "dflt": "all", - "role": "style", "editType": "plot", "description": "Same as `showtickprefix` but for tick suffixes." }, @@ -65675,7 +58025,6 @@ "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." }, @@ -65690,7 +58039,6 @@ "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." }, @@ -65698,21 +58046,18 @@ "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*" }, @@ -65721,14 +58066,12 @@ "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", @@ -65745,20 +58088,17 @@ "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`." }, @@ -65770,21 +58110,18 @@ "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." }, @@ -65792,20 +58129,17 @@ "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." }, @@ -65813,41 +58147,35 @@ "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", @@ -65855,13 +58183,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot" }, "color": { "valType": "color", - "role": "style", "editType": "plot" }, "editType": "plot", @@ -65889,7 +58215,6 @@ "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`" @@ -65897,19 +58222,16 @@ "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" } @@ -65917,27 +58239,23 @@ "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.", @@ -65945,28 +58263,24 @@ }, "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" @@ -65974,7 +58288,6 @@ "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." }, @@ -65999,27 +58312,23 @@ "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", @@ -66027,13 +58336,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot" }, "color": { "valType": "color", - "role": "style", "editType": "plot" }, "editType": "plot", @@ -66053,7 +58360,6 @@ "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." @@ -66065,7 +58371,6 @@ "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." }, @@ -66077,7 +58382,6 @@ "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*." @@ -66090,13 +58394,11 @@ "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", @@ -66127,7 +58429,6 @@ "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)." @@ -66136,13 +58437,11 @@ "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" @@ -66151,7 +58450,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "plot", "impliedEdits": { "tickmode": "linear" @@ -66161,14 +58459,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -66177,7 +58473,6 @@ "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." }, @@ -66191,7 +58486,6 @@ "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." }, @@ -66199,7 +58493,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "plot", "description": "Sets the tick length (in px)." }, @@ -66207,28 +58500,24 @@ "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", @@ -66236,13 +58525,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot" }, "color": { "valType": "color", - "role": "style", "editType": "plot" }, "editType": "plot", @@ -66252,14 +58539,12 @@ "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." }, @@ -66272,14 +58557,12 @@ "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." }, @@ -66292,7 +58575,6 @@ "none" ], "dflt": "all", - "role": "style", "editType": "plot", "description": "Same as `showtickprefix` but for tick suffixes." }, @@ -66305,7 +58587,6 @@ "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." }, @@ -66320,7 +58601,6 @@ "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." }, @@ -66328,21 +58608,18 @@ "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*" }, @@ -66351,14 +58628,12 @@ "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", @@ -66375,20 +58650,17 @@ "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`." }, @@ -66400,21 +58672,18 @@ "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." }, @@ -66422,20 +58691,17 @@ "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." }, @@ -66443,41 +58709,35 @@ "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", @@ -66485,13 +58745,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot" }, "color": { "valType": "color", - "role": "style", "editType": "plot" }, "editType": "plot", @@ -66519,7 +58777,6 @@ "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`" @@ -66527,19 +58784,16 @@ "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" } @@ -66547,27 +58801,23 @@ "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.", @@ -66575,28 +58825,24 @@ }, "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" @@ -66604,7 +58850,6 @@ "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." }, @@ -66629,27 +58874,23 @@ "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", @@ -66657,13 +58898,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot" }, "color": { "valType": "color", - "role": "style", "editType": "plot" }, "editType": "plot", @@ -66683,7 +58922,6 @@ "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." @@ -66695,7 +58933,6 @@ "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." }, @@ -66707,7 +58944,6 @@ "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*." @@ -66720,13 +58956,11 @@ "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", @@ -66757,7 +58991,6 @@ "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)." @@ -66766,13 +58999,11 @@ "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" @@ -66781,7 +59012,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "plot", "impliedEdits": { "tickmode": "linear" @@ -66791,14 +59021,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -66807,7 +59035,6 @@ "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." }, @@ -66821,7 +59048,6 @@ "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." }, @@ -66829,7 +59055,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "plot", "description": "Sets the tick length (in px)." }, @@ -66837,28 +59062,24 @@ "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", @@ -66866,13 +59087,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot" }, "color": { "valType": "color", - "role": "style", "editType": "plot" }, "editType": "plot", @@ -66882,14 +59101,12 @@ "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." }, @@ -66902,14 +59119,12 @@ "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." }, @@ -66922,7 +59137,6 @@ "none" ], "dflt": "all", - "role": "style", "editType": "plot", "description": "Same as `showtickprefix` but for tick suffixes." }, @@ -66935,7 +59149,6 @@ "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." }, @@ -66950,7 +59163,6 @@ "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." }, @@ -66958,21 +59170,18 @@ "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*" }, @@ -66981,14 +59190,12 @@ "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", @@ -67005,20 +59212,17 @@ "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`." }, @@ -67030,21 +59234,18 @@ "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." }, @@ -67052,20 +59253,17 @@ "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." }, @@ -67073,41 +59271,35 @@ "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", @@ -67115,13 +59307,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot" }, "color": { "valType": "color", - "role": "style", "editType": "plot" }, "editType": "plot", @@ -67149,7 +59339,6 @@ "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`" @@ -67157,26 +59346,22 @@ "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", @@ -67189,7 +59374,6 @@ }, "hovermode": { "valType": "enumerated", - "role": "info", "values": [ "closest", false @@ -67200,7 +59384,6 @@ }, "uirevision": { "valType": "any", - "role": "info", "editType": "none", "description": "Controls persistence of user-driven changes in camera attributes. Defaults to `layout.uirevision`." }, @@ -67208,7 +59391,6 @@ "_deprecated": { "cameraposition": { "valType": "info_array", - "role": "info", "editType": "camera", "description": "Obsolete. Use `camera` instead." } @@ -67218,38 +59400,32 @@ "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" }, @@ -67262,14 +59438,12 @@ "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." }, @@ -67282,34 +59456,29 @@ "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", @@ -67317,13 +59486,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "calc" }, "color": { "valType": "color", - "role": "style", "editType": "calc" }, "editType": "calc", @@ -67334,7 +59501,6 @@ "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." }, @@ -67342,7 +59508,6 @@ "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." }, @@ -67351,7 +59516,6 @@ "min": 0, "max": 1, "dflt": 1, - "role": "style", "editType": "calc", "description": "Sets the opacity of the annotation (text + arrow)." }, @@ -67363,7 +59527,6 @@ "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." }, @@ -67375,21 +59538,18 @@ "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`." }, @@ -67397,7 +59557,6 @@ "valType": "number", "min": 0, "dflt": 1, - "role": "style", "editType": "calc", "description": "Sets the padding (in px) between the `text` and the enclosing border." }, @@ -67405,20 +59564,17 @@ "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." }, @@ -67427,7 +59583,6 @@ "min": 0, "max": 8, "dflt": 1, - "role": "style", "editType": "calc", "description": "Sets the end annotation arrow head style." }, @@ -67436,7 +59591,6 @@ "min": 0, "max": 8, "dflt": 1, - "role": "style", "editType": "calc", "description": "Sets the start annotation arrow head style." }, @@ -67450,7 +59604,6 @@ "none" ], "dflt": "end", - "role": "style", "editType": "calc", "description": "Sets the annotation arrow head position." }, @@ -67458,7 +59611,6 @@ "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." }, @@ -67466,14 +59618,12 @@ "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." }, @@ -67481,7 +59631,6 @@ "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." }, @@ -67489,33 +59638,28 @@ "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", @@ -67523,13 +59667,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "calc" }, "color": { "valType": "color", - "role": "style", "editType": "calc" }, "editType": "calc", @@ -67541,19 +59683,16 @@ }, "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`." }, @@ -67570,7 +59709,6 @@ "domain": { "x": { "valType": "info_array", - "role": "info", "items": [ { "valType": "number", @@ -67594,7 +59732,6 @@ }, "y": { "valType": "info_array", - "role": "info", "items": [ { "valType": "number", @@ -67620,7 +59757,6 @@ "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" }, @@ -67628,7 +59764,6 @@ "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" }, @@ -67643,7 +59778,6 @@ "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*." }, @@ -67653,7 +59787,6 @@ 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.", @@ -67661,7 +59794,6 @@ }, "scope": { "valType": "enumerated", - "role": "info", "values": [ "world", "usa", @@ -67678,7 +59810,6 @@ "projection": { "type": { "valType": "enumerated", - "role": "info", "values": [ "equirectangular", "mercator", @@ -67709,19 +59840,16 @@ "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" }, @@ -67730,7 +59858,6 @@ }, "parallels": { "valType": "info_array", - "role": "info", "items": [ { "valType": "number", @@ -67746,7 +59873,6 @@ }, "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. ", @@ -67758,13 +59884,11 @@ "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" }, @@ -67773,27 +59897,23 @@ }, "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).", @@ -67801,63 +59921,54 @@ }, "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.", @@ -67865,20 +59976,17 @@ }, "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.", @@ -67886,20 +59994,17 @@ }, "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.", @@ -67907,20 +60012,17 @@ }, "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.", @@ -67928,7 +60030,6 @@ }, "bgcolor": { "valType": "color", - "role": "style", "dflt": "#fff", "description": "Set the background color of the map", "editType": "plot" @@ -67936,7 +60037,6 @@ "lonaxis": { "range": { "valType": "info_array", - "role": "info", "items": [ { "valType": "number", @@ -67952,34 +60052,29 @@ }, "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).", @@ -67991,7 +60086,6 @@ "lataxis": { "range": { "valType": "info_array", - "role": "info", "items": [ { "valType": "number", @@ -68007,34 +60101,29 @@ }, "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).", @@ -68046,7 +60135,6 @@ "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`." }, @@ -68060,7 +60148,6 @@ "domain": { "x": { "valType": "info_array", - "role": "info", "items": [ { "valType": "number", @@ -68084,7 +60171,6 @@ }, "y": { "valType": "info_array", - "role": "info", "items": [ { "valType": "number", @@ -68110,7 +60196,6 @@ "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" }, @@ -68118,7 +60203,6 @@ "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" }, @@ -68129,7 +60213,6 @@ "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" }, @@ -68152,7 +60235,6 @@ "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" }, @@ -68160,14 +60242,12 @@ "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" }, @@ -68177,21 +60257,18 @@ "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" }, @@ -68200,7 +60277,6 @@ "layer": { "visible": { "valType": "boolean", - "role": "info", "dflt": true, "description": "Determines whether this layer is displayed", "editType": "plot" @@ -68214,26 +60290,22 @@ "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" }, @@ -68247,26 +60319,22 @@ "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" }, @@ -68275,7 +60343,6 @@ "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" }, @@ -68284,7 +60351,6 @@ "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" }, @@ -68293,7 +60359,6 @@ "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" }, @@ -68301,7 +60366,6 @@ "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" }, @@ -68312,13 +60376,11 @@ "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" }, @@ -68326,7 +60388,6 @@ "role": "object", "dashsrc": { "valType": "string", - "role": "info", "description": "Sets the source reference on Chart Studio Cloud for dash .", "editType": "none" } @@ -68335,7 +60396,6 @@ "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" }, @@ -68346,21 +60406,18 @@ "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" }, @@ -68372,14 +60429,12 @@ "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*.", @@ -68388,13 +60443,11 @@ }, "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*.", @@ -68416,7 +60469,6 @@ ], "dflt": "middle center", "arrayOk": false, - "role": "style", "editType": "plot", "description": "Sets the positions of the `text` elements with respects to the (x,y) coordinates." }, @@ -68425,13 +60477,11 @@ }, "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`." }, @@ -68444,7 +60494,6 @@ "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`." }, @@ -68455,7 +60504,6 @@ "domain": { "x": { "valType": "info_array", - "role": "info", "editType": "plot", "items": [ { @@ -68479,7 +60527,6 @@ }, "y": { "valType": "info_array", - "role": "info", "editType": "plot", "items": [ { @@ -68506,7 +60553,6 @@ "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 ." }, @@ -68514,7 +60560,6 @@ "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 ." }, @@ -68536,7 +60581,6 @@ 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." }, @@ -68546,12 +60590,10 @@ "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" @@ -68559,7 +60601,6 @@ "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 @@ -68574,7 +60615,6 @@ "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." @@ -68586,7 +60626,6 @@ "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." }, @@ -68598,7 +60637,6 @@ "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*." @@ -68611,13 +60649,11 @@ "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", @@ -68662,20 +60698,17 @@ "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": { @@ -68686,13 +60719,11 @@ ], "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": "" @@ -68700,7 +60731,6 @@ "font": { "family": { "valType": "string", - "role": "style", "noBlank": true, "strict": true, "editType": "ticks", @@ -68708,13 +60738,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "ticks" }, "color": { "valType": "color", - "role": "style", "editType": "ticks" }, "editType": "plot", @@ -68727,13 +60755,11 @@ "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`." }, @@ -68741,14 +60767,12 @@ "_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", @@ -68756,13 +60780,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "ticks" }, "color": { "valType": "color", - "role": "style", "editType": "ticks" }, "editType": "ticks", @@ -68772,21 +60794,18 @@ "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." }, @@ -68794,13 +60813,11 @@ "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 @@ -68808,7 +60825,6 @@ "gridcolor": { "valType": "color", "dflt": "#eee", - "role": "style", "editType": "plot", "description": "Sets the color of the grid lines." }, @@ -68816,7 +60832,6 @@ "valType": "number", "min": 0, "dflt": 1, - "role": "style", "editType": "plot", "description": "Sets the width (in px) of the grid lines." }, @@ -68827,7 +60842,6 @@ "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)." @@ -68836,13 +60850,11 @@ "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" @@ -68851,7 +60863,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "plot", "impliedEdits": { "tickmode": "linear" @@ -68861,14 +60872,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -68877,7 +60886,6 @@ "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." }, @@ -68885,7 +60893,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "plot", "description": "Sets the tick length (in px)." }, @@ -68893,21 +60900,18 @@ "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." }, @@ -68920,14 +60924,12 @@ "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." }, @@ -68940,14 +60942,12 @@ "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." }, @@ -68960,7 +60960,6 @@ "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." }, @@ -68975,7 +60974,6 @@ "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." }, @@ -68983,21 +60981,18 @@ "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", @@ -69005,13 +61000,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot" }, "color": { "valType": "color", - "role": "style", "editType": "plot" }, "editType": "plot", @@ -69021,14 +61014,12 @@ "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*" }, @@ -69037,14 +61028,12 @@ "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", @@ -69061,20 +61050,17 @@ "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`." }, @@ -69090,7 +61076,6 @@ "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." }, @@ -69114,7 +61099,6 @@ "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`" @@ -69122,19 +61106,16 @@ "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" } @@ -69142,7 +61123,6 @@ "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 @@ -69155,7 +61135,6 @@ "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." @@ -69167,7 +61146,6 @@ "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." }, @@ -69192,13 +61170,11 @@ "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`." }, @@ -69209,7 +61185,6 @@ "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*." }, @@ -69217,7 +61192,6 @@ "valType": "number", "editType": "calc", "min": 0, - "role": "info", "description": "Set the angular period. Has an effect only when `angularaxis.type` is *category*." }, "direction": { @@ -69227,26 +61201,22 @@ "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`." }, @@ -69254,21 +61224,18 @@ "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." }, @@ -69276,13 +61243,11 @@ "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 @@ -69290,7 +61255,6 @@ "gridcolor": { "valType": "color", "dflt": "#eee", - "role": "style", "editType": "plot", "description": "Sets the color of the grid lines." }, @@ -69298,7 +61262,6 @@ "valType": "number", "min": 0, "dflt": 1, - "role": "style", "editType": "plot", "description": "Sets the width (in px) of the grid lines." }, @@ -69309,7 +61272,6 @@ "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)." @@ -69318,13 +61280,11 @@ "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" @@ -69333,7 +61293,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "plot", "impliedEdits": { "tickmode": "linear" @@ -69343,14 +61302,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -69359,7 +61316,6 @@ "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." }, @@ -69367,7 +61323,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "plot", "description": "Sets the tick length (in px)." }, @@ -69375,21 +61330,18 @@ "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." }, @@ -69402,14 +61354,12 @@ "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." }, @@ -69422,14 +61372,12 @@ "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." }, @@ -69442,7 +61390,6 @@ "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." }, @@ -69457,7 +61404,6 @@ "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." }, @@ -69465,21 +61411,18 @@ "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", @@ -69487,13 +61430,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "plot" }, "color": { "valType": "color", - "role": "style", "editType": "plot" }, "editType": "plot", @@ -69503,14 +61444,12 @@ "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*" }, @@ -69519,14 +61458,12 @@ "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", @@ -69543,20 +61480,17 @@ "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`." }, @@ -69572,26 +61506,22 @@ "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" } @@ -69603,13 +61533,11 @@ "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`." }, @@ -69617,236 +61545,15 @@ "_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." }, @@ -69854,14 +61561,12 @@ "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", @@ -69869,13 +61574,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "legend" }, "color": { "valType": "color", - "role": "style", "editType": "legend" }, "editType": "legend", @@ -69889,7 +61592,6 @@ "h" ], "dflt": "v", - "role": "info", "editType": "legend", "description": "Sets the orientation of the legend." }, @@ -69902,7 +61604,6 @@ "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*." }, @@ -69910,7 +61611,6 @@ "valType": "number", "min": 0, "dflt": 10, - "role": "style", "editType": "legend", "description": "Sets the amount of vertical space (in px) between legend groups." }, @@ -69921,7 +61621,6 @@ "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." }, @@ -69929,7 +61628,6 @@ "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)." }, @@ -69941,7 +61639,6 @@ 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." }, @@ -69953,7 +61650,6 @@ 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." }, @@ -69961,7 +61657,6 @@ "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." }, @@ -69974,7 +61669,6 @@ "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." }, @@ -69982,7 +61676,6 @@ "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." }, @@ -69994,13 +61687,11 @@ "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`." }, @@ -70012,7 +61703,6 @@ "bottom" ], "dflt": "middle", - "role": "style", "editType": "legend", "description": "Sets the vertical alignment of the symbols with respect to their associated text." }, @@ -70020,14 +61710,12 @@ "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", @@ -70035,13 +61723,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "legend" }, "color": { "valType": "color", - "role": "style", "editType": "legend" }, "editType": "legend", @@ -70055,7 +61741,6 @@ "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." }, @@ -70070,28 +61755,24 @@ "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", @@ -70099,13 +61780,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "calc+arraydraw" }, "color": { "valType": "color", - "role": "style", "editType": "arraydraw" }, "editType": "calc+arraydraw", @@ -70116,7 +61795,6 @@ "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." }, @@ -70124,7 +61802,6 @@ "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." }, @@ -70133,7 +61810,6 @@ "min": 0, "max": 1, "dflt": 1, - "role": "style", "editType": "arraydraw", "description": "Sets the opacity of the annotation (text + arrow)." }, @@ -70145,7 +61821,6 @@ "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." }, @@ -70157,21 +61832,18 @@ "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`." }, @@ -70179,7 +61851,6 @@ "valType": "number", "min": 0, "dflt": 1, - "role": "style", "editType": "calc+arraydraw", "description": "Sets the padding (in px) between the `text` and the enclosing border." }, @@ -70187,20 +61858,17 @@ "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." }, @@ -70209,7 +61877,6 @@ "min": 0, "max": 8, "dflt": 1, - "role": "style", "editType": "arraydraw", "description": "Sets the end annotation arrow head style." }, @@ -70218,7 +61885,6 @@ "min": 0, "max": 8, "dflt": 1, - "role": "style", "editType": "arraydraw", "description": "Sets the start annotation arrow head style." }, @@ -70232,7 +61898,6 @@ "none" ], "dflt": "end", - "role": "style", "editType": "arraydraw", "description": "Sets the annotation arrow head position." }, @@ -70240,7 +61905,6 @@ "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." }, @@ -70248,14 +61912,12 @@ "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." }, @@ -70263,7 +61925,6 @@ "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." }, @@ -70271,19 +61932,16 @@ "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`." }, @@ -70294,7 +61952,6 @@ "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." }, @@ -70305,7 +61962,6 @@ "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." }, @@ -70315,13 +61971,11 @@ "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." }, @@ -70334,14 +61988,12 @@ "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." }, @@ -70351,13 +62003,11 @@ "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." }, @@ -70370,14 +62020,12 @@ "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." }, @@ -70389,45 +62037,38 @@ "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", @@ -70435,13 +62076,11 @@ }, "size": { "valType": "number", - "role": "style", "min": 1, "editType": "arraydraw" }, "color": { "valType": "color", - "role": "style", "editType": "arraydraw" }, "editType": "arraydraw", @@ -70453,7 +62092,6 @@ }, "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`." }, @@ -70461,20 +62099,17 @@ "_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`." }, @@ -70488,7 +62123,6 @@ "shape": { "visible": { "valType": "boolean", - "role": "info", "dflt": true, "editType": "calc+arraydraw", "description": "Determines whether or not this shape is visible." @@ -70501,7 +62135,6 @@ "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." }, @@ -70512,7 +62145,6 @@ "above" ], "dflt": "above", - "role": "info", "editType": "arraydraw", "description": "Specifies whether shapes are drawn below or above traces." }, @@ -70522,7 +62154,6 @@ "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." }, @@ -70533,25 +62164,21 @@ "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." }, @@ -70561,7 +62188,6 @@ "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." }, @@ -70572,31 +62198,26 @@ "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" }, @@ -70605,14 +62226,12 @@ "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." @@ -70621,7 +62240,6 @@ "valType": "number", "min": 0, "dflt": 2, - "role": "style", "editType": "calc+arraydraw", "anim": true, "description": "Sets the line width (in px)." @@ -70637,17 +62255,15 @@ "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" + "editType": "calc+arraydraw", + "role": "object" }, "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." }, @@ -70658,13 +62274,11 @@ "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`." @@ -70672,13 +62286,11 @@ "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`." }, @@ -70692,14 +62304,12 @@ "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." }, @@ -70710,20 +62320,17 @@ "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." @@ -70736,13 +62343,11 @@ "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, @@ -70751,14 +62356,12 @@ }, "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" @@ -70771,7 +62374,6 @@ "right" ], "dflt": "left", - "role": "info", "editType": "arraydraw", "description": "Sets the anchor for the x position" }, @@ -70783,7 +62385,6 @@ "bottom" ], "dflt": "top", - "role": "info", "editType": "arraydraw", "description": "Sets the anchor for the y position." }, @@ -70794,7 +62395,6 @@ "/^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." }, @@ -70805,20 +62405,17 @@ "/^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`." }, @@ -70835,7 +62432,6 @@ ], "visible": { "valType": "boolean", - "role": "info", "description": "Determines whether or not the update menu is visible.", "editType": "arraydraw" }, @@ -70846,7 +62442,6 @@ "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" }, @@ -70859,13 +62454,11 @@ "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.", @@ -70873,7 +62466,6 @@ }, "showactive": { "valType": "boolean", - "role": "info", "dflt": true, "description": "Highlights active dropdown item or active button if true.", "editType": "arraydraw" @@ -70883,7 +62475,6 @@ "button": { "visible": { "valType": "boolean", - "role": "info", "description": "Determines whether or not this button is visible.", "editType": "arraydraw" }, @@ -70897,13 +62488,11 @@ "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": [ { @@ -70924,7 +62513,6 @@ }, "args2": { "valType": "info_array", - "role": "info", "freeLength": true, "items": [ { @@ -70945,27 +62533,23 @@ }, "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`." }, @@ -70980,7 +62564,6 @@ "min": -2, "max": 3, "dflt": -0.05, - "role": "style", "description": "Sets the x position (in normalized coordinates) of the update menu.", "editType": "arraydraw" }, @@ -70993,7 +62576,6 @@ "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" }, @@ -71002,7 +62584,6 @@ "min": -2, "max": 3, "dflt": 1, - "role": "style", "description": "Sets the y position (in normalized coordinates) of the update menu.", "editType": "arraydraw" }, @@ -71015,7 +62596,6 @@ "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" }, @@ -71023,28 +62603,24 @@ "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." }, @@ -71055,7 +62631,6 @@ "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*.", @@ -71063,13 +62638,11 @@ }, "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.", @@ -71078,14 +62651,12 @@ }, "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" }, @@ -71093,19 +62664,16 @@ "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`." }, @@ -71120,14 +62688,12 @@ "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.", @@ -71138,7 +62704,6 @@ "step": { "visible": { "valType": "boolean", - "role": "info", "dflt": true, "description": "Determines whether or not this step is included in the slider.", "editType": "arraydraw" @@ -71153,13 +62718,11 @@ "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": [ { @@ -71180,32 +62743,27 @@ }, "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`." }, @@ -71221,7 +62779,6 @@ "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" @@ -71230,7 +62787,6 @@ "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" }, @@ -71239,7 +62795,6 @@ "min": -2, "max": 3, "dflt": 0, - "role": "style", "description": "Sets the x position (in normalized coordinates) of the slider.", "editType": "arraydraw" }, @@ -71247,28 +62802,24 @@ "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." }, @@ -71285,7 +62836,6 @@ "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" }, @@ -71294,7 +62844,6 @@ "min": -2, "max": 3, "dflt": 0, - "role": "style", "description": "Sets the y position (in normalized coordinates) of the slider.", "editType": "arraydraw" }, @@ -71307,14 +62856,12 @@ "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", @@ -71360,7 +62907,6 @@ "back-in-out", "bounce-in-out" ], - "role": "info", "dflt": "cubic-in-out", "description": "Sets the easing function of the slider transition", "editType": "arraydraw" @@ -71371,7 +62917,6 @@ "currentvalue": { "visible": { "valType": "boolean", - "role": "info", "dflt": true, "description": "Shows the currently-selected value above the slider.", "editType": "arraydraw" @@ -71384,33 +62929,28 @@ "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*.", @@ -71418,13 +62958,11 @@ }, "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.", @@ -71437,7 +62975,6 @@ "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*.", @@ -71445,13 +62982,11 @@ }, "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.", @@ -71460,14 +62995,12 @@ }, "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" @@ -71475,7 +63008,6 @@ "bordercolor": { "valType": "color", "dflt": "#bec8d9", - "role": "style", "description": "Sets the color of the border enclosing the slider.", "editType": "arraydraw" }, @@ -71483,7 +63015,6 @@ "valType": "number", "min": 0, "dflt": 1, - "role": "style", "description": "Sets the width (in px) of the border enclosing the slider.", "editType": "arraydraw" }, @@ -71491,14 +63022,12 @@ "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" }, @@ -71506,7 +63035,6 @@ "valType": "number", "min": 0, "dflt": 1, - "role": "style", "description": "Sets the tick width (in px).", "editType": "arraydraw" }, @@ -71514,19 +63042,16 @@ "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`." }, @@ -71536,6 +63061,7 @@ }, "role": "object" }, + "editType": "calc", "colorscale": { "editType": "calc", "sequential": { @@ -71558,7 +63084,6 @@ "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." }, @@ -71590,7 +63115,6 @@ "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." }, @@ -71622,7 +63146,6 @@ "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." }, @@ -71634,7 +63157,6 @@ "description": "", "cauto": { "valType": "boolean", - "role": "info", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -71642,7 +63164,6 @@ }, "cmin": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -71652,7 +63173,6 @@ }, "cmax": { "valType": "number", - "role": "info", "dflt": null, "editType": "plot", "impliedEdits": { @@ -71662,7 +63182,6 @@ }, "cmid": { "valType": "number", - "role": "info", "dflt": null, "editType": "calc", "impliedEdits": {}, @@ -71670,7 +63189,6 @@ }, "colorscale": { "valType": "colorscale", - "role": "style", "editType": "calc", "dflt": null, "impliedEdits": { @@ -71680,7 +63198,6 @@ }, "autocolorscale": { "valType": "boolean", - "role": "style", "dflt": true, "editType": "calc", "impliedEdits": {}, @@ -71688,14 +63205,12 @@ }, "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." @@ -71707,14 +63222,12 @@ "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.", @@ -71726,7 +63239,6 @@ "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" @@ -71735,7 +63247,6 @@ "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" }, @@ -71744,7 +63255,6 @@ "dflt": 1.02, "min": -2, "max": 3, - "role": "style", "description": "Sets the x position of the color bar (in plot fraction).", "editType": "colorbars" }, @@ -71756,13 +63266,11 @@ "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.", @@ -71770,7 +63278,6 @@ }, "y": { "valType": "number", - "role": "style", "dflt": 0.5, "min": -2, "max": 3, @@ -71784,14 +63291,12 @@ "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.", @@ -71800,7 +63305,6 @@ "outlinecolor": { "valType": "color", "dflt": "#444", - "role": "style", "editType": "colorbars", "description": "Sets the axis line color." }, @@ -71808,20 +63312,17 @@ "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.", @@ -71829,7 +63330,6 @@ }, "bgcolor": { "valType": "color", - "role": "style", "dflt": "rgba(0,0,0,0)", "description": "Sets the color of padded area.", "editType": "colorbars" @@ -71841,7 +63341,6 @@ "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)." @@ -71850,13 +63349,11 @@ "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" @@ -71865,7 +63362,6 @@ }, "dtick": { "valType": "any", - "role": "style", "editType": "colorbars", "impliedEdits": { "tickmode": "linear" @@ -71875,14 +63371,12 @@ "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" + "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`.", - "role": "data" + "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", @@ -71891,7 +63385,6 @@ "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": "" @@ -71907,7 +63400,6 @@ "inside bottom" ], "dflt": "outside", - "role": "info", "description": "Determines where tick labels are drawn.", "editType": "colorbars" }, @@ -71915,7 +63407,6 @@ "valType": "number", "min": 0, "dflt": 5, - "role": "style", "editType": "colorbars", "description": "Sets the tick length (in px)." }, @@ -71923,28 +63414,24 @@ "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*.", @@ -71952,13 +63439,11 @@ }, "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", @@ -71968,14 +63453,12 @@ "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*" }, @@ -71984,14 +63467,12 @@ "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", @@ -72008,20 +63489,17 @@ "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`." }, @@ -72033,7 +63511,6 @@ "tickprefix": { "valType": "string", "dflt": "", - "role": "style", "editType": "colorbars", "description": "Sets a tick label prefix." }, @@ -72046,14 +63523,12 @@ "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." }, @@ -72066,14 +63541,12 @@ "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" }, @@ -72088,7 +63561,6 @@ "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." }, @@ -72096,7 +63568,6 @@ "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*." }, @@ -72109,21 +63580,18 @@ "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*.", @@ -72131,13 +63599,11 @@ }, "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.", @@ -72151,7 +63617,6 @@ "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" @@ -72162,14 +63627,12 @@ "_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*.", @@ -72177,13 +63640,11 @@ }, "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`.", @@ -72196,7 +63657,6 @@ "top", "bottom" ], - "role": "style", "dflt": "top", "description": "Deprecated in favor of color bar's `title.side`.", "editType": "colorbars" @@ -72206,13 +63666,11 @@ "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" } @@ -72221,7 +63679,6 @@ }, "metasrc": { "valType": "string", - "role": "info", "description": "Sets the source reference on Chart Studio Cloud for meta .", "editType": "none" } @@ -72233,7 +63690,6 @@ "enabled": { "valType": "boolean", "dflt": true, - "role": "info", "editType": "calc", "description": "Determines whether this aggregate transform is enabled or disabled." }, @@ -72243,7 +63699,6 @@ "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." }, @@ -72252,7 +63707,6 @@ "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." }, @@ -72274,7 +63728,6 @@ "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." }, @@ -72285,14 +63738,12 @@ "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." }, @@ -72305,7 +63756,6 @@ "editType": "calc", "groupssrc": { "valType": "string", - "role": "info", "description": "Sets the source reference on Chart Studio Cloud for groups .", "editType": "none" } @@ -72316,7 +63766,6 @@ "enabled": { "valType": "boolean", "dflt": true, - "role": "info", "editType": "calc", "description": "Determines whether this filter transform is enabled or disabled." }, @@ -72326,7 +63775,6 @@ "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." }, @@ -72351,21 +63799,18 @@ "}{" ], "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*." }, @@ -72390,7 +63835,6 @@ "thai", "ummalqura" ], - "role": "info", "editType": "calc", "dflt": "gregorian", "description": "Sets the calendar system to use for `value`, if it is a date." @@ -72415,14 +63859,12 @@ "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" } @@ -72433,20 +63875,17 @@ "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)\"." }, @@ -72455,13 +63894,11 @@ "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.", @@ -72476,7 +63913,6 @@ "editType": "calc", "groupssrc": { "valType": "string", - "role": "info", "description": "Sets the source reference on Chart Studio Cloud for groups .", "editType": "none" } @@ -72487,7 +63923,6 @@ "enabled": { "valType": "boolean", "dflt": true, - "role": "info", "editType": "calc", "description": "Determines whether this sort transform is enabled or disabled." }, @@ -72497,7 +63932,6 @@ "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." }, @@ -72508,14 +63942,12 @@ "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" } @@ -72527,32 +63959,26 @@ "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" @@ -72564,7 +63990,6 @@ "mode": { "valType": "enumerated", "dflt": "afterall", - "role": "info", "values": [ "immediate", "next", @@ -72574,7 +63999,6 @@ }, "direction": { "valType": "enumerated", - "role": "info", "values": [ "forward", "reverse" @@ -72585,20 +64009,17 @@ "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" }, @@ -72607,7 +64028,6 @@ "transition": { "duration": { "valType": "number", - "role": "info", "min": 0, "dflt": 500, "editType": "none", @@ -72654,7 +64074,6 @@ "back-in-out", "bounce-in-out" ], - "role": "info", "editType": "none", "description": "The easing function used for the transition" }, @@ -72665,7 +64084,6 @@ "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." }, @@ -72749,7 +64167,7 @@ "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." + "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", 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..5d4936a26d7 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", @@ -1146,48 +1142,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 +1251,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 @@ -1552,26 +1484,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 @@ -2232,13 +2144,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 +2160,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 @@ -2309,9 +2210,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 @@ -2449,13 +2347,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 +2359,6 @@ def __init__( textsrc=None, texttemplate=None, texttemplatesrc=None, - tsrc=None, uid=None, uirevision=None, unselected=None, @@ -2646,13 +2540,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 +2556,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 @@ -2723,9 +2606,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 @@ -2991,14 +2871,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 +2887,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 +2919,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: diff --git a/packages/python/plotly/plotly/graph_objs/_figure.py b/packages/python/plotly/plotly/graph_objs/_figure.py index f4a3b94317f..3e8e347b2eb 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 @@ -347,11 +338,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 +353,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 +578,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 +613,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 +625,6 @@ def add_bar( textsrc=None, texttemplate=None, texttemplatesrc=None, - tsrc=None, uid=None, uirevision=None, unselected=None, @@ -1005,13 +806,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 +822,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 @@ -1082,9 +872,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 @@ -1245,13 +1032,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 +1044,6 @@ def add_bar( textsrc=textsrc, texttemplate=texttemplate, texttemplatesrc=texttemplatesrc, - tsrc=tsrc, uid=uid, uirevision=uirevision, unselected=unselected, @@ -7906,6 +7689,7 @@ def add_image( z=None, zmax=None, zmin=None, + zsmooth=None, zsrc=None, row=None, col=None, @@ -8084,6 +7868,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 +7935,7 @@ def add_image( z=z, zmax=zmax, zmin=zmin, + zsmooth=zsmooth, zsrc=zsrc, **kwargs ) @@ -10735,15 +10524,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 +10537,6 @@ def add_scatter( textsrc=None, texttemplate=None, texttemplatesrc=None, - tsrc=None, uid=None, uirevision=None, unselected=None, @@ -10958,13 +10743,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 +10783,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 +10820,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 @@ -11201,15 +10972,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 +10985,6 @@ def add_scatter( textsrc=textsrc, texttemplate=texttemplate, texttemplatesrc=texttemplatesrc, - tsrc=tsrc, uid=uid, uirevision=uirevision, unselected=unselected, diff --git a/packages/python/plotly/plotly/graph_objs/_figurewidget.py b/packages/python/plotly/plotly/graph_objs/_figurewidget.py index ab8948a2eeb..61d328959b6 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 @@ -347,11 +338,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 +353,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 +578,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 +613,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 +625,6 @@ def add_bar( textsrc=None, texttemplate=None, texttemplatesrc=None, - tsrc=None, uid=None, uirevision=None, unselected=None, @@ -1005,13 +806,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 +822,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 @@ -1082,9 +872,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 @@ -1245,13 +1032,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 +1044,6 @@ def add_bar( textsrc=textsrc, texttemplate=texttemplate, texttemplatesrc=texttemplatesrc, - tsrc=tsrc, uid=uid, uirevision=uirevision, unselected=unselected, @@ -7906,6 +7689,7 @@ def add_image( z=None, zmax=None, zmin=None, + zsmooth=None, zsrc=None, row=None, col=None, @@ -8084,6 +7868,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 +7935,7 @@ def add_image( z=z, zmax=zmax, zmin=zmin, + zsmooth=zsmooth, zsrc=zsrc, **kwargs ) @@ -10735,15 +10524,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 +10537,6 @@ def add_scatter( textsrc=None, texttemplate=None, texttemplatesrc=None, - tsrc=None, uid=None, uirevision=None, unselected=None, @@ -10958,13 +10743,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 +10783,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 +10820,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 @@ -11201,15 +10972,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 +10985,6 @@ def add_scatter( textsrc=textsrc, texttemplate=texttemplate, texttemplatesrc=texttemplatesrc, - tsrc=tsrc, uid=uid, uirevision=uirevision, unselected=unselected, 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/_layout.py b/packages/python/plotly/plotly/graph_objs/_layout.py index 59d93124f61..d8c7323c805 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 @@ -2331,30 +2239,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 +2455,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 @@ -4845,9 +4659,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 +4759,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 @@ -5111,10 +4918,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 +4932,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 +5099,6 @@ def __init__( self, arg=None, activeshape=None, - angularaxis=None, annotations=None, annotationdefaults=None, autosize=None, @@ -5318,7 +5117,6 @@ def __init__( colorway=None, computed=None, datarevision=None, - direction=None, dragmode=None, editrevision=None, extendfunnelareacolors=None, @@ -5348,12 +5146,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 +5193,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 +5293,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 @@ -5663,10 +5452,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 +5466,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 +5640,6 @@ def __init__( # to support subplot properties (e.g. xaxis2) self._valid_props = { "activeshape", - "angularaxis", "annotationdefaults", "annotations", "autosize", @@ -5877,7 +5658,6 @@ def __init__( "colorway", "computed", "datarevision", - "direction", "dragmode", "editrevision", "extendfunnelareacolors", @@ -5907,12 +5687,10 @@ def __init__( "metasrc", "modebar", "newshape", - "orientation", "paper_bgcolor", "piecolorway", "plot_bgcolor", "polar", - "radialaxis", "scene", "selectdirection", "selectionrevision", @@ -5972,10 +5750,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 +5822,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 +5938,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 +5954,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/_scatter.py b/packages/python/plotly/plotly/graph_objs/_scatter.py index 9254d9b9e24..a236c230287 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", @@ -1148,48 +1144,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 +1314,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 +1518,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 @@ -2250,13 +2162,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 +2202,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 +2239,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 @@ -2470,15 +2368,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 +2381,6 @@ def __init__( textsrc=None, texttemplate=None, texttemplatesrc=None, - tsrc=None, uid=None, uirevision=None, unselected=None, @@ -2693,13 +2587,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 +2627,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 +2664,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 @@ -3032,14 +2912,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 +2936,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 +2964,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: 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/area/hoverlabel/_font.py b/packages/python/plotly/plotly/graph_objs/area/hoverlabel/_font.py deleted file mode 100644 index dc29a473c8c..00000000000 --- a/packages/python/plotly/plotly/graph_objs/area/hoverlabel/_font.py +++ /dev/null @@ -1,330 +0,0 @@ -from plotly.basedatatypes import BaseTraceHierarchyType as _BaseTraceHierarchyType -import copy as _copy - - -class Font(_BaseTraceHierarchyType): - - # class properties - # -------------------- - _parent_path_str = "area.hoverlabel" - _path_str = "area.hoverlabel.font" - _valid_props = {"color", "colorsrc", "family", "familysrc", "size", "sizesrc"} - - # color - # ----- - @property - def color(self): - """ - 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 - - # family - # ------ - @property - def family(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". - - The 'family' property is a string and must be specified as: - - A non-empty string - - A tuple, list, or one-dimensional numpy array of the above - - Returns - ------- - str|numpy.ndarray - """ - return self["family"] - - @family.setter - def family(self, val): - self["family"] = val - - # familysrc - # --------- - @property - def familysrc(self): - """ - Sets the source reference on Chart Studio Cloud for family . - - The 'familysrc' property must be specified as a string or - as a plotly.grid_objs.Column object - - Returns - ------- - str - """ - return self["familysrc"] - - @familysrc.setter - def familysrc(self, val): - self["familysrc"] = val - - # size - # ---- - @property - def size(self): - """ - The 'size' property is a number and may be specified as: - - An int or float in the interval [1, 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 - - # Self properties description - # --------------------------- - @property - def _prop_descriptions(self): - return """\ - 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 . - """ - - def __init__( - self, - arg=None, - color=None, - colorsrc=None, - family=None, - familysrc=None, - size=None, - sizesrc=None, - **kwargs - ): - """ - Construct a new Font 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 - 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 - ------- - Font - """ - super(Font, self).__init__("font") - - 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.Font -constructor must be a dict or -an instance of :class:`plotly.graph_objs.area.hoverlabel.Font`""" - ) - - # 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("family", None) - _v = family if family 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 - if _v is not None: - self["familysrc"] = _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 - - # 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/__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/_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/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/offline/_plotlyjs_version.py b/packages/python/plotly/plotly/offline/_plotlyjs_version.py index 8637a60d31e..b83c68e8bd6 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__ = "plotly/plotly.js_master_2021-01-26_499c079d" diff --git a/packages/python/plotly/plotly/package_data/plotly.min.js b/packages/python/plotly/plotly/package_data/plotly.min.js index 060cc2fe7e9..b76cb094f0a 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. +* 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":1376}],3:[function(t,e,r){"use strict";e.exports=t("../src/traces/bar")},{"../src/traces/bar":940}],4:[function(t,e,r){"use strict";e.exports=t("../src/traces/barpolar")},{"../src/traces/barpolar":953}],5:[function(t,e,r){"use strict";e.exports=t("../src/traces/box")},{"../src/traces/box":963}],6:[function(t,e,r){"use strict";e.exports=t("../src/components/calendars")},{"../src/components/calendars":658}],7:[function(t,e,r){"use strict";e.exports=t("../src/traces/candlestick")},{"../src/traces/candlestick":972}],8:[function(t,e,r){"use strict";e.exports=t("../src/traces/carpet")},{"../src/traces/carpet":991}],9:[function(t,e,r){"use strict";e.exports=t("../src/traces/choropleth")},{"../src/traces/choropleth":1005}],10:[function(t,e,r){"use strict";e.exports=t("../src/traces/choroplethmapbox")},{"../src/traces/choroplethmapbox":1012}],11:[function(t,e,r){"use strict";e.exports=t("../src/traces/cone")},{"../src/traces/cone":1018}],12:[function(t,e,r){"use strict";e.exports=t("../src/traces/contour")},{"../src/traces/contour":1033}],13:[function(t,e,r){"use strict";e.exports=t("../src/traces/contourcarpet")},{"../src/traces/contourcarpet":1044}],14:[function(t,e,r){"use strict";e.exports=t("../src/core")},{"../src/core":772}],15:[function(t,e,r){"use strict";e.exports=t("../src/traces/densitymapbox")},{"../src/traces/densitymapbox":1052}],16:[function(t,e,r){"use strict";e.exports=t("../src/transforms/filter")},{"../src/transforms/filter":1377}],17:[function(t,e,r){"use strict";e.exports=t("../src/traces/funnel")},{"../src/traces/funnel":1062}],18:[function(t,e,r){"use strict";e.exports=t("../src/traces/funnelarea")},{"../src/traces/funnelarea":1071}],19:[function(t,e,r){"use strict";e.exports=t("../src/transforms/groupby")},{"../src/transforms/groupby":1378}],20:[function(t,e,r){"use strict";e.exports=t("../src/traces/heatmap")},{"../src/traces/heatmap":1084}],21:[function(t,e,r){"use strict";e.exports=t("../src/traces/heatmapgl")},{"../src/traces/heatmapgl":1094}],22:[function(t,e,r){"use strict";e.exports=t("../src/traces/histogram")},{"../src/traces/histogram":1106}],23:[function(t,e,r){"use strict";e.exports=t("../src/traces/histogram2d")},{"../src/traces/histogram2d":1112}],24:[function(t,e,r){"use strict";e.exports=t("../src/traces/histogram2dcontour")},{"../src/traces/histogram2dcontour":1116}],25:[function(t,e,r){"use strict";e.exports=t("../src/traces/image")},{"../src/traces/image":1124}],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")]),e.exports=t("./register_extra")(n)},{"./bar":3,"./barpolar":4,"./box":5,"./candlestick":7,"./carpet":8,"./choropleth":9,"./choroplethmapbox":10,"./cone":11,"./contour":12,"./contourcarpet":13,"./core":14,"./densitymapbox":15,"./funnel":17,"./funnelarea":18,"./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,"./register_extra":35,"./sankey":36,"./scatter3d":37,"./scattercarpet":38,"./scattergeo":39,"./scattergl":40,"./scattermapbox":41,"./scatterpolar":42,"./scatterpolargl":43,"./scatterternary":44,"./splom":46,"./streamtube":47,"./sunburst":48,"./surface":49,"./table":50,"./treemap":51,"./violin":52,"./volume":53,"./waterfall":54}],27:[function(t,e,r){"use strict";e.exports=t("../src/traces/indicator")},{"../src/traces/indicator":1132}],28:[function(t,e,r){"use strict";e.exports=t("../src/traces/isosurface")},{"../src/traces/isosurface":1138}],29:[function(t,e,r){"use strict";e.exports=t("../src/traces/mesh3d")},{"../src/traces/mesh3d":1143}],30:[function(t,e,r){"use strict";e.exports=t("../src/traces/ohlc")},{"../src/traces/ohlc":1148}],31:[function(t,e,r){"use strict";e.exports=t("../src/traces/parcats")},{"../src/traces/parcats":1157}],32:[function(t,e,r){"use strict";e.exports=t("../src/traces/parcoords")},{"../src/traces/parcoords":1167}],33:[function(t,e,r){"use strict";e.exports=t("../src/traces/pie")},{"../src/traces/pie":1178}],34:[function(t,e,r){"use strict";e.exports=t("../src/traces/pointcloud")},{"../src/traces/pointcloud":1187}],35:[function(t,e,r){"use strict";e.exports=function(e){return e.register([t("./aggregate"),t("./filter"),t("./groupby"),t("./sort")]),e.register([t("./calendars")]),e}},{"./aggregate":2,"./calendars":6,"./filter":16,"./groupby":19,"./sort":45}],36:[function(t,e,r){"use strict";e.exports=t("../src/traces/sankey")},{"../src/traces/sankey":1193}],37:[function(t,e,r){"use strict";e.exports=t("../src/traces/scatter3d")},{"../src/traces/scatter3d":1231}],38:[function(t,e,r){"use strict";e.exports=t("../src/traces/scattercarpet")},{"../src/traces/scattercarpet":1238}],39:[function(t,e,r){"use strict";e.exports=t("../src/traces/scattergeo")},{"../src/traces/scattergeo":1246}],40:[function(t,e,r){"use strict";e.exports=t("../src/traces/scattergl")},{"../src/traces/scattergl":1259}],41:[function(t,e,r){"use strict";e.exports=t("../src/traces/scattermapbox")},{"../src/traces/scattermapbox":1269}],42:[function(t,e,r){"use strict";e.exports=t("../src/traces/scatterpolar")},{"../src/traces/scatterpolar":1277}],43:[function(t,e,r){"use strict";e.exports=t("../src/traces/scatterpolargl")},{"../src/traces/scatterpolargl":1284}],44:[function(t,e,r){"use strict";e.exports=t("../src/traces/scatterternary")},{"../src/traces/scatterternary":1292}],45:[function(t,e,r){"use strict";e.exports=t("../src/transforms/sort")},{"../src/transforms/sort":1380}],46:[function(t,e,r){"use strict";e.exports=t("../src/traces/splom")},{"../src/traces/splom":1301}],47:[function(t,e,r){"use strict";e.exports=t("../src/traces/streamtube")},{"../src/traces/streamtube":1309}],48:[function(t,e,r){"use strict";e.exports=t("../src/traces/sunburst")},{"../src/traces/sunburst":1317}],49:[function(t,e,r){"use strict";e.exports=t("../src/traces/surface")},{"../src/traces/surface":1326}],50:[function(t,e,r){"use strict";e.exports=t("../src/traces/table")},{"../src/traces/table":1334}],51:[function(t,e,r){"use strict";e.exports=t("../src/traces/treemap")},{"../src/traces/treemap":1343}],52:[function(t,e,r){"use strict";e.exports=t("../src/traces/violin")},{"../src/traces/violin":1355}],53:[function(t,e,r){"use strict";e.exports=t("../src/traces/volume")},{"../src/traces/volume":1363}],54:[function(t,e,r){"use strict";e.exports=t("../src/traces/waterfall")},{"../src/traces/waterfall":1371}],55:[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),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,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,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 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":158,"d3-collection":159,"d3-shape":167}],58:[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 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 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 Z(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?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(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 L(t){S(),t({type:"zoom",scale:h.k,translate:[h.x,h.y]})}function C(t){--m||(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 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 Xt?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 Zt(t,e,r){return isNaN(t)&&(t=0),isNaN(e)&&(e=0),new Xt(r,Math.cos(t*=Ct)*e,Math.sin(t)*e)}function Xt(t,e,r){return this instanceof Xt?(this.l=+t,this.a=+e,void(this.b=+r)):arguments.length<2?t instanceof Xt?new Xt(t.l,t.a,t.b):t instanceof Yt?Zt(t.h,t.c,t.l):ue((t=ne(t)).r,t.g,t.b):new Xt(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 Zt(this.h,this.c,this.l).rgb()},t.lab=Xt;var Jt=18,Kt=Xt.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 Xt(Math.min(100,this.l+Jt*(arguments.length?t:1)),this.a,this.b)},Kt.darker=function(t){return new Xt(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 Xt(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(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=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=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],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=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(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 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),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+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){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:Xe,Y:Ze,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,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;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_(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 Zr(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=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(!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: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],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*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),g=Ir(p,p),m=d*d-g*(Ir(h,h)-1);if(!(m<0)){var v=Math.sqrt(m),x=Dr(p,(-d-v)/g);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)/g);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,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&&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: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=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 gn={point:function(t,e){tfn&&(fn=t);ehn&&(hn=e)},lineStart:z,lineEnd:z,polygonStart:z,polygonEnd:z};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: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,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=Pr([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*P+b*I)/_-.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*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,g=0,m=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,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=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,g=t[1]%360*Ct,m=t.length>2?t[2]%360*Ct:0,T()):[d*Pt,g*Pt,m*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,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]*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))),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)*Pt,Math.atan2(a,Math.sqrt(n*n+i*i))*Pt]}:function(){return[r*Pt,n*Pt]}).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: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 Zn(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 Xn(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,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};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*(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 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:Xi(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*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 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)||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 Zt(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:Xi(t[0],e[0])},{i:i-2,x:Xi(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:Xi(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:Xi(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:Xi(t[0],e[0])},{i:i-2,x:Xi(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 Za(t){return t.reduce(Xa,0)}function Xa(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,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 g=r(h,p)/2-h.x,m=n[0]/(p.x+r(p,h)/2+g),v=n[1]/(d.depth||1);Oa(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},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,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:Co);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 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,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 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){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,L=M-g;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":Xo,"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 Zo(t){return t.join("L")+"Z"}function Xo(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*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 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",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(_);m=[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;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)}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=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}()},{}],59:[function(t,e,r){"use strict";e.exports=t("./quad")},{"./quad":60}],60:[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],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`")}},{}],65:[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] * @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 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":484,"util/":79}],77:[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}},{}],78:[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}},{}],79:[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":78,_process:522,inherits:77}],80:[function(t,e,r){e.exports=function(t){return atob(t)}},{}],81:[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},{}],83:[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":93}],84:[function(t,e,r){"use strict";e.exports=function(t,e){return t[0].mul(e[1]).cmp(e[0].mul(t[1]))}},{}],85:[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":93}],86:[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":85,"./is-rat":87,"./lib/is-bn":91,"./lib/num-to-bn":92,"./lib/rationalize":93,"./lib/str-to-bn":94}],87:[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":91}],88:[function(t,e,r){"use strict";var n=t("bn.js");e.exports=function(t){return t.cmp(new n(0))}},{"bn.js":102}],89:[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":100,"double-bits":174}],91:[function(t,e,r){"use strict";t("bn.js");e.exports=function(t){return t&&"object"==typeof t&&Boolean(t.words)}},{"bn.js":102}],92:[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":102,"double-bits":174}],93:[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":88,"./num-to-bn":92}],94:[function(t,e,r){"use strict";var n=t("bn.js");e.exports=function(t){return new n(t)}},{"bn.js":102}],95:[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":93}],96:[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":88}],97:[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":93}],98:[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":89,"./lib/ctz":90}],99:[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)}}},{}],100:[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}},{}],101:[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],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,Z=Y>>>13,X=0|s[3],J=8191&X,K=X>>>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,Z)|0)+Math.imul(h,W)|0))<<13)|0;c=((a=a+Math.imul(h,Z)|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,Z)|0)+Math.imul(g,W)|0,a=a+Math.imul(g,Z)|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,Z)|0)+Math.imul(y,W)|0,a=a+Math.imul(y,Z)|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,Z)|0)+Math.imul(_,W)|0,a=a+Math.imul(_,Z)|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(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,Z)|0)+Math.imul(k,W)|0,a=a+Math.imul(k,Z)|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(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,Z)|0)+Math.imul(S,W)|0,a=a+Math.imul(S,Z)|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(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,Z)|0)+Math.imul(C,W)|0,a=a+Math.imul(C,Z)|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(I,W)|0,i=(i=i+Math.imul(I,Z)|0)+Math.imul(O,W)|0,a=a+Math.imul(O,Z)|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(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,Z)|0)+Math.imul(R,W)|0,a=a+Math.imul(R,Z)|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,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,Z))+Math.imul(N,W)|0,a=Math.imul(N,Z),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,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(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,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(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,gt)|0)+Math.imul(k,dt)|0))<<13)|0;c=((a=a+Math.imul(k,gt)|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,gt)|0)+Math.imul(S,dt)|0))<<13)|0;c=((a=a+Math.imul(S,gt)|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,gt)|0)+Math.imul(C,dt)|0))<<13)|0;c=((a=a+Math.imul(C,gt)|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,gt)|0)+Math.imul(O,dt)|0))<<13)|0;c=((a=a+Math.imul(O,gt)|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,gt)|0)+Math.imul(R,dt)|0))<<13)|0;c=((a=a+Math.imul(R,gt)|0)+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863;var zt=(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)+(zt>>>26)|0,zt&=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]=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 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:111}],103:[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":106,"./lib/sweep":110,"typedarray-pool":611}],105:[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)},{}],106:[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):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)}},{}],109:[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],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(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--,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,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 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=m[O+e+1],D=m[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=g*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=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):[]}},{}],113:[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: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 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":82,buffer:113,ieee754:441}],114:[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":99,"robust-in-sphere":540}],116:[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}},{}],123:[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":124,"big-rat":86,"big-rat/cmp":84,"big-rat/to-float":98,"box-intersect":104,nextafter:481,"rat-vec":526,"robust-segment-intersect":545,"union-find":612}],124:[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":85,"big-rat/mul":95,"big-rat/sign":96,"big-rat/sub":97,"rat-vec/add":525,"rat-vec/muls":527,"rat-vec/sub":528}],125:[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:122}],126:[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]}},{}],127:[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:122,"color-rgba":129,dtype:176}],128:[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":126,defined:171,"is-plain-obj":453}],129:[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:122,"color-parse":128,"color-space/hsl":130}],130:[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":131}],131:[function(t,e,r){"use strict";e.exports={name:"rgb",min:[0,0,0],max:[255,255,255],channel:["red","green","blue"],alias:["RGB"]}},{}],132:[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]}]}},{}],133:[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":542,"robust-product":543,"robust-sum":547,signum:549,"two-sum":599}],135:[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]]}},{}],139:[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":69,"incremental-convex-hull":442}],141:[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"}},{}],142:[function(t,e,r){e.exports=["xx-small","x-small","small","medium","large","x-large","xx-large","larger","smaller"]},{}],143:[function(t,e,r){e.exports=["normal","condensed","semi-condensed","extra-condensed","ultra-condensed","expanded","semi-expanded","extra-expanded","ultra-expanded"]},{}],144:[function(t,e,r){e.exports=["normal","italic","oblique"]},{}],145:[function(t,e,r){e.exports=["normal","bold","bolder","lighter","100","200","300","400","500","600","700","800","900"]},{}],146:[function(t,e,r){"use strict";e.exports={parse:t("./parse"),stringify:t("./stringify")}},{"./parse":148,"./stringify":149}],147:[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":142}],148:[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":147,"css-font-stretch-keywords":143,"css-font-style-keywords":144,"css-font-weight-keywords":145,"css-global-keywords":150,"css-system-font-keywords":151,"string-split-by":583,unquote:614}],149:[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}},{}],153:[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":155}],154:[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:613}],155:[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})}))},{}],160:[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 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: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(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,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 Z=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),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(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[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=O,t.treemapResquarify=Z,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})}))},{}],164:[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})}))},{}],166:[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,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()}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 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,Z={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()}},X=Math.sin(u/10)/Math.sin(7*u/10),J=Math.sin(h/10)*X,K=-Math.cos(h/10)*X,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,Z,$,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 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=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),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),m>1e-12&&(S.moveTo(m*a(x),m*l(x)),S.arc(0,0,m,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(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?(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=m*a(D),Z=m*l(D);if(j>1e-12){var X,J=v*a(O),K=v*l(O),Q=m*a(z),$=m*l(z);if(E1e-12?V>1e-12?(C=_(Q,$,G,Y,v,V,L),P=_(J,K,W,Z,v,V,L),S.moveTo(C.cx+C.x01,C.cy+C.y01),V1e-12&&R>1e-12?U>1e-12?(C=_(W,Z,J,K,m,-U,L),P=_(G,Y,Q,$,m,-U,L),S.lineTo(C.cx+C.x01,C.cy+C.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=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:mt,s:vt,S:q,u:H,U:G,V:Y,w:W,W:Z,x:null,X:null,y:X,Y:J,Z:K,"%":gt},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: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},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:m,U:v,V:y,w:g,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 Z(t,r){return f(e.timeMonday.count(e.timeYear(t)-1,t),r,2)}function X(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":169}],169:[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,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,Z=U.range,X=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=L,t.timeMonths=C,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=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=Z,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=X,t.utcWednesday=q,t.utcWednesdays=J,t.utcWeek=j,t.utcWeeks=W,t.utcYear=rt,t.utcYears=nt,Object.defineProperty(t,"__esModule",{value:!0})}))},{}],170:[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})}))},{}],171:[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":442,uniq:613}],173:[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:113}],175:[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":67,"normalize-svg-path":482}],176:[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}}},{}],177:[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}},{}],179:[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}},{}],191:[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":188}],192:[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":191}],193:[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":210,"./valid-value":212}],194:[function(t,e,r){"use strict";e.exports=t("./is-implemented")()?Object.assign:t("./shim")},{"./is-implemented":195,"./shim":196}],195:[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")}},{}],196:[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}},{}],216:[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}},{}],217:[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}},{}],218:[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"))},{"./":221,d:157,"es5-ext/object/set-prototype-of":207,"es5-ext/string/#/contains":213,"es6-symbol":225}],219:[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":220,"es5-ext/function/is-arguments":185,"es5-ext/object/valid-callable":210,"es5-ext/string/is-string":216}],220:[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":218,"./string":223,"./valid-iterable":224,"es5-ext/function/is-arguments":185,"es5-ext/string/is-string":216,"es6-symbol":225}],221:[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:157,"d/auto-bind":156,"es5-ext/array/#/clear":181,"es5-ext/object/assign":194,"es5-ext/object/valid-callable":210,"es5-ext/object/valid-value":212,"es6-symbol":225}],222:[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":185,"es5-ext/object/is-value":201,"es5-ext/string/is-string":216,"es6-symbol":225}],223:[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"))},{"./":221,d:157,"es5-ext/object/set-prototype-of":207,"es6-symbol":225}],224:[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":222}],225:[function(t,e,r){"use strict";e.exports=t("./is-implemented")()?t("ext/global-this").Symbol:t("./polyfill")},{"./is-implemented":226,"./polyfill":231,"ext/global-this":238}],226:[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":238}],227:[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]))}},{}],228:[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:157}],229:[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:157,"ext/global-this":238}],230:[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":232,d:157}],231:[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":228,"./lib/private/setup/standard-symbols":229,"./lib/private/setup/symbol-registry":230,"./validate-symbol":232,d:157,"ext/global-this":238}],232:[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":227}],233:[function(t,e,r){"use strict";e.exports=t("./is-implemented")()?WeakMap:t("./polyfill")},{"./is-implemented":234,"./polyfill":236}],234:[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)))))}},{}],235:[function(t,e,r){"use strict";e.exports="function"==typeof WeakMap&&"[object WeakMap]"===Object.prototype.toString.call(new WeakMap)},{}],236:[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,g=Object.defineProperty,m=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))),g(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!!m.call(o(t),this.__weakMapData__)&&(delete t[this.__weakMapData__],!0)})),get:c((function(t){if(m.call(o(t),this.__weakMapData__))return t[this.__weakMapData__]})),has:c((function(t){return m.call(o(t),this.__weakMapData__)})),set:c((function(t,e){return g(o(t),this.__weakMapData__,c("c",e)),this})),toString:c((function(){return"[object WeakMap]"}))}),g(n.prototype,h,c("c","WeakMap"))},{"./is-native-implemented":235,d:157,"es5-ext/object/is-value":201,"es5-ext/object/set-prototype-of":207,"es5-ext/object/valid-object":211,"es5-ext/object/valid-value":212,"es5-ext/string/random-uniq":217,"es6-iterator/for-of":219,"es6-iterator/get":220,"es6-symbol":225}],237:[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__}}()},{}],238:[function(t,e,r){"use strict";e.exports=t("./is-implemented")()?globalThis:t("./implementation")},{"./implementation":237,"./is-implemented":239}],239:[function(t,e,r){"use strict";e.exports=function(){return"object"==typeof globalThis&&(!!globalThis&&globalThis.Array===Array)}},{}],240:[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]]]}},{}],241:[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":454}],242:[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":243,"cubic-hermite":152}],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":149}],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 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":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":357}],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":334,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:480,"ndarray-ops":475,"typedarray-pool":611}],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:133,"gl-buffer":259,"gl-mat4/invert":293,"gl-mat4/multiply":295,"gl-shader":334,"gl-texture2d":352,"gl-vao":357,ndarray:480}],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":357}],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":334,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,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":334,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:81,"polytope-closest-point/lib/closest_point_2d.js":509}],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 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=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":55,"has-passive-events":440,"mouse-change":467,"mouse-event-offset":468,"mouse-wheel":470,"right-now":536}],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":334,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=[],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:438}],323:[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":334,"typedarray-pool":611}],324:[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}},{}],325:[function(t,e,r){"use strict";e.exports=function(t){return t||0===t?t.toString():""}},{}],326:[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":334,glslify:328}],328:[function(t,e,r){arguments[4][257][0].apply(r,arguments)},{dup:257}],329:[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 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,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,L=0;L<16;++L)v[L]=0;for(L=0;L<4;++L)v[5*L]=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 C=(m+1)%3,P=(m+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,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 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]=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 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],X=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":330,"gl-buffer":259,"gl-shader":334}],333:[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:346}],346:[function(t,e,r){arguments[4][257][0].apply(r,arguments)},{dup:257}],347:[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],L=a[1][y],C=a[2][m],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&&(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 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 Z=n.create();return n.lerp(Z,Y,W,O),Z}(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: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=g(N,O),F=n.length(R);isFinite(F)&&F>S&&(S=F),D.push(F)}C=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":345,"gl-cone3d":260,"gl-vec3":376,"gl-vec4":412}],348:[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":334,glslify:349}],349:[function(t,e,r){arguments[4][257][0].apply(r,arguments)},{dup:257}],350:[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],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,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":100,"color-normalize":127,"css-font":146,"detect-kerning":173,"es6-weak-map":233,"flatten-vertex-data":244,"font-atlas":245,"font-measure":246,"gl-util/context":353,"is-plain-obj":453,"object-assign":484,"parse-rect":489,"parse-unit":491,"pick-by-alias":495,regl:534,"to-px":594,"typedarray-pool":611}],352:[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:480,"ndarray-ops":475,"typedarray-pool":611}],353:[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":495}],354:[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":369,"./fromValues":375,"./normalize":386}],360:[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}},{}],361:[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}},{}],362:[function(t,e,r){e.exports=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}},{}],363:[function(t,e,r){e.exports=function(){var t=new Float32Array(3);return t[0]=0,t[1]=0,t[2]=0,t}},{}],364:[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}},{}],365:[function(t,e,r){e.exports=t("./distance")},{"./distance":366}],366:[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)}},{}],367:[function(t,e,r){e.exports=t("./divide")},{"./divide":368}],368:[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}},{}],369:[function(t,e,r){e.exports=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}},{}],370:[function(t,e,r){e.exports=1e-6},{}],371:[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":370}],372:[function(t,e,r){e.exports=function(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]}},{}],373:[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}},{}],374:[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}},{}],387:[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}},{}],388:[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}},{}],389:[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}},{}],390:[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}},{}],391:[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}},{}],392:[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}},{}],393:[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}},{}],394:[function(t,e,r){e.exports=function(t,e,r,n){return t[0]=e,t[1]=r,t[2]=n,t}},{}],395:[function(t,e,r){e.exports=t("./squaredDistance")},{"./squaredDistance":397}],396:[function(t,e,r){e.exports=t("./squaredLength")},{"./squaredLength":398}],397:[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}},{}],398:[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}},{}],399:[function(t,e,r){e.exports=t("./subtract")},{"./subtract":400}],400:[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}},{}],401:[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}},{}],402:[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}},{}],403:[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}},{}],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){var e=new Float32Array(4);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}},{}],406:[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}},{}],407:[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}},{}],408:[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)}},{}],409:[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}},{}],410:[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]}},{}],411:[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}},{}],412:[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":404,"./clone":405,"./copy":406,"./create":407,"./distance":408,"./divide":409,"./dot":410,"./fromValues":411,"./inverse":413,"./length":414,"./lerp":415,"./max":416,"./min":417,"./multiply":418,"./negate":419,"./normalize":420,"./random":421,"./scale":422,"./scaleAndAdd":423,"./set":424,"./squaredDistance":425,"./squaredLength":426,"./subtract":427,"./transformMat4":428,"./transformQuat":429}],413:[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}},{}],414:[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)}},{}],415:[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}},{}],416:[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}},{}],417:[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}},{}],418:[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}},{}],419:[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}},{}],420:[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}},{}],421:[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":420,"./scale":422}],422:[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}},{}],423:[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}},{}],424:[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}},{}],425:[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}},{}],426:[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}},{}],427:[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}},{}],428:[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}},{}],429:[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}},{}],430:[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":433,"./lib/builtins-300es":432,"./lib/literals":435,"./lib/literals-300es":434,"./lib/operators":436}],432:[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":433}],433:[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"]},{}],434:[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":435}],435:[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"]},{}],436:[function(t,e,r){e.exports=["<<=",">>=","++","--","<<",">>","<=",">=","==","!=","&&","||","+=","-=","*=","/=","%=","&=","^^","^=","|=","(",")","[","]",".","!","~","*","/","%","+","-","<",">","&","^","|","?",":","=",",",";","{","}"]},{}],437:[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":431}],438:[function(t,e,r){arguments[4][257][0].apply(r,arguments)},{dup:257}],439:[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":448}],440:[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":448}],441:[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}},{}],442:[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,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(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":542,"simplicial-complex":553}],443:[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}}},{}],444:[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":445}],445:[function(t,e,r){arguments[4][243][0].apply(r,arguments)},{dup:243}],446:[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)}},{}],450:[function(t,e,r){"use strict";e.exports="undefined"!=typeof navigator&&(/MSIE/.test(navigator.userAgent)||/Trident\//.test(navigator.appVersion))},{}],451:[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}},{}],452:[function(t,e,r){"use strict";e.exports=function(t){var e=typeof t;return null!==t&&("object"===e||"function"===e)}},{}],453:[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({}))}},{}],454:[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}},{}],455:[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))}},{}],456:[function(t,e,r){e.exports=function(t,e,r){return t*(1-r)+e*r}},{}],457:[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 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){!N&&I&&(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",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=Z(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=Z(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=Z(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=Z(t);return H(t)?(i.path="/styles/v1"+i.path+"/sprite"+e+r,this._makeAPIURL(i,this._customAccessToken||n)):(i.path+=""+e+r,X(i))},q.prototype.normalizeTileURL=function(t,e){if(this._isSkuTokenExpired()&&this._createSkuToken(),t&&!H(t))return t;var r=Z(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=Z(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:X(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 Lt(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=[zt,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 Pe(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}Oe.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 Oe)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&&ze(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 It(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 Ze(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function Xe(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Je(t){var e=Xe(t.r),r=Xe(t.g),n=Xe(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(Ze(3.2404542*r-1.5371385*e-.4985314*n),Ze(-.969266*r+1.8760108*e+.041556*n),Ze(.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?Zt(r.type,[Ft,Rt,Dt,zt,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(!Xt(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(!Xt(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(!Zt(r.type,[Ft,Rt,Dt,zt,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(!Xt(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(!Xt(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(!Zt(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(!Xt(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:Oe};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 Lr(t){return{result:"error",value:t}}function Cr(t){return"data-driven"===t["property-type"]||"cross-faded-data-driven"===t["property-type"]}function Pr(t){return!!t.expression&&t.expression.parameters.indexOf("zoom")>-1}function Ir(t){return!!t.expression&&t.expression.interpolated}function Or(t){return t instanceof Number?"number":t instanceof String?"string":t instanceof Boolean?"boolean":Array.isArray(t)?"array":null===t?"null":typeof t}function zr(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"!==Or(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"!==Or(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()):Or(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)):Lr(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=ze(r);if(!n&&!Cr(e))return Lr([new It("","data expressions not supported")]);var i=Re(r,["zoom"]);if(!i&&!Pr(e))return Lr([new It("","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=Ct(t.value.type),o={},s="categorical"!==a&&void 0===t.value.property,l=!s,c="array"===Or(t.value.stops)&&"array"===Or(t.value.stops[0])&&"object"===Or(t.value.stops[0][0]),u=Zr({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(Xr({key:t.key,value:r,valueSpec:t.valueSpec,style:t.style,styleSpec:t.styleSpec,arrayElementValidator:f})),"array"===Or(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&&!Ir(t.valueSpec)&&u.push(new St(t.key,t.value,"exponential functions not supported")),t.styleSpec.$version>=8&&(l&&!Cr(t.valueSpec)?u.push(new St(t.key,t.value,"property functions not supported")):s&&!Pr(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"!==Or(a))return[new St(s,a,"array expected, "+Or(a)+" found")];if(2!==a.length)return[new St(s,a,"array length 2 expected, length "+a.length+" found")];if(c){if("object"!==Or(a[0]))return[new St(s,a,"object expected, "+Or(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>Ct(a[0].zoom))return[new St(s,a[0].zoom,"stop zoom values must appear in ascending order")];Ct(a[0].zoom)!==n&&(n=Ct(a[0].zoom),r=void 0,o={}),e=e.concat(Zr({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(Pt(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=Or(t.value),l=Ct(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 Cr(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(Pt(t.value))?Qr(Lt({},t,{expressionContext:"filter",valueSpec:{value:"boolean"}})):function t(e){var r=e.value,n=e.key;if("array"!==Or(r))return[new St(n,r,"array expected, "+Or(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})),Ct(r[0])){case"<":case"<=":case">":case">=":r.length>=2&&"$type"===Ct(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=Or(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}}},Pn.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}},Pn.prototype._convertFromCellCoord=function(t){return(t-this.padding)/this.scale},Pn.prototype._convertToCellCoord=function(t){return Math.max(0,Math.min(this.d-1,Math.floor(t*this.scale)+this.padding))},Pn.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]=zn[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 In)return t;if(Array.isArray(t))return t.map(jn);if("object"==typeof t){var e=t.$name||"Object",r=zn[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 Zn(t){for(var e=0,r=t;e-1&&(Jn="error"),Xn&&Xn(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(zr(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)&&Ln(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&&Cr(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 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.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);Li.prototype.bytesPerElement=18,Dn("StructArrayLayout8ui2ub18",Li);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.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);Ci.prototype.bytesPerElement=24,Dn("StructArrayLayout4i4ui4i24",Ci);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.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);Pi.prototype.bytesPerElement=12,Dn("StructArrayLayout3f12",Pi);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.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);Ii.prototype.bytesPerElement=4,Dn("StructArrayLayout1ul4",Ii);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),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);Oi.prototype.bytesPerElement=20,Dn("StructArrayLayout6i1ul2ui20",Oi);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)},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);zi.prototype.bytesPerElement=12,Dn("StructArrayLayout2i2i2i12",zi);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 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]=g,this.uint16[L+15]=m,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}(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 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.get=function(t){return new Wi(this,t)},e}(Oi);Dn("CollisionBoxArray",Zi);var Xi=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);Xi.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 Xi(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-nza.max||o.yza.max)&&(_("Geometry exceeds allowed extent, reduce your vector tile buffer size"),o.x=l(o.x,za.min,za.max),o.y=l(o.y,za.min,za.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 Pa(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 Za(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 Xa(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 Xa("circle-radius",this,e)+Xa("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===Zo(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=zo(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=Lo(Mo(t),e,r),e,r,n,i,a,2):2===o&&Co(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=zo(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 Lo(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 Co(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 Po(t,e){return t.x-e.x}function Io(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&&Oo(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 Oo(t,e){return Bo(t.prev,t,e.prev)<0&&Bo(e.next,t,t.next)<0}function zo(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 Zo(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 Pa(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 Pa(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}))||I.every((function(t){return t.y<0}))||I.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 L=_*g.add(m).mag()/g.sub(m).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,g,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,m,0,0,h),u=j}}}}},Ls.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))},Ls.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},Ls.prototype.updateScaledDistance=function(){this.scaledDistance=this.totalDistance>0?(this.clipStart+(this.clipEnd-this.clipStart)*this.distance/this.totalDistance)*(Es-1):this.distance},Ls.prototype.updateDistance=function(t,e){this.distance+=t.dist(e),this.updateScaledDistance()},Dn("LineBucket",Ls,{omit:["layers","patternFeatures"]});var Cs=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"])}),Ps={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:Cs},Is=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))(Ps.paint.properties["line-width"].specification);Is.useIntegerZoom=!0;var Os=function(t){function e(e){t.call(this,e,Ps)}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"]=Is.possiblyEvaluate(this._transitioningPaint._values["line-width"].value,e)},e.prototype.createBucket=function(t){return new Ls(t)},e.prototype.queryRadius=function(t){var e=t,r=zs(Xa("line-width",this,e),Xa("line-gap-width",this,e)),n=Xa("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*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 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 Zs(t,e,r){return r?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}function Xs(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 Zs(t,n,e);if(n|=(127&(i=a[r.pos++]))<<3,i<128)return Zs(t,n,e);if(n|=(127&(i=a[r.pos++]))<<10,i<128)return Zs(t,n,e);if(n|=(127&(i=a[r.pos++]))<<17,i<128)return Zs(t,n,e);if(n|=(127&(i=a[r.pos++]))<<24,i<128)return Zs(t,n,e);if(n|=(1&(i=a[r.pos++]))<<31,i<128)return Zs(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&&Xs(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&&Xs(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[L];if(j&&j.rect)I=j.rect,P=j.metrics;else{var U=e[S.fontStack],V=U&&U[L];if(!V)continue;P=V.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)}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,Z=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 Ll(g,m,h.angleTo(f),u);return v._round(),!o||zl(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 Ll(_,w,x,g);T._round(),i&&!zl(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),L=Gl(c.fixed-M,A,c.stretch,m),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=a.stretch+a.fixed;return{tl:C,tr:P,bl:O,br:I,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:z,pixelOffsetBR:D,minFontScaleX:k/s/u,minFontScaleY:A/s/f,isSDF:r}};if(n&&(o.stretchX||o.stretchY))for(var L=ql(h,v,g),C=ql(p,y,m),P=0;P0&&(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=Zl),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 Zl(t,e){return te?1:0}function Xl(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 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},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:zt,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})}}},Lc.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)},Lc.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)}},Lc.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)}},Lc.prototype.remove=function(){this.invoker.remove(),this.target.removeEventListener("message",this.receive,!1)};var Pc=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]))};Pc.prototype.setNorthEast=function(t){return this._ne=t instanceof Ic?new Ic(t.lng,t.lat):Ic.convert(t),this},Pc.prototype.setSouthWest=function(t){return this._sw=t instanceof Ic?new Ic(t.lng,t.lat):Ic.convert(t),this},Pc.prototype.extend=function(t){var e,r,n=this._sw,i=this._ne;if(t instanceof Ic)e=t,r=t;else{if(!(t instanceof Pc))return Array.isArray(t)?4===t.length||t.every(Array.isArray)?this.extend(Pc.convert(t)):this.extend(Ic.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 Ic(e.lng,e.lat),this._ne=new Ic(r.lng,r.lat)),this},Pc.prototype.getCenter=function(){return new Ic((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)},Pc.prototype.getSouthWest=function(){return this._sw},Pc.prototype.getNorthEast=function(){return this._ne},Pc.prototype.getNorthWest=function(){return new Ic(this.getWest(),this.getNorth())},Pc.prototype.getSouthEast=function(){return new Ic(this.getEast(),this.getSouth())},Pc.prototype.getWest=function(){return this._sw.lng},Pc.prototype.getSouth=function(){return this._sw.lat},Pc.prototype.getEast=function(){return this._ne.lng},Pc.prototype.getNorth=function(){return this._ne.lat},Pc.prototype.toArray=function(){return[this._sw.toArray(),this._ne.toArray()]},Pc.prototype.toString=function(){return"LngLatBounds("+this._sw.toString()+", "+this._ne.toString()+")"},Pc.prototype.isEmpty=function(){return!(this._sw&&this._ne)},Pc.prototype.contains=function(t){var e=Ic.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},Pc.convert=function(t){return!t||t instanceof Pc?t:new Pc(t)};var Ic=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")};Ic.prototype.wrap=function(){return new Ic(c(this.lng,-180,180),this.lat)},Ic.prototype.toArray=function(){return[this.lng,this.lat]},Ic.prototype.toString=function(){return"LngLat("+this.lng+", "+this.lat+")"},Ic.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))},Ic.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 Pc(new Ic(this.lng-r,this.lat-e),new Ic(this.lng+r,this.lat+e))},Ic.convert=function(t){if(t instanceof Ic)return t;if(Array.isArray(t)&&(2===t.length||3===t.length))return new Ic(Number(t[0]),Number(t[1]));if(!Array.isArray(t)&&"object"==typeof t&&null!==t)return new Ic(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 Oc=2*Math.PI*6371008.8;function zc(t){return Oc*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/zc(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=Ic.convert(t);return new Nc(Dc(r.lng),Rc(r.lat),Fc(e,r.lat))},Nc.prototype.toLngLat=function(){return new Ic(360*this.x-180,Bc(this.y))},Nc.prototype.toAltitude=function(){return this.z*zc(Bc(this.y))},Nc.prototype.meterInMercatorCoordinateUnits=function(){return 1/Oc*(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=Cc(256*(r=this.x),256*(n=Math.pow(2,i)-n-1),i),o=Cc(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])}},Xc.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},Xc.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,L,C,P=t.addToLineVertexArray(e,r),I=0,O=0,z=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;L=new Yl(l,e,c,u,f,n.vertical,h,p,d,V),o&&(C=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),I=4*G.length;var W=t.iconSizeData,Z=null;"source"===W.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"===W.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,G,Z,x,y,b,!1,e,P.lineStartIndex,P.lineLength,-1,k),R=t.icon.placedSymbolArray.length-1,Y&&(O=4*Y.length,t.addSymbols(t.icon,Y,Z,x,y,b,gl.vertical,e,P.lineStartIndex,P.lineLength,-1,k),F=t.icon.placedSymbolArray.length-1)}for(var X in n.horizontal){var J=n.horizontal[X];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(z+=ec(t,e,J,a,s,d,b,g,P,n.vertical?gl.horizontal:gl.horizontalOnly,Q?Object.keys(n.horizontal):[X],B,R,w,k),Q)break}n.vertical&&(D+=ec(t,e,n.vertical,a,s,d,b,g,P,gl.vertical,["vertical"],B,F,w,k));var $=S?S.boxStartIndex:t.collisionBoxArray.length,tt=S?S.boxEndIndex:t.collisionBoxArray.length,et=L?L.boxStartIndex:t.collisionBoxArray.length,rt=L?L.boxEndIndex:t.collisionBoxArray.length,nt=E?E.boxStartIndex:t.collisionBoxArray.length,it=E?E.boxEndIndex:t.collisionBoxArray.length,at=C?C.boxStartIndex:t.collisionBoxArray.length,ot=C?C.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(L,st),st=lt(E,st);var ct=(st=lt(C,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,z,D,I,O,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 P=0,I=jl(e.geometry,0,0,8192,8192);P1){var j=Bl(N,k,r.vertical||g,n,24,y);j&&C(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 L=t.mapObject(m.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(m.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(m.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 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})}}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={}};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(C(e,r,i,n),r[2*a+o]>h&&C(e,r,i,a);ph;)d--}r[2*i+o]===h?C(e,r,i,d):C(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++)I(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];I(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 Z(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)X(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),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)).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)).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,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(It(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 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(Yi.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 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?C.point:oe(h,L,S,1,a),I=ie(e.writingMode,S,P,d);if(I)return I}var O=se(m*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};g=[O]}for(var z=0,D=g;z0?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 L=g+Math.atan2(v.y-y.y,v.x-y.x);return w.push(E),{point:E,angle:L,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;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},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,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,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&&!(L&&L.box&&L.box.length)&&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,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(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");P=i.collisionIndex.placeCollisionCircles(y,G,o.lineVertexArray,o.glyphOffsetArray,Y,l,c,u,n,_,g.predicate,e.collisionCircleDiameter,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?be(t,E.x,E.y,b,_,i.transform.angle):t;return i.collisionIndex.placeCollisionBox(e,x,f,l,g.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 X=m||0===e.numHorizontalGlyphVertices&&0===e.numVerticalGlyphVertices,J=v||0===e.numIconVertices;if(X||J?J?X||(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,C&&C.box&&z?z:O,g.ID),A&&I&&i.collisionIndex.insertCollisionBox(I.box,s.get("icon-ignore-placement"),o.bucketInstanceId,D,g.ID),P&&(T&&i.collisionIndex.insertCollisionCircles(P.circles,s.get("text-ignore-placement"),o.bucketInstanceId,O,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 L=S[E];A(o.symbolInstances.get(L),o.collisionArrays[L])}else for(var C=e.symbolInstanceStart;C=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 _=Ce(m.text);d(e.text,s,x?Pe:_),d(e.text,l,b?Pe:_);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=Ce(m.icon),A=!(h&&a.verticalPlacedIconSymbolIndex&&x);a.placedIconSymbolIndex>=0&&(d(e.icon,a.numIconVertices,A?M:Pe),e.icon.placedSymbolArray.get(a.placedIconSymbolIndex).hidden=m.icon.isHidden()),a.verticalPlacedIconSymbolIndex>=0&&(d(e.icon,a.numVerticalIconVertices,A?Pe: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 L=!0;if(c){var C=i.variableOffsets[g];C?(E=xe(C.anchor,C.width,C.height,C.textOffset,C.textBoxScale),u&&E._rotate(f?i.transform.angle:-i.transform.angle)):L=!1}S.textBox&&we(e.textCollisionBox.collisionVertexArray,m.text.placed,!L||x,E.x,E.y),S.verticalTextBox&&we(e.textCollisionBox.collisionVertexArray,m.text.placed,!L||b,E.x,E.y)}var P=Boolean(!b&&S.verticalIconBox);S.iconBox&&we(e.iconCollisionBox.collisionVertexArray,m.icon.placed,P,h?E.x:0,h?E.y:0),S.verticalIconBox&&we(e.iconCollisionBox.collisionVertexArray,m.icon.placed,!P,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),Le=Math.pow(2,1);function Ce(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*Le+e}var Pe=0,Ie=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=[]};Ie.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 Ie(s)),this._inProgressLayer.continuePlacement(n[s.source],this.placement,this._showCollisionBoxes,s,o))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0},Oe.prototype.commit=function(t){return this.placement.commit(t),this.placement};var ze=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 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(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:Ze,clippingMask:Xe,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}},Lr=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}},Cr=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]}},Pr=function(t,e,r){return void 0===r&&(r=1),{u_matrix:t,u_color:e,u_overlay:0,u_overlay_scale:r}},Ir=function(t){return{u_matrix:t}},Or=function(t,e,r,n){return{u_matrix:t,u_extrude_scale:he(e,1,r),u_intensity:n}},zr=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(zr(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(zr(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})},Zr={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 Xr(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,Lr(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,Pr(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,Pr(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,Zr[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),Ln=t.extend({deceleration:1e3,maxSpeed:90},Mn),Cn=function(t){this._map=t,this.clear()};function Pn(t,e){(!t.duration||t.duration0&&r-e[0].time>160;)e.shift()},Cn.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 On(t.type,this._map,t))},Rn.prototype.dblclick=function(t){return this._firePreventable(new On(t.type,this._map,t))},Rn.prototype.mouseover=function(t){this._map.fire(new On(t.type,this._map,t))},Rn.prototype.mouseout=function(t){this._map.fire(new On(t.type,this._map,t))},Rn.prototype.touchstart=function(t){return this._firePreventable(new zn(t.type,this._map,t))},Rn.prototype.touchmove=function(t){this._map.fire(new zn(t.type,this._map,t))},Rn.prototype.touchend=function(t){this._map.fire(new zn(t.type,this._map,t))},Rn.prototype.touchcancel=function(t){this._map.fire(new zn(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 On(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 On("contextmenu",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)},Fn.prototype.contextmenu=function(t){this._delayContextMenu?this._contextMenuEvent=t:this._map.fire(new On(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}(Zn),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 Cn(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 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),m=a.centerPoint.add(g));var v=1===e?y:a.unproject(x.add(b.mult(O(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 On(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 On(t,i,n.originalEvent)))},mouseout:function(e){o&&(o=!1,r.call(i,new On(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}Li.prototype.down=function(t,e){this.mouseRotate.mousedown(t,e),this.mousePitch&&this.mousePitch.mousedown(t,e),r.disableDrag()},Li.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)}},Li.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()},Li.prototype.offTemp=function(){r.enableDrag(),r.removeEventListener(t.window,"mousemove",this.mousemove),r.removeEventListener(t.window,"mouseup",this.mouseup)},Li.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)},Li.prototype.mousemove=function(t){this.move(t,r.mousePos(this.element,t))},Li.prototype.mouseup=function(t){this.mouseRotate.mouseupWindow(t),this.mousePitch&&this.mousePitch.mouseupWindow(t),this.offTemp()},Li.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))},Li.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))},Li.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 zi(this._dotElement),this._circleElement=r.create("div","mapboxgl-user-location-accuracy-circle"),this._accuracyCircleMarker=new zi({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=Ci(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,Pi[a]+" translate("+u.x+"px,"+u.y+"px)"),Ii(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:zi,Style:qe,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 Yi})),r}))},{}],458:[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":460,"gl-mat4/clone":278,"gl-mat4/create":280,"gl-mat4/determinant":281,"gl-mat4/invert":293,"gl-mat4/transpose":306,"gl-vec3/cross":364,"gl-vec3/dot":369,"gl-vec3/length":379,"gl-vec3/normalize":386}],460:[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}},{}],461:[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":380,"mat4-decompose":459,"mat4-recompose":462,"quat-slerp":523}],462:[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}],463:[function(t,e,r){"use strict";e.exports=Math.log2||function(t){return Math.log(t)*Math.LOG2E}},{}],464:[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":542}],467:[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":469}],468:[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}},{}],469:[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(g(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(),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":153}],476:[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":477,ndarray:480}],477:[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":153}],478:[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":611}],479:[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":478}],480:[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":174}],482:[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 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}},{}],483:[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}},{}],484:[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}},{}],486:[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],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,_=g;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":485,"filtered-vector":242,"gl-mat4/fromQuat":282,"gl-mat4/invert":293,"gl-mat4/lookAt":294}],487:[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},{}],489:[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":495}],490:[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":446,"typedarray-pool":611}],495:[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":134}],497:[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;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}},{}],504:[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;lo.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":510}],514:[function(t,e,r){"use strict";var n=t("../common").readUInt16BE;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=t[e++];255===i;)i=t[e++];if(208<=i&&i<=217||1===i)r=0;else{if(!(192<=i&&i<=254))return;if(t.length-e<2)return;r=n(t,e)-2,e+=2}if(217===i||218===i)return;if(r>=5&&192<=i&&i<=207&&196!==i&&200!==i&&204!==i){if(t.length-e0}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"}}}(t);case 88:return function(t){if(!(t.length<30))return{width:1+(t[26]<<16|t[25]<<8|t[24]),height:1+(t[29]<<16|t[28]<<8|t[27]),type:"webp",mime:"image/webp",wUnits:"px",hUnits:"px"}}(t)}}},{"../common":510}],520:[function(t,e,r){"use strict";e.exports={bmp:t("./parse_sync/bmp"),gif:t("./parse_sync/gif"),jpeg:t("./parse_sync/jpeg"),ico:t("./parse_sync/ico"),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/bmp":511,"./parse_sync/gif":512,"./parse_sync/ico":513,"./parse_sync/jpeg":514,"./parse_sync/png":515,"./parse_sync/psd":516,"./parse_sync/svg":517,"./parse_sync/tiff":518,"./parse_sync/webp":519}],521:[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":119,"compare-cell":135,"compare-oriented-cell":136}],530:[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}},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"]),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)||Z(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)||Z(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(){X(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 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)g[s]=L();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(I(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(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(g[s]);return f}var h=new z(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);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 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(){X(k).forEach(m)},restore:function(){x.cur=null,x.next=null,x.dirty=!0,X(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);X(c).forEach(e),c={},X(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){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);m(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 X).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(){X(u).forEach(o)},restore:function(){X(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)}m.flush(),w&&w.update()}}function r(){!tt&&0=J.length&&n()}}}}function u(){var t=Z.viewport,e=Z.scissor_box;t[0]=t[1]=e[0]=e[1]=0,P.viewportWidth=P.framebufferWidth=P.drawingBufferWidth=t[2]=e[2]=m.drawingBufferWidth,P.viewportHeight=P.framebufferHeight=P.drawingBufferHeight=t[3]=e[3]=m.drawingBufferHeight}function f(){P.tick+=1,P.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 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)}},{}],536:[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:{})},{}],537:[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":538}],542:[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}},{}],550:[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":103,"reduce-simplicial-complex":529}],551:[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&&C.push([n,i])}})),i.unique(i.normalize(C)),{positions:E,edges:C}};var n=t("robust-orientation"),i=t("simplicial-complex")},{"robust-orientation":542,"simplicial-complex":555}],558:[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":558,"binary-search-bounds":559,"functional-red-black-tree":247,"robust-orientation":542}],561:[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":539,"robust-sum":547}],562:[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)}()},{}],563:[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:112,inherits:443,"readable-stream/lib/_stream_duplex.js":565,"readable-stream/lib/_stream_passthrough.js":566,"readable-stream/lib/_stream_readable.js":567,"readable-stream/lib/_stream_transform.js":568,"readable-stream/lib/_stream_writable.js":569,"readable-stream/lib/internal/streams/end-of-stream.js":573,"readable-stream/lib/internal/streams/pipeline.js":575}],564:[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},{}],565:[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:m;function s(e,r){c("onunpipe"),e===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,c("cleanup"),t.removeListener("close",d),t.removeListener("finish",g),t.removeListener("drain",u),t.removeListener("error",p),t.removeListener("unpipe",s),n.removeListener("end",l),n.removeListener("end",m),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),m(),t.removeListener("error",p),0===a(t,"error")&&w(t,e)}function d(){t.removeListener("finish",g),m()}function g(){c("onfinish"),t.removeListener("close",d),m()}function m(){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",g),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 g("_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":564,"./_stream_duplex":565,"./internal/streams/destroy":572,"./internal/streams/state":576,"./internal/streams/stream":577,_process:522,buffer:113,inherits:443,"util-deprecate":616}],570:[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 g(t){r.nextTick(d,t)}var m=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),m);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",g.bind(null,r)),r}}).call(this)}).call(this,t("_process"))},{"./end-of-stream":573,_process:522}],571:[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":564,"./end-of-stream":573}],576:[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":564}],577:[function(t,e,r){e.exports=t("events").EventEmitter},{events:112}],578:[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":548}],579:[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:522,assert:76,buffer:113,debug:580}],580:[function(t,e,r){(function(n){(function(){function i(){var t;try{t=r.storage.debug}catch(t){}return!t&&"undefined"!=typeof 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&&"undefined"!=typeof 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":581,_process:522}],581:[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))}},{}],583:[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],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":67,assert:76,"is-svg-path":455,"normalize-svg-path":588,"parse-svg-path":490}],588:[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":586}],589:[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":101,"draw-svg-path":175,"is-svg-path":455,"parse-svg-path":490,"svg-path-bounds":587}],590:[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;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":522,timers:591}],592:[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,g=e.b,i={r:255*C(p,255),g:255*C(d,255),b:255*C(g,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,g;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(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]: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)}"undefined"!=typeof e&&e.exports?e.exports=c:window.tinycolor=c}(Math)},{}],593:[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 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),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],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,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),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":602}],604:[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":610}],605:[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":601,"./is":606}],606:[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":600}],607:[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":604}],608:[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":604,"../value/is":610}],609:[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":601,"./is":610}],610:[function(t,e,r){"use strict";e.exports=function(t){return null!=t}},{}],611:[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":100,buffer:113,dup:177}],612:[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."))}}()},{}],620:[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":621}],621:[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}},{}],622:[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":620}],623:[function(t,e,r){var n=t("get-canvas-context");e.exports=function(t){return n("webgl",t)}},{"get-canvas-context":249}],624:[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":638,"object-assign":484}],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:"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":638,"object-assign":484}],628:[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":638,"object-assign":484}],629:[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":638,"object-assign":484}],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,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":638,"object-assign":484}],631:[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":638,"object-assign":484}],632:[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":638,"object-assign":484}],633:[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":638,"object-assign":484}],635:[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":638,"object-assign":484}],636:[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":638,"object-assign":484}],637:[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":638,"object-assign":484}],638:[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":484}],639:[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":638,"object-assign":484}],640:[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":153}],641:[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":640}],642:[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}]},{}],643:[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":763,"../../plot_api/plot_template":834,"../../plots/cartesian/constants":851,"../../plots/font_attributes":873,"./arrow_paths":642}],644:[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":795,"../../plots/cartesian/axes":845,"./draw":649}],645:[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,Z=["x","y"],X=0;X1)&&(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?L:null,t);else{var wt=N+_t-g.top,Tt=N+bt-g.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,g=C.x.text+r,b=C.y.text+n,_=o.rotationXYMatrix(P,g,b),w=o.apply2DTransform(_),M=o.apply2DTransform2(_),L=+j.attr("width"),z=+j.attr("height"),D=g-.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(m(Y,H,e),k.annotationPosition&&Y.node().parentNode&&!a){var W=l,Z=f;if(e.standoff){var X=Math.sqrt(Math.pow(l-h,2)+Math.pow(f-p,2));W+=e.standoff*(h-l)/X,Z+=e.standoff*(p-f)/X}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-Z),transform:s(W,Z)}).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*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 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":649}],656:[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(X)/Math.LN10));W*=J*c.roundUp(X/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(),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(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={},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-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":762,"../../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":908,"../../registry":922,"../color":660,"../colorscale/helpers":671,"../dragelement":679,"../drawing":682,"../titles":755,"./constants":662,"@plotly/d3":58,tinycolor2:592}],665:[function(t,e,r){"use strict";var n=t("../../lib");e.exports=function(t){return n.isPlainObject(t.colorbar)}},{"../../lib":795}],666:[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":661,"./defaults":663,"./draw":664,"./has_colorbar":665}],667:[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":812,"../colorbar/attributes":661,"./scales.js":675}],668:[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":795,"./helpers":671,"fast-isnumeric":241}],669:[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}},{}],677:[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}],678:[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)}},{}],679:[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":795,"../../plots/cartesian/constants":851,"./align":676,"./cursor":677,"./unhover":680,"has-hover":439,"has-passive-events":440,"mouse-event-offset":468}],680:[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":694}],681:[function(t,e,r){"use strict";r.dash={valType:"string",values:["solid","dot","dash","longdash","dashdot","longdashdot"],dflt:"solid",editType:"style"}},{}],682:[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,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 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]=m),I++,c.extendFlat({},m)},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":696,"../../constants/alignment":762,"../../constants/interactions":769,"../../constants/xmlns_namespaces":771,"../../lib":795,"../../lib/svg_text_utils":820,"../../registry":922,"../../traces/scatter/make_bubble_size_func":1215,"../../traces/scatter/subtypes":1223,"../color":660,"../colorscale":672,"./symbol_defs":683,"@plotly/d3":58,"fast-isnumeric":241,tinycolor2:592}],683:[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":58}],684:[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"}}}},{}],685:[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":1223,"../drawing":682,"@plotly/d3":58,"fast-isnumeric":241}],690:[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":660,"@plotly/d3":58}],691:[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":701}],692:[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,L="xval"in e?v.flat(s,e.xval):v.p2c(b,$),P="yval"in e?v.flat(s,e.yval):v.p2c(_,tt),!i(L[0])||!i(P[0]))return o.warn("Fx.hover failed",e,t),d.unhoverRaw(t,e)}var it=1/0;function at(t,r){for(F=0;FY&&(X.splice(0,Y),it=X[0].distance),g&&0!==Z&&0===X.length){G.distance=Z,G.index=!1;var f=N._module.hoverPoints(G,q,H,"closest",l._hoverlayer);if(f&&(f=f.filter((function(t){return t.spikeDistance<=Z}))),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=st(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=st(x),(!K.hLinePoint||K.hLinePoint.spikeDistance>h.spikeDistance)&&(K.hLinePoint=h))}}}}}function ot(t,e){for(var r,n=null,i=1/0,a=0;a1||X.length>1)||"closest"===S&&Q&&X.length>1,St=p.combine(l.plot_bgcolor||p.background,l.paper_bgcolor),Et={hovermode:S,rotateLabels:At,bgColor:St,container:l._hoverlayer,outerContainer:l._paperdiv,commonLabelOpts:l.hoverlabel,hoverdistance:l.hoverdistance},Lt=C(X,Et,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}}}(Lt,At?"xa":"ya",l),I(Lt,At,l._invScaleX,l._invScaleY));if(e.target&&e.target.tagName){var Ct=m.getComponentMethod("annotations","hasClickToShow")(t,wt);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,_t))return;_t&&t.emit("plotly_unhover",{event:e,points:_t});t.emit("plotly_hover",{event:e,points:t._hoverdata,xaxes:b,yaxes:_,xvals:L,yvals:P})}(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=C(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 C(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,L=k.ya,C="y"===a.charAt(0)?"yLabel":"xLabel",I=k[C],O=(String(I)||"").split(" ")[0],z=g.node().getBoundingClientRect(),D=z.top,R=z.width,F=z.height,B=void 0!==I&&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 C,P,O;"right"===L.side?(C="start",P=1,O="",y=M._offset+M._length):(C="end",P=-1,O="-",y=M._offset),x=L._offset+(k.y0+k.y1)/2,c.attr("text-anchor",C),l.attr("d","M0,0L"+O+A+","+A+"V"+(S+b.height/2)+"h"+O+(2*S+b.width)+"V-"+(S+b.height/2)+"H"+O+A+"V-"+A+"Z");var z,R=b.height/2,F=D-b.top-R,B="clip"+i._uid+"commonlabel"+L._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=L._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=P(t,B,a,i,I,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,m).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:g,stroke:v});var O,z,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,L),t.anchor="start",t.txwidth=N.width,t.tx2width=E,t.offset=0,c)t.pos=j,O=U+q/2+H<=F,z=U-q/2-H>=0,"top"!==t.idealAlign&&O||!z?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<=R,z=j-V/2-H>=0,"left"!==t.idealAlign&&O||!z)if(O)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 P(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(L,(function(e,r){return s=R(r,t.nameLength),""}))),[l,s]}function I(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 O(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 z(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,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=g.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 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":795,"../../lib/events":784,"../../lib/override_cursor":806,"../../lib/svg_text_utils":820,"../../plots/cartesian/axes":845,"../../registry":922,"../color":660,"../dragelement":679,"../drawing":682,"../legend/defaults":712,"../legend/draw":713,"./constants":694,"./helpers":696,"@plotly/d3":58,"fast-isnumeric":241,tinycolor2:592}],698:[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":660,"./helpers":696}],699:[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":795,"../../plot_api/plot_template":834,"../../plots/layout_attributes":899,"../../registry":922,"./attributes":710,"./helpers":716}],713:[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"),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 L=i.ensureSingle(g,"g","scrollbox"),C=e.title;if(e._titleWidth=0,e._titleHeight=0,C.text){var P=i.ensureSingle(L,"text","legendtitletext");P.attr("text-anchor","start").call(c.font,C.font).text(C.text),M(P,L,t,e)}else L.selectAll(".legendtitletext").remove();var I=i.ensureSingle(g,"rect","scrollbar",(function(t){t.attr(p.scrollBarEnterAttrs).call(u.fill,p.scrollBarColor)})),O=L.selectAll("g.groups").data(h);O.enter().append("g").attr("class","groups"),O.exit().remove();var z=O.selectAll("g.traces").data(i.identity);z.enter().append("g").attr("class","traces"),z.exit().remove(),z.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 L=0,C=0;r.each((function(t){var e=t[0].width+d;L=Math.max(L,e),C+=e})),x=null;var P=0;if(l){var I=0,O=0,z=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)})),I=Math.max(I,e);var r=t+h;r+u+O>i._maxWidth&&(P=Math.max(P,O),O=0,z+=I+i.tracegroupgap,I=e),c.setTranslate(this,O,z),O+=r})),i._width=Math.max(P,O)+u,i._height=z+I+g}else{var D=r.size(),R=C+f+(D-1)*h=i._maxWidth&&(P=Math.max(P,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(P,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,O,z,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,C=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!==C&&i.log("Constrain legend.y to make legend fit inside graph")}if(e._main&&c.setTranslate(g,w,k),I.on(".drag",null),g.on("wheel",null),!e._main||e._height<=e._maxHeight||t._context.staticPlot){var P=e._effHeight;e._main||(P=e._height),E.attr({width:e._width-b,height:P-b,x:b/2,y:b/2}),c.setTranslate(L,0,0),T.select("rect").attr({width:e._width-2*b,height:P-2*b,x:b,y:b}),c.setClipUrl(L,f,t),c.setRect(I,0,0,0,0),delete e._scrollY}else{var O,z,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(L,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;O="touchstart"===t.type?t.changedTouches[0].clientY:t.clientY,D=j})).on("drag",(function(){var t=n.event.sourceEvent;2===t.buttons||t.ctrlKey||(z="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,O,z),R,N))}));I.call(U);var V=n.behavior.drag().on("dragstart",(function(){var t=n.event.sourceEvent;"touchstart"===t.type&&(O=t.changedTouches[0].clientY,D=j)})).on("drag",(function(){var t=n.event.sourceEvent;"touchmove"===t.type&&(z=t.changedTouches[0].clientY,q(j=function(t,e,r){var n=(e-r)/N+t;return i.constrain(n,0,B)}(D,O,z),R,N))}));L.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(L,0,-r),c.setRect(I,e._width,p.scrollBarMargin+r*i,p.scrollBarWidth,n),T.select("rect").attr("y",b+r)}}],t)}}},{"../../constants/alignment":762,"../../lib":795,"../../lib/events":784,"../../lib/svg_text_utils":820,"../../plots/plots":908,"../../registry":922,"../color":660,"../dragelement":679,"../drawing":682,"./constants":711,"./get_legend_data":714,"./handle_click":715,"./helpers":716,"./style":718,"@plotly/d3":58}],714:[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 L=b(void 0,l.line,10,5);i=a.minExtend(l,{line:{width:L}}),r=[a.minExtend(o,{trace:i})]}var C=S.select(".legendlines").selectAll("path").data(h||g?[r]:[]);C.enter().append("path").classed("js-line",!0),C.exit().remove(),C.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":795,"../../registry":922,"../../traces/pie/helpers":1177,"../../traces/pie/style_one":1183,"../../traces/scatter/subtypes":1223,"../color":660,"../colorscale/helpers":671,"../drawing":682,"./constants":711,"@plotly/d3":58}],719:[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"],L=["resetViews"]):d?(S=["zoomInGeo","zoomOutGeo"],E=["hoverClosestGeo"],L=["resetGeo"]):p?(E=["hoverClosest3d"],L=["resetCameraDefault3d","resetCameraLastSave3d"]):x?(S=["zoomInMapbox","zoomOutMapbox"],E=["toggleHover"],L=["resetViewMapbox"]):v?E=["hoverClosestGl2d"]:g?E=["hoverClosestPie"]:_?(E=["hoverClosestCartesian","hoverCompareCartesian"],L=["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,L="y1"):(k=y,E="y1",M=f,L="y0");X(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),Z.moveFn="move"===O?J:K,Z.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 X(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=Z.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=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(I,o,l))}else z?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;z?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(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=m+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"),Z=b?k+i:k,X=j?M+i:M,J=V?A+n:A,K=W?S+n:S;D&&(b&&(Z=k-i),j&&(X=M-i)),(!D&&X-Z>10||D&&Z-X>10)&&(B(E,r[E]=D?Z:Y(Z)),B(L,r[L]=D?X:Y(X))),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]: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),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(Z),W.node().onmousemove=X}(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,m(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),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 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,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),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":762,"../../constants/interactions":769,"../../lib":795,"../../lib/svg_text_utils":820,"../../plots/plots":908,"../../registry":922,"../color":660,"../drawing":682,"@plotly/d3":58,"fast-isnumeric":241}],756:[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":907,"../color/attributes":659}],757:[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"}}},{}],758:[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":756,"./constants":757}],759:[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 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 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+g,z=m;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: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||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":660,"../drawing":682,"@plotly/d3":58}],762:[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"}}},{}],763:[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(" ")}}},{}],764:[function(t,e,r){"use strict";e.exports={INCREASING:{COLOR:"#3D9970",SYMBOL:"\u25b2"},DECREASING:{COLOR:"#FF4136",SYMBOL:"\u25bc"}}},{}],765:[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"}},{}],766:[function(t,e,r){"use strict";e.exports={COMPARISON_OPS:["=","!=","<",">=",">","<="],COMPARISON_OPS2:["=","<",">=",">","<="],INTERVAL_OPS:["[]","()","[)","(]","][",")(","](",")["],SET_OPS:["{}","}{"],CONSTRAINT_REDUCTION:{"=":"=","<":"<","<=":"<",">":">",">=":">","[]":"[]","()":"[]","[)":"[]","(]":"[]","][":"][",")(":"][","](":"][",")[":"]["}}},{}],767:[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]}},{}],768:[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"}},{}],769:[function(t,e,r){"use strict";e.exports={SHOW_PLACEHOLDER:100,HIDE_PLACEHOLDER:1e3,DESELECTDIM:.2}},{}],770:[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"}},{}],771:[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}},{}],772:[function(t,e,r){"use strict";r.version=t("./version").version,t("native-promise-only"),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"}}},{}],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,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":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=m.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()-g)*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)+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 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)+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+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)&&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":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,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}},{}],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=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 C=/^\w*$/;c.templateString=function(t,e){var r={};return t.replace(c.TEMPLATE_STRING_REGEX,(function(t,n){var i;return C.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 z.apply(P,arguments)};var I={max:10,count:0,name:"texttemplate"};c.texttemplateString=function(){return z.apply(I,arguments)};var O=/^[:|\|]/;function z(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 D=2e9;c.seedPseudoRandom=function(){D=2e9},c.pseudoRandom=function(){var t=D;return D=(69069*D+1)%4294967296,Math.abs(D-t)<429496729?c.pseudoRandom():D/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":770,"./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":58,"d3-time-format":168,"fast-isnumeric":241}],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":58}],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,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":770,"./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:534}],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":241,"is-mobile":451}],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":241}],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":127}],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"],g=-(r||l(t,"height"))/4;"y"===P[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"===P[0]?s.attr({x:t.attr("x"),y:g-p/2}):"a"===P[0]&&0!==P.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)}))}))):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(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 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"},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 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(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)}},{}],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":241}],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":595}],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,g=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!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(),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),g)return!1;if(h(m,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("undefined"==typeof e)throw new Error("currentIndices is a required argument.");if(Array.isArray(e)||(e=[e]),P(t,e,"currentIndices"),"undefined"==typeof r||Array.isArray(r)||(r=[r]),"undefined"!=typeof r&&P(t,r,"newIndices"),"undefined"!=typeof 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("undefined"==typeof 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 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 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),g=p.list(t),m=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 X=f.getLayoutValObject(l,O.parts);if(X&&X.impliedEdits&&null!==z)for(var J in X.impliedEdits)E(o.relativeAttr(I,J),X.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=X||{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:X?T.update(M,X):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(Z(t)||e.height||e.width)&&(M.plot=!0),(M.plot||M.calc)&&(M.layoutReplot=!0),{flags:M,rangesAltered:C,undoit:S,redoit:A,eventData:m}}function Z(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 X(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,X,[t,s.undoit,u.undoit,s.traces],X,[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,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&&M<5&&(M++,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===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[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(!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"),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 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=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":795,"../plots/attributes":841,"../plots/plots":908,"./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 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 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":908,"../snapshot/helpers":926,"../snapshot/svgtoimg":928,"../snapshot/tosvg":930,"../version":1381,"./plot_api":831,"fast-isnumeric":241}],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(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":770,"../../lib":795,"fast-isnumeric":241}],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("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))>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(g===m){var P=g-1,I=g+1;if(A)if(0===g)a=[0,1];else{var O=(g>0?d:u).reduce((function(t,e){return Math.max(t,l(e))}),0),z=g/(1-Math.min(.5,O/E));a=g>0?[0,z]:[z,0]}else a=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-f(e,x.val,b.val))/(E-s(_)-l(w)),a=[_.val-C*s(_),w.val+C*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),L=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=I;i--)P(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":770,"../../lib":795,"../../registry":922,"./axis_ids":848,"fast-isnumeric":241}],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"),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,L=g.ONEMIN,C=g.ONESEC,P=g.MINUS_SIGN,I=g.BADNUM,O=t("../../constants/alignment"),z=O.MID_SHIFT,D=O.CAP_SHIFT,R=O.LINE_SPACING,F=O.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(L.length>g||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<=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 L=(g+.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=wt(L[d].value,t);var R=t.c2p(L[d].value);(O?D>R-z: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>=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&&(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,X);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>L?t.dtick=rt(e,L,K):a>C?t.dtick=rt(e,C,K):(r=n(10),t.dtick=rt(e,r,X))}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,X)}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,X));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?"":P)+h+"",e.fontSize*=1.25):("e"===p||"E"===p)&&h>2?e.text="1"+p+(f>0?"+":P)+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=P+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!==I&&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":P+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,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":ot(l)&&(t+=at[c/3+5]));return a?P+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||X.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(X)}}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+=z:x=-90===A&&"bottom"===k?D:90===A&&"top"===k?z:.5,T=z/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*z},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":922,"./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 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;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,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,X,J,e.id,Ct),a.indexOf("event")>-1&&h.click(i,r,e.id);else if(1===t&&mt){var s=d?I:P,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 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;ug[1]-1/4096&&(e.domain=s),i.noneOrAll(t.domain,e.domain,s)}return r("layer"),e}},{"../../lib":795,"fast-isnumeric":241}],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":762}],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,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,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,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)L._fullLayout._deactivateShape(L);else if(!_){var r=z.clickmode;b.done(gt).then((function(){if(b.clear(gt),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(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:O}},{"../../components/color":660,"../../components/dragelement/helpers":678,"../../components/drawing":682,"../../components/fx":700,"../../components/fx/helpers":696,"../../components/shapes/draw_newshape/display_outlines":745,"../../components/shapes/draw_newshape/helpers":746,"../../components/shapes/draw_newshape/newshapes":747,"../../lib":795,"../../lib/clear_gl_canvases":779,"../../lib/polygon":807,"../../lib/throttle":821,"../../plot_api/subroutines":835,"../../registry":922,"./axis_ids":848,"./constants":851,"./handle_outline":855,"./helpers":856,polybooljs:501}],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,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 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 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,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":682,"../../lib":795,"../../registry":922,"./axes":845,"@plotly/d3":58}],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,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 L=this.bounds=g.getBounds(E),C=this.fitScale=g.scale(),P=g.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&&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":660,"../../components/dragelement":679,"../../components/drawing":682,"../../components/fx":700,"../../lib":795,"../../lib/geo_location_utils":788,"../../lib/topojson_utils":823,"../../registry":922,"../cartesian/autorange":844,"../cartesian/axes":845,"../cartesian/select":864,"../plots":908,"./constants":875,"./projections":880,"./zoom":881,"@plotly/d3":58,"topojson-client":595}],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),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":795,"../get_data":882,"../subplot_defaults":916,"./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),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 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,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=L[a][1],s=L[a+1][1],l=L[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=L[a][0],b=L[a+1][0],_=L[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(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,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(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),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(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,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":660,"../../../lib":795,"../../../registry":922,"../../get_data":882,"../../subplot_defaults":916,"./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,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 L={x:g.traceCoordinate[0],y:g.traceCoordinate[1],z:g.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,g,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}),g.buttons&&g.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;dm[1][a])m[0][a]=-1,m[1][a]=1;else{var L=m[1][a]-m[0][a];m[0][a]-=L/32,m[1][a]+=L/32}if("reversed"===s.autorange){var C=m[0][a];m[0][a]=m[1][a],m[1][a]=C}}else{var P=s.range;m[0][a]=s.r2l(P[0]),m[1][a]=s.r2l(P[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 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":700,"../../lib":795,"../../lib/show_no_webgl_msg":817,"../../lib/str2rgbarray":819,"../../plots/cartesian/axes":845,"../../registry":922,"./layout/convert":891,"./layout/spikes":894,"./layout/tick_marks":895,"./project":896,"gl-plot3d":321,"has-passive-events":440,"webgl-context":623}],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\')'}}},{}],901:[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}],902:[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("@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,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={}),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,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 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)&&g[A].t){var I=g[A].t.val,O=g[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(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 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-(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],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:m}),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(),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")]},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,g=C(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?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 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: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,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=I(g.tick0),g.dtick=I(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(-I(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)},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,g=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=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 Z(t,e){return W(t-k,e-M)}function X(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),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],L){var g=E.findPolygonOffset(d,A[0],A[1],L);F+=k+g[0],B+=M+g[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=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)},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,g=i.radialAxis,y=S.radialDragBoxSize,x=y/2;if(g.visible){var b,_,T,A=P(i.radialAxisAngle),E=g._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=m.makeRectDragger(u,T,"crosshair",-x,-x,y,y),U={element:j,gd:c};F(n.select(j),g.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,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":660,"../../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":916,"./layout_attributes":919}],921:[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"),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 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],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 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&&m.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))),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),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 g=A.dragOptions.dragmode=L._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,L._fullLayout._calcInverseTransform(L);var u=L._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(L)}(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(L)):(x(g)||y(g))&&_(a,l,u,A.dragOptions,g)}},S.onmousemove=function(t){m.hover(L,t,A.id),L._fullLayout._lasthover=S,L._fullLayout._hoversubplot=A.id},S.onmouseout=function(t){L._dragging||g.unhover(L,t)},g.init(this.dragOptions)}},{"../../components/color":660,"../../components/dragelement":679,"../../components/dragelement/helpers":678,"../../components/drawing":682,"../../components/fx":700,"../../components/titles":755,"../../lib":795,"../../lib/extend":785,"../../registry":922,"../cartesian/axes":845,"../cartesian/constants":851,"../cartesian/select":864,"../cartesian/set_convert":865,"../plots":908,"@plotly/d3":58,tinycolor2:592}],922:[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":660,"../components/drawing":682,"../constants/xmlns_namespaces":771,"../lib":795,"@plotly/d3":58}],931:[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"],L=t[f+"a"];d=Math.abs(E.r2c(E.range[1])-E.r2c(E.range[0]));var C=n.getDistanceFunction(i,h,p,(function(t){return(h(t)+p(t))/2}));if(n.getClosest(g,C,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 P=g[t.index],I=m.base?P.b+P.s:P.s;t[f+"0"]=t[f+"1"]=L.c2p(P[f],!0),t[f+"LabelVal"]=I;var O=v.extents[v.extents.round(P.p)];t[u+"0"]=E.c2p(y?T(P):O[0],!0),t[u+"1"]=E.c2p(y?k(P):O[1],!0);var z=void 0!==P.orig_p;return t[u+"LabelVal"]=z?P.orig_p:P.p,t.labelLabel=l(E,t[u+"LabelVal"]),t.valueLabel=l(L,t[f+"LabelVal"]),t.baseLabel=l(L,P.b),t.spikeDistance=(S(P)+function(t){return M(_(t),w(t))}(P))/2-b,t[u+"Spike"]=E.c2p(P.p,!0),o(P,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":660,"../../components/fx":700,"../../constants/numerical":770,"../../lib":795,"../../plots/cartesian/axes":845,"../../registry":922,"./helpers":938}],940:[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":1216,"./arrays_to_calcdata":931,"./attributes":932,"./calc":933,"./cross_trace_calc":935,"./defaults":936,"./event_data":937,"./hover":939,"./layout_attributes":941,"./layout_defaults":942,"./plot":943,"./select":944,"./style":946}],941:[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"}}},{}],942:[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,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(I,"path"),P,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),!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,m,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 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)}(C,n,i,T,A);w=function(t,e){var r=g.getValue(t.textposition,e);return g.coerceEnumerated(x,r)}(I,i);var D="stack"===m.mode||"relative"===m.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*(X/Y):X>=Y*(Z/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 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: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,m,v).attr("transform",a.getTextTransform(tt))}(t,e,I,r,p,B,N,j,U,m,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,m)},toMoveInsideBar:L}},{"../../components/color":660,"../../components/drawing":682,"../../components/fx/helpers":696,"../../lib":795,"../../lib/svg_text_utils":820,"../../plots/cartesian/axes":845,"../../registry":922,"./attributes":932,"./constants":934,"./helpers":938,"./style":946,"./uniform_text":948,"@plotly/d3":58,"fast-isnumeric":241}],944:[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":660,"../../components/drawing":682,"../../lib":795,"../../registry":922,"./attributes":932,"./helpers":938,"./uniform_text":948,"@plotly/d3":58}],947:[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":660,"../../components/colorscale/defaults":670,"../../components/colorscale/helpers":671}],948:[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 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":700,"../../lib":795,"../../plots/polar/helpers":910,"../bar/hover":939,"../scatterpolar/hover":1276}],953:[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":911,"../bar/select":944,"../bar/style":946,"../scatter/marker_colorbar":1216,"../scatterpolar/format_labels":1275,"./attributes":949,"./calc":950,"./defaults":951,"./hover":952,"./layout_attributes":954,"./layout_defaults":955,"./plot":956}],954:[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"}}},{}],955:[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":682,"../../lib":795,"../../plots/polar/helpers":910,"@plotly/d3":58,"fast-isnumeric":241}],957:[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":659,"../../lib/extend":785,"../../plots/template_attributes":917,"../bar/attributes":932,"../scatter/attributes":1198}],958:[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 Z=V("mean");E.mean=Z!==s?Z:P?o.mean(C,P):(E.q1+E.q3)/2;var X=V("sd");E.sd=Z!==s&&X>=0?X:P?o.stdev(C,P,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,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=g(E),E.uo=m(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 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":770,"../../lib":795,"../../plots/cartesian/align_period":842,"../../plots/cartesian/axes":845,"fast-isnumeric":241}],959:[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 Z=0;H-G<=0&&((Z=-V*(H-G))>S?(q=!0,U=Y,N=Z):Z>F&&(U=Y,N=S)),Z<=S&&(N=S)}else B=A,N=S;var X=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":682,"../../lib":795,"@plotly/d3":58}],967:[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}},{}],981:[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,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,g,m,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&&(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 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||g<0||g>x.length-1))for(m=x[s],v=x[g],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}],982:[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}}},{}],996:[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 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":682,"../../constants/alignment":762,"../../lib":795,"../../lib/svg_text_utils":820,"./makepath":993,"./map_1d_array":994,"./orient_text":995,"@plotly/d3":58}],997:[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":815,"./compute_control_points":985,"./constants":986,"./create_i_derivative_evaluator":987,"./create_j_derivative_evaluator":988,"./create_spline_evaluator":989}],998:[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}],999:[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}],1e3:[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":659,"../../components/colorscale/attributes":667,"../../lib/extend":785,"../../plots/attributes":841,"../../plots/template_attributes":917,"../scattergeo/attributes":1240}],1001:[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":1e3}],1005:[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":1079,"./attributes":1e3,"./calc":1001,"./defaults":1002,"./event_data":1003,"./hover":1004,"./plot":1006,"./select":1007,"./style":1008}],1006:[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":900,"./convert":1010}],1014:[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":667,"../../lib/extend":785,"../../plots/attributes":841,"../../plots/template_attributes":917,"../mesh3d/attributes":1139}],1015:[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)}}}},{}],1022:[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":672,"./end_plus":1030,"./make_color_map":1035}],1023:[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}}},{}],1024:[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":660,"../../constants/filter_ops":766,"./label_defaults":1034,"fast-isnumeric":241}],1025:[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":766,"fast-isnumeric":241}],1026:[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")}},{}],1027:[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":1025,"./end_plus":1030}],1030:[function(t,e,r){"use strict";e.exports=function(t){return t.end+t.size/1e6}},{}],1031:[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,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,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":795,"../../plots/cartesian/axes":845}],1039:[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 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":682,"../heatmap/style":1088,"./make_color_map":1035,"@plotly/d3":58}],1040:[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":670,"./label_defaults":1034}],1041:[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":667,"../../lib/extend":785,"../contour/attributes":1019,"../heatmap/attributes":1076}],1042:[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":668,"../../lib":795,"../carpet/lookup_carpetid":992,"../contour/set_contours":1038,"../heatmap/clean_2d_array":1078,"../heatmap/convert_column_xyz":1080,"../heatmap/find_empties":1082,"../heatmap/interp2d":1085,"../heatmap/make_bound_array":1086,"./defaults":1043}],1043:[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":1024,"../contour/contours_defaults":1026,"../contour/style_defaults":1040,"../heatmap/xyz_defaults":1090,"./attributes":1041}],1044:[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":1022,"../contour/style":1039,"./attributes":1041,"./calc":1042,"./defaults":1043,"./plot":1045}],1045:[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"),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,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=g):Math.abs(f[1]-h[1])=0&&(h=L,d=g):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;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/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":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":660,"../../components/colorscale":672,"../../constants/numerical":770,"../../lib":795,"../../lib/geojson_utils":789,"fast-isnumeric":241}],1049:[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":670,"../../lib":795,"./attributes":1046}],1050:[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}},{}],1051:[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":795,"../../plots/cartesian/axes":845,"../scattermapbox/hover":1268}],1052:[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":900,"./convert":1048}],1054:[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":660,"../../lib":795,"../bar/hover":939}],1062:[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":944,"./attributes":1055,"./calc":1056,"./cross_trace_calc":1058,"./defaults":1059,"./event_data":1060,"./hover":1061,"./layout_attributes":1063,"./layout_defaults":1064,"./plot":1065,"./style":1066}],1063:[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"}}},{}],1064:[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":660,"../../components/drawing":682,"../../constants/interactions":769,"../bar/style":946,"../bar/uniform_text":948,"@plotly/d3":58}],1067:[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":917,"../pie/attributes":1172}],1068:[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":908}],1069:[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":1174}],1070:[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":795,"../../plots/domain":872,"../bar/defaults":936,"../pie/defaults":1175,"./attributes":1067}],1071:[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":1183,"./attributes":1067,"./base_plot":1068,"./calc":1069,"./defaults":1070,"./layout_attributes":1072,"./layout_defaults":1073,"./plot":1074,"./style":1075}],1072:[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":1179}],1073:[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":1072}],1074:[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"),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":682,"../../lib":795,"../../lib/svg_text_utils":820,"../bar/plot":943,"../bar/uniform_text":948,"../pie/helpers":1177,"../pie/plot":1181,"@plotly/d3":58}],1075:[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":948,"../pie/style_one":1183,"@plotly/d3":58}],1076:[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":667,"../../constants/docs":765,"../../lib/extend":785,"../../plots/attributes":841,"../../plots/template_attributes":917,"../scatter/attributes":1198}],1077:[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){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,m,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,m,v,B,A),q.yfill=p(H,U,b,_,T.length,S)}return[q]}},{"../../components/colorscale/calc":668,"../../constants/numerical":770,"../../lib":795,"../../plots/cartesian/align_period":842,"../../plots/cartesian/axes":845,"../../registry":922,"../histogram2d/calc":1109,"./clean_2d_array":1078,"./convert_column_xyz":1080,"./find_empties":1082,"./interp2d":1085,"./make_bound_array":1086}],1078:[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":795}],1083:[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":795}],1086:[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)),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,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=[],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())}}(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=C[r],G?tt.ph0=tt.ph1=C[r].length?k[C[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,Z),K},calcAllAutoBins:h}},{"../../lib":795,"../../plots/cartesian/axes":845,"../../registry":922,"../bar/arrays_to_calcdata":931,"./average":1096,"./bin_functions":1098,"./bin_label_vals":1099,"./norm_functions":1107,"fast-isnumeric":241}],1101:[function(t,e,r){"use strict";e.exports={eventDataKeys:["binNumber"]}},{}],1102:[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=[],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=[],Z=[],X="z"in e?e.z:"marker"in e&&Array.isArray(e.marker.color)?e.marker.color:"";X&&"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":700,"../../lib":795,"./constants":1119}],1124:[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":1117,"./calc":1118,"./defaults":1120,"./event_data":1121,"./hover":1123,"./plot":1125,"./style":1126}],1125:[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,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(gI[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,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,L,C=e[0].trace,P=n.select(this),I=C._hasGauge,O=C._isAngular,z=C._isBullet,D=C.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=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,g=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(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=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(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}(),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=g-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,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 L(t){return n.svg.arc().innerRadius((m+g)/2-t/2*(g-m)).outerRadius((m+g)/2+t/2*(g-m)).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.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]+g*Math.cos(t),x[1]-g*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,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 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=[g].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(m.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 Z=P.selectAll("text.title").data(e);Z.exit().remove(),Z.enter().append("text").classed("title",!0),Z.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),Z.attr("transform",(function(){var t,e=R.l+R.w*y[C.title.align],r=u.titlePadding,n=c.bBox(Z.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":660,"../../components/drawing":682,"../../constants/alignment":762,"../../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":1130,"@plotly/d3":58}],1134:[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":667,"../../lib/extend":785,"../../plot_api/edit_types":827,"../../plots/attributes":841,"../../plots/template_attributes":917,"../mesh3d/attributes":1139}],1135:[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,g,v);h[p]=x>-1?x:I(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=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()),g&&(s=O(U([k(e-0,r-0,n)])[0],U([k(e-0,r-0,n-1)])[0],g),l=O(U([k(e-0,r-1,n)])[0],U([k(e-0,r-1,n-1)])[0],g),c=O(U([k(e-1,r-1,n)])[0],U([k(e-1,r-1,n-1)])[0],g),u=O(U([k(e-1,r-0,n)])[0],U([k(e-1,r-0,n-1)])[0],g),h()),f}function Z(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 X(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?X(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?X(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&&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":672,"../../lib/gl_format_color":791,"../../lib/str2rgbarray":819,"../../plots/gl3d/zip3":898,"gl-mesh3d":309}],1137:[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":670,"../../lib":795,"../../registry":922,"./attributes":1134}],1138:[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":1134,"./calc":1135,"./convert":1136,"./defaults":1137}],1139:[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":667,"../../lib/extend":785,"../../plots/attributes":841,"../../plots/template_attributes":917,"../surface/attributes":1322}],1140:[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":668}],1141:[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":660,"../../components/fx":700,"../../constants/delta.js":764,"../../lib":795,"../../plots/cartesian/axes":845}],1148:[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":1144,"./calc":1145,"./defaults":1146,"./hover":1147,"./plot":1150,"./select":1151,"./style":1152}],1149:[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":922}],1150:[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":58}],1151:[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":670,"../../components/colorscale/helpers":671,"../../lib":795,"../../plots/array_container_defaults":840,"../../plots/domain":872,"../parcoords/merge_length":1169,"./attributes":1153}],1157:[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":1153,"./base_plot":1154,"./calc":1155,"./defaults":1156,"./plot":1159}],1158:[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",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 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",z+" -1px 1px 2px, "+z+" 1px 1px 2px, "+z+" 1px -1px 2px, "+z+" -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",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+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:L1&&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 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})),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":682,"../../components/fx":700,"../../lib":795,"../../lib/svg_text_utils":820,"../../plot_api/plot_api":831,"@plotly/d3":58,tinycolor2:592}],1159:[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":1158}],1160:[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":667,"../../lib/extend":785,"../../plot_api/plot_template":834,"../../plots/cartesian/layout_attributes":859,"../../plots/domain":872,"../../plots/font_attributes":873}],1161:[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);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":795,"../../lib/gup":792,"./constants":1164,"@plotly/d3":58}],1162:[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":771,"../../plots/get_data":882,"./plot":1171,"@plotly/d3":58}],1163:[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":670,"../../components/colorscale/helpers":671,"../../lib":795,"../../plots/array_container_defaults":840,"../../plots/cartesian/axes":845,"../../plots/domain":872,"./attributes":1160,"./axisbrush":1161,"./constants":1164,"./merge_length":1169}],1166:[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}],1167:[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":1160,"./base_plot":1162,"./calc":1163,"./defaults":1165,"./plot":1171}],1168:[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,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!==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){I(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})),I(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,I(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:O(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=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 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(C),Y.text((function(t){return z(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 Z=W.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(j)}},{"../../components/colorscale":672,"../../components/drawing":682,"../../lib":795,"../../lib/gup":792,"../../lib/svg_text_utils":820,"../../plots/cartesian/axes":845,"./axisbrush":1161,"./constants":1164,"./helpers":1166,"./lines":1168,"@plotly/d3":58,"color-rgba":129}],1171:[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":1166,"./parcoords":1170}],1172:[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":659,"../../lib/extend":785,"../../plots/attributes":841,"../../plots/domain":872,"../../plots/font_attributes":873,"../../plots/template_attributes":917}],1173:[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":908}],1174:[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":795,"../../plots/domain":872,"../bar/defaults":936,"./attributes":1172,"fast-isnumeric":241}],1176:[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":696}],1177:[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 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: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),O(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])+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=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=L(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=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(g.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(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):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 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,P=(.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]-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":660,"../../components/drawing":682,"../../components/fx":700,"../../lib":795,"../../lib/svg_text_utils":820,"../../plots/plots":908,"../bar/constants":934,"../bar/uniform_text":948,"./event_data":1176,"./helpers":1177,"@plotly/d3":58}],1182:[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":948,"./style_one":1183,"@plotly/d3":58}],1183:[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":660,"./helpers":1177}],1184:[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":1198}],1185:[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":819,"../../plots/cartesian/autorange":844,"../scatter/get_trace_color":1208,"gl-pointcloud2d":323}],1186:[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":1184}],1187:[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":885,"../scatter3d/calc":1227,"./attributes":1184,"./convert":1185,"./defaults":1186}],1188:[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":659,"../../components/colorscale/attributes":667,"../../components/fx/attributes":691,"../../constants/docs":765,"../../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":917}],1189:[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":672,"../../lib":795,"../../lib/gup":792,"strongly-connected-components":584}],1191:[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"}}},{}],1192:[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":660,"../../components/fx/hoverlabel_defaults":698,"../../lib":795,"../../plot_api/plot_template":834,"../../plots/array_container_defaults":840,"../../plots/domain":872,"./attributes":1188,tinycolor2:592}],1193:[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":1188,"./base_plot":1189,"./calc":1190,"./defaults":1192,"./plot":1194,"./select.js":1196}],1194:[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 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":660,"../../components/fx":700,"../../lib":795,"./constants":1191,"./render":1195,"@plotly/d3":58}],1195:[function(t,e,r){"use strict";var n=t("./constants"),i=t("@plotly/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 L(t){return h(t.horizontal?0:t.labelY,t.horizontal?t.labelY:0)}function C(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 P(t){return t.horizontal?"matrix(1 0 0 1 0 0)":"matrix(0 1 1 0 0 0)"}function I(t){return t.horizontal?"scale(1 1)":"scale(-1 1)"}function O(t){return t.darkBackground&&!t.horizontal?"rgb(255,255,255)":"rgb(0,0,0)"}function z(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",z).style("fill",O)}},{"../../components/color":660,"../../components/drawing":682,"../../lib":795,"../../lib/gup":792,"../../registry":922,"./constants":1191,"@plotly/d3":58,"@plotly/d3-sankey":57,"@plotly/d3-sankey-circular":56,"d3-force":162,"d3-interpolate":164,tinycolor2:592}],1196:[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}}}}}},{}],1205:[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=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":660,"../../components/fx":700,"../../lib":795,"../../registry":922,"./get_trace_color":1208}],1210:[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":1197,"./attributes":1198,"./calc":1199,"./cross_trace_calc":1203,"./cross_trace_defaults":1204,"./defaults":1205,"./format_labels":1207,"./hover":1209,"./marker_colorbar":1216,"./plot":1219,"./select":1220,"./style":1222,"./subtypes":1223}],1211:[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":670,"../../components/colorscale/helpers":671,"../../lib":795}],1212:[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,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([X,J]),ct(t),K=null,X=J=0}function ft(t){if(M=t[0]/P,A=t[1]/I,W=t[0]rt?rt:0,Z=t[1]it?it:0,W||Z){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],Z||t[1]];var r=U[V-1];W&&Z&&(r[0]!==W||r[1]!==Z)?(K&&(X!==W&&J!==Z?ct(X&&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]):[X||W,J||Z]):X&&J&&ct([X,J])),ct([W,Z])):X-W&&J-Z&&ct([W||X,Z||J]),K=t,X=W,J=Z}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([X||K[0],J||K[1]]),B.push(U.slice(0,V))}return B}},{"../../constants/numerical":770,"../../lib":795,"./constants":1202}],1213:[function(t,e,r){"use strict";e.exports=function(t,e,r){"spline"===r("line.shape")&&r("line.smoothing")}},{}],1214:[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}],1216:[function(t,e,r){"use strict";e.exports={container:"marker",min:"cmin",max:"cmax"}},{}],1217:[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":660,"../../components/colorscale/defaults":670,"../../components/colorscale/helpers":671,"./subtypes":1223}],1218:[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":770,"../../lib":795}],1219:[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,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,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),m=0;m1){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)):(X(L),_._polygons=null)),_._prevRevpath=H,_._prevPolygons=V):(E?X(E):L&&X(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,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 Z=!1===_.cliponaxis?null:r.layerClipId;l.setClipUrl(A,Z,t),l.setClipUrl(S,Z,t)}function X(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":682,"../../lib":795,"../../lib/polygon":807,"../../registry":922,"./line_points":1212,"./link_traces":1214,"./subtypes":1223,"@plotly/d3":58}],1220:[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":795,"../../registry":922,"../scatter/line_defaults":1211,"../scatter/marker_defaults":1217,"../scatter/subtypes":1223,"../scatter/text_defaults":1224,"./attributes":1226}],1231:[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":768,"../../plots/gl3d":887,"./attributes":1226,"./calc":1227,"./convert":1229,"./defaults":1230}],1232:[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":667,"../../lib/extend":785,"../../plots/attributes":841,"../../plots/template_attributes":917,"../scatter/attributes":1198}],1233:[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":795,"../scatter/hover":1209}],1238:[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":1216,"../scatter/select":1220,"../scatter/style":1222,"./attributes":1232,"./calc":1233,"./defaults":1234,"./event_data":1235,"./format_labels":1236,"./hover":1237,"./plot":1239}],1239:[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":700,"../../constants/numerical":770,"../../lib":795,"../scatter/get_trace_color":1208,"./attributes":1240}],1246:[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":1216,"../scatter/style":1222,"./attributes":1240,"./calc":1241,"./defaults":1242,"./event_data":1243,"./format_labels":1244,"./hover":1245,"./plot":1247,"./select":1248,"./style":1249}],1247:[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=m,k=2*w,M={},A=x.makeCalcdata(e,"x"),S=b.makeCalcdata(e,"y"),E=s(e,x,"x",A),L=s(e,b,"y",S);e._x=E,e._y=L,e.xperiodalignment&&(e._origX=A),e.yperiodalignment&&(e._origY=S);var C=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,C,E,L),z=d(t,_);return f(y,e),T?O.marker&&(I=2*(O.marker.sizeAvg||Math.max(O.marker.size,3))):I=c(e,w),u(t,e,x,b,E,L,I),O.errorX&&v(e,x,O.errorX),O.errorY&&v(e,b,O.errorY),O.fill&&!z.fill2d&&(z.fill2d=!0),O.marker&&!z.scatter2d&&(z.scatter2d=!0),O.line&&!z.line2d&&(z.line2d=!0),!O.errorX&&!O.errorY||z.error2d||(z.error2d=!0),O.text&&!z.glText&&(z.glText=!0),O.marker&&(O.marker.snap=w),z.lineOptions.push(O.line),z.errorXOptions.push(O.errorX),z.errorYOptions.push(O.errorY),z.fillOptions.push(O.fill),z.markerOptions.push(O.marker),z.markerSelectedOptions.push(O.markerSel),z.markerUnselectedOptions.push(O.markerUnsel),z.textOptions.push(O.text),z.textSelectedOptions.push(O.textSel),z.textUnselectedOptions.push(O.textUnsel),z.selectBatch.push([]),z.unselectBatch.push([]),M._scene=z,M.index=z.count,M.x=E,M.y=L,M.positions=C,z.count++,[{x:!1,y:!1,t:M,trace:e}]}},{"../../constants/numerical":770,"../../lib":795,"../../plots/cartesian/align_period":842,"../../plots/cartesian/autorange":844,"../../plots/cartesian/axis_ids":848,"../scatter/calc":1199,"../scatter/colorscale_calc":1201,"./constants":1252,"./convert":1253,"./scene_update":1261,"@plotly/point-cluster":59}],1252:[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]}}},{}],1253:[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":682,"../../components/fx/helpers":696,"../../constants/interactions":769,"../../lib":795,"../../lib/gl_format_color":791,"../../plots/cartesian/axis_ids":848,"../../registry":922,"../scatter/make_bubble_size_func":1215,"../scatter/subtypes":1223,"./constants":1252,"./helpers":1257,"color-normalize":127,"fast-isnumeric":241,"svg-path-sdf":589}],1254:[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":1252}],1258:[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,t.splitNull=!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":700,"../../constants/numerical":770,"../../lib":795,"../scatter/get_trace_color":1208}],1269:[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":902,"../scatter/marker_colorbar":1216,"../scattergeo/calc":1241,"./attributes":1263,"./defaults":1265,"./event_data":1266,"./format_labels":1267,"./hover":1268,"./plot":1270,"./select":1271}],1270:[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":1209}],1277:[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":911,"../scatter/marker_colorbar":1216,"../scatter/select":1220,"../scatter/style":1222,"./attributes":1272,"./calc":1273,"./defaults":1274,"./format_labels":1275,"./hover":1276,"./plot":1278}],1278:[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":795,"../scattergl/constants":1252,"../scattergl/convert":1253,"../scattergl/plot":1260,"../scattergl/scene_update":1261,"@plotly/point-cluster":59,"fast-isnumeric":241}],1286:[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":667,"../../components/drawing/attributes":681,"../../lib/extend":785,"../../plots/attributes":841,"../../plots/template_attributes":917,"../scatter/attributes":1198}],1287:[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":1209}],1292:[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":918,"../scatter/marker_colorbar":1216,"../scatter/select":1220,"../scatter/style":1222,"./attributes":1286,"./calc":1287,"./defaults":1288,"./event_data":1289,"./format_labels":1290,"./hover":1291,"./plot":1293}],1293:[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":1219}],1294:[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":667,"../../lib/extend":785,"../../plot_api/plot_template":834,"../../plots/cartesian/constants":851,"../../plots/template_attributes":917,"../scatter/attributes":1198,"../scattergl/attributes":1250}],1295:[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,L={};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 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 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 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)]};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":700,"../../components/fx/helpers":696,"../../lib":795,"../../lib/events":784,"../../registry":922,"../pie/helpers":1177,"./helpers":1316,"@plotly/d3":58}],1316:[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":660,"../../lib":795,"../../lib/setcursor":816,"../pie/helpers":1177}],1317:[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":1216,"./attributes":1310,"./base_plot":1311,"./calc":1312,"./defaults":1314,"./layout_attributes":1318,"./layout_defaults":1319,"./plot":1320,"./style":1321}],1318:[function(t,e,r){"use strict";e.exports={sunburstcolorway:{valType:"colorlist",editType:"calc"},extendsunburstcolors:{valType:"boolean",dflt:!0,editType:"calc"}}},{}],1319:[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":1318}],1320:[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,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,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={};m&&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),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: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(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}},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),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":682,"../../lib":795,"../../lib/svg_text_utils":820,"../bar/style":946,"../bar/uniform_text":948,"../pie/helpers":1177,"../pie/plot":1181,"./constants":1313,"./fx":1315,"./helpers":1316,"./style":1321,"@plotly/d3":58,"d3-hierarchy":163}],1321:[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":660,"../../lib":795,"../bar/uniform_text":948,"@plotly/d3":58}],1322:[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":660,"../../components/colorscale/attributes":667,"../../lib/extend":785,"../../plot_api/edit_types":827,"../../plots/attributes":841,"../../plots/template_attributes":917}],1323:[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":668}],1324:[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"}}},{}],1331:[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 L=Math.max(o(e.header.line.width),o(e.cells.line.width)),C={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:L,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 C.columns.forEach((function(t){t.calcdata=C,t.x=u(t)})),C}},{"../../lib/extend":785,"./constants":1330,"fast-isnumeric":241}],1332:[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}],1333:[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=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":667,"../../lib/extend":785,"../../plots/domain":872,"../../plots/template_attributes":917,"../pie/attributes":1172,"../sunburst/attributes":1310,"./constants":1339}],1337:[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":908}],1338:[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":1312}],1339:[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}},{}],1340:[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":660,"../../components/colorscale":672,"../../lib":795,"../../plots/domain":872,"../bar/constants":934,"../bar/defaults":936,"./attributes":1336}],1341:[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,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],L=E.trace,C=E.hierarchy,P=g/L._entryDepth,I=u.listPath(r.data,"id"),O=s(C.copy(),[g,m],{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+m,t.onPathbar=!0,!0)}))).reverse(),(h=h.data(O,u.getPtId)).enter().append("g").classed("pathbar",!0),T(h,!0,A,[g,m],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(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,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,[g,m]);return function(t){return _(e(t))}})):T.attr("transform",_(s))}))}},{"../../components/drawing":682,"../../lib":795,"../../lib/svg_text_utils":820,"../sunburst/fx":1315,"../sunburst/helpers":1316,"./constants":1339,"./partition":1346,"./style":1348,"@plotly/d3":58}],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"),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,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,[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(),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,{},[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(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(),[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?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(),[g,m]);return function(t){return _(e(t))}})):O.attr("transform",_(s))})),R}},{"../../components/drawing":682,"../../lib":795,"../../lib/svg_text_utils":820,"../sunburst/fx":1315,"../sunburst/helpers":1316,"../sunburst/plot":1320,"./constants":1339,"./partition":1346,"./style":1348,"@plotly/d3":58}],1343:[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":1216,"./attributes":1336,"./base_plot":1337,"./calc":1338,"./defaults":1340,"./layout_attributes":1344,"./layout_defaults":1345,"./plot":1347,"./style":1348}],1344:[function(t,e,r){"use strict";e.exports={treemapcolorway:{valType:"colorlist",editType:"calc"},extendtreemapcolors:{valType:"boolean",dflt:!0,editType:"calc"}}},{}],1345:[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":1344}],1346:[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=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)]||O;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"+X(l.x,l.y)+"L"+X(c.x,c.y)+"L"+X(s.x,s.y)+"L"+X(u.x,u.y)+"L"+X(f.x,f.y)+"L"+X(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":795,"../bar/constants":934,"../bar/plot":943,"../bar/style":946,"../bar/uniform_text":948,"../sunburst/helpers":1316,"./constants":1339,"./draw_ancestors":1341,"./draw_descendants":1342,"@plotly/d3":58}],1348:[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 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),L=o.getPositionOnKdePath(M,h,S),C=b._offset,P=b._length;A[y+"0"]=L[0],A[y+"1"]=L[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 I=y+"Spike";A[I]=v[0][I],v[0].spikeDistance=void 0,v[0][I]=void 0,A.hovertemplate=!1,m.push(A),(u={stroke:t.color})[y+"1"]=n.constrain(C+L[0],C,C+P),u[y+"2"]=n.constrain(C+L[1],C,C+P),u[x+"1"]=u[x+"2"]=_._offset+S}}d&&(m=m.concat(v))}-1!==p.indexOf("points")&&(c=a.hoverOnPoints(t,e,r));var O=l.selectAll(".violinline-"+h.uid).data(u?[0]:[]);return O.enter().append("line").classed("violinline-"+h.uid,!0).attr("stroke-width",1.5),O.exit().remove(),O.attr(u),"closest"===s?c?[c]:m:c?(m.push(c),m):m}},{"../../lib":795,"../../plots/cartesian/axes":845,"../box/hover":962,"./helpers":1353}],1355:[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":960,"../box/select":967,"../scatter/style":1222,"./attributes":1349,"./calc":1350,"./cross_trace_calc":1351,"./defaults":1352,"./hover":1354,"./layout_attributes":1356,"./layout_defaults":1357,"./plot":1358,"./style":1359}],1356:[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":964}],1357:[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":965,"./layout_attributes":1356}],1358:[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,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":660,"../../constants/delta.js":764,"../../plots/cartesian/axes":845,"../bar/hover":939}],1371:[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":944,"./attributes":1364,"./calc":1365,"./cross_trace_calc":1367,"./defaults":1368,"./event_data":1369,"./hover":1370,"./layout_attributes":1372,"./layout_defaults":1373,"./plot":1374,"./style":1375}],1372:[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"}}},{}],1373:[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":660,"../../components/drawing":682,"../../constants/interactions":769,"../bar/style":946,"../bar/uniform_text":948,"@plotly/d3":58}],1376:[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;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/_bgcolor.py b/packages/python/plotly/plotly/validators/area/hoverlabel/_bgcolor.py deleted file mode 100644 index f6097eba4f8..00000000000 --- a/packages/python/plotly/plotly/validators/area/hoverlabel/_bgcolor.py +++ /dev/null @@ -1,13 +0,0 @@ -import _plotly_utils.basevalidators - - -class BgcolorValidator(_plotly_utils.basevalidators.ColorValidator): - def __init__(self, plotly_name="bgcolor", parent_name="area.hoverlabel", **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"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/area/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/area/hoverlabel/_bgcolorsrc.py deleted file mode 100644 index 5ad2c133ec0..00000000000 --- a/packages/python/plotly/plotly/validators/area/hoverlabel/_bgcolorsrc.py +++ /dev/null @@ -1,14 +0,0 @@ -import _plotly_utils.basevalidators - - -class BgcolorsrcValidator(_plotly_utils.basevalidators.SrcValidator): - def __init__( - self, plotly_name="bgcolorsrc", parent_name="area.hoverlabel", **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/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/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/area/hoverlabel/font/_size.py deleted file mode 100644 index 79faf6a1c72..00000000000 --- a/packages/python/plotly/plotly/validators/area/hoverlabel/font/_size.py +++ /dev/null @@ -1,16 +0,0 @@ -import _plotly_utils.basevalidators - - -class SizeValidator(_plotly_utils.basevalidators.NumberValidator): - def __init__( - self, plotly_name="size", parent_name="area.hoverlabel.font", **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"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/area/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/area/hoverlabel/font/_sizesrc.py deleted file mode 100644 index f348e6a9084..00000000000 --- a/packages/python/plotly/plotly/validators/area/hoverlabel/font/_sizesrc.py +++ /dev/null @@ -1,14 +0,0 @@ -import _plotly_utils.basevalidators - - -class SizesrcValidator(_plotly_utils.basevalidators.SrcValidator): - def __init__( - self, plotly_name="sizesrc", parent_name="area.hoverlabel.font", **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/__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/_color.py b/packages/python/plotly/plotly/validators/area/marker/_color.py deleted file mode 100644 index 098d66055ed..00000000000 --- a/packages/python/plotly/plotly/validators/area/marker/_color.py +++ /dev/null @@ -1,13 +0,0 @@ -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__( - 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/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/_opacity.py b/packages/python/plotly/plotly/validators/area/marker/_opacity.py deleted file mode 100644 index 934b143b29c..00000000000 --- a/packages/python/plotly/plotly/validators/area/marker/_opacity.py +++ /dev/null @@ -1,15 +0,0 @@ -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__( - 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/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/_size.py b/packages/python/plotly/plotly/validators/area/marker/_size.py deleted file mode 100644 index b2ad7131448..00000000000 --- a/packages/python/plotly/plotly/validators/area/marker/_size.py +++ /dev/null @@ -1,14 +0,0 @@ -import _plotly_utils.basevalidators - - -class SizeValidator(_plotly_utils.basevalidators.NumberValidator): - def __init__(self, plotly_name="size", parent_name="area.marker", **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"), - min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/area/marker/_sizesrc.py b/packages/python/plotly/plotly/validators/area/marker/_sizesrc.py deleted file mode 100644 index a05baddf486..00000000000 --- a/packages/python/plotly/plotly/validators/area/marker/_sizesrc.py +++ /dev/null @@ -1,12 +0,0 @@ -import _plotly_utils.basevalidators - - -class SizesrcValidator(_plotly_utils.basevalidators.SrcValidator): - def __init__(self, plotly_name="sizesrc", parent_name="area.marker", **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/_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..ddc304ef99f 100644 --- a/packages/python/plotly/plotly/validators/bar/__init__.py +++ b/packages/python/plotly/plotly/validators/bar/__init__.py @@ -23,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 @@ -32,13 +31,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 @@ -101,7 +97,6 @@ "._unselected.UnselectedValidator", "._uirevision.UirevisionValidator", "._uid.UidValidator", - "._tsrc.TsrcValidator", "._texttemplatesrc.TexttemplatesrcValidator", "._texttemplate.TexttemplateValidator", "._textsrc.TextsrcValidator", @@ -110,13 +105,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/_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/_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/_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/_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/_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/_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/_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/_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/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/_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/_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/_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/_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/_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/_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/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/_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/_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/_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/_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/_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/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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/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/_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/_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/_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/_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/_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/_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..22efb87b987 100644 --- a/packages/python/plotly/plotly/validators/scatter/__init__.py +++ b/packages/python/plotly/plotly/validators/scatter/__init__.py @@ -21,7 +21,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 +28,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 @@ -95,7 +91,6 @@ "._unselected.UnselectedValidator", "._uirevision.UirevisionValidator", "._uid.UidValidator", - "._tsrc.TsrcValidator", "._texttemplatesrc.TexttemplatesrcValidator", "._texttemplate.TexttemplateValidator", "._textsrc.TextsrcValidator", @@ -103,15 +98,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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/_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/packages/python/plotly/plotlywidget/static/index.js b/packages/python/plotly/plotlywidget/static/index.js index 74a5f72eef1..772c03be54e 100644 --- a/packages/python/plotly/plotlywidget/static/index.js +++ b/packages/python/plotly/plotlywidget/static/index.js @@ -94,7 +94,7 @@ 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}}}} +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":"https://101968-45646037-gh.circle-artifacts.com/0/plotly.js.tgz","@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 */ @@ -19200,7 +19200,7 @@ module.exports = function(module) { /* WEBPACK VAR INJECTION */(function(global) {var require;var require;/** * plotly.js v1.58.4 -* Copyright 2012-2020, Plotly, Inc. +* Copyright 2012-2021, Plotly, Inc. * All rights reserved. * Licensed under the MIT license */ @@ -19272,326 +19272,176 @@ for(var selector in rules) { Lib.addStyleRule(fullSelector, rules[selector]); } -},{"../src/lib":778}],2:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/lib":795}],2:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/transforms/aggregate'); -},{"../src/transforms/aggregate":1365}],3:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/transforms/aggregate":1376}],3:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/bar'); -},{"../src/traces/bar":929}],4:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/bar":940}],4:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/barpolar'); -},{"../src/traces/barpolar":942}],5:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/barpolar":953}],5:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/box'); -},{"../src/traces/box":952}],6:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/box":963}],6:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/components/calendars'); -},{"../src/components/calendars":641}],7:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/components/calendars":658}],7:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/candlestick'); -},{"../src/traces/candlestick":961}],8:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/candlestick":972}],8:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/carpet'); -},{"../src/traces/carpet":980}],9:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/carpet":991}],9:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/choropleth'); -},{"../src/traces/choropleth":994}],10:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/choropleth":1005}],10:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/choroplethmapbox'); -},{"../src/traces/choroplethmapbox":1001}],11:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/choroplethmapbox":1012}],11:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/cone'); -},{"../src/traces/cone":1007}],12:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/cone":1018}],12:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/contour'); -},{"../src/traces/contour":1022}],13:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/contour":1033}],13:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/contourcarpet'); -},{"../src/traces/contourcarpet":1033}],14:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/contourcarpet":1044}],14:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/core'); -},{"../src/core":755}],15:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/core":772}],15:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/densitymapbox'); -},{"../src/traces/densitymapbox":1041}],16:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/densitymapbox":1052}],16:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/transforms/filter'); -},{"../src/transforms/filter":1366}],17:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/transforms/filter":1377}],17:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/funnel'); -},{"../src/traces/funnel":1051}],18:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/funnel":1062}],18:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/funnelarea'); -},{"../src/traces/funnelarea":1060}],19:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/funnelarea":1071}],19:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/transforms/groupby'); -},{"../src/transforms/groupby":1367}],20:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/transforms/groupby":1378}],20:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/heatmap'); -},{"../src/traces/heatmap":1073}],21:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/heatmap":1084}],21:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/heatmapgl'); -},{"../src/traces/heatmapgl":1083}],22:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/heatmapgl":1094}],22:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/histogram'); -},{"../src/traces/histogram":1095}],23:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/histogram":1106}],23:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/histogram2d'); -},{"../src/traces/histogram2d":1101}],24:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/histogram2d":1112}],24:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/histogram2dcontour'); -},{"../src/traces/histogram2dcontour":1105}],25:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/histogram2dcontour":1116}],25:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/image'); -},{"../src/traces/image":1113}],26:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/image":1124}],26:[function(_dereq_,module,exports){ + 'use strict'; @@ -19659,382 +19509,229 @@ Plotly.register([ _dereq_('./barpolar') ]); -// transforms -// -// Please note that all *transform* methods are executed before -// all *calcTransform* methods - which could possibly lead to -// unexpected results when applying multiple transforms of different types -// to a given trace. -// -// For more info, see: -// https://github.com/plotly/plotly.js/pull/978#pullrequestreview-2403353 -// -Plotly.register([ - _dereq_('./aggregate'), - _dereq_('./filter'), - _dereq_('./groupby'), - _dereq_('./sort') -]); +module.exports = _dereq_('./register_extra')(Plotly); -// components -Plotly.register([ - _dereq_('./calendars') -]); +},{"./bar":3,"./barpolar":4,"./box":5,"./candlestick":7,"./carpet":8,"./choropleth":9,"./choroplethmapbox":10,"./cone":11,"./contour":12,"./contourcarpet":13,"./core":14,"./densitymapbox":15,"./funnel":17,"./funnelarea":18,"./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,"./register_extra":35,"./sankey":36,"./scatter3d":37,"./scattercarpet":38,"./scattergeo":39,"./scattergl":40,"./scattermapbox":41,"./scatterpolar":42,"./scatterpolargl":43,"./scatterternary":44,"./splom":46,"./streamtube":47,"./sunburst":48,"./surface":49,"./table":50,"./treemap":51,"./violin":52,"./volume":53,"./waterfall":54}],27:[function(_dereq_,module,exports){ -module.exports = Plotly; - -},{"./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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ 'use strict'; module.exports = _dereq_('../src/traces/indicator'); -},{"../src/traces/indicator":1121}],28:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/indicator":1132}],28:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/isosurface'); -},{"../src/traces/isosurface":1127}],29:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/isosurface":1138}],29:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/mesh3d'); -},{"../src/traces/mesh3d":1132}],30:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/mesh3d":1143}],30:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/ohlc'); -},{"../src/traces/ohlc":1137}],31:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/ohlc":1148}],31:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/parcats'); -},{"../src/traces/parcats":1146}],32:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/parcats":1157}],32:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/parcoords'); -},{"../src/traces/parcoords":1156}],33:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/parcoords":1167}],33:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/pie'); -},{"../src/traces/pie":1167}],34:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/pie":1178}],34:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/pointcloud'); -},{"../src/traces/pointcloud":1176}],35:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/pointcloud":1187}],35:[function(_dereq_,module,exports){ + + +'use strict'; + +module.exports = function registerExtra(Plotly) { + // transforms + // + // Please note that all *transform* methods are executed before + // all *calcTransform* methods - which could possibly lead to + // unexpected results when applying multiple transforms of different types + // to a given trace. + // + // For more info, see: + // https://github.com/plotly/plotly.js/pull/978#pullrequestreview-2403353 + // + Plotly.register([ + _dereq_('./aggregate'), + _dereq_('./filter'), + _dereq_('./groupby'), + _dereq_('./sort') + ]); + + // components + Plotly.register([ + _dereq_('./calendars') + ]); + + return Plotly; +}; + +},{"./aggregate":2,"./calendars":6,"./filter":16,"./groupby":19,"./sort":45}],36:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/sankey'); -},{"../src/traces/sankey":1182}],36:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/sankey":1193}],37:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/scatter3d'); -},{"../src/traces/scatter3d":1220}],37:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/scatter3d":1231}],38:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/scattercarpet'); -},{"../src/traces/scattercarpet":1227}],38:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/scattercarpet":1238}],39:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/scattergeo'); -},{"../src/traces/scattergeo":1235}],39:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/scattergeo":1246}],40:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/scattergl'); -},{"../src/traces/scattergl":1248}],40:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/scattergl":1259}],41:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/scattermapbox'); -},{"../src/traces/scattermapbox":1258}],41:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/scattermapbox":1269}],42:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/scatterpolar'); -},{"../src/traces/scatterpolar":1266}],42:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/scatterpolar":1277}],43:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/scatterpolargl'); -},{"../src/traces/scatterpolargl":1273}],43:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/scatterpolargl":1284}],44:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/scatterternary'); -},{"../src/traces/scatterternary":1281}],44:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/scatterternary":1292}],45:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/transforms/sort'); -},{"../src/transforms/sort":1369}],45:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/transforms/sort":1380}],46:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/splom'); -},{"../src/traces/splom":1290}],46:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/splom":1301}],47:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/streamtube'); -},{"../src/traces/streamtube":1298}],47:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/streamtube":1309}],48:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/sunburst'); -},{"../src/traces/sunburst":1306}],48:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/sunburst":1317}],49:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/surface'); -},{"../src/traces/surface":1315}],49:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/surface":1326}],50:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/table'); -},{"../src/traces/table":1323}],50:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/table":1334}],51:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/treemap'); -},{"../src/traces/treemap":1332}],51:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/treemap":1343}],52:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/violin'); -},{"../src/traces/violin":1344}],52:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/violin":1355}],53:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/volume'); -},{"../src/traces/volume":1352}],53:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../src/traces/volume":1363}],54:[function(_dereq_,module,exports){ + 'use strict'; module.exports = _dereq_('../src/traces/waterfall'); -},{"../src/traces/waterfall":1360}],54:[function(_dereq_,module,exports){ +},{"../src/traces/waterfall":1371}],55:[function(_dereq_,module,exports){ 'use strict' module.exports = createViewController @@ -20157,7 +19854,7 @@ function createViewController(options) { matrix: matrix }, mode) } -},{"matrix-camera-controller":480,"orbit-camera-controller":501,"turntable-camera-controller":581}],55:[function(_dereq_,module,exports){ +},{"matrix-camera-controller":464,"orbit-camera-controller":486,"turntable-camera-controller":597}],56:[function(_dereq_,module,exports){ (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, _dereq_('d3-array'), _dereq_('d3-collection'), _dereq_('d3-shape'), _dereq_('elementary-circuits-directed-graph')) : typeof define === 'function' && define.amd ? define(['exports', 'd3-array', 'd3-collection', 'd3-shape', 'elementary-circuits-directed-graph'], factory) : @@ -21660,7 +21357,7 @@ function createViewController(options) { }))); -},{"d3-array":156,"d3-collection":157,"d3-shape":165,"elementary-circuits-directed-graph":179}],56:[function(_dereq_,module,exports){ +},{"d3-array":158,"d3-collection":159,"d3-shape":167,"elementary-circuits-directed-graph":180}],57:[function(_dereq_,module,exports){ // https://github.com/d3/d3-sankey Version 0.7.2. Copyright 2019 Mike Bostock. (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, _dereq_('d3-array'), _dereq_('d3-collection'), _dereq_('d3-shape')) : @@ -22007,33072 +21704,33119 @@ Object.defineProperty(exports, '__esModule', { value: true }); }))); -},{"d3-array":156,"d3-collection":157,"d3-shape":165}],57:[function(_dereq_,module,exports){ -'use strict' - -module.exports = _dereq_('./quad') - -},{"./quad":58}],58:[function(_dereq_,module,exports){ -/** - * @module point-cluster/quad - * - * Bucket based quad tree clustering - */ - -'use strict' - -var search = _dereq_('binary-search-bounds') -var clamp = _dereq_('clamp') -var rect = _dereq_('parse-rect') -var getBounds = _dereq_('array-bounds') -var pick = _dereq_('pick-by-alias') -var defined = _dereq_('defined') -var flatten = _dereq_('flatten-vertex-data') -var isObj = _dereq_('is-obj') -var dtype = _dereq_('dtype') -var log2 = _dereq_('math-log2') - -var MAX_GROUP_ID = 1073741824 - -module.exports = function cluster (srcPoints, options) { - if (!options) { options = {} } - - srcPoints = flatten(srcPoints, 'float64') - - options = pick(options, { - bounds: 'range bounds dataBox databox', - maxDepth: 'depth maxDepth maxdepth level maxLevel maxlevel levels', - dtype: 'type dtype format out dst output destination' - // sort: 'sortBy sortby sort', - // pick: 'pick levelPoint', - // nodeSize: 'node nodeSize minNodeSize minSize size' - }) - - // let nodeSize = defined(options.nodeSize, 1) - var maxDepth = defined(options.maxDepth, 255) - var bounds = defined(options.bounds, getBounds(srcPoints, 2)) - if (bounds[0] === bounds[2]) { bounds[2]++ } - if (bounds[1] === bounds[3]) { bounds[3]++ } - - var points = normalize(srcPoints, bounds) - - // init variables - var n = srcPoints.length >>> 1 - var ids - if (!options.dtype) { options.dtype = 'array' } - - if (typeof options.dtype === 'string') { - ids = new (dtype(options.dtype))(n) - } - else if (options.dtype) { - ids = options.dtype - if (Array.isArray(ids)) { ids.length = n } - } - for (var i = 0; i < n; ++i) { - ids[i] = i - } - - // representative point indexes for levels - var levels = [] - - // starting indexes of subranges in sub levels, levels.length * 4 - var sublevels = [] - - // unique group ids, sorted in z-curve fashion within levels by shifting bits - var groups = [] - - // level offsets in `ids` - var offsets = [] - - - // sort points - sort(0, 0, 1, ids, 0, 1) - - - // return reordered ids with provided methods - // save level offsets in output buffer - var offset = 0 - for (var level = 0; level < levels.length; level++) { - var levelItems = levels[level] - if (ids.set) { ids.set(levelItems, offset) } - else { - for (var i$1 = 0, l = levelItems.length; i$1 < l; i$1++) { - ids[i$1 + offset] = levelItems[i$1] - } - } - var nextOffset = offset + levels[level].length - offsets[level] = [offset, nextOffset] - offset = nextOffset - } - - ids.range = range - - return ids - - - - // FIXME: it is possible to create one typed array heap and reuse that to avoid memory blow - function sort (x, y, diam, ids, level, group) { - if (!ids.length) { return null } - - // save first point as level representative - var levelItems = levels[level] || (levels[level] = []) - var levelGroups = groups[level] || (groups[level] = []) - var sublevel = sublevels[level] || (sublevels[level] = []) - var offset = levelItems.length - - level++ - - // max depth reached - put all items into a first group - // alternatively - if group id overflow - avoid proceeding - if (level > maxDepth || group > MAX_GROUP_ID) { - for (var i = 0; i < ids.length; i++) { - levelItems.push(ids[i]) - levelGroups.push(group) - sublevel.push(null, null, null, null) - } - - return offset - } - - levelItems.push(ids[0]) - levelGroups.push(group) - - if (ids.length <= 1) { - sublevel.push(null, null, null, null) - return offset - } - - - var d2 = diam * .5 - var cx = x + d2, cy = y + d2 - - // distribute points by 4 buckets - var lolo = [], lohi = [], hilo = [], hihi = [] - - for (var i$1 = 1, l = ids.length; i$1 < l; i$1++) { - var idx = ids[i$1], - x$1 = points[idx * 2], - y$1 = points[idx * 2 + 1] - x$1 < cx ? (y$1 < cy ? lolo.push(idx) : lohi.push(idx)) : (y$1 < cy ? hilo.push(idx) : hihi.push(idx)) - } - - group <<= 2 - - sublevel.push( - sort(x, y, d2, lolo, level, group), - sort(x, cy, d2, lohi, level, group + 1), - sort(cx, y, d2, hilo, level, group + 2), - sort(cx, cy, d2, hihi, level, group + 3) - ) - - return offset - } - - // get all points within the passed range - function range () { - var args = [], len = arguments.length; - while ( len-- ) args[ len ] = arguments[ len ]; - - var options - - if (isObj(args[args.length - 1])) { - var arg = args.pop() - - // detect if that was a rect object - if (!args.length && (arg.x != null || arg.l != null || arg.left != null)) { - args = [arg] - options = {} - } - - options = pick(arg, { - level: 'level maxLevel', - d: 'd diam diameter r radius px pxSize pixel pixelSize maxD size minSize', - lod: 'lod details ranges offsets' - }) - } - else { - options = {} - } - - if (!args.length) { args = bounds } - - var box = rect.apply( void 0, args ) - - var ref = [ - Math.min(box.x, box.x + box.width), - Math.min(box.y, box.y + box.height), - Math.max(box.x, box.x + box.width), - Math.max(box.y, box.y + box.height) - ]; - var minX = ref[0]; - var minY = ref[1]; - var maxX = ref[2]; - var maxY = ref[3]; - - var ref$1 = normalize([minX, minY, maxX, maxY], bounds ); - var nminX = ref$1[0]; - var nminY = ref$1[1]; - var nmaxX = ref$1[2]; - var nmaxY = ref$1[3]; - - var maxLevel = defined(options.level, levels.length) - - // limit maxLevel by px size - if (options.d != null) { - var d - if (typeof options.d === 'number') { d = [options.d, options.d] } - else if (options.d.length) { d = options.d } - - maxLevel = Math.min( - Math.max( - Math.ceil(-log2(Math.abs(d[0]) / (bounds[2] - bounds[0]))), - Math.ceil(-log2(Math.abs(d[1]) / (bounds[3] - bounds[1]))) - ), - maxLevel - ) - } - maxLevel = Math.min(maxLevel, levels.length) - - // return levels of details - if (options.lod) { - return lod(nminX, nminY, nmaxX, nmaxY, maxLevel) - } - - - - // do selection ids - var selection = [] - - // FIXME: probably we can do LOD here beforehead - select( 0, 0, 1, 0, 0, 1) - - function select ( lox, loy, d, level, from, to ) { - if (from === null || to === null) { return } - - var hix = lox + d - var hiy = loy + d - - // if box does not intersect level - ignore - if ( nminX > hix || nminY > hiy || nmaxX < lox || nmaxY < loy ) { return } - if ( level >= maxLevel ) { return } - if ( from === to ) { return } - - // if points fall into box range - take it - var levelItems = levels[level] - - if (to === undefined) { to = levelItems.length } - - for (var i = from; i < to; i++) { - var id = levelItems[i] - - var px = srcPoints[ id * 2 ] - var py = srcPoints[ id * 2 + 1 ] - - if ( px >= minX && px <= maxX && py >= minY && py <= maxY ) {selection.push(id) - } - } - - // for every subsection do select - var offsets = sublevels[ level ] - var off0 = offsets[ from * 4 + 0 ] - var off1 = offsets[ from * 4 + 1 ] - var off2 = offsets[ from * 4 + 2 ] - var off3 = offsets[ from * 4 + 3 ] - var end = nextOffset(offsets, from + 1) - - var d2 = d * .5 - var nextLevel = level + 1 - select( lox, loy, d2, nextLevel, off0, off1 || off2 || off3 || end) - select( lox, loy + d2, d2, nextLevel, off1, off2 || off3 || end) - select( lox + d2, loy, d2, nextLevel, off2, off3 || end) - select( lox + d2, loy + d2, d2, nextLevel, off3, end) - } - - function nextOffset(offsets, from) { - var offset = null, i = 0 - while(offset === null) { - offset = offsets[ from * 4 + i ] - i++ - if (i > offsets.length) { return null } - } - return offset - } - - return selection - } - - // get range offsets within levels to render lods appropriate for zoom level - // TODO: it is possible to store minSize of a point to optimize neede level calc - function lod (lox, loy, hix, hiy, maxLevel) { - var ranges = [] - - for (var level = 0; level < maxLevel; level++) { - var levelGroups = groups[level] - var from = offsets[level][0] - - var levelGroupStart = group(lox, loy, level) - var levelGroupEnd = group(hix, hiy, level) - - // FIXME: utilize sublevels to speed up search range here - var startOffset = search.ge(levelGroups, levelGroupStart) - var endOffset = search.gt(levelGroups, levelGroupEnd, startOffset, levelGroups.length - 1) - - ranges[level] = [startOffset + from, endOffset + from] - } - - return ranges - } - - // get group id closest to the x,y coordinate, corresponding to a level - function group (x, y, level) { - var group = 1 - - var cx = .5, cy = .5 - var diam = .5 - - for (var i = 0; i < level; i++) { - group <<= 2 - - group += x < cx ? (y < cy ? 0 : 1) : (y < cy ? 2 : 3) - - diam *= .5 - - cx += x < cx ? -diam : diam - cy += y < cy ? -diam : diam - } - - return group - } -} - - -// normalize points by bounds -function normalize (pts, bounds) { - var lox = bounds[0]; - var loy = bounds[1]; - var hix = bounds[2]; - var hiy = bounds[3]; - var scaleX = 1.0 / (hix - lox) - var scaleY = 1.0 / (hiy - loy) - var result = new Array(pts.length) - - for (var i = 0, n = pts.length / 2; i < n; i++) { - result[2*i] = clamp((pts[2*i] - lox) * scaleX, 0, 1) - result[2*i+1] = clamp((pts[2*i+1] - loy) * scaleY, 0, 1) - } - - return result -} - -},{"array-bounds":70,"binary-search-bounds":96,"clamp":120,"defined":170,"dtype":175,"flatten-vertex-data":244,"is-obj":468,"math-log2":479,"parse-rect":504,"pick-by-alias":511}],59:[function(_dereq_,module,exports){ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var meta_1 = _dereq_("@turf/meta"); -// Note: change RADIUS => earthRadius -var RADIUS = 6378137; -/** - * Takes one or more features and returns their area in square meters. - * - * @name area - * @param {GeoJSON} geojson input GeoJSON feature(s) - * @returns {number} area in square meters - * @example - * var polygon = turf.polygon([[[125, -15], [113, -22], [154, -27], [144, -15], [125, -15]]]); - * - * var area = turf.area(polygon); - * - * //addToMap - * var addToMap = [polygon] - * polygon.properties.area = area - */ -function area(geojson) { - return meta_1.geomReduce(geojson, function (value, geom) { - return value + calculateArea(geom); - }, 0); -} -exports.default = area; -/** - * Calculate Area - * - * @private - * @param {Geometry} geom GeoJSON Geometries - * @returns {number} area - */ -function calculateArea(geom) { - var total = 0; - var i; - switch (geom.type) { - case "Polygon": - return polygonArea(geom.coordinates); - case "MultiPolygon": - for (i = 0; i < geom.coordinates.length; i++) { - total += polygonArea(geom.coordinates[i]); - } - return total; - case "Point": - case "MultiPoint": - case "LineString": - case "MultiLineString": - return 0; +},{"d3-array":158,"d3-collection":159,"d3-shape":167}],58:[function(_dereq_,module,exports){ +!function() { + var d3 = { + version: "3.5.18" + }; + var d3_arraySlice = [].slice, d3_array = function(list) { + return d3_arraySlice.call(list); + }; + var d3_document = this.document; + function d3_documentElement(node) { + return node && (node.ownerDocument || node.document || node).documentElement; + } + function d3_window(node) { + return node && (node.ownerDocument && node.ownerDocument.defaultView || node.document && node || node.defaultView); + } + if (d3_document) { + try { + d3_array(d3_document.documentElement.childNodes)[0].nodeType; + } catch (e) { + d3_array = function(list) { + var i = list.length, array = new Array(i); + while (i--) array[i] = list[i]; + return array; + }; } - return 0; -} -function polygonArea(coords) { - var total = 0; - if (coords && coords.length > 0) { - total += Math.abs(ringArea(coords[0])); - for (var i = 1; i < coords.length; i++) { - total -= Math.abs(ringArea(coords[i])); - } + } + if (!Date.now) Date.now = function() { + return +new Date(); + }; + if (d3_document) { + try { + d3_document.createElement("DIV").style.setProperty("opacity", 0, ""); + } catch (error) { + var d3_element_prototype = this.Element.prototype, d3_element_setAttribute = d3_element_prototype.setAttribute, d3_element_setAttributeNS = d3_element_prototype.setAttributeNS, d3_style_prototype = this.CSSStyleDeclaration.prototype, d3_style_setProperty = d3_style_prototype.setProperty; + d3_element_prototype.setAttribute = function(name, value) { + d3_element_setAttribute.call(this, name, value + ""); + }; + d3_element_prototype.setAttributeNS = function(space, local, value) { + d3_element_setAttributeNS.call(this, space, local, value + ""); + }; + d3_style_prototype.setProperty = function(name, value, priority) { + d3_style_setProperty.call(this, name, value + "", priority); + }; } - return total; -} -/** - * @private - * Calculate the approximate area of the polygon were it projected onto the earth. - * Note that this area will be positive if ring is oriented clockwise, otherwise it will be negative. - * - * Reference: - * Robert. G. Chamberlain and William H. Duquette, "Some Algorithms for Polygons on a Sphere", - * JPL Publication 07-03, Jet Propulsion - * Laboratory, Pasadena, CA, June 2007 http://trs-new.jpl.nasa.gov/dspace/handle/2014/40409 - * - * @param {Array>} coords Ring Coordinates - * @returns {number} The approximate signed geodesic area of the polygon in square meters. - */ -function ringArea(coords) { - var p1; - var p2; - var p3; - var lowerIndex; - var middleIndex; - var upperIndex; - var i; - var total = 0; - var coordsLength = coords.length; - if (coordsLength > 2) { - for (i = 0; i < coordsLength; i++) { - if (i === coordsLength - 2) { - lowerIndex = coordsLength - 2; - middleIndex = coordsLength - 1; - upperIndex = 0; - } - else if (i === coordsLength - 1) { - lowerIndex = coordsLength - 1; - middleIndex = 0; - upperIndex = 1; - } - else { - lowerIndex = i; - middleIndex = i + 1; - upperIndex = i + 2; - } - p1 = coords[lowerIndex]; - p2 = coords[middleIndex]; - p3 = coords[upperIndex]; - total += (rad(p3[0]) - rad(p1[0])) * Math.sin(rad(p2[1])); - } - total = total * RADIUS * RADIUS / 2; + } + d3.ascending = d3_ascending; + function d3_ascending(a, b) { + return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; + } + d3.descending = function(a, b) { + return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN; + }; + d3.min = function(array, f) { + var i = -1, n = array.length, a, b; + if (arguments.length === 1) { + while (++i < n) if ((b = array[i]) != null && b >= b) { + a = b; + break; + } + while (++i < n) if ((b = array[i]) != null && a > b) a = b; + } else { + while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) { + a = b; + break; + } + while (++i < n) if ((b = f.call(array, array[i], i)) != null && a > b) a = b; } - return total; -} -function rad(num) { - return num * Math.PI / 180; -} - -},{"@turf/meta":63}],60:[function(_dereq_,module,exports){ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var meta_1 = _dereq_("@turf/meta"); -/** - * Takes a set of features, calculates the bbox of all input features, and returns a bounding box. - * - * @name bbox - * @param {GeoJSON} geojson any GeoJSON object - * @returns {BBox} bbox extent in [minX, minY, maxX, maxY] order - * @example - * var line = turf.lineString([[-74, 40], [-78, 42], [-82, 35]]); - * var bbox = turf.bbox(line); - * var bboxPolygon = turf.bboxPolygon(bbox); - * - * //addToMap - * var addToMap = [line, bboxPolygon] - */ -function bbox(geojson) { - var result = [Infinity, Infinity, -Infinity, -Infinity]; - meta_1.coordEach(geojson, function (coord) { - if (result[0] > coord[0]) { - result[0] = coord[0]; - } - if (result[1] > coord[1]) { - result[1] = coord[1]; - } - if (result[2] < coord[0]) { - result[2] = coord[0]; - } - if (result[3] < coord[1]) { - result[3] = coord[1]; - } - }); - return result; -} -exports.default = bbox; - -},{"@turf/meta":63}],61:[function(_dereq_,module,exports){ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var meta_1 = _dereq_("@turf/meta"); -var helpers_1 = _dereq_("@turf/helpers"); -/** - * Takes one or more features and calculates the centroid using the mean of all vertices. - * This lessens the effect of small islands and artifacts when calculating the centroid of a set of polygons. - * - * @name centroid - * @param {GeoJSON} geojson GeoJSON to be centered - * @param {Object} [options={}] Optional Parameters - * @param {Object} [options.properties={}] an Object that is used as the {@link Feature}'s properties - * @returns {Feature} the centroid of the input features - * @example - * var polygon = turf.polygon([[[-81, 41], [-88, 36], [-84, 31], [-80, 33], [-77, 39], [-81, 41]]]); - * - * var centroid = turf.centroid(polygon); - * - * //addToMap - * var addToMap = [polygon, centroid] - */ -function centroid(geojson, options) { - if (options === void 0) { options = {}; } - var xSum = 0; - var ySum = 0; - var len = 0; - meta_1.coordEach(geojson, function (coord) { - xSum += coord[0]; - ySum += coord[1]; - len++; - }); - return helpers_1.point([xSum / len, ySum / len], options.properties); -} -exports.default = centroid; - -},{"@turf/helpers":62,"@turf/meta":63}],62:[function(_dereq_,module,exports){ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -/** - * @module helpers - */ -/** - * Earth Radius used with the Harvesine formula and approximates using a spherical (non-ellipsoid) Earth. - * - * @memberof helpers - * @type {number} - */ -exports.earthRadius = 6371008.8; -/** - * Unit of measurement factors using a spherical (non-ellipsoid) earth radius. - * - * @memberof helpers - * @type {Object} - */ -exports.factors = { - centimeters: exports.earthRadius * 100, - centimetres: exports.earthRadius * 100, - degrees: exports.earthRadius / 111325, - feet: exports.earthRadius * 3.28084, - inches: exports.earthRadius * 39.370, - kilometers: exports.earthRadius / 1000, - kilometres: exports.earthRadius / 1000, - meters: exports.earthRadius, - metres: exports.earthRadius, - miles: exports.earthRadius / 1609.344, - millimeters: exports.earthRadius * 1000, - millimetres: exports.earthRadius * 1000, - nauticalmiles: exports.earthRadius / 1852, - radians: 1, - yards: exports.earthRadius / 1.0936, -}; -/** - * Units of measurement factors based on 1 meter. - * - * @memberof helpers - * @type {Object} - */ -exports.unitsFactors = { - centimeters: 100, - centimetres: 100, - degrees: 1 / 111325, - feet: 3.28084, - inches: 39.370, - kilometers: 1 / 1000, - kilometres: 1 / 1000, - meters: 1, - metres: 1, - miles: 1 / 1609.344, - millimeters: 1000, - millimetres: 1000, - nauticalmiles: 1 / 1852, - radians: 1 / exports.earthRadius, - yards: 1 / 1.0936, -}; -/** - * Area of measurement factors based on 1 square meter. - * - * @memberof helpers - * @type {Object} - */ -exports.areaFactors = { - acres: 0.000247105, - centimeters: 10000, - centimetres: 10000, - feet: 10.763910417, - inches: 1550.003100006, - kilometers: 0.000001, - kilometres: 0.000001, - meters: 1, - metres: 1, - miles: 3.86e-7, - millimeters: 1000000, - millimetres: 1000000, - yards: 1.195990046, -}; -/** - * Wraps a GeoJSON {@link Geometry} in a GeoJSON {@link Feature}. - * - * @name feature - * @param {Geometry} geometry input geometry - * @param {Object} [properties={}] an Object of key-value pairs to add as properties - * @param {Object} [options={}] Optional Parameters - * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature - * @param {string|number} [options.id] Identifier associated with the Feature - * @returns {Feature} a GeoJSON Feature - * @example - * var geometry = { - * "type": "Point", - * "coordinates": [110, 50] - * }; - * - * var feature = turf.feature(geometry); - * - * //=feature - */ -function feature(geom, properties, options) { - if (options === void 0) { options = {}; } - var feat = { type: "Feature" }; - if (options.id === 0 || options.id) { - feat.id = options.id; + return a; + }; + d3.max = function(array, f) { + var i = -1, n = array.length, a, b; + if (arguments.length === 1) { + while (++i < n) if ((b = array[i]) != null && b >= b) { + a = b; + break; + } + while (++i < n) if ((b = array[i]) != null && b > a) a = b; + } else { + while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) { + a = b; + break; + } + while (++i < n) if ((b = f.call(array, array[i], i)) != null && b > a) a = b; } - if (options.bbox) { - feat.bbox = options.bbox; + return a; + }; + d3.extent = function(array, f) { + var i = -1, n = array.length, a, b, c; + if (arguments.length === 1) { + while (++i < n) if ((b = array[i]) != null && b >= b) { + a = c = b; + break; + } + while (++i < n) if ((b = array[i]) != null) { + if (a > b) a = b; + if (c < b) c = b; + } + } else { + while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) { + a = c = b; + break; + } + while (++i < n) if ((b = f.call(array, array[i], i)) != null) { + if (a > b) a = b; + if (c < b) c = b; + } } - feat.properties = properties || {}; - feat.geometry = geom; - return feat; -} -exports.feature = feature; -/** - * Creates a GeoJSON {@link Geometry} from a Geometry string type & coordinates. - * For GeometryCollection type use `helpers.geometryCollection` - * - * @name geometry - * @param {string} type Geometry Type - * @param {Array} coordinates Coordinates - * @param {Object} [options={}] Optional Parameters - * @returns {Geometry} a GeoJSON Geometry - * @example - * var type = "Point"; - * var coordinates = [110, 50]; - * var geometry = turf.geometry(type, coordinates); - * // => geometry - */ -function geometry(type, coordinates, options) { - if (options === void 0) { options = {}; } - switch (type) { - case "Point": return point(coordinates).geometry; - case "LineString": return lineString(coordinates).geometry; - case "Polygon": return polygon(coordinates).geometry; - case "MultiPoint": return multiPoint(coordinates).geometry; - case "MultiLineString": return multiLineString(coordinates).geometry; - case "MultiPolygon": return multiPolygon(coordinates).geometry; - default: throw new Error(type + " is invalid"); + return [ a, c ]; + }; + function d3_number(x) { + return x === null ? NaN : +x; + } + function d3_numeric(x) { + return !isNaN(x); + } + d3.sum = function(array, f) { + var s = 0, n = array.length, a, i = -1; + if (arguments.length === 1) { + while (++i < n) if (d3_numeric(a = +array[i])) s += a; + } else { + while (++i < n) if (d3_numeric(a = +f.call(array, array[i], i))) s += a; } -} -exports.geometry = geometry; -/** - * Creates a {@link Point} {@link Feature} from a Position. - * - * @name point - * @param {Array} coordinates longitude, latitude position (each in decimal degrees) - * @param {Object} [properties={}] an Object of key-value pairs to add as properties - * @param {Object} [options={}] Optional Parameters - * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature - * @param {string|number} [options.id] Identifier associated with the Feature - * @returns {Feature} a Point feature - * @example - * var point = turf.point([-75.343, 39.984]); - * - * //=point - */ -function point(coordinates, properties, options) { - if (options === void 0) { options = {}; } - var geom = { - type: "Point", - coordinates: coordinates, - }; - return feature(geom, properties, options); -} -exports.point = point; -/** - * Creates a {@link Point} {@link FeatureCollection} from an Array of Point coordinates. - * - * @name points - * @param {Array>} coordinates an array of Points - * @param {Object} [properties={}] Translate these properties to each Feature - * @param {Object} [options={}] Optional Parameters - * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] - * associated with the FeatureCollection - * @param {string|number} [options.id] Identifier associated with the FeatureCollection - * @returns {FeatureCollection} Point Feature - * @example - * var points = turf.points([ - * [-75, 39], - * [-80, 45], - * [-78, 50] - * ]); - * - * //=points - */ -function points(coordinates, properties, options) { - if (options === void 0) { options = {}; } - return featureCollection(coordinates.map(function (coords) { - return point(coords, properties); - }), options); -} -exports.points = points; -/** - * Creates a {@link Polygon} {@link Feature} from an Array of LinearRings. - * - * @name polygon - * @param {Array>>} coordinates an array of LinearRings - * @param {Object} [properties={}] an Object of key-value pairs to add as properties - * @param {Object} [options={}] Optional Parameters - * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature - * @param {string|number} [options.id] Identifier associated with the Feature - * @returns {Feature} Polygon Feature - * @example - * var polygon = turf.polygon([[[-5, 52], [-4, 56], [-2, 51], [-7, 54], [-5, 52]]], { name: 'poly1' }); - * - * //=polygon - */ -function polygon(coordinates, properties, options) { - if (options === void 0) { options = {}; } - for (var _i = 0, coordinates_1 = coordinates; _i < coordinates_1.length; _i++) { - var ring = coordinates_1[_i]; - if (ring.length < 4) { - throw new Error("Each LinearRing of a Polygon must have 4 or more Positions."); + return s; + }; + d3.mean = function(array, f) { + var s = 0, n = array.length, a, i = -1, j = n; + if (arguments.length === 1) { + while (++i < n) if (d3_numeric(a = d3_number(array[i]))) s += a; else --j; + } else { + while (++i < n) if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) s += a; else --j; + } + if (j) return s / j; + }; + d3.quantile = function(values, p) { + var H = (values.length - 1) * p + 1, h = Math.floor(H), v = +values[h - 1], e = H - h; + return e ? v + e * (values[h] - v) : v; + }; + d3.median = function(array, f) { + var numbers = [], n = array.length, a, i = -1; + if (arguments.length === 1) { + while (++i < n) if (d3_numeric(a = d3_number(array[i]))) numbers.push(a); + } else { + while (++i < n) if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) numbers.push(a); + } + if (numbers.length) return d3.quantile(numbers.sort(d3_ascending), .5); + }; + d3.variance = function(array, f) { + var n = array.length, m = 0, a, d, s = 0, i = -1, j = 0; + if (arguments.length === 1) { + while (++i < n) { + if (d3_numeric(a = d3_number(array[i]))) { + d = a - m; + m += d / ++j; + s += d * (a - m); } - for (var j = 0; j < ring[ring.length - 1].length; j++) { - // Check if first point of Polygon contains two numbers - if (ring[ring.length - 1][j] !== ring[0][j]) { - throw new Error("First and last Position are not equivalent."); - } + } + } else { + while (++i < n) { + if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) { + d = a - m; + m += d / ++j; + s += d * (a - m); } + } } - var geom = { - type: "Polygon", - coordinates: coordinates, + if (j > 1) return s / (j - 1); + }; + d3.deviation = function() { + var v = d3.variance.apply(this, arguments); + return v ? Math.sqrt(v) : v; + }; + function d3_bisector(compare) { + return { + left: function(a, x, lo, hi) { + if (arguments.length < 3) lo = 0; + if (arguments.length < 4) hi = a.length; + while (lo < hi) { + var mid = lo + hi >>> 1; + if (compare(a[mid], x) < 0) lo = mid + 1; else hi = mid; + } + return lo; + }, + right: function(a, x, lo, hi) { + if (arguments.length < 3) lo = 0; + if (arguments.length < 4) hi = a.length; + while (lo < hi) { + var mid = lo + hi >>> 1; + if (compare(a[mid], x) > 0) hi = mid; else lo = mid + 1; + } + return lo; + } }; - return feature(geom, properties, options); -} -exports.polygon = polygon; -/** - * Creates a {@link Polygon} {@link FeatureCollection} from an Array of Polygon coordinates. - * - * @name polygons - * @param {Array>>>} coordinates an array of Polygon coordinates - * @param {Object} [properties={}] an Object of key-value pairs to add as properties - * @param {Object} [options={}] Optional Parameters - * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature - * @param {string|number} [options.id] Identifier associated with the FeatureCollection - * @returns {FeatureCollection} Polygon FeatureCollection - * @example - * var polygons = turf.polygons([ - * [[[-5, 52], [-4, 56], [-2, 51], [-7, 54], [-5, 52]]], - * [[[-15, 42], [-14, 46], [-12, 41], [-17, 44], [-15, 42]]], - * ]); - * - * //=polygons - */ -function polygons(coordinates, properties, options) { - if (options === void 0) { options = {}; } - return featureCollection(coordinates.map(function (coords) { - return polygon(coords, properties); - }), options); -} -exports.polygons = polygons; -/** - * Creates a {@link LineString} {@link Feature} from an Array of Positions. - * - * @name lineString - * @param {Array>} coordinates an array of Positions - * @param {Object} [properties={}] an Object of key-value pairs to add as properties - * @param {Object} [options={}] Optional Parameters - * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature - * @param {string|number} [options.id] Identifier associated with the Feature - * @returns {Feature} LineString Feature - * @example - * var linestring1 = turf.lineString([[-24, 63], [-23, 60], [-25, 65], [-20, 69]], {name: 'line 1'}); - * var linestring2 = turf.lineString([[-14, 43], [-13, 40], [-15, 45], [-10, 49]], {name: 'line 2'}); - * - * //=linestring1 - * //=linestring2 - */ -function lineString(coordinates, properties, options) { - if (options === void 0) { options = {}; } - if (coordinates.length < 2) { - throw new Error("coordinates must be an array of two or more positions"); + } + var d3_bisect = d3_bisector(d3_ascending); + d3.bisectLeft = d3_bisect.left; + d3.bisect = d3.bisectRight = d3_bisect.right; + d3.bisector = function(f) { + return d3_bisector(f.length === 1 ? function(d, x) { + return d3_ascending(f(d), x); + } : f); + }; + d3.shuffle = function(array, i0, i1) { + if ((m = arguments.length) < 3) { + i1 = array.length; + if (m < 2) i0 = 0; } - var geom = { - type: "LineString", - coordinates: coordinates, - }; - return feature(geom, properties, options); -} -exports.lineString = lineString; -/** - * Creates a {@link LineString} {@link FeatureCollection} from an Array of LineString coordinates. - * - * @name lineStrings - * @param {Array>>} coordinates an array of LinearRings - * @param {Object} [properties={}] an Object of key-value pairs to add as properties - * @param {Object} [options={}] Optional Parameters - * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] - * associated with the FeatureCollection - * @param {string|number} [options.id] Identifier associated with the FeatureCollection - * @returns {FeatureCollection} LineString FeatureCollection - * @example - * var linestrings = turf.lineStrings([ - * [[-24, 63], [-23, 60], [-25, 65], [-20, 69]], - * [[-14, 43], [-13, 40], [-15, 45], [-10, 49]] - * ]); - * - * //=linestrings - */ -function lineStrings(coordinates, properties, options) { - if (options === void 0) { options = {}; } - return featureCollection(coordinates.map(function (coords) { - return lineString(coords, properties); - }), options); -} -exports.lineStrings = lineStrings; -/** - * Takes one or more {@link Feature|Features} and creates a {@link FeatureCollection}. - * - * @name featureCollection - * @param {Feature[]} features input features - * @param {Object} [options={}] Optional Parameters - * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature - * @param {string|number} [options.id] Identifier associated with the Feature - * @returns {FeatureCollection} FeatureCollection of Features - * @example - * var locationA = turf.point([-75.343, 39.984], {name: 'Location A'}); - * var locationB = turf.point([-75.833, 39.284], {name: 'Location B'}); - * var locationC = turf.point([-75.534, 39.123], {name: 'Location C'}); - * - * var collection = turf.featureCollection([ - * locationA, - * locationB, - * locationC - * ]); - * - * //=collection - */ -function featureCollection(features, options) { - if (options === void 0) { options = {}; } - var fc = { type: "FeatureCollection" }; - if (options.id) { - fc.id = options.id; + var m = i1 - i0, t, i; + while (m) { + i = Math.random() * m-- | 0; + t = array[m + i0], array[m + i0] = array[i + i0], array[i + i0] = t; } - if (options.bbox) { - fc.bbox = options.bbox; + return array; + }; + d3.permute = function(array, indexes) { + var i = indexes.length, permutes = new Array(i); + while (i--) permutes[i] = array[indexes[i]]; + return permutes; + }; + d3.pairs = function(array) { + var i = 0, n = array.length - 1, p0, p1 = array[0], pairs = new Array(n < 0 ? 0 : n); + while (i < n) pairs[i] = [ p0 = p1, p1 = array[++i] ]; + return pairs; + }; + d3.transpose = function(matrix) { + if (!(n = matrix.length)) return []; + for (var i = -1, m = d3.min(matrix, d3_transposeLength), transpose = new Array(m); ++i < m; ) { + for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n; ) { + row[j] = matrix[j][i]; + } } - fc.features = features; - return fc; -} -exports.featureCollection = featureCollection; -/** - * Creates a {@link Feature} based on a - * coordinate array. Properties can be added optionally. - * - * @name multiLineString - * @param {Array>>} coordinates an array of LineStrings - * @param {Object} [properties={}] an Object of key-value pairs to add as properties - * @param {Object} [options={}] Optional Parameters - * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature - * @param {string|number} [options.id] Identifier associated with the Feature - * @returns {Feature} a MultiLineString feature - * @throws {Error} if no coordinates are passed - * @example - * var multiLine = turf.multiLineString([[[0,0],[10,10]]]); - * - * //=multiLine - */ -function multiLineString(coordinates, properties, options) { - if (options === void 0) { options = {}; } - var geom = { - type: "MultiLineString", - coordinates: coordinates, + return transpose; + }; + function d3_transposeLength(d) { + return d.length; + } + d3.zip = function() { + return d3.transpose(arguments); + }; + d3.keys = function(map) { + var keys = []; + for (var key in map) keys.push(key); + return keys; + }; + d3.values = function(map) { + var values = []; + for (var key in map) values.push(map[key]); + return values; + }; + d3.entries = function(map) { + var entries = []; + for (var key in map) entries.push({ + key: key, + value: map[key] + }); + return entries; + }; + d3.merge = function(arrays) { + var n = arrays.length, m, i = -1, j = 0, merged, array; + while (++i < n) j += arrays[i].length; + merged = new Array(j); + while (--n >= 0) { + array = arrays[n]; + m = array.length; + while (--m >= 0) { + merged[--j] = array[m]; + } + } + return merged; + }; + var abs = Math.abs; + d3.range = function(start, stop, step) { + if (arguments.length < 3) { + step = 1; + if (arguments.length < 2) { + stop = start; + start = 0; + } + } + if ((stop - start) / step === Infinity) throw new Error("infinite range"); + var range = [], k = d3_range_integerScale(abs(step)), i = -1, j; + start *= k, stop *= k, step *= k; + if (step < 0) while ((j = start + step * ++i) > stop) range.push(j / k); else while ((j = start + step * ++i) < stop) range.push(j / k); + return range; + }; + function d3_range_integerScale(x) { + var k = 1; + while (x * k % 1) k *= 10; + return k; + } + function d3_class(ctor, properties) { + for (var key in properties) { + Object.defineProperty(ctor.prototype, key, { + value: properties[key], + enumerable: false + }); + } + } + d3.map = function(object, f) { + var map = new d3_Map(); + if (object instanceof d3_Map) { + object.forEach(function(key, value) { + map.set(key, value); + }); + } else if (Array.isArray(object)) { + var i = -1, n = object.length, o; + if (arguments.length === 1) while (++i < n) map.set(i, object[i]); else while (++i < n) map.set(f.call(object, o = object[i], i), o); + } else { + for (var key in object) map.set(key, object[key]); + } + return map; + }; + function d3_Map() { + this._ = Object.create(null); + } + var d3_map_proto = "__proto__", d3_map_zero = "\x00"; + d3_class(d3_Map, { + has: d3_map_has, + get: function(key) { + return this._[d3_map_escape(key)]; + }, + set: function(key, value) { + return this._[d3_map_escape(key)] = value; + }, + remove: d3_map_remove, + keys: d3_map_keys, + values: function() { + var values = []; + for (var key in this._) values.push(this._[key]); + return values; + }, + entries: function() { + var entries = []; + for (var key in this._) entries.push({ + key: d3_map_unescape(key), + value: this._[key] + }); + return entries; + }, + size: d3_map_size, + empty: d3_map_empty, + forEach: function(f) { + for (var key in this._) f.call(this, d3_map_unescape(key), this._[key]); + } + }); + function d3_map_escape(key) { + return (key += "") === d3_map_proto || key[0] === d3_map_zero ? d3_map_zero + key : key; + } + function d3_map_unescape(key) { + return (key += "")[0] === d3_map_zero ? key.slice(1) : key; + } + function d3_map_has(key) { + return d3_map_escape(key) in this._; + } + function d3_map_remove(key) { + return (key = d3_map_escape(key)) in this._ && delete this._[key]; + } + function d3_map_keys() { + var keys = []; + for (var key in this._) keys.push(d3_map_unescape(key)); + return keys; + } + function d3_map_size() { + var size = 0; + for (var key in this._) ++size; + return size; + } + function d3_map_empty() { + for (var key in this._) return false; + return true; + } + d3.nest = function() { + var nest = {}, keys = [], sortKeys = [], sortValues, rollup; + function map(mapType, array, depth) { + if (depth >= keys.length) return rollup ? rollup.call(nest, array) : sortValues ? array.sort(sortValues) : array; + var i = -1, n = array.length, key = keys[depth++], keyValue, object, setter, valuesByKey = new d3_Map(), values; + while (++i < n) { + if (values = valuesByKey.get(keyValue = key(object = array[i]))) { + values.push(object); + } else { + valuesByKey.set(keyValue, [ object ]); + } + } + if (mapType) { + object = mapType(); + setter = function(keyValue, values) { + object.set(keyValue, map(mapType, values, depth)); + }; + } else { + object = {}; + setter = function(keyValue, values) { + object[keyValue] = map(mapType, values, depth); + }; + } + valuesByKey.forEach(setter); + return object; + } + function entries(map, depth) { + if (depth >= keys.length) return map; + var array = [], sortKey = sortKeys[depth++]; + map.forEach(function(key, keyMap) { + array.push({ + key: key, + values: entries(keyMap, depth) + }); + }); + return sortKey ? array.sort(function(a, b) { + return sortKey(a.key, b.key); + }) : array; + } + nest.map = function(array, mapType) { + return map(mapType, array, 0); }; - return feature(geom, properties, options); -} -exports.multiLineString = multiLineString; -/** - * Creates a {@link Feature} based on a - * coordinate array. Properties can be added optionally. - * - * @name multiPoint - * @param {Array>} coordinates an array of Positions - * @param {Object} [properties={}] an Object of key-value pairs to add as properties - * @param {Object} [options={}] Optional Parameters - * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature - * @param {string|number} [options.id] Identifier associated with the Feature - * @returns {Feature} a MultiPoint feature - * @throws {Error} if no coordinates are passed - * @example - * var multiPt = turf.multiPoint([[0,0],[10,10]]); - * - * //=multiPt - */ -function multiPoint(coordinates, properties, options) { - if (options === void 0) { options = {}; } - var geom = { - type: "MultiPoint", - coordinates: coordinates, + nest.entries = function(array) { + return entries(map(d3.map, array, 0), 0); }; - return feature(geom, properties, options); -} -exports.multiPoint = multiPoint; -/** - * Creates a {@link Feature} based on a - * coordinate array. Properties can be added optionally. - * - * @name multiPolygon - * @param {Array>>>} coordinates an array of Polygons - * @param {Object} [properties={}] an Object of key-value pairs to add as properties - * @param {Object} [options={}] Optional Parameters - * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature - * @param {string|number} [options.id] Identifier associated with the Feature - * @returns {Feature} a multipolygon feature - * @throws {Error} if no coordinates are passed - * @example - * var multiPoly = turf.multiPolygon([[[[0,0],[0,10],[10,10],[10,0],[0,0]]]]); - * - * //=multiPoly - * - */ -function multiPolygon(coordinates, properties, options) { - if (options === void 0) { options = {}; } - var geom = { - type: "MultiPolygon", - coordinates: coordinates, + nest.key = function(d) { + keys.push(d); + return nest; }; - return feature(geom, properties, options); -} -exports.multiPolygon = multiPolygon; -/** - * Creates a {@link Feature} based on a - * coordinate array. Properties can be added optionally. - * - * @name geometryCollection - * @param {Array} geometries an array of GeoJSON Geometries - * @param {Object} [properties={}] an Object of key-value pairs to add as properties - * @param {Object} [options={}] Optional Parameters - * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature - * @param {string|number} [options.id] Identifier associated with the Feature - * @returns {Feature} a GeoJSON GeometryCollection Feature - * @example - * var pt = turf.geometry("Point", [100, 0]); - * var line = turf.geometry("LineString", [[101, 0], [102, 1]]); - * var collection = turf.geometryCollection([pt, line]); - * - * // => collection - */ -function geometryCollection(geometries, properties, options) { - if (options === void 0) { options = {}; } - var geom = { - type: "GeometryCollection", - geometries: geometries, + nest.sortKeys = function(order) { + sortKeys[keys.length - 1] = order; + return nest; }; - return feature(geom, properties, options); -} -exports.geometryCollection = geometryCollection; -/** - * Round number to precision - * - * @param {number} num Number - * @param {number} [precision=0] Precision - * @returns {number} rounded number - * @example - * turf.round(120.4321) - * //=120 - * - * turf.round(120.4321, 2) - * //=120.43 - */ -function round(num, precision) { - if (precision === void 0) { precision = 0; } - if (precision && !(precision >= 0)) { - throw new Error("precision must be a positive number"); + nest.sortValues = function(order) { + sortValues = order; + return nest; + }; + nest.rollup = function(f) { + rollup = f; + return nest; + }; + return nest; + }; + d3.set = function(array) { + var set = new d3_Set(); + if (array) for (var i = 0, n = array.length; i < n; ++i) set.add(array[i]); + return set; + }; + function d3_Set() { + this._ = Object.create(null); + } + d3_class(d3_Set, { + has: d3_map_has, + add: function(key) { + this._[d3_map_escape(key += "")] = true; + return key; + }, + remove: d3_map_remove, + values: d3_map_keys, + size: d3_map_size, + empty: d3_map_empty, + forEach: function(f) { + for (var key in this._) f.call(this, d3_map_unescape(key)); } - var multiplier = Math.pow(10, precision || 0); - return Math.round(num * multiplier) / multiplier; -} -exports.round = round; -/** - * Convert a distance measurement (assuming a spherical Earth) from radians to a more friendly unit. - * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet - * - * @name radiansToLength - * @param {number} radians in radians across the sphere - * @param {string} [units="kilometers"] can be degrees, radians, miles, or kilometers inches, yards, metres, - * meters, kilometres, kilometers. - * @returns {number} distance - */ -function radiansToLength(radians, units) { - if (units === void 0) { units = "kilometers"; } - var factor = exports.factors[units]; - if (!factor) { - throw new Error(units + " units is invalid"); + }); + d3.behavior = {}; + function d3_identity(d) { + return d; + } + d3.rebind = function(target, source) { + var i = 1, n = arguments.length, method; + while (++i < n) target[method = arguments[i]] = d3_rebind(target, source, source[method]); + return target; + }; + function d3_rebind(target, source, method) { + return function() { + var value = method.apply(source, arguments); + return value === source ? target : value; + }; + } + function d3_vendorSymbol(object, name) { + if (name in object) return name; + name = name.charAt(0).toUpperCase() + name.slice(1); + for (var i = 0, n = d3_vendorPrefixes.length; i < n; ++i) { + var prefixName = d3_vendorPrefixes[i] + name; + if (prefixName in object) return prefixName; } - return radians * factor; -} -exports.radiansToLength = radiansToLength; -/** - * Convert a distance measurement (assuming a spherical Earth) from a real-world unit into radians - * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet - * - * @name lengthToRadians - * @param {number} distance in real units - * @param {string} [units="kilometers"] can be degrees, radians, miles, or kilometers inches, yards, metres, - * meters, kilometres, kilometers. - * @returns {number} radians - */ -function lengthToRadians(distance, units) { - if (units === void 0) { units = "kilometers"; } - var factor = exports.factors[units]; - if (!factor) { - throw new Error(units + " units is invalid"); + } + var d3_vendorPrefixes = [ "webkit", "ms", "moz", "Moz", "o", "O" ]; + function d3_noop() {} + d3.dispatch = function() { + var dispatch = new d3_dispatch(), i = -1, n = arguments.length; + while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch); + return dispatch; + }; + function d3_dispatch() {} + d3_dispatch.prototype.on = function(type, listener) { + var i = type.indexOf("."), name = ""; + if (i >= 0) { + name = type.slice(i + 1); + type = type.slice(0, i); } - return distance / factor; -} -exports.lengthToRadians = lengthToRadians; -/** - * Convert a distance measurement (assuming a spherical Earth) from a real-world unit into degrees - * Valid units: miles, nauticalmiles, inches, yards, meters, metres, centimeters, kilometres, feet - * - * @name lengthToDegrees - * @param {number} distance in real units - * @param {string} [units="kilometers"] can be degrees, radians, miles, or kilometers inches, yards, metres, - * meters, kilometres, kilometers. - * @returns {number} degrees - */ -function lengthToDegrees(distance, units) { - return radiansToDegrees(lengthToRadians(distance, units)); -} -exports.lengthToDegrees = lengthToDegrees; -/** - * Converts any bearing angle from the north line direction (positive clockwise) - * and returns an angle between 0-360 degrees (positive clockwise), 0 being the north line - * - * @name bearingToAzimuth - * @param {number} bearing angle, between -180 and +180 degrees - * @returns {number} angle between 0 and 360 degrees - */ -function bearingToAzimuth(bearing) { - var angle = bearing % 360; - if (angle < 0) { - angle += 360; + if (type) return arguments.length < 2 ? this[type].on(name) : this[type].on(name, listener); + if (arguments.length === 2) { + if (listener == null) for (type in this) { + if (this.hasOwnProperty(type)) this[type].on(name, null); + } + return this; } - return angle; -} -exports.bearingToAzimuth = bearingToAzimuth; -/** - * Converts an angle in radians to degrees - * - * @name radiansToDegrees - * @param {number} radians angle in radians - * @returns {number} degrees between 0 and 360 degrees - */ -function radiansToDegrees(radians) { - var degrees = radians % (2 * Math.PI); - return degrees * 180 / Math.PI; -} -exports.radiansToDegrees = radiansToDegrees; -/** - * Converts an angle in degrees to radians - * - * @name degreesToRadians - * @param {number} degrees angle between 0 and 360 degrees - * @returns {number} angle in radians - */ -function degreesToRadians(degrees) { - var radians = degrees % 360; - return radians * Math.PI / 180; -} -exports.degreesToRadians = degreesToRadians; -/** - * Converts a length to the requested unit. - * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet - * - * @param {number} length to be converted - * @param {Units} [originalUnit="kilometers"] of the length - * @param {Units} [finalUnit="kilometers"] returned unit - * @returns {number} the converted length - */ -function convertLength(length, originalUnit, finalUnit) { - if (originalUnit === void 0) { originalUnit = "kilometers"; } - if (finalUnit === void 0) { finalUnit = "kilometers"; } - if (!(length >= 0)) { - throw new Error("length must be a positive number"); + }; + function d3_dispatch_event(dispatch) { + var listeners = [], listenerByName = new d3_Map(); + function event() { + var z = listeners, i = -1, n = z.length, l; + while (++i < n) if (l = z[i].on) l.apply(this, arguments); + return dispatch; } - return radiansToLength(lengthToRadians(length, originalUnit), finalUnit); -} -exports.convertLength = convertLength; -/** - * Converts a area to the requested unit. - * Valid units: kilometers, kilometres, meters, metres, centimetres, millimeters, acres, miles, yards, feet, inches - * @param {number} area to be converted - * @param {Units} [originalUnit="meters"] of the distance - * @param {Units} [finalUnit="kilometers"] returned unit - * @returns {number} the converted distance - */ -function convertArea(area, originalUnit, finalUnit) { - if (originalUnit === void 0) { originalUnit = "meters"; } - if (finalUnit === void 0) { finalUnit = "kilometers"; } - if (!(area >= 0)) { - throw new Error("area must be a positive number"); + event.on = function(name, listener) { + var l = listenerByName.get(name), i; + if (arguments.length < 2) return l && l.on; + if (l) { + l.on = null; + listeners = listeners.slice(0, i = listeners.indexOf(l)).concat(listeners.slice(i + 1)); + listenerByName.remove(name); + } + if (listener) listeners.push(listenerByName.set(name, { + on: listener + })); + return dispatch; + }; + return event; + } + d3.event = null; + function d3_eventPreventDefault() { + d3.event.preventDefault(); + } + function d3_eventSource() { + var e = d3.event, s; + while (s = e.sourceEvent) e = s; + return e; + } + function d3_eventDispatch(target) { + var dispatch = new d3_dispatch(), i = 0, n = arguments.length; + while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch); + dispatch.of = function(thiz, argumentz) { + return function(e1) { + try { + var e0 = e1.sourceEvent = d3.event; + e1.target = target; + d3.event = e1; + dispatch[e1.type].apply(thiz, argumentz); + } finally { + d3.event = e0; + } + }; + }; + return dispatch; + } + d3.requote = function(s) { + return s.replace(d3_requote_re, "\\$&"); + }; + var d3_requote_re = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g; + var d3_subclass = {}.__proto__ ? function(object, prototype) { + object.__proto__ = prototype; + } : function(object, prototype) { + for (var property in prototype) object[property] = prototype[property]; + }; + function d3_selection(groups) { + d3_subclass(groups, d3_selectionPrototype); + return groups; + } + var d3_select = function(s, n) { + return n.querySelector(s); + }, d3_selectAll = function(s, n) { + return n.querySelectorAll(s); + }, d3_selectMatches = function(n, s) { + var d3_selectMatcher = n.matches || n[d3_vendorSymbol(n, "matchesSelector")]; + d3_selectMatches = function(n, s) { + return d3_selectMatcher.call(n, s); + }; + return d3_selectMatches(n, s); + }; + if (typeof Sizzle === "function") { + d3_select = function(s, n) { + return Sizzle(s, n)[0] || null; + }; + d3_selectAll = Sizzle; + d3_selectMatches = Sizzle.matchesSelector; + } + d3.selection = function() { + return d3.select(d3_document.documentElement); + }; + var d3_selectionPrototype = d3.selection.prototype = []; + d3_selectionPrototype.select = function(selector) { + var subgroups = [], subgroup, subnode, group, node; + selector = d3_selection_selector(selector); + for (var j = -1, m = this.length; ++j < m; ) { + subgroups.push(subgroup = []); + subgroup.parentNode = (group = this[j]).parentNode; + for (var i = -1, n = group.length; ++i < n; ) { + if (node = group[i]) { + subgroup.push(subnode = selector.call(node, node.__data__, i, j)); + if (subnode && "__data__" in node) subnode.__data__ = node.__data__; + } else { + subgroup.push(null); + } + } } - var startFactor = exports.areaFactors[originalUnit]; - if (!startFactor) { - throw new Error("invalid original units"); + return d3_selection(subgroups); + }; + function d3_selection_selector(selector) { + return typeof selector === "function" ? selector : function() { + return d3_select(selector, this); + }; + } + d3_selectionPrototype.selectAll = function(selector) { + var subgroups = [], subgroup, node; + selector = d3_selection_selectorAll(selector); + for (var j = -1, m = this.length; ++j < m; ) { + for (var group = this[j], i = -1, n = group.length; ++i < n; ) { + if (node = group[i]) { + subgroups.push(subgroup = d3_array(selector.call(node, node.__data__, i, j))); + subgroup.parentNode = node; + } + } } - var finalFactor = exports.areaFactors[finalUnit]; - if (!finalFactor) { - throw new Error("invalid final units"); + return d3_selection(subgroups); + }; + function d3_selection_selectorAll(selector) { + return typeof selector === "function" ? selector : function() { + return d3_selectAll(selector, this); + }; + } + var d3_nsXhtml = "http://www.w3.org/1999/xhtml"; + var d3_nsPrefix = { + svg: "http://www.w3.org/2000/svg", + xhtml: d3_nsXhtml, + xlink: "http://www.w3.org/1999/xlink", + xml: "http://www.w3.org/XML/1998/namespace", + xmlns: "http://www.w3.org/2000/xmlns/" + }; + d3.ns = { + prefix: d3_nsPrefix, + qualify: function(name) { + var i = name.indexOf(":"), prefix = name; + if (i >= 0 && (prefix = name.slice(0, i)) !== "xmlns") name = name.slice(i + 1); + return d3_nsPrefix.hasOwnProperty(prefix) ? { + space: d3_nsPrefix[prefix], + local: name + } : name; } - return (area / startFactor) * finalFactor; -} -exports.convertArea = convertArea; -/** - * isNumber - * - * @param {*} num Number to validate - * @returns {boolean} true/false - * @example - * turf.isNumber(123) - * //=true - * turf.isNumber('foo') - * //=false - */ -function isNumber(num) { - return !isNaN(num) && num !== null && !Array.isArray(num) && !/^\s*$/.test(num); -} -exports.isNumber = isNumber; -/** - * isObject - * - * @param {*} input variable to validate - * @returns {boolean} true/false - * @example - * turf.isObject({elevation: 10}) - * //=true - * turf.isObject('foo') - * //=false - */ -function isObject(input) { - return (!!input) && (input.constructor === Object); -} -exports.isObject = isObject; -/** - * Validate BBox - * - * @private - * @param {Array} bbox BBox to validate - * @returns {void} - * @throws Error if BBox is not valid - * @example - * validateBBox([-180, -40, 110, 50]) - * //=OK - * validateBBox([-180, -40]) - * //=Error - * validateBBox('Foo') - * //=Error - * validateBBox(5) - * //=Error - * validateBBox(null) - * //=Error - * validateBBox(undefined) - * //=Error - */ -function validateBBox(bbox) { - if (!bbox) { - throw new Error("bbox is required"); + }; + d3_selectionPrototype.attr = function(name, value) { + if (arguments.length < 2) { + if (typeof name === "string") { + var node = this.node(); + name = d3.ns.qualify(name); + return name.local ? node.getAttributeNS(name.space, name.local) : node.getAttribute(name); + } + for (value in name) this.each(d3_selection_attr(value, name[value])); + return this; } - if (!Array.isArray(bbox)) { - throw new Error("bbox must be an Array"); + return this.each(d3_selection_attr(name, value)); + }; + function d3_selection_attr(name, value) { + name = d3.ns.qualify(name); + function attrNull() { + this.removeAttribute(name); } - if (bbox.length !== 4 && bbox.length !== 6) { - throw new Error("bbox must be an Array of 4 or 6 numbers"); + function attrNullNS() { + this.removeAttributeNS(name.space, name.local); } - bbox.forEach(function (num) { - if (!isNumber(num)) { - throw new Error("bbox must only contain numbers"); - } - }); -} -exports.validateBBox = validateBBox; -/** - * Validate Id - * - * @private - * @param {string|number} id Id to validate - * @returns {void} - * @throws Error if Id is not valid - * @example - * validateId([-180, -40, 110, 50]) - * //=Error - * validateId([-180, -40]) - * //=Error - * validateId('Foo') - * //=OK - * validateId(5) - * //=OK - * validateId(null) - * //=Error - * validateId(undefined) - * //=Error - */ -function validateId(id) { - if (!id) { - throw new Error("id is required"); + function attrConstant() { + this.setAttribute(name, value); } - if (["string", "number"].indexOf(typeof id) === -1) { - throw new Error("id must be a number or a string"); + function attrConstantNS() { + this.setAttributeNS(name.space, name.local, value); } -} -exports.validateId = validateId; -// Deprecated methods -function radians2degrees() { - throw new Error("method has been renamed to `radiansToDegrees`"); -} -exports.radians2degrees = radians2degrees; -function degrees2radians() { - throw new Error("method has been renamed to `degreesToRadians`"); -} -exports.degrees2radians = degrees2radians; -function distanceToDegrees() { - throw new Error("method has been renamed to `lengthToDegrees`"); -} -exports.distanceToDegrees = distanceToDegrees; -function distanceToRadians() { - throw new Error("method has been renamed to `lengthToRadians`"); -} -exports.distanceToRadians = distanceToRadians; -function radiansToDistance() { - throw new Error("method has been renamed to `radiansToLength`"); -} -exports.radiansToDistance = radiansToDistance; -function bearingToAngle() { - throw new Error("method has been renamed to `bearingToAzimuth`"); -} -exports.bearingToAngle = bearingToAngle; -function convertDistance() { - throw new Error("method has been renamed to `convertLength`"); -} -exports.convertDistance = convertDistance; - -},{}],63:[function(_dereq_,module,exports){ -'use strict'; - -Object.defineProperty(exports, '__esModule', { value: true }); - -var helpers = _dereq_('@turf/helpers'); - -/** - * Callback for coordEach - * - * @callback coordEachCallback - * @param {Array} currentCoord The current coordinate being processed. - * @param {number} coordIndex The current index of the coordinate being processed. - * @param {number} featureIndex The current index of the Feature being processed. - * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed. - * @param {number} geometryIndex The current index of the Geometry being processed. - */ - -/** - * Iterate over coordinates in any GeoJSON object, similar to Array.forEach() - * - * @name coordEach - * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object - * @param {Function} callback a method that takes (currentCoord, coordIndex, featureIndex, multiFeatureIndex) - * @param {boolean} [excludeWrapCoord=false] whether or not to include the final coordinate of LinearRings that wraps the ring in its iteration. - * @returns {void} - * @example - * var features = turf.featureCollection([ - * turf.point([26, 37], {"foo": "bar"}), - * turf.point([36, 53], {"hello": "world"}) - * ]); - * - * turf.coordEach(features, function (currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) { - * //=currentCoord - * //=coordIndex - * //=featureIndex - * //=multiFeatureIndex - * //=geometryIndex - * }); - */ -function coordEach(geojson, callback, excludeWrapCoord) { - // Handles null Geometry -- Skips this GeoJSON - if (geojson === null) return; - var j, k, l, geometry, stopG, coords, - geometryMaybeCollection, - wrapShrink = 0, - coordIndex = 0, - isGeometryCollection, - type = geojson.type, - isFeatureCollection = type === 'FeatureCollection', - isFeature = type === 'Feature', - stop = isFeatureCollection ? geojson.features.length : 1; - - // This logic may look a little weird. The reason why it is that way - // is because it's trying to be fast. GeoJSON supports multiple kinds - // of objects at its root: FeatureCollection, Features, Geometries. - // This function has the responsibility of handling all of them, and that - // means that some of the `for` loops you see below actually just don't apply - // to certain inputs. For instance, if you give this just a - // Point geometry, then both loops are short-circuited and all we do - // is gradually rename the input until it's called 'geometry'. - // - // This also aims to allocate as few resources as possible: just a - // few numbers and booleans, rather than any temporary arrays as would - // be required with the normalization approach. - for (var featureIndex = 0; featureIndex < stop; featureIndex++) { - geometryMaybeCollection = (isFeatureCollection ? geojson.features[featureIndex].geometry : - (isFeature ? geojson.geometry : geojson)); - isGeometryCollection = (geometryMaybeCollection) ? geometryMaybeCollection.type === 'GeometryCollection' : false; - stopG = isGeometryCollection ? geometryMaybeCollection.geometries.length : 1; - - for (var geomIndex = 0; geomIndex < stopG; geomIndex++) { - var multiFeatureIndex = 0; - var geometryIndex = 0; - geometry = isGeometryCollection ? - geometryMaybeCollection.geometries[geomIndex] : geometryMaybeCollection; - - // Handles null Geometry -- Skips this geometry - if (geometry === null) continue; - coords = geometry.coordinates; - var geomType = geometry.type; - - wrapShrink = (excludeWrapCoord && (geomType === 'Polygon' || geomType === 'MultiPolygon')) ? 1 : 0; - - switch (geomType) { - case null: - break; - case 'Point': - if (callback(coords, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) === false) return false; - coordIndex++; - multiFeatureIndex++; - break; - case 'LineString': - case 'MultiPoint': - for (j = 0; j < coords.length; j++) { - if (callback(coords[j], coordIndex, featureIndex, multiFeatureIndex, geometryIndex) === false) return false; - coordIndex++; - if (geomType === 'MultiPoint') multiFeatureIndex++; - } - if (geomType === 'LineString') multiFeatureIndex++; - break; - case 'Polygon': - case 'MultiLineString': - for (j = 0; j < coords.length; j++) { - for (k = 0; k < coords[j].length - wrapShrink; k++) { - if (callback(coords[j][k], coordIndex, featureIndex, multiFeatureIndex, geometryIndex) === false) return false; - coordIndex++; - } - if (geomType === 'MultiLineString') multiFeatureIndex++; - if (geomType === 'Polygon') geometryIndex++; - } - if (geomType === 'Polygon') multiFeatureIndex++; - break; - case 'MultiPolygon': - for (j = 0; j < coords.length; j++) { - geometryIndex = 0; - for (k = 0; k < coords[j].length; k++) { - for (l = 0; l < coords[j][k].length - wrapShrink; l++) { - if (callback(coords[j][k][l], coordIndex, featureIndex, multiFeatureIndex, geometryIndex) === false) return false; - coordIndex++; - } - geometryIndex++; - } - multiFeatureIndex++; - } - break; - case 'GeometryCollection': - for (j = 0; j < geometry.geometries.length; j++) - if (coordEach(geometry.geometries[j], callback, excludeWrapCoord) === false) return false; - break; - default: - throw new Error('Unknown Geometry Type'); - } + function attrFunction() { + var x = value.apply(this, arguments); + if (x == null) this.removeAttribute(name); else this.setAttribute(name, x); + } + function attrFunctionNS() { + var x = value.apply(this, arguments); + if (x == null) this.removeAttributeNS(name.space, name.local); else this.setAttributeNS(name.space, name.local, x); + } + return value == null ? name.local ? attrNullNS : attrNull : typeof value === "function" ? name.local ? attrFunctionNS : attrFunction : name.local ? attrConstantNS : attrConstant; + } + function d3_collapse(s) { + return s.trim().replace(/\s+/g, " "); + } + d3_selectionPrototype.classed = function(name, value) { + if (arguments.length < 2) { + if (typeof name === "string") { + var node = this.node(), n = (name = d3_selection_classes(name)).length, i = -1; + if (value = node.classList) { + while (++i < n) if (!value.contains(name[i])) return false; + } else { + value = node.getAttribute("class"); + while (++i < n) if (!d3_selection_classedRe(name[i]).test(value)) return false; } + return true; + } + for (value in name) this.each(d3_selection_classed(value, name[value])); + return this; } -} - -/** - * Callback for coordReduce - * - * The first time the callback function is called, the values provided as arguments depend - * on whether the reduce method has an initialValue argument. - * - * If an initialValue is provided to the reduce method: - * - The previousValue argument is initialValue. - * - The currentValue argument is the value of the first element present in the array. - * - * If an initialValue is not provided: - * - The previousValue argument is the value of the first element present in the array. - * - The currentValue argument is the value of the second element present in the array. - * - * @callback coordReduceCallback - * @param {*} previousValue The accumulated value previously returned in the last invocation - * of the callback, or initialValue, if supplied. - * @param {Array} currentCoord The current coordinate being processed. - * @param {number} coordIndex The current index of the coordinate being processed. - * Starts at index 0, if an initialValue is provided, and at index 1 otherwise. - * @param {number} featureIndex The current index of the Feature being processed. - * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed. - * @param {number} geometryIndex The current index of the Geometry being processed. - */ - -/** - * Reduce coordinates in any GeoJSON object, similar to Array.reduce() - * - * @name coordReduce - * @param {FeatureCollection|Geometry|Feature} geojson any GeoJSON object - * @param {Function} callback a method that takes (previousValue, currentCoord, coordIndex) - * @param {*} [initialValue] Value to use as the first argument to the first call of the callback. - * @param {boolean} [excludeWrapCoord=false] whether or not to include the final coordinate of LinearRings that wraps the ring in its iteration. - * @returns {*} The value that results from the reduction. - * @example - * var features = turf.featureCollection([ - * turf.point([26, 37], {"foo": "bar"}), - * turf.point([36, 53], {"hello": "world"}) - * ]); - * - * turf.coordReduce(features, function (previousValue, currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) { - * //=previousValue - * //=currentCoord - * //=coordIndex - * //=featureIndex - * //=multiFeatureIndex - * //=geometryIndex - * return currentCoord; - * }); - */ -function coordReduce(geojson, callback, initialValue, excludeWrapCoord) { - var previousValue = initialValue; - coordEach(geojson, function (currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) { - if (coordIndex === 0 && initialValue === undefined) previousValue = currentCoord; - else previousValue = callback(previousValue, currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex); - }, excludeWrapCoord); - return previousValue; -} - -/** - * Callback for propEach - * - * @callback propEachCallback - * @param {Object} currentProperties The current Properties being processed. - * @param {number} featureIndex The current index of the Feature being processed. - */ - -/** - * Iterate over properties in any GeoJSON object, similar to Array.forEach() - * - * @name propEach - * @param {FeatureCollection|Feature} geojson any GeoJSON object - * @param {Function} callback a method that takes (currentProperties, featureIndex) - * @returns {void} - * @example - * var features = turf.featureCollection([ - * turf.point([26, 37], {foo: 'bar'}), - * turf.point([36, 53], {hello: 'world'}) - * ]); - * - * turf.propEach(features, function (currentProperties, featureIndex) { - * //=currentProperties - * //=featureIndex - * }); - */ -function propEach(geojson, callback) { - var i; - switch (geojson.type) { - case 'FeatureCollection': - for (i = 0; i < geojson.features.length; i++) { - if (callback(geojson.features[i].properties, i) === false) break; - } - break; - case 'Feature': - callback(geojson.properties, 0); - break; + return this.each(d3_selection_classed(name, value)); + }; + function d3_selection_classedRe(name) { + return new RegExp("(?:^|\\s+)" + d3.requote(name) + "(?:\\s+|$)", "g"); + } + function d3_selection_classes(name) { + return (name + "").trim().split(/^|\s+/); + } + function d3_selection_classed(name, value) { + name = d3_selection_classes(name).map(d3_selection_classedName); + var n = name.length; + function classedConstant() { + var i = -1; + while (++i < n) name[i](this, value); } -} - - -/** - * Callback for propReduce - * - * The first time the callback function is called, the values provided as arguments depend - * on whether the reduce method has an initialValue argument. - * - * If an initialValue is provided to the reduce method: - * - The previousValue argument is initialValue. - * - The currentValue argument is the value of the first element present in the array. - * - * If an initialValue is not provided: - * - The previousValue argument is the value of the first element present in the array. - * - The currentValue argument is the value of the second element present in the array. - * - * @callback propReduceCallback - * @param {*} previousValue The accumulated value previously returned in the last invocation - * of the callback, or initialValue, if supplied. - * @param {*} currentProperties The current Properties being processed. - * @param {number} featureIndex The current index of the Feature being processed. - */ - -/** - * Reduce properties in any GeoJSON object into a single value, - * similar to how Array.reduce works. However, in this case we lazily run - * the reduction, so an array of all properties is unnecessary. - * - * @name propReduce - * @param {FeatureCollection|Feature} geojson any GeoJSON object - * @param {Function} callback a method that takes (previousValue, currentProperties, featureIndex) - * @param {*} [initialValue] Value to use as the first argument to the first call of the callback. - * @returns {*} The value that results from the reduction. - * @example - * var features = turf.featureCollection([ - * turf.point([26, 37], {foo: 'bar'}), - * turf.point([36, 53], {hello: 'world'}) - * ]); - * - * turf.propReduce(features, function (previousValue, currentProperties, featureIndex) { - * //=previousValue - * //=currentProperties - * //=featureIndex - * return currentProperties - * }); - */ -function propReduce(geojson, callback, initialValue) { - var previousValue = initialValue; - propEach(geojson, function (currentProperties, featureIndex) { - if (featureIndex === 0 && initialValue === undefined) previousValue = currentProperties; - else previousValue = callback(previousValue, currentProperties, featureIndex); - }); - return previousValue; -} - -/** - * Callback for featureEach - * - * @callback featureEachCallback - * @param {Feature} currentFeature The current Feature being processed. - * @param {number} featureIndex The current index of the Feature being processed. - */ - -/** - * Iterate over features in any GeoJSON object, similar to - * Array.forEach. - * - * @name featureEach - * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object - * @param {Function} callback a method that takes (currentFeature, featureIndex) - * @returns {void} - * @example - * var features = turf.featureCollection([ - * turf.point([26, 37], {foo: 'bar'}), - * turf.point([36, 53], {hello: 'world'}) - * ]); - * - * turf.featureEach(features, function (currentFeature, featureIndex) { - * //=currentFeature - * //=featureIndex - * }); - */ -function featureEach(geojson, callback) { - if (geojson.type === 'Feature') { - callback(geojson, 0); - } else if (geojson.type === 'FeatureCollection') { - for (var i = 0; i < geojson.features.length; i++) { - if (callback(geojson.features[i], i) === false) break; - } + function classedFunction() { + var i = -1, x = value.apply(this, arguments); + while (++i < n) name[i](this, x); } -} - -/** - * Callback for featureReduce - * - * The first time the callback function is called, the values provided as arguments depend - * on whether the reduce method has an initialValue argument. - * - * If an initialValue is provided to the reduce method: - * - The previousValue argument is initialValue. - * - The currentValue argument is the value of the first element present in the array. - * - * If an initialValue is not provided: - * - The previousValue argument is the value of the first element present in the array. - * - The currentValue argument is the value of the second element present in the array. - * - * @callback featureReduceCallback - * @param {*} previousValue The accumulated value previously returned in the last invocation - * of the callback, or initialValue, if supplied. - * @param {Feature} currentFeature The current Feature being processed. - * @param {number} featureIndex The current index of the Feature being processed. - */ - -/** - * Reduce features in any GeoJSON object, similar to Array.reduce(). - * - * @name featureReduce - * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object - * @param {Function} callback a method that takes (previousValue, currentFeature, featureIndex) - * @param {*} [initialValue] Value to use as the first argument to the first call of the callback. - * @returns {*} The value that results from the reduction. - * @example - * var features = turf.featureCollection([ - * turf.point([26, 37], {"foo": "bar"}), - * turf.point([36, 53], {"hello": "world"}) - * ]); - * - * turf.featureReduce(features, function (previousValue, currentFeature, featureIndex) { - * //=previousValue - * //=currentFeature - * //=featureIndex - * return currentFeature - * }); - */ -function featureReduce(geojson, callback, initialValue) { - var previousValue = initialValue; - featureEach(geojson, function (currentFeature, featureIndex) { - if (featureIndex === 0 && initialValue === undefined) previousValue = currentFeature; - else previousValue = callback(previousValue, currentFeature, featureIndex); + return typeof value === "function" ? classedFunction : classedConstant; + } + function d3_selection_classedName(name) { + var re = d3_selection_classedRe(name); + return function(node, value) { + if (c = node.classList) return value ? c.add(name) : c.remove(name); + var c = node.getAttribute("class") || ""; + if (value) { + re.lastIndex = 0; + if (!re.test(c)) node.setAttribute("class", d3_collapse(c + " " + name)); + } else { + node.setAttribute("class", d3_collapse(c.replace(re, " "))); + } + }; + } + d3_selectionPrototype.style = function(name, value, priority) { + var n = arguments.length; + if (n < 3) { + if (typeof name !== "string") { + if (n < 2) value = ""; + for (priority in name) this.each(d3_selection_style(priority, name[priority], value)); + return this; + } + if (n < 2) { + var node = this.node(); + return d3_window(node).getComputedStyle(node, null).getPropertyValue(name); + } + priority = ""; + } + return this.each(d3_selection_style(name, value, priority)); + }; + function d3_selection_style(name, value, priority) { + function styleNull() { + this.style.removeProperty(name); + } + function styleConstant() { + this.style.setProperty(name, value, priority); + } + function styleFunction() { + var x = value.apply(this, arguments); + if (x == null) this.style.removeProperty(name); else this.style.setProperty(name, x, priority); + } + return value == null ? styleNull : typeof value === "function" ? styleFunction : styleConstant; + } + d3_selectionPrototype.property = function(name, value) { + if (arguments.length < 2) { + if (typeof name === "string") return this.node()[name]; + for (value in name) this.each(d3_selection_property(value, name[value])); + return this; + } + return this.each(d3_selection_property(name, value)); + }; + function d3_selection_property(name, value) { + function propertyNull() { + delete this[name]; + } + function propertyConstant() { + this[name] = value; + } + function propertyFunction() { + var x = value.apply(this, arguments); + if (x == null) delete this[name]; else this[name] = x; + } + return value == null ? propertyNull : typeof value === "function" ? propertyFunction : propertyConstant; + } + d3_selectionPrototype.text = function(value) { + return arguments.length ? this.each(typeof value === "function" ? function() { + var v = value.apply(this, arguments); + this.textContent = v == null ? "" : v; + } : value == null ? function() { + this.textContent = ""; + } : function() { + this.textContent = value; + }) : this.node().textContent; + }; + d3_selectionPrototype.html = function(value) { + return arguments.length ? this.each(typeof value === "function" ? function() { + var v = value.apply(this, arguments); + this.innerHTML = v == null ? "" : v; + } : value == null ? function() { + this.innerHTML = ""; + } : function() { + this.innerHTML = value; + }) : this.node().innerHTML; + }; + d3_selectionPrototype.append = function(name) { + name = d3_selection_creator(name); + return this.select(function() { + return this.appendChild(name.apply(this, arguments)); }); - return previousValue; -} - -/** - * Get all coordinates from any GeoJSON object. - * - * @name coordAll - * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object - * @returns {Array>} coordinate position array - * @example - * var features = turf.featureCollection([ - * turf.point([26, 37], {foo: 'bar'}), - * turf.point([36, 53], {hello: 'world'}) - * ]); - * - * var coords = turf.coordAll(features); - * //= [[26, 37], [36, 53]] - */ -function coordAll(geojson) { - var coords = []; - coordEach(geojson, function (coord) { - coords.push(coord); + }; + function d3_selection_creator(name) { + function create() { + var document = this.ownerDocument, namespace = this.namespaceURI; + return namespace === d3_nsXhtml && document.documentElement.namespaceURI === d3_nsXhtml ? document.createElement(name) : document.createElementNS(namespace, name); + } + function createNS() { + return this.ownerDocument.createElementNS(name.space, name.local); + } + return typeof name === "function" ? name : (name = d3.ns.qualify(name)).local ? createNS : create; + } + d3_selectionPrototype.insert = function(name, before) { + name = d3_selection_creator(name); + before = d3_selection_selector(before); + return this.select(function() { + return this.insertBefore(name.apply(this, arguments), before.apply(this, arguments) || null); }); - return coords; -} - -/** - * Callback for geomEach - * - * @callback geomEachCallback - * @param {Geometry} currentGeometry The current Geometry being processed. - * @param {number} featureIndex The current index of the Feature being processed. - * @param {Object} featureProperties The current Feature Properties being processed. - * @param {Array} featureBBox The current Feature BBox being processed. - * @param {number|string} featureId The current Feature Id being processed. - */ - -/** - * Iterate over each geometry in any GeoJSON object, similar to Array.forEach() - * - * @name geomEach - * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object - * @param {Function} callback a method that takes (currentGeometry, featureIndex, featureProperties, featureBBox, featureId) - * @returns {void} - * @example - * var features = turf.featureCollection([ - * turf.point([26, 37], {foo: 'bar'}), - * turf.point([36, 53], {hello: 'world'}) - * ]); - * - * turf.geomEach(features, function (currentGeometry, featureIndex, featureProperties, featureBBox, featureId) { - * //=currentGeometry - * //=featureIndex - * //=featureProperties - * //=featureBBox - * //=featureId - * }); - */ -function geomEach(geojson, callback) { - var i, j, g, geometry, stopG, - geometryMaybeCollection, - isGeometryCollection, - featureProperties, - featureBBox, - featureId, - featureIndex = 0, - isFeatureCollection = geojson.type === 'FeatureCollection', - isFeature = geojson.type === 'Feature', - stop = isFeatureCollection ? geojson.features.length : 1; - - // This logic may look a little weird. The reason why it is that way - // is because it's trying to be fast. GeoJSON supports multiple kinds - // of objects at its root: FeatureCollection, Features, Geometries. - // This function has the responsibility of handling all of them, and that - // means that some of the `for` loops you see below actually just don't apply - // to certain inputs. For instance, if you give this just a - // Point geometry, then both loops are short-circuited and all we do - // is gradually rename the input until it's called 'geometry'. - // - // This also aims to allocate as few resources as possible: just a - // few numbers and booleans, rather than any temporary arrays as would - // be required with the normalization approach. - for (i = 0; i < stop; i++) { - - geometryMaybeCollection = (isFeatureCollection ? geojson.features[i].geometry : - (isFeature ? geojson.geometry : geojson)); - featureProperties = (isFeatureCollection ? geojson.features[i].properties : - (isFeature ? geojson.properties : {})); - featureBBox = (isFeatureCollection ? geojson.features[i].bbox : - (isFeature ? geojson.bbox : undefined)); - featureId = (isFeatureCollection ? geojson.features[i].id : - (isFeature ? geojson.id : undefined)); - isGeometryCollection = (geometryMaybeCollection) ? geometryMaybeCollection.type === 'GeometryCollection' : false; - stopG = isGeometryCollection ? geometryMaybeCollection.geometries.length : 1; - - for (g = 0; g < stopG; g++) { - geometry = isGeometryCollection ? - geometryMaybeCollection.geometries[g] : geometryMaybeCollection; - - // Handle null Geometry - if (geometry === null) { - if (callback(null, featureIndex, featureProperties, featureBBox, featureId) === false) return false; - continue; - } - switch (geometry.type) { - case 'Point': - case 'LineString': - case 'MultiPoint': - case 'Polygon': - case 'MultiLineString': - case 'MultiPolygon': { - if (callback(geometry, featureIndex, featureProperties, featureBBox, featureId) === false) return false; - break; - } - case 'GeometryCollection': { - for (j = 0; j < geometry.geometries.length; j++) { - if (callback(geometry.geometries[j], featureIndex, featureProperties, featureBBox, featureId) === false) return false; - } - break; - } - default: - throw new Error('Unknown Geometry Type'); - } + }; + d3_selectionPrototype.remove = function() { + return this.each(d3_selectionRemove); + }; + function d3_selectionRemove() { + var parent = this.parentNode; + if (parent) parent.removeChild(this); + } + d3_selectionPrototype.data = function(value, key) { + var i = -1, n = this.length, group, node; + if (!arguments.length) { + value = new Array(n = (group = this[0]).length); + while (++i < n) { + if (node = group[i]) { + value[i] = node.__data__; } - // Only increase `featureIndex` per each feature - featureIndex++; + } + return value; } -} - -/** - * Callback for geomReduce - * - * The first time the callback function is called, the values provided as arguments depend - * on whether the reduce method has an initialValue argument. - * - * If an initialValue is provided to the reduce method: - * - The previousValue argument is initialValue. - * - The currentValue argument is the value of the first element present in the array. - * - * If an initialValue is not provided: - * - The previousValue argument is the value of the first element present in the array. - * - The currentValue argument is the value of the second element present in the array. - * - * @callback geomReduceCallback - * @param {*} previousValue The accumulated value previously returned in the last invocation - * of the callback, or initialValue, if supplied. - * @param {Geometry} currentGeometry The current Geometry being processed. - * @param {number} featureIndex The current index of the Feature being processed. - * @param {Object} featureProperties The current Feature Properties being processed. - * @param {Array} featureBBox The current Feature BBox being processed. - * @param {number|string} featureId The current Feature Id being processed. - */ - -/** - * Reduce geometry in any GeoJSON object, similar to Array.reduce(). - * - * @name geomReduce - * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object - * @param {Function} callback a method that takes (previousValue, currentGeometry, featureIndex, featureProperties, featureBBox, featureId) - * @param {*} [initialValue] Value to use as the first argument to the first call of the callback. - * @returns {*} The value that results from the reduction. - * @example - * var features = turf.featureCollection([ - * turf.point([26, 37], {foo: 'bar'}), - * turf.point([36, 53], {hello: 'world'}) - * ]); - * - * turf.geomReduce(features, function (previousValue, currentGeometry, featureIndex, featureProperties, featureBBox, featureId) { - * //=previousValue - * //=currentGeometry - * //=featureIndex - * //=featureProperties - * //=featureBBox - * //=featureId - * return currentGeometry - * }); - */ -function geomReduce(geojson, callback, initialValue) { - var previousValue = initialValue; - geomEach(geojson, function (currentGeometry, featureIndex, featureProperties, featureBBox, featureId) { - if (featureIndex === 0 && initialValue === undefined) previousValue = currentGeometry; - else previousValue = callback(previousValue, currentGeometry, featureIndex, featureProperties, featureBBox, featureId); - }); - return previousValue; -} - -/** - * Callback for flattenEach - * - * @callback flattenEachCallback - * @param {Feature} currentFeature The current flattened feature being processed. - * @param {number} featureIndex The current index of the Feature being processed. - * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed. - */ - -/** - * Iterate over flattened features in any GeoJSON object, similar to - * Array.forEach. - * - * @name flattenEach - * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object - * @param {Function} callback a method that takes (currentFeature, featureIndex, multiFeatureIndex) - * @example - * var features = turf.featureCollection([ - * turf.point([26, 37], {foo: 'bar'}), - * turf.multiPoint([[40, 30], [36, 53]], {hello: 'world'}) - * ]); - * - * turf.flattenEach(features, function (currentFeature, featureIndex, multiFeatureIndex) { - * //=currentFeature - * //=featureIndex - * //=multiFeatureIndex - * }); - */ -function flattenEach(geojson, callback) { - geomEach(geojson, function (geometry, featureIndex, properties, bbox, id) { - // Callback for single geometry - var type = (geometry === null) ? null : geometry.type; - switch (type) { - case null: - case 'Point': - case 'LineString': - case 'Polygon': - if (callback(helpers.feature(geometry, properties, {bbox: bbox, id: id}), featureIndex, 0) === false) return false; - return; + function bind(group, groupData) { + var i, n = group.length, m = groupData.length, n0 = Math.min(n, m), updateNodes = new Array(m), enterNodes = new Array(m), exitNodes = new Array(n), node, nodeData; + if (key) { + var nodeByKeyValue = new d3_Map(), keyValues = new Array(n), keyValue; + for (i = -1; ++i < n; ) { + if (node = group[i]) { + if (nodeByKeyValue.has(keyValue = key.call(node, node.__data__, i))) { + exitNodes[i] = node; + } else { + nodeByKeyValue.set(keyValue, node); + } + keyValues[i] = keyValue; + } } - - var geomType; - - // Callback for multi-geometry - switch (type) { - case 'MultiPoint': - geomType = 'Point'; - break; - case 'MultiLineString': - geomType = 'LineString'; - break; - case 'MultiPolygon': - geomType = 'Polygon'; - break; + for (i = -1; ++i < m; ) { + if (!(node = nodeByKeyValue.get(keyValue = key.call(groupData, nodeData = groupData[i], i)))) { + enterNodes[i] = d3_selection_dataNode(nodeData); + } else if (node !== true) { + updateNodes[i] = node; + node.__data__ = nodeData; + } + nodeByKeyValue.set(keyValue, true); } - - for (var multiFeatureIndex = 0; multiFeatureIndex < geometry.coordinates.length; multiFeatureIndex++) { - var coordinate = geometry.coordinates[multiFeatureIndex]; - var geom = { - type: geomType, - coordinates: coordinate - }; - if (callback(helpers.feature(geom, properties), featureIndex, multiFeatureIndex) === false) return false; + for (i = -1; ++i < n; ) { + if (i in keyValues && nodeByKeyValue.get(keyValues[i]) !== true) { + exitNodes[i] = group[i]; + } } + } else { + for (i = -1; ++i < n0; ) { + node = group[i]; + nodeData = groupData[i]; + if (node) { + node.__data__ = nodeData; + updateNodes[i] = node; + } else { + enterNodes[i] = d3_selection_dataNode(nodeData); + } + } + for (;i < m; ++i) { + enterNodes[i] = d3_selection_dataNode(groupData[i]); + } + for (;i < n; ++i) { + exitNodes[i] = group[i]; + } + } + enterNodes.update = updateNodes; + enterNodes.parentNode = updateNodes.parentNode = exitNodes.parentNode = group.parentNode; + enter.push(enterNodes); + update.push(updateNodes); + exit.push(exitNodes); + } + var enter = d3_selection_enter([]), update = d3_selection([]), exit = d3_selection([]); + if (typeof value === "function") { + while (++i < n) { + bind(group = this[i], value.call(group, group.parentNode.__data__, i)); + } + } else { + while (++i < n) { + bind(group = this[i], value); + } + } + update.enter = function() { + return enter; + }; + update.exit = function() { + return exit; + }; + return update; + }; + function d3_selection_dataNode(data) { + return { + __data__: data + }; + } + d3_selectionPrototype.datum = function(value) { + return arguments.length ? this.property("__data__", value) : this.property("__data__"); + }; + d3_selectionPrototype.filter = function(filter) { + var subgroups = [], subgroup, group, node; + if (typeof filter !== "function") filter = d3_selection_filter(filter); + for (var j = 0, m = this.length; j < m; j++) { + subgroups.push(subgroup = []); + subgroup.parentNode = (group = this[j]).parentNode; + for (var i = 0, n = group.length; i < n; i++) { + if ((node = group[i]) && filter.call(node, node.__data__, i, j)) { + subgroup.push(node); + } + } + } + return d3_selection(subgroups); + }; + function d3_selection_filter(selector) { + return function() { + return d3_selectMatches(this, selector); + }; + } + d3_selectionPrototype.order = function() { + for (var j = -1, m = this.length; ++j < m; ) { + for (var group = this[j], i = group.length - 1, next = group[i], node; --i >= 0; ) { + if (node = group[i]) { + if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next); + next = node; + } + } + } + return this; + }; + d3_selectionPrototype.sort = function(comparator) { + comparator = d3_selection_sortComparator.apply(this, arguments); + for (var j = -1, m = this.length; ++j < m; ) this[j].sort(comparator); + return this.order(); + }; + function d3_selection_sortComparator(comparator) { + if (!arguments.length) comparator = d3_ascending; + return function(a, b) { + return a && b ? comparator(a.__data__, b.__data__) : !a - !b; + }; + } + d3_selectionPrototype.each = function(callback) { + return d3_selection_each(this, function(node, i, j) { + callback.call(node, node.__data__, i, j); }); -} - -/** - * Callback for flattenReduce - * - * The first time the callback function is called, the values provided as arguments depend - * on whether the reduce method has an initialValue argument. - * - * If an initialValue is provided to the reduce method: - * - The previousValue argument is initialValue. - * - The currentValue argument is the value of the first element present in the array. - * - * If an initialValue is not provided: - * - The previousValue argument is the value of the first element present in the array. - * - The currentValue argument is the value of the second element present in the array. - * - * @callback flattenReduceCallback - * @param {*} previousValue The accumulated value previously returned in the last invocation - * of the callback, or initialValue, if supplied. - * @param {Feature} currentFeature The current Feature being processed. - * @param {number} featureIndex The current index of the Feature being processed. - * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed. - */ - -/** - * Reduce flattened features in any GeoJSON object, similar to Array.reduce(). - * - * @name flattenReduce - * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object - * @param {Function} callback a method that takes (previousValue, currentFeature, featureIndex, multiFeatureIndex) - * @param {*} [initialValue] Value to use as the first argument to the first call of the callback. - * @returns {*} The value that results from the reduction. - * @example - * var features = turf.featureCollection([ - * turf.point([26, 37], {foo: 'bar'}), - * turf.multiPoint([[40, 30], [36, 53]], {hello: 'world'}) - * ]); - * - * turf.flattenReduce(features, function (previousValue, currentFeature, featureIndex, multiFeatureIndex) { - * //=previousValue - * //=currentFeature - * //=featureIndex - * //=multiFeatureIndex - * return currentFeature - * }); - */ -function flattenReduce(geojson, callback, initialValue) { - var previousValue = initialValue; - flattenEach(geojson, function (currentFeature, featureIndex, multiFeatureIndex) { - if (featureIndex === 0 && multiFeatureIndex === 0 && initialValue === undefined) previousValue = currentFeature; - else previousValue = callback(previousValue, currentFeature, featureIndex, multiFeatureIndex); - }); - return previousValue; -} - -/** - * Callback for segmentEach - * - * @callback segmentEachCallback - * @param {Feature} currentSegment The current Segment being processed. - * @param {number} featureIndex The current index of the Feature being processed. - * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed. - * @param {number} geometryIndex The current index of the Geometry being processed. - * @param {number} segmentIndex The current index of the Segment being processed. - * @returns {void} - */ - -/** - * Iterate over 2-vertex line segment in any GeoJSON object, similar to Array.forEach() - * (Multi)Point geometries do not contain segments therefore they are ignored during this operation. - * - * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON - * @param {Function} callback a method that takes (currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) - * @returns {void} - * @example - * var polygon = turf.polygon([[[-50, 5], [-40, -10], [-50, -10], [-40, 5], [-50, 5]]]); - * - * // Iterate over GeoJSON by 2-vertex segments - * turf.segmentEach(polygon, function (currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) { - * //=currentSegment - * //=featureIndex - * //=multiFeatureIndex - * //=geometryIndex - * //=segmentIndex - * }); - * - * // Calculate the total number of segments - * var total = 0; - * turf.segmentEach(polygon, function () { - * total++; - * }); - */ -function segmentEach(geojson, callback) { - flattenEach(geojson, function (feature, featureIndex, multiFeatureIndex) { - var segmentIndex = 0; - - // Exclude null Geometries - if (!feature.geometry) return; - // (Multi)Point geometries do not contain segments therefore they are ignored during this operation. - var type = feature.geometry.type; - if (type === 'Point' || type === 'MultiPoint') return; - - // Generate 2-vertex line segments - var previousCoords; - var previousFeatureIndex = 0; - var previousMultiIndex = 0; - var prevGeomIndex = 0; - if (coordEach(feature, function (currentCoord, coordIndex, featureIndexCoord, multiPartIndexCoord, geometryIndex) { - // Simulating a meta.coordReduce() since `reduce` operations cannot be stopped by returning `false` - if (previousCoords === undefined || featureIndex > previousFeatureIndex || multiPartIndexCoord > previousMultiIndex || geometryIndex > prevGeomIndex) { - previousCoords = currentCoord; - previousFeatureIndex = featureIndex; - previousMultiIndex = multiPartIndexCoord; - prevGeomIndex = geometryIndex; - segmentIndex = 0; - return; - } - var currentSegment = helpers.lineString([previousCoords, currentCoord], feature.properties); - if (callback(currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) === false) return false; - segmentIndex++; - previousCoords = currentCoord; - }) === false) return false; - }); -} - -/** - * Callback for segmentReduce - * - * The first time the callback function is called, the values provided as arguments depend - * on whether the reduce method has an initialValue argument. - * - * If an initialValue is provided to the reduce method: - * - The previousValue argument is initialValue. - * - The currentValue argument is the value of the first element present in the array. - * - * If an initialValue is not provided: - * - The previousValue argument is the value of the first element present in the array. - * - The currentValue argument is the value of the second element present in the array. - * - * @callback segmentReduceCallback - * @param {*} previousValue The accumulated value previously returned in the last invocation - * of the callback, or initialValue, if supplied. - * @param {Feature} currentSegment The current Segment being processed. - * @param {number} featureIndex The current index of the Feature being processed. - * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed. - * @param {number} geometryIndex The current index of the Geometry being processed. - * @param {number} segmentIndex The current index of the Segment being processed. - */ - -/** - * Reduce 2-vertex line segment in any GeoJSON object, similar to Array.reduce() - * (Multi)Point geometries do not contain segments therefore they are ignored during this operation. - * - * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON - * @param {Function} callback a method that takes (previousValue, currentSegment, currentIndex) - * @param {*} [initialValue] Value to use as the first argument to the first call of the callback. - * @returns {void} - * @example - * var polygon = turf.polygon([[[-50, 5], [-40, -10], [-50, -10], [-40, 5], [-50, 5]]]); - * - * // Iterate over GeoJSON by 2-vertex segments - * turf.segmentReduce(polygon, function (previousSegment, currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) { - * //= previousSegment - * //= currentSegment - * //= featureIndex - * //= multiFeatureIndex - * //= geometryIndex - * //= segmentInex - * return currentSegment - * }); - * - * // Calculate the total number of segments - * var initialValue = 0 - * var total = turf.segmentReduce(polygon, function (previousValue) { - * previousValue++; - * return previousValue; - * }, initialValue); - */ -function segmentReduce(geojson, callback, initialValue) { - var previousValue = initialValue; - var started = false; - segmentEach(geojson, function (currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) { - if (started === false && initialValue === undefined) previousValue = currentSegment; - else previousValue = callback(previousValue, currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex); - started = true; + }; + function d3_selection_each(groups, callback) { + for (var j = 0, m = groups.length; j < m; j++) { + for (var group = groups[j], i = 0, n = group.length, node; i < n; i++) { + if (node = group[i]) callback(node, i, j); + } + } + return groups; + } + d3_selectionPrototype.call = function(callback) { + var args = d3_array(arguments); + callback.apply(args[0] = this, args); + return this; + }; + d3_selectionPrototype.empty = function() { + return !this.node(); + }; + d3_selectionPrototype.node = function() { + for (var j = 0, m = this.length; j < m; j++) { + for (var group = this[j], i = 0, n = group.length; i < n; i++) { + var node = group[i]; + if (node) return node; + } + } + return null; + }; + d3_selectionPrototype.size = function() { + var n = 0; + d3_selection_each(this, function() { + ++n; }); - return previousValue; -} - -/** - * Callback for lineEach - * - * @callback lineEachCallback - * @param {Feature} currentLine The current LineString|LinearRing being processed - * @param {number} featureIndex The current index of the Feature being processed - * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed - * @param {number} geometryIndex The current index of the Geometry being processed - */ - -/** - * Iterate over line or ring coordinates in LineString, Polygon, MultiLineString, MultiPolygon Features or Geometries, - * similar to Array.forEach. - * - * @name lineEach - * @param {Geometry|Feature} geojson object - * @param {Function} callback a method that takes (currentLine, featureIndex, multiFeatureIndex, geometryIndex) - * @example - * var multiLine = turf.multiLineString([ - * [[26, 37], [35, 45]], - * [[36, 53], [38, 50], [41, 55]] - * ]); - * - * turf.lineEach(multiLine, function (currentLine, featureIndex, multiFeatureIndex, geometryIndex) { - * //=currentLine - * //=featureIndex - * //=multiFeatureIndex - * //=geometryIndex - * }); - */ -function lineEach(geojson, callback) { - // validation - if (!geojson) throw new Error('geojson is required'); - - flattenEach(geojson, function (feature, featureIndex, multiFeatureIndex) { - if (feature.geometry === null) return; - var type = feature.geometry.type; - var coords = feature.geometry.coordinates; - switch (type) { - case 'LineString': - if (callback(feature, featureIndex, multiFeatureIndex, 0, 0) === false) return false; - break; - case 'Polygon': - for (var geometryIndex = 0; geometryIndex < coords.length; geometryIndex++) { - if (callback(helpers.lineString(coords[geometryIndex], feature.properties), featureIndex, multiFeatureIndex, geometryIndex) === false) return false; - } - break; + return n; + }; + function d3_selection_enter(selection) { + d3_subclass(selection, d3_selection_enterPrototype); + return selection; + } + var d3_selection_enterPrototype = []; + d3.selection.enter = d3_selection_enter; + d3.selection.enter.prototype = d3_selection_enterPrototype; + d3_selection_enterPrototype.append = d3_selectionPrototype.append; + d3_selection_enterPrototype.empty = d3_selectionPrototype.empty; + d3_selection_enterPrototype.node = d3_selectionPrototype.node; + d3_selection_enterPrototype.call = d3_selectionPrototype.call; + d3_selection_enterPrototype.size = d3_selectionPrototype.size; + d3_selection_enterPrototype.select = function(selector) { + var subgroups = [], subgroup, subnode, upgroup, group, node; + for (var j = -1, m = this.length; ++j < m; ) { + upgroup = (group = this[j]).update; + subgroups.push(subgroup = []); + subgroup.parentNode = group.parentNode; + for (var i = -1, n = group.length; ++i < n; ) { + if (node = group[i]) { + subgroup.push(upgroup[i] = subnode = selector.call(group.parentNode, node.__data__, i, j)); + subnode.__data__ = node.__data__; + } else { + subgroup.push(null); } - }); -} - -/** - * Callback for lineReduce - * - * The first time the callback function is called, the values provided as arguments depend - * on whether the reduce method has an initialValue argument. - * - * If an initialValue is provided to the reduce method: - * - The previousValue argument is initialValue. - * - The currentValue argument is the value of the first element present in the array. - * - * If an initialValue is not provided: - * - The previousValue argument is the value of the first element present in the array. - * - The currentValue argument is the value of the second element present in the array. - * - * @callback lineReduceCallback - * @param {*} previousValue The accumulated value previously returned in the last invocation - * of the callback, or initialValue, if supplied. - * @param {Feature} currentLine The current LineString|LinearRing being processed. - * @param {number} featureIndex The current index of the Feature being processed - * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed - * @param {number} geometryIndex The current index of the Geometry being processed - */ - -/** - * Reduce features in any GeoJSON object, similar to Array.reduce(). - * - * @name lineReduce - * @param {Geometry|Feature} geojson object - * @param {Function} callback a method that takes (previousValue, currentLine, featureIndex, multiFeatureIndex, geometryIndex) - * @param {*} [initialValue] Value to use as the first argument to the first call of the callback. - * @returns {*} The value that results from the reduction. - * @example - * var multiPoly = turf.multiPolygon([ - * turf.polygon([[[12,48],[2,41],[24,38],[12,48]], [[9,44],[13,41],[13,45],[9,44]]]), - * turf.polygon([[[5, 5], [0, 0], [2, 2], [4, 4], [5, 5]]]) - * ]); - * - * turf.lineReduce(multiPoly, function (previousValue, currentLine, featureIndex, multiFeatureIndex, geometryIndex) { - * //=previousValue - * //=currentLine - * //=featureIndex - * //=multiFeatureIndex - * //=geometryIndex - * return currentLine - * }); - */ -function lineReduce(geojson, callback, initialValue) { - var previousValue = initialValue; - lineEach(geojson, function (currentLine, featureIndex, multiFeatureIndex, geometryIndex) { - if (featureIndex === 0 && initialValue === undefined) previousValue = currentLine; - else previousValue = callback(previousValue, currentLine, featureIndex, multiFeatureIndex, geometryIndex); - }); - return previousValue; -} - -/** - * Finds a particular 2-vertex LineString Segment from a GeoJSON using `@turf/meta` indexes. - * - * Negative indexes are permitted. - * Point & MultiPoint will always return null. - * - * @param {FeatureCollection|Feature|Geometry} geojson Any GeoJSON Feature or Geometry - * @param {Object} [options={}] Optional parameters - * @param {number} [options.featureIndex=0] Feature Index - * @param {number} [options.multiFeatureIndex=0] Multi-Feature Index - * @param {number} [options.geometryIndex=0] Geometry Index - * @param {number} [options.segmentIndex=0] Segment Index - * @param {Object} [options.properties={}] Translate Properties to output LineString - * @param {BBox} [options.bbox={}] Translate BBox to output LineString - * @param {number|string} [options.id={}] Translate Id to output LineString - * @returns {Feature} 2-vertex GeoJSON Feature LineString - * @example - * var multiLine = turf.multiLineString([ - * [[10, 10], [50, 30], [30, 40]], - * [[-10, -10], [-50, -30], [-30, -40]] - * ]); - * - * // First Segment (defaults are 0) - * turf.findSegment(multiLine); - * // => Feature> - * - * // First Segment of 2nd Multi Feature - * turf.findSegment(multiLine, {multiFeatureIndex: 1}); - * // => Feature> - * - * // Last Segment of Last Multi Feature - * turf.findSegment(multiLine, {multiFeatureIndex: -1, segmentIndex: -1}); - * // => Feature> - */ -function findSegment(geojson, options) { - // Optional Parameters - options = options || {}; - if (!helpers.isObject(options)) throw new Error('options is invalid'); - var featureIndex = options.featureIndex || 0; - var multiFeatureIndex = options.multiFeatureIndex || 0; - var geometryIndex = options.geometryIndex || 0; - var segmentIndex = options.segmentIndex || 0; - - // Find FeatureIndex - var properties = options.properties; - var geometry; - - switch (geojson.type) { - case 'FeatureCollection': - if (featureIndex < 0) featureIndex = geojson.features.length + featureIndex; - properties = properties || geojson.features[featureIndex].properties; - geometry = geojson.features[featureIndex].geometry; - break; - case 'Feature': - properties = properties || geojson.properties; - geometry = geojson.geometry; - break; - case 'Point': - case 'MultiPoint': - return null; - case 'LineString': - case 'Polygon': - case 'MultiLineString': - case 'MultiPolygon': - geometry = geojson; - break; - default: - throw new Error('geojson is invalid'); - } - - // Find SegmentIndex - if (geometry === null) return null; - var coords = geometry.coordinates; - switch (geometry.type) { - case 'Point': - case 'MultiPoint': - return null; - case 'LineString': - if (segmentIndex < 0) segmentIndex = coords.length + segmentIndex - 1; - return helpers.lineString([coords[segmentIndex], coords[segmentIndex + 1]], properties, options); - case 'Polygon': - if (geometryIndex < 0) geometryIndex = coords.length + geometryIndex; - if (segmentIndex < 0) segmentIndex = coords[geometryIndex].length + segmentIndex - 1; - return helpers.lineString([coords[geometryIndex][segmentIndex], coords[geometryIndex][segmentIndex + 1]], properties, options); - case 'MultiLineString': - if (multiFeatureIndex < 0) multiFeatureIndex = coords.length + multiFeatureIndex; - if (segmentIndex < 0) segmentIndex = coords[multiFeatureIndex].length + segmentIndex - 1; - return helpers.lineString([coords[multiFeatureIndex][segmentIndex], coords[multiFeatureIndex][segmentIndex + 1]], properties, options); - case 'MultiPolygon': - if (multiFeatureIndex < 0) multiFeatureIndex = coords.length + multiFeatureIndex; - if (geometryIndex < 0) geometryIndex = coords[multiFeatureIndex].length + geometryIndex; - if (segmentIndex < 0) segmentIndex = coords[multiFeatureIndex][geometryIndex].length - segmentIndex - 1; - return helpers.lineString([coords[multiFeatureIndex][geometryIndex][segmentIndex], coords[multiFeatureIndex][geometryIndex][segmentIndex + 1]], properties, options); + } } - throw new Error('geojson is invalid'); -} - -/** - * Finds a particular Point from a GeoJSON using `@turf/meta` indexes. - * - * Negative indexes are permitted. - * - * @param {FeatureCollection|Feature|Geometry} geojson Any GeoJSON Feature or Geometry - * @param {Object} [options={}] Optional parameters - * @param {number} [options.featureIndex=0] Feature Index - * @param {number} [options.multiFeatureIndex=0] Multi-Feature Index - * @param {number} [options.geometryIndex=0] Geometry Index - * @param {number} [options.coordIndex=0] Coord Index - * @param {Object} [options.properties={}] Translate Properties to output Point - * @param {BBox} [options.bbox={}] Translate BBox to output Point - * @param {number|string} [options.id={}] Translate Id to output Point - * @returns {Feature} 2-vertex GeoJSON Feature Point - * @example - * var multiLine = turf.multiLineString([ - * [[10, 10], [50, 30], [30, 40]], - * [[-10, -10], [-50, -30], [-30, -40]] - * ]); - * - * // First Segment (defaults are 0) - * turf.findPoint(multiLine); - * // => Feature> - * - * // First Segment of the 2nd Multi-Feature - * turf.findPoint(multiLine, {multiFeatureIndex: 1}); - * // => Feature> - * - * // Last Segment of last Multi-Feature - * turf.findPoint(multiLine, {multiFeatureIndex: -1, coordIndex: -1}); - * // => Feature> - */ -function findPoint(geojson, options) { - // Optional Parameters - options = options || {}; - if (!helpers.isObject(options)) throw new Error('options is invalid'); - var featureIndex = options.featureIndex || 0; - var multiFeatureIndex = options.multiFeatureIndex || 0; - var geometryIndex = options.geometryIndex || 0; - var coordIndex = options.coordIndex || 0; - - // Find FeatureIndex - var properties = options.properties; - var geometry; - - switch (geojson.type) { - case 'FeatureCollection': - if (featureIndex < 0) featureIndex = geojson.features.length + featureIndex; - properties = properties || geojson.features[featureIndex].properties; - geometry = geojson.features[featureIndex].geometry; - break; - case 'Feature': - properties = properties || geojson.properties; - geometry = geojson.geometry; - break; - case 'Point': - case 'MultiPoint': - return null; - case 'LineString': - case 'Polygon': - case 'MultiLineString': - case 'MultiPolygon': - geometry = geojson; - break; - default: - throw new Error('geojson is invalid'); + return d3_selection(subgroups); + }; + d3_selection_enterPrototype.insert = function(name, before) { + if (arguments.length < 2) before = d3_selection_enterInsertBefore(this); + return d3_selectionPrototype.insert.call(this, name, before); + }; + function d3_selection_enterInsertBefore(enter) { + var i0, j0; + return function(d, i, j) { + var group = enter[j].update, n = group.length, node; + if (j != j0) j0 = j, i0 = 0; + if (i >= i0) i0 = i + 1; + while (!(node = group[i0]) && ++i0 < n) ; + return node; + }; + } + d3.select = function(node) { + var group; + if (typeof node === "string") { + group = [ d3_select(node, d3_document) ]; + group.parentNode = d3_document.documentElement; + } else { + group = [ node ]; + group.parentNode = d3_documentElement(node); } - - // Find Coord Index - if (geometry === null) return null; - var coords = geometry.coordinates; - switch (geometry.type) { - case 'Point': - return helpers.point(coords, properties, options); - case 'MultiPoint': - if (multiFeatureIndex < 0) multiFeatureIndex = coords.length + multiFeatureIndex; - return helpers.point(coords[multiFeatureIndex], properties, options); - case 'LineString': - if (coordIndex < 0) coordIndex = coords.length + coordIndex; - return helpers.point(coords[coordIndex], properties, options); - case 'Polygon': - if (geometryIndex < 0) geometryIndex = coords.length + geometryIndex; - if (coordIndex < 0) coordIndex = coords[geometryIndex].length + coordIndex; - return helpers.point(coords[geometryIndex][coordIndex], properties, options); - case 'MultiLineString': - if (multiFeatureIndex < 0) multiFeatureIndex = coords.length + multiFeatureIndex; - if (coordIndex < 0) coordIndex = coords[multiFeatureIndex].length + coordIndex; - return helpers.point(coords[multiFeatureIndex][coordIndex], properties, options); - case 'MultiPolygon': - if (multiFeatureIndex < 0) multiFeatureIndex = coords.length + multiFeatureIndex; - if (geometryIndex < 0) geometryIndex = coords[multiFeatureIndex].length + geometryIndex; - if (coordIndex < 0) coordIndex = coords[multiFeatureIndex][geometryIndex].length - coordIndex; - return helpers.point(coords[multiFeatureIndex][geometryIndex][coordIndex], properties, options); + return d3_selection([ group ]); + }; + d3.selectAll = function(nodes) { + var group; + if (typeof nodes === "string") { + group = d3_array(d3_selectAll(nodes, d3_document)); + group.parentNode = d3_document.documentElement; + } else { + group = d3_array(nodes); + group.parentNode = null; } - throw new Error('geojson is invalid'); -} - -exports.coordEach = coordEach; -exports.coordReduce = coordReduce; -exports.propEach = propEach; -exports.propReduce = propReduce; -exports.featureEach = featureEach; -exports.featureReduce = featureReduce; -exports.coordAll = coordAll; -exports.geomEach = geomEach; -exports.geomReduce = geomReduce; -exports.flattenEach = flattenEach; -exports.flattenReduce = flattenReduce; -exports.segmentEach = segmentEach; -exports.segmentReduce = segmentReduce; -exports.lineEach = lineEach; -exports.lineReduce = lineReduce; -exports.findSegment = findSegment; -exports.findPoint = findPoint; - -},{"@turf/helpers":62}],64:[function(_dereq_,module,exports){ -'use strict' - -var weakMap = typeof WeakMap === 'undefined' ? _dereq_('weak-map') : WeakMap -var createBuffer = _dereq_('gl-buffer') -var createVAO = _dereq_('gl-vao') - -var TriangleCache = new weakMap() - -function createABigTriangle(gl) { - - var triangleVAO = TriangleCache.get(gl) - var handle = triangleVAO && (triangleVAO._triangleBuffer.handle || triangleVAO._triangleBuffer.buffer) - if(!handle || !gl.isBuffer(handle)) { - var buf = createBuffer(gl, new Float32Array([-1, -1, -1, 4, 4, -1])) - triangleVAO = createVAO(gl, [ - { buffer: buf, - type: gl.FLOAT, - size: 2 + return d3_selection([ group ]); + }; + d3_selectionPrototype.on = function(type, listener, capture) { + var n = arguments.length; + if (n < 3) { + if (typeof type !== "string") { + if (n < 2) listener = false; + for (capture in type) this.each(d3_selection_on(capture, type[capture], listener)); + return this; } - ]) - triangleVAO._triangleBuffer = buf - TriangleCache.set(gl, triangleVAO) - } - triangleVAO.bind() - gl.drawArrays(gl.TRIANGLES, 0, 3) - triangleVAO.unbind() -} - -module.exports = createABigTriangle - -},{"gl-buffer":259,"gl-vao":358,"weak-map":602}],65:[function(_dereq_,module,exports){ - -module.exports = absolutize - -/** - * redefine `path` with absolute coordinates - * - * @param {Array} path - * @return {Array} - */ - -function absolutize(path){ - var startX = 0 - var startY = 0 - var x = 0 - var y = 0 - - return path.map(function(seg){ - seg = seg.slice() - var type = seg[0] - var command = type.toUpperCase() - - // is relative - if (type != command) { - seg[0] = command - switch (type) { - case 'a': - seg[6] += x - seg[7] += y - break - case 'v': - seg[1] += y - break - case 'h': - seg[1] += x - break - default: - for (var i = 1; i < seg.length;) { - seg[i++] += x - seg[i++] += y - } - } - } - - // update cursor state - switch (command) { - case 'Z': - x = startX - y = startY - break - case 'H': - x = seg[1] - break - case 'V': - y = seg[1] - break - case 'M': - x = startX = seg[1] - y = startY = seg[2] - break - default: - x = seg[seg.length - 2] - y = seg[seg.length - 1] - } - - return seg - }) -} - -},{}],66:[function(_dereq_,module,exports){ -var padLeft = _dereq_('pad-left') - -module.exports = addLineNumbers -function addLineNumbers (string, start, delim) { - start = typeof start === 'number' ? start : 1 - delim = delim || ': ' - - var lines = string.split(/\r?\n/) - var totalDigits = String(lines.length + start - 1).length - return lines.map(function (line, i) { - var c = i + start - var digits = String(c).length - var prefix = padLeft(c, totalDigits - digits) - return prefix + delim + line - }).join('\n') -} - -},{"pad-left":502}],67:[function(_dereq_,module,exports){ -'use strict' - -module.exports = affineHull - -var orient = _dereq_('robust-orientation') - -function linearlyIndependent(points, d) { - var nhull = new Array(d+1) - for(var i=0; i 0) type = type.slice(0, i); + var filter = d3_selection_onFilters.get(type); + if (filter) type = filter, wrap = d3_selection_onFilter; + function onRemove() { + var l = this[name]; + if (l) { + this.removeEventListener(type, l, l.$); + delete this[name]; } - nhull[j] = x } - var o = orient.apply(void 0, nhull) - if(o) { - return true + function onAdd() { + var l = wrap(listener, d3_array(arguments)); + onRemove.call(this); + this.addEventListener(type, this[name] = l, l.$ = capture); + l._ = listener; + } + function removeAll() { + var re = new RegExp("^__on([^.]+)" + d3.requote(type) + "$"), match; + for (var name in this) { + if (match = name.match(re)) { + var l = this[name]; + this.removeEventListener(match[1], l, l.$); + delete this[name]; + } + } } + return i ? listener ? onAdd : onRemove : listener ? d3_noop : removeAll; } - return false -} - -function affineHull(points) { - var n = points.length - if(n === 0) { - return [] + var d3_selection_onFilters = d3.map({ + mouseenter: "mouseover", + mouseleave: "mouseout" + }); + if (d3_document) { + d3_selection_onFilters.forEach(function(k) { + if ("on" + k in d3_document) d3_selection_onFilters.remove(k); + }); } - if(n === 1) { - return [0] + function d3_selection_onListener(listener, argumentz) { + return function(e) { + var o = d3.event; + d3.event = e; + argumentz[0] = this.__data__; + try { + listener.apply(this, argumentz); + } finally { + d3.event = o; + } + }; } - var d = points[0].length - var frame = [ points[0] ] - var index = [ 0 ] - for(var i=1; i max) max = arr[i]; - if (arr[i] < min) min = arr[i]; - } - - bounds[offset] = min - bounds[dim + offset] = max - } - - return bounds; -} - -},{}],71:[function(_dereq_,module,exports){ -'use strict' - -var getBounds = _dereq_('array-bounds') - -module.exports = normalize; - -function normalize (arr, dim, bounds) { - if (!arr || arr.length == null) throw Error('Argument should be an array') - - if (dim == null) dim = 1 - if (bounds == null) bounds = getBounds(arr, dim) - - for (var offset = 0; offset < dim; offset++) { - var max = bounds[dim + offset], min = bounds[offset], i = offset, l = arr.length; - - if (max === Infinity && min === -Infinity) { - for (i = offset; i < l; i+=dim) { - arr[i] = arr[i] === max ? 1 : arr[i] === min ? 0 : .5 - } - } - else if (max === Infinity) { - for (i = offset; i < l; i+=dim) { - arr[i] = arr[i] === max ? 1 : 0 - } - } - else if (min === -Infinity) { - for (i = offset; i < l; i+=dim) { - arr[i] = arr[i] === min ? 0 : 1 - } - } - else { - var range = max - min - for (i = offset; i < l; i+=dim) { - if (!isNaN(arr[i])) { - arr[i] = range === 0 ? .5 : (arr[i] - min) / range - } - } - } - } - - return arr; -} - -},{"array-bounds":70}],72:[function(_dereq_,module,exports){ - -module.exports = function newArray(start, end) { - var n0 = typeof start === 'number', - n1 = typeof end === 'number' - - if (n0 && !n1) { - end = start - start = 0 - } else if (!n0 && !n1) { - start = 0 - end = 0 + if (d3_event_dragSelect) { + var style = d3_documentElement(node).style, select = style[d3_event_dragSelect]; + style[d3_event_dragSelect] = "none"; } - - start = start|0 - end = end|0 - var len = end-start - if (len<0) - throw new Error('array length must be positive') - - var a = new Array(len) - for (var i=0, c=start; i - * @license MIT - */ -function compare(a, b) { - if (a === b) { - return 0; + return function(suppressClick) { + w.on(name, null); + if (d3_event_dragSelect) style[d3_event_dragSelect] = select; + if (suppressClick) { + var off = function() { + w.on(click, null); + }; + w.on(click, function() { + d3_eventPreventDefault(); + off(); + }, true); + setTimeout(off, 0); + } + }; } - - var x = a.length; - var y = b.length; - - for (var i = 0, len = Math.min(x, y); i < len; ++i) { - if (a[i] !== b[i]) { - x = a[i]; - y = b[i]; - break; + d3.mouse = function(container) { + return d3_mousePoint(container, d3_eventSource()); + }; + var d3_mouse_bug44083 = this.navigator && /WebKit/.test(this.navigator.userAgent) ? -1 : 0; + function d3_mousePoint(container, e) { + if (e.changedTouches) e = e.changedTouches[0]; + var svg = container.ownerSVGElement || container; + if (svg.createSVGPoint) { + var point = svg.createSVGPoint(); + if (d3_mouse_bug44083 < 0) { + var window = d3_window(container); + if (window.scrollX || window.scrollY) { + svg = d3.select("body").append("svg").style({ + position: "absolute", + top: 0, + left: 0, + margin: 0, + padding: 0, + border: "none" + }, "important"); + var ctm = svg[0][0].getScreenCTM(); + d3_mouse_bug44083 = !(ctm.f || ctm.e); + svg.remove(); + } + } + if (d3_mouse_bug44083) point.x = e.pageX, point.y = e.pageY; else point.x = e.clientX, + point.y = e.clientY; + point = point.matrixTransform(container.getScreenCTM().inverse()); + return [ point.x, point.y ]; } + var rect = container.getBoundingClientRect(); + return [ e.clientX - rect.left - container.clientLeft, e.clientY - rect.top - container.clientTop ]; } - - if (x < y) { - return -1; - } - if (y < x) { - return 1; - } - return 0; -} -function isBuffer(b) { - if (global.Buffer && typeof global.Buffer.isBuffer === 'function') { - return global.Buffer.isBuffer(b); - } - return !!(b != null && b._isBuffer); -} - -// based on node assert, original notice: -// NB: The URL to the CommonJS spec is kept just for tradition. -// node-assert has evolved a lot since then, both in API and behavior. - -// http://wiki.commonjs.org/wiki/Unit_Testing/1.0 -// -// THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8! -// -// Originally from narwhal.js (http://narwhaljs.org) -// Copyright (c) 2009 Thomas Robinson <280north.com> -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the 'Software'), to -// deal in the Software without restriction, including without limitation the -// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -// sell copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -var util = _dereq_('util/'); -var hasOwn = Object.prototype.hasOwnProperty; -var pSlice = Array.prototype.slice; -var functionsHaveNames = (function () { - return function foo() {}.name === 'foo'; -}()); -function pToString (obj) { - return Object.prototype.toString.call(obj); -} -function isView(arrbuf) { - if (isBuffer(arrbuf)) { - return false; + d3.touch = function(container, touches, identifier) { + if (arguments.length < 3) identifier = touches, touches = d3_eventSource().changedTouches; + if (touches) for (var i = 0, n = touches.length, touch; i < n; ++i) { + if ((touch = touches[i]).identifier === identifier) { + return d3_mousePoint(container, touch); + } + } + }; + d3.behavior.drag = function() { + var event = d3_eventDispatch(drag, "drag", "dragstart", "dragend"), origin = null, mousedown = dragstart(d3_noop, d3.mouse, d3_window, "mousemove", "mouseup"), touchstart = dragstart(d3_behavior_dragTouchId, d3.touch, d3_identity, "touchmove", "touchend"); + function drag() { + this.on("mousedown.drag", mousedown).on("touchstart.drag", touchstart); + } + function dragstart(id, position, subject, move, end) { + return function() { + var that = this, target = d3.event.target.correspondingElement || d3.event.target, parent = that.parentNode, dispatch = event.of(that, arguments), dragged = 0, dragId = id(), dragName = ".drag" + (dragId == null ? "" : "-" + dragId), dragOffset, dragSubject = d3.select(subject(target)).on(move + dragName, moved).on(end + dragName, ended), dragRestore = d3_event_dragSuppress(target), position0 = position(parent, dragId); + if (origin) { + dragOffset = origin.apply(that, arguments); + dragOffset = [ dragOffset.x - position0[0], dragOffset.y - position0[1] ]; + } else { + dragOffset = [ 0, 0 ]; + } + dispatch({ + type: "dragstart" + }); + function moved() { + var position1 = position(parent, dragId), dx, dy; + if (!position1) return; + dx = position1[0] - position0[0]; + dy = position1[1] - position0[1]; + dragged |= dx | dy; + position0 = position1; + dispatch({ + type: "drag", + x: position1[0] + dragOffset[0], + y: position1[1] + dragOffset[1], + dx: dx, + dy: dy + }); + } + function ended() { + if (!position(parent, dragId)) return; + dragSubject.on(move + dragName, null).on(end + dragName, null); + dragRestore(dragged); + dispatch({ + type: "dragend" + }); + } + }; + } + drag.origin = function(x) { + if (!arguments.length) return origin; + origin = x; + return drag; + }; + return d3.rebind(drag, event, "on"); + }; + function d3_behavior_dragTouchId() { + return d3.event.changedTouches[0].identifier; } - if (typeof global.ArrayBuffer !== 'function') { - return false; + d3.touches = function(container, touches) { + if (arguments.length < 2) touches = d3_eventSource().touches; + return touches ? d3_array(touches).map(function(touch) { + var point = d3_mousePoint(container, touch); + point.identifier = touch.identifier; + return point; + }) : []; + }; + var ε = 1e-6, ε2 = ε * ε, π = Math.PI, τ = 2 * π, τε = τ - ε, halfπ = π / 2, d3_radians = π / 180, d3_degrees = 180 / π; + function d3_sgn(x) { + return x > 0 ? 1 : x < 0 ? -1 : 0; } - if (typeof ArrayBuffer.isView === 'function') { - return ArrayBuffer.isView(arrbuf); + function d3_cross2d(a, b, c) { + return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]); } - if (!arrbuf) { - return false; + function d3_acos(x) { + return x > 1 ? 0 : x < -1 ? π : Math.acos(x); } - if (arrbuf instanceof DataView) { - return true; + function d3_asin(x) { + return x > 1 ? halfπ : x < -1 ? -halfπ : Math.asin(x); } - if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) { - return true; + function d3_sinh(x) { + return ((x = Math.exp(x)) - 1 / x) / 2; } - return false; -} -// 1. The assert module provides functions that throw -// AssertionError's when particular conditions are not met. The -// assert module must conform to the following interface. - -var assert = module.exports = ok; - -// 2. The AssertionError is defined in assert. -// new assert.AssertionError({ message: message, -// actual: actual, -// expected: expected }) - -var regex = /\s*function\s+([^\(\s]*)\s*/; -// based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js -function getName(func) { - if (!util.isFunction(func)) { - return; + function d3_cosh(x) { + return ((x = Math.exp(x)) + 1 / x) / 2; } - if (functionsHaveNames) { - return func.name; + function d3_tanh(x) { + return ((x = Math.exp(2 * x)) - 1) / (x + 1); } - var str = func.toString(); - var match = str.match(regex); - return match && match[1]; -} -assert.AssertionError = function AssertionError(options) { - this.name = 'AssertionError'; - this.actual = options.actual; - this.expected = options.expected; - this.operator = options.operator; - if (options.message) { - this.message = options.message; - this.generatedMessage = false; - } else { - this.message = getMessage(this); - this.generatedMessage = true; + function d3_haversin(x) { + return (x = Math.sin(x / 2)) * x; } - var stackStartFunction = options.stackStartFunction || fail; - if (Error.captureStackTrace) { - Error.captureStackTrace(this, stackStartFunction); - } else { - // non v8 browsers so we can have a stacktrace - var err = new Error(); - if (err.stack) { - var out = err.stack; - - // try to strip useless frames - var fn_name = getName(stackStartFunction); - var idx = out.indexOf('\n' + fn_name); - if (idx >= 0) { - // once we have located the function frame - // we need to strip out everything before it (and its line) - var next_line = out.indexOf('\n', idx + 1); - out = out.substring(next_line + 1); - } - - this.stack = out; + var ρ = Math.SQRT2, ρ2 = 2, ρ4 = 4; + d3.interpolateZoom = function(p0, p1) { + var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], ux1 = p1[0], uy1 = p1[1], w1 = p1[2], dx = ux1 - ux0, dy = uy1 - uy0, d2 = dx * dx + dy * dy, i, S; + if (d2 < ε2) { + S = Math.log(w1 / w0) / ρ; + i = function(t) { + return [ ux0 + t * dx, uy0 + t * dy, w0 * Math.exp(ρ * t * S) ]; + }; + } else { + var d1 = Math.sqrt(d2), b0 = (w1 * w1 - w0 * w0 + ρ4 * d2) / (2 * w0 * ρ2 * d1), b1 = (w1 * w1 - w0 * w0 - ρ4 * d2) / (2 * w1 * ρ2 * d1), r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1); + S = (r1 - r0) / ρ; + i = function(t) { + var s = t * S, coshr0 = d3_cosh(r0), u = w0 / (ρ2 * d1) * (coshr0 * d3_tanh(ρ * s + r0) - d3_sinh(r0)); + return [ ux0 + u * dx, uy0 + u * dy, w0 * coshr0 / d3_cosh(ρ * s + r0) ]; + }; } - } -}; - -// assert.AssertionError instanceof Error -util.inherits(assert.AssertionError, Error); - -function truncate(s, n) { - if (typeof s === 'string') { - return s.length < n ? s : s.slice(0, n); - } else { - return s; - } -} -function inspect(something) { - if (functionsHaveNames || !util.isFunction(something)) { - return util.inspect(something); - } - var rawname = getName(something); - var name = rawname ? ': ' + rawname : ''; - return '[Function' + name + ']'; -} -function getMessage(self) { - return truncate(inspect(self.actual), 128) + ' ' + - self.operator + ' ' + - truncate(inspect(self.expected), 128); -} - -// At present only the three keys mentioned above are used and -// understood by the spec. Implementations or sub modules can pass -// other keys to the AssertionError's constructor - they will be -// ignored. - -// 3. All of the following functions must throw an AssertionError -// when a corresponding condition is not met, with a message that -// may be undefined if not provided. All assertion methods provide -// both the actual and expected values to the assertion error for -// display purposes. - -function fail(actual, expected, message, operator, stackStartFunction) { - throw new assert.AssertionError({ - message: message, - actual: actual, - expected: expected, - operator: operator, - stackStartFunction: stackStartFunction - }); -} - -// EXTENSION! allows for well behaved errors defined elsewhere. -assert.fail = fail; - -// 4. Pure assertion tests whether a value is truthy, as determined -// by !!guard. -// assert.ok(guard, message_opt); -// This statement is equivalent to assert.equal(true, !!guard, -// message_opt);. To test strictly for the value true, use -// assert.strictEqual(true, guard, message_opt);. - -function ok(value, message) { - if (!value) fail(value, true, message, '==', assert.ok); -} -assert.ok = ok; - -// 5. The equality assertion tests shallow, coercive equality with -// ==. -// assert.equal(actual, expected, message_opt); - -assert.equal = function equal(actual, expected, message) { - if (actual != expected) fail(actual, expected, message, '==', assert.equal); -}; - -// 6. The non-equality assertion tests for whether two objects are not equal -// with != assert.notEqual(actual, expected, message_opt); - -assert.notEqual = function notEqual(actual, expected, message) { - if (actual == expected) { - fail(actual, expected, message, '!=', assert.notEqual); - } -}; - -// 7. The equivalence assertion tests a deep equality relation. -// assert.deepEqual(actual, expected, message_opt); - -assert.deepEqual = function deepEqual(actual, expected, message) { - if (!_deepEqual(actual, expected, false)) { - fail(actual, expected, message, 'deepEqual', assert.deepEqual); - } -}; - -assert.deepStrictEqual = function deepStrictEqual(actual, expected, message) { - if (!_deepEqual(actual, expected, true)) { - fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual); - } -}; - -function _deepEqual(actual, expected, strict, memos) { - // 7.1. All identical values are equivalent, as determined by ===. - if (actual === expected) { - return true; - } else if (isBuffer(actual) && isBuffer(expected)) { - return compare(actual, expected) === 0; - - // 7.2. If the expected value is a Date object, the actual value is - // equivalent if it is also a Date object that refers to the same time. - } else if (util.isDate(actual) && util.isDate(expected)) { - return actual.getTime() === expected.getTime(); - - // 7.3 If the expected value is a RegExp object, the actual value is - // equivalent if it is also a RegExp object with the same source and - // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`). - } else if (util.isRegExp(actual) && util.isRegExp(expected)) { - return actual.source === expected.source && - actual.global === expected.global && - actual.multiline === expected.multiline && - actual.lastIndex === expected.lastIndex && - actual.ignoreCase === expected.ignoreCase; - - // 7.4. Other pairs that do not both pass typeof value == 'object', - // equivalence is determined by ==. - } else if ((actual === null || typeof actual !== 'object') && - (expected === null || typeof expected !== 'object')) { - return strict ? actual === expected : actual == expected; - - // If both values are instances of typed arrays, wrap their underlying - // ArrayBuffers in a Buffer each to increase performance - // This optimization requires the arrays to have the same type as checked by - // Object.prototype.toString (aka pToString). Never perform binary - // comparisons for Float*Arrays, though, since e.g. +0 === -0 but their - // bit patterns are not identical. - } else if (isView(actual) && isView(expected) && - pToString(actual) === pToString(expected) && - !(actual instanceof Float32Array || - actual instanceof Float64Array)) { - return compare(new Uint8Array(actual.buffer), - new Uint8Array(expected.buffer)) === 0; - - // 7.5 For all other Object pairs, including Array objects, equivalence is - // determined by having the same number of owned properties (as verified - // with Object.prototype.hasOwnProperty.call), the same set of keys - // (although not necessarily the same order), equivalent values for every - // corresponding key, and an identical 'prototype' property. Note: this - // accounts for both named and indexed properties on Arrays. - } else if (isBuffer(actual) !== isBuffer(expected)) { - return false; - } else { - memos = memos || {actual: [], expected: []}; - - var actualIndex = memos.actual.indexOf(actual); - if (actualIndex !== -1) { - if (actualIndex === memos.expected.indexOf(expected)) { - return true; + i.duration = S * 1e3; + return i; + }; + d3.behavior.zoom = function() { + var view = { + x: 0, + y: 0, + k: 1 + }, translate0, center0, center, size = [ 960, 500 ], scaleExtent = d3_behavior_zoomInfinity, duration = 250, zooming = 0, mousedown = "mousedown.zoom", mousemove = "mousemove.zoom", mouseup = "mouseup.zoom", mousewheelTimer, touchstart = "touchstart.zoom", touchtime, event = d3_eventDispatch(zoom, "zoomstart", "zoom", "zoomend"), x0, x1, y0, y1; + if (!d3_behavior_zoomWheel) { + d3_behavior_zoomWheel = "onwheel" in d3_document ? (d3_behavior_zoomDelta = function() { + return -d3.event.deltaY * (d3.event.deltaMode ? 120 : 1); + }, "wheel") : "onmousewheel" in d3_document ? (d3_behavior_zoomDelta = function() { + return d3.event.wheelDelta; + }, "mousewheel") : (d3_behavior_zoomDelta = function() { + return -d3.event.detail; + }, "MozMousePixelScroll"); + } + function zoom(g) { + g.on(mousedown, mousedowned).on(d3_behavior_zoomWheel + ".zoom", mousewheeled).on("dblclick.zoom", dblclicked).on(touchstart, touchstarted); + } + zoom.event = function(g) { + g.each(function() { + var dispatch = event.of(this, arguments), view1 = view; + if (d3_transitionInheritId) { + d3.select(this).transition().each("start.zoom", function() { + view = this.__chart__ || { + x: 0, + y: 0, + k: 1 + }; + zoomstarted(dispatch); + }).tween("zoom:zoom", function() { + var dx = size[0], dy = size[1], cx = center0 ? center0[0] : dx / 2, cy = center0 ? center0[1] : dy / 2, i = d3.interpolateZoom([ (cx - view.x) / view.k, (cy - view.y) / view.k, dx / view.k ], [ (cx - view1.x) / view1.k, (cy - view1.y) / view1.k, dx / view1.k ]); + return function(t) { + var l = i(t), k = dx / l[2]; + this.__chart__ = view = { + x: cx - l[0] * k, + y: cy - l[1] * k, + k: k + }; + zoomed(dispatch); + }; + }).each("interrupt.zoom", function() { + zoomended(dispatch); + }).each("end.zoom", function() { + zoomended(dispatch); + }); + } else { + this.__chart__ = view; + zoomstarted(dispatch); + zoomed(dispatch); + zoomended(dispatch); + } + }); + }; + zoom.translate = function(_) { + if (!arguments.length) return [ view.x, view.y ]; + view = { + x: +_[0], + y: +_[1], + k: view.k + }; + rescale(); + return zoom; + }; + zoom.scale = function(_) { + if (!arguments.length) return view.k; + view = { + x: view.x, + y: view.y, + k: null + }; + scaleTo(+_); + rescale(); + return zoom; + }; + zoom.scaleExtent = function(_) { + if (!arguments.length) return scaleExtent; + scaleExtent = _ == null ? d3_behavior_zoomInfinity : [ +_[0], +_[1] ]; + return zoom; + }; + zoom.center = function(_) { + if (!arguments.length) return center; + center = _ && [ +_[0], +_[1] ]; + return zoom; + }; + zoom.size = function(_) { + if (!arguments.length) return size; + size = _ && [ +_[0], +_[1] ]; + return zoom; + }; + zoom.duration = function(_) { + if (!arguments.length) return duration; + duration = +_; + return zoom; + }; + zoom.x = function(z) { + if (!arguments.length) return x1; + x1 = z; + x0 = z.copy(); + view = { + x: 0, + y: 0, + k: 1 + }; + return zoom; + }; + zoom.y = function(z) { + if (!arguments.length) return y1; + y1 = z; + y0 = z.copy(); + view = { + x: 0, + y: 0, + k: 1 + }; + return zoom; + }; + function location(p) { + return [ (p[0] - view.x) / view.k, (p[1] - view.y) / view.k ]; + } + function point(l) { + return [ l[0] * view.k + view.x, l[1] * view.k + view.y ]; + } + function scaleTo(s) { + view.k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], s)); + } + function translateTo(p, l) { + l = point(l); + view.x += p[0] - l[0]; + view.y += p[1] - l[1]; + } + function zoomTo(that, p, l, k) { + that.__chart__ = { + x: view.x, + y: view.y, + k: view.k + }; + scaleTo(Math.pow(2, k)); + translateTo(center0 = p, l); + that = d3.select(that); + if (duration > 0) that = that.transition().duration(duration); + that.call(zoom.event); + } + function rescale() { + if (x1) x1.domain(x0.range().map(function(x) { + return (x - view.x) / view.k; + }).map(x0.invert)); + if (y1) y1.domain(y0.range().map(function(y) { + return (y - view.y) / view.k; + }).map(y0.invert)); + } + function zoomstarted(dispatch) { + if (!zooming++) dispatch({ + type: "zoomstart" + }); + } + function zoomed(dispatch) { + rescale(); + dispatch({ + type: "zoom", + scale: view.k, + translate: [ view.x, view.y ] + }); + } + function zoomended(dispatch) { + if (!--zooming) dispatch({ + type: "zoomend" + }), center0 = null; + } + function mousedowned() { + var that = this, dispatch = event.of(that, arguments), dragged = 0, subject = d3.select(d3_window(that)).on(mousemove, moved).on(mouseup, ended), location0 = location(d3.mouse(that)), dragRestore = d3_event_dragSuppress(that); + d3_selection_interrupt.call(that); + zoomstarted(dispatch); + function moved() { + dragged = 1; + translateTo(d3.mouse(that), location0); + zoomed(dispatch); + } + function ended() { + subject.on(mousemove, null).on(mouseup, null); + dragRestore(dragged); + zoomended(dispatch); } } - - memos.actual.push(actual); - memos.expected.push(expected); - - return objEquiv(actual, expected, strict, memos); - } -} - -function isArguments(object) { - return Object.prototype.toString.call(object) == '[object Arguments]'; -} - -function objEquiv(a, b, strict, actualVisitedObjects) { - if (a === null || a === undefined || b === null || b === undefined) - return false; - // if one is a primitive, the other must be same - if (util.isPrimitive(a) || util.isPrimitive(b)) - return a === b; - if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b)) - return false; - var aIsArgs = isArguments(a); - var bIsArgs = isArguments(b); - if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs)) - return false; - if (aIsArgs) { - a = pSlice.call(a); - b = pSlice.call(b); - return _deepEqual(a, b, strict); - } - var ka = objectKeys(a); - var kb = objectKeys(b); - var key, i; - // having the same number of owned properties (keys incorporates - // hasOwnProperty) - if (ka.length !== kb.length) - return false; - //the same set of keys (although not necessarily the same order), - ka.sort(); - kb.sort(); - //~~~cheap key test - for (i = ka.length - 1; i >= 0; i--) { - if (ka[i] !== kb[i]) - return false; - } - //equivalent values for every corresponding key, and - //~~~possibly expensive deep test - for (i = ka.length - 1; i >= 0; i--) { - key = ka[i]; - if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects)) - return false; - } - return true; -} - -// 8. The non-equivalence assertion tests for any deep inequality. -// assert.notDeepEqual(actual, expected, message_opt); - -assert.notDeepEqual = function notDeepEqual(actual, expected, message) { - if (_deepEqual(actual, expected, false)) { - fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual); - } -}; - -assert.notDeepStrictEqual = notDeepStrictEqual; -function notDeepStrictEqual(actual, expected, message) { - if (_deepEqual(actual, expected, true)) { - fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual); - } -} - - -// 9. The strict equality assertion tests strict equality, as determined by ===. -// assert.strictEqual(actual, expected, message_opt); - -assert.strictEqual = function strictEqual(actual, expected, message) { - if (actual !== expected) { - fail(actual, expected, message, '===', assert.strictEqual); + function touchstarted() { + var that = this, dispatch = event.of(that, arguments), locations0 = {}, distance0 = 0, scale0, zoomName = ".zoom-" + d3.event.changedTouches[0].identifier, touchmove = "touchmove" + zoomName, touchend = "touchend" + zoomName, targets = [], subject = d3.select(that), dragRestore = d3_event_dragSuppress(that); + started(); + zoomstarted(dispatch); + subject.on(mousedown, null).on(touchstart, started); + function relocate() { + var touches = d3.touches(that); + scale0 = view.k; + touches.forEach(function(t) { + if (t.identifier in locations0) locations0[t.identifier] = location(t); + }); + return touches; + } + function started() { + var target = d3.event.target; + d3.select(target).on(touchmove, moved).on(touchend, ended); + targets.push(target); + var changed = d3.event.changedTouches; + for (var i = 0, n = changed.length; i < n; ++i) { + locations0[changed[i].identifier] = null; + } + var touches = relocate(), now = Date.now(); + if (touches.length === 1) { + if (now - touchtime < 500) { + var p = touches[0]; + zoomTo(that, p, locations0[p.identifier], Math.floor(Math.log(view.k) / Math.LN2) + 1); + d3_eventPreventDefault(); + } + touchtime = now; + } else if (touches.length > 1) { + var p = touches[0], q = touches[1], dx = p[0] - q[0], dy = p[1] - q[1]; + distance0 = dx * dx + dy * dy; + } + } + function moved() { + var touches = d3.touches(that), p0, l0, p1, l1; + d3_selection_interrupt.call(that); + for (var i = 0, n = touches.length; i < n; ++i, l1 = null) { + p1 = touches[i]; + if (l1 = locations0[p1.identifier]) { + if (l0) break; + p0 = p1, l0 = l1; + } + } + if (l1) { + var distance1 = (distance1 = p1[0] - p0[0]) * distance1 + (distance1 = p1[1] - p0[1]) * distance1, scale1 = distance0 && Math.sqrt(distance1 / distance0); + p0 = [ (p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2 ]; + l0 = [ (l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2 ]; + scaleTo(scale1 * scale0); + } + touchtime = null; + translateTo(p0, l0); + zoomed(dispatch); + } + function ended() { + if (d3.event.touches.length) { + var changed = d3.event.changedTouches; + for (var i = 0, n = changed.length; i < n; ++i) { + delete locations0[changed[i].identifier]; + } + for (var identifier in locations0) { + return void relocate(); + } + } + d3.selectAll(targets).on(zoomName, null); + subject.on(mousedown, mousedowned).on(touchstart, touchstarted); + dragRestore(); + zoomended(dispatch); + } + } + function mousewheeled() { + var dispatch = event.of(this, arguments); + if (mousewheelTimer) clearTimeout(mousewheelTimer); else d3_selection_interrupt.call(this), + translate0 = location(center0 = center || d3.mouse(this)), zoomstarted(dispatch); + mousewheelTimer = setTimeout(function() { + mousewheelTimer = null; + zoomended(dispatch); + }, 50); + d3_eventPreventDefault(); + scaleTo(Math.pow(2, d3_behavior_zoomDelta() * .002) * view.k); + translateTo(center0, translate0); + zoomed(dispatch); + } + function dblclicked() { + var p = d3.mouse(this), k = Math.log(view.k) / Math.LN2; + zoomTo(this, p, location(p), d3.event.shiftKey ? Math.ceil(k) - 1 : Math.floor(k) + 1); + } + return d3.rebind(zoom, event, "on"); + }; + var d3_behavior_zoomInfinity = [ 0, Infinity ], d3_behavior_zoomDelta, d3_behavior_zoomWheel; + d3.color = d3_color; + function d3_color() {} + d3_color.prototype.toString = function() { + return this.rgb() + ""; + }; + d3.hsl = d3_hsl; + function d3_hsl(h, s, l) { + return this instanceof d3_hsl ? void (this.h = +h, this.s = +s, this.l = +l) : arguments.length < 2 ? h instanceof d3_hsl ? new d3_hsl(h.h, h.s, h.l) : d3_rgb_parse("" + h, d3_rgb_hsl, d3_hsl) : new d3_hsl(h, s, l); } -}; - -// 10. The strict non-equality assertion tests for strict inequality, as -// determined by !==. assert.notStrictEqual(actual, expected, message_opt); - -assert.notStrictEqual = function notStrictEqual(actual, expected, message) { - if (actual === expected) { - fail(actual, expected, message, '!==', assert.notStrictEqual); + var d3_hslPrototype = d3_hsl.prototype = new d3_color(); + d3_hslPrototype.brighter = function(k) { + k = Math.pow(.7, arguments.length ? k : 1); + return new d3_hsl(this.h, this.s, this.l / k); + }; + d3_hslPrototype.darker = function(k) { + k = Math.pow(.7, arguments.length ? k : 1); + return new d3_hsl(this.h, this.s, k * this.l); + }; + d3_hslPrototype.rgb = function() { + return d3_hsl_rgb(this.h, this.s, this.l); + }; + function d3_hsl_rgb(h, s, l) { + var m1, m2; + h = isNaN(h) ? 0 : (h %= 360) < 0 ? h + 360 : h; + s = isNaN(s) ? 0 : s < 0 ? 0 : s > 1 ? 1 : s; + l = l < 0 ? 0 : l > 1 ? 1 : l; + m2 = l <= .5 ? l * (1 + s) : l + s - l * s; + m1 = 2 * l - m2; + function v(h) { + if (h > 360) h -= 360; else if (h < 0) h += 360; + if (h < 60) return m1 + (m2 - m1) * h / 60; + if (h < 180) return m2; + if (h < 240) return m1 + (m2 - m1) * (240 - h) / 60; + return m1; + } + function vv(h) { + return Math.round(v(h) * 255); + } + return new d3_rgb(vv(h + 120), vv(h), vv(h - 120)); } -}; - -function expectedException(actual, expected) { - if (!actual || !expected) { - return false; + d3.hcl = d3_hcl; + function d3_hcl(h, c, l) { + return this instanceof d3_hcl ? void (this.h = +h, this.c = +c, this.l = +l) : arguments.length < 2 ? h instanceof d3_hcl ? new d3_hcl(h.h, h.c, h.l) : h instanceof d3_lab ? d3_lab_hcl(h.l, h.a, h.b) : d3_lab_hcl((h = d3_rgb_lab((h = d3.rgb(h)).r, h.g, h.b)).l, h.a, h.b) : new d3_hcl(h, c, l); } - - if (Object.prototype.toString.call(expected) == '[object RegExp]') { - return expected.test(actual); + var d3_hclPrototype = d3_hcl.prototype = new d3_color(); + d3_hclPrototype.brighter = function(k) { + return new d3_hcl(this.h, this.c, Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1))); + }; + d3_hclPrototype.darker = function(k) { + return new d3_hcl(this.h, this.c, Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1))); + }; + d3_hclPrototype.rgb = function() { + return d3_hcl_lab(this.h, this.c, this.l).rgb(); + }; + function d3_hcl_lab(h, c, l) { + if (isNaN(h)) h = 0; + if (isNaN(c)) c = 0; + return new d3_lab(l, Math.cos(h *= d3_radians) * c, Math.sin(h) * c); } - - try { - if (actual instanceof expected) { - return true; - } - } catch (e) { - // Ignore. The instanceof check doesn't work for arrow functions. + d3.lab = d3_lab; + function d3_lab(l, a, b) { + return this instanceof d3_lab ? void (this.l = +l, this.a = +a, this.b = +b) : arguments.length < 2 ? l instanceof d3_lab ? new d3_lab(l.l, l.a, l.b) : l instanceof d3_hcl ? d3_hcl_lab(l.h, l.c, l.l) : d3_rgb_lab((l = d3_rgb(l)).r, l.g, l.b) : new d3_lab(l, a, b); } - - if (Error.isPrototypeOf(expected)) { - return false; + var d3_lab_K = 18; + var d3_lab_X = .95047, d3_lab_Y = 1, d3_lab_Z = 1.08883; + var d3_labPrototype = d3_lab.prototype = new d3_color(); + d3_labPrototype.brighter = function(k) { + return new d3_lab(Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)), this.a, this.b); + }; + d3_labPrototype.darker = function(k) { + return new d3_lab(Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)), this.a, this.b); + }; + d3_labPrototype.rgb = function() { + return d3_lab_rgb(this.l, this.a, this.b); + }; + function d3_lab_rgb(l, a, b) { + var y = (l + 16) / 116, x = y + a / 500, z = y - b / 200; + x = d3_lab_xyz(x) * d3_lab_X; + y = d3_lab_xyz(y) * d3_lab_Y; + z = d3_lab_xyz(z) * d3_lab_Z; + return new d3_rgb(d3_xyz_rgb(3.2404542 * x - 1.5371385 * y - .4985314 * z), d3_xyz_rgb(-.969266 * x + 1.8760108 * y + .041556 * z), d3_xyz_rgb(.0556434 * x - .2040259 * y + 1.0572252 * z)); } - - return expected.call({}, actual) === true; -} - -function _tryBlock(block) { - var error; - try { - block(); - } catch (e) { - error = e; + function d3_lab_hcl(l, a, b) { + return l > 0 ? new d3_hcl(Math.atan2(b, a) * d3_degrees, Math.sqrt(a * a + b * b), l) : new d3_hcl(NaN, NaN, l); } - return error; -} - -function _throws(shouldThrow, block, expected, message) { - var actual; - - if (typeof block !== 'function') { - throw new TypeError('"block" argument must be a function'); + function d3_lab_xyz(x) { + return x > .206893034 ? x * x * x : (x - 4 / 29) / 7.787037; } - - if (typeof expected === 'string') { - message = expected; - expected = null; + function d3_xyz_lab(x) { + return x > .008856 ? Math.pow(x, 1 / 3) : 7.787037 * x + 4 / 29; } - - actual = _tryBlock(block); - - message = (expected && expected.name ? ' (' + expected.name + ').' : '.') + - (message ? ' ' + message : '.'); - - if (shouldThrow && !actual) { - fail(actual, expected, 'Missing expected exception' + message); + function d3_xyz_rgb(r) { + return Math.round(255 * (r <= .00304 ? 12.92 * r : 1.055 * Math.pow(r, 1 / 2.4) - .055)); } - - var userProvidedMessage = typeof message === 'string'; - var isUnwantedException = !shouldThrow && util.isError(actual); - var isUnexpectedException = !shouldThrow && actual && !expected; - - if ((isUnwantedException && - userProvidedMessage && - expectedException(actual, expected)) || - isUnexpectedException) { - fail(actual, expected, 'Got unwanted exception' + message); + d3.rgb = d3_rgb; + function d3_rgb(r, g, b) { + return this instanceof d3_rgb ? void (this.r = ~~r, this.g = ~~g, this.b = ~~b) : arguments.length < 2 ? r instanceof d3_rgb ? new d3_rgb(r.r, r.g, r.b) : d3_rgb_parse("" + r, d3_rgb, d3_hsl_rgb) : new d3_rgb(r, g, b); } - - if ((shouldThrow && actual && expected && - !expectedException(actual, expected)) || (!shouldThrow && actual)) { - throw actual; + function d3_rgbNumber(value) { + return new d3_rgb(value >> 16, value >> 8 & 255, value & 255); } -} - -// 11. Expected to throw an error: -// assert.throws(block, Error_opt, message_opt); - -assert.throws = function(block, /*optional*/error, /*optional*/message) { - _throws(true, block, error, message); -}; - -// EXTENSION! This is annoying to write outside this module. -assert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) { - _throws(false, block, error, message); -}; - -assert.ifError = function(err) { if (err) throw err; }; - -// Expose a strict only variant of assert -function strict(value, message) { - if (!value) fail(value, true, message, '==', strict); -} -assert.strict = objectAssign(strict, assert, { - equal: assert.strictEqual, - deepEqual: assert.deepStrictEqual, - notEqual: assert.notStrictEqual, - notDeepEqual: assert.notDeepStrictEqual -}); -assert.strict.strict = assert.strict; - -var objectKeys = Object.keys || function (obj) { - var keys = []; - for (var key in obj) { - if (hasOwn.call(obj, key)) keys.push(key); + function d3_rgbString(value) { + return d3_rgbNumber(value) + ""; } - return keys; -}; - -}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"object-assign":499,"util/":76}],74:[function(_dereq_,module,exports){ -if (typeof Object.create === 'function') { - // implementation from standard node.js 'util' module - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }); + var d3_rgbPrototype = d3_rgb.prototype = new d3_color(); + d3_rgbPrototype.brighter = function(k) { + k = Math.pow(.7, arguments.length ? k : 1); + var r = this.r, g = this.g, b = this.b, i = 30; + if (!r && !g && !b) return new d3_rgb(i, i, i); + if (r && r < i) r = i; + if (g && g < i) g = i; + if (b && b < i) b = i; + return new d3_rgb(Math.min(255, r / k), Math.min(255, g / k), Math.min(255, b / k)); }; -} else { - // old school shim for old browsers - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - var TempCtor = function () {} - TempCtor.prototype = superCtor.prototype - ctor.prototype = new TempCtor() - ctor.prototype.constructor = ctor - } -} - -},{}],75:[function(_dereq_,module,exports){ -module.exports = function isBuffer(arg) { - return arg && typeof arg === 'object' - && typeof arg.copy === 'function' - && typeof arg.fill === 'function' - && typeof arg.readUInt8 === 'function'; -} -},{}],76:[function(_dereq_,module,exports){ -(function (process,global){(function (){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -var formatRegExp = /%[sdj%]/g; -exports.format = function(f) { - if (!isString(f)) { - var objects = []; - for (var i = 0; i < arguments.length; i++) { - objects.push(inspect(arguments[i])); - } - return objects.join(' '); + d3_rgbPrototype.darker = function(k) { + k = Math.pow(.7, arguments.length ? k : 1); + return new d3_rgb(k * this.r, k * this.g, k * this.b); + }; + d3_rgbPrototype.hsl = function() { + return d3_rgb_hsl(this.r, this.g, this.b); + }; + d3_rgbPrototype.toString = function() { + return "#" + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b); + }; + function d3_rgb_hex(v) { + return v < 16 ? "0" + Math.max(0, v).toString(16) : Math.min(255, v).toString(16); } + function d3_rgb_parse(format, rgb, hsl) { + var r = 0, g = 0, b = 0, m1, m2, color; + m1 = /([a-z]+)\((.*)\)/.exec(format = format.toLowerCase()); + if (m1) { + m2 = m1[2].split(","); + switch (m1[1]) { + case "hsl": + { + return hsl(parseFloat(m2[0]), parseFloat(m2[1]) / 100, parseFloat(m2[2]) / 100); + } - var i = 1; - var args = arguments; - var len = args.length; - var str = String(f).replace(formatRegExp, function(x) { - if (x === '%%') return '%'; - if (i >= len) return x; - switch (x) { - case '%s': return String(args[i++]); - case '%d': return Number(args[i++]); - case '%j': - try { - return JSON.stringify(args[i++]); - } catch (_) { - return '[Circular]'; + case "rgb": + { + return rgb(d3_rgb_parseNumber(m2[0]), d3_rgb_parseNumber(m2[1]), d3_rgb_parseNumber(m2[2])); } - default: - return x; + } } - }); - for (var x = args[i]; i < len; x = args[++i]) { - if (isNull(x) || !isObject(x)) { - str += ' ' + x; - } else { - str += ' ' + inspect(x); + if (color = d3_rgb_names.get(format)) { + return rgb(color.r, color.g, color.b); } - } - return str; -}; - - -// Mark that a method should not be used. -// Returns a modified function which warns once by default. -// If --no-deprecation is set, then it is a no-op. -exports.deprecate = function(fn, msg) { - // Allow for deprecating things in the process of starting up. - if (isUndefined(global.process)) { - return function() { - return exports.deprecate(fn, msg).apply(this, arguments); - }; - } - - if (process.noDeprecation === true) { - return fn; - } - - var warned = false; - function deprecated() { - if (!warned) { - if (process.throwDeprecation) { - throw new Error(msg); - } else if (process.traceDeprecation) { - console.trace(msg); - } else { - console.error(msg); + if (format != null && format.charAt(0) === "#" && !isNaN(color = parseInt(format.slice(1), 16))) { + if (format.length === 4) { + r = (color & 3840) >> 4; + r = r >> 4 | r; + g = color & 240; + g = g >> 4 | g; + b = color & 15; + b = b << 4 | b; + } else if (format.length === 7) { + r = (color & 16711680) >> 16; + g = (color & 65280) >> 8; + b = color & 255; } - warned = true; } - return fn.apply(this, arguments); + return rgb(r, g, b); } - - return deprecated; -}; - - -var debugs = {}; -var debugEnviron; -exports.debuglog = function(set) { - if (isUndefined(debugEnviron)) - debugEnviron = process.env.NODE_DEBUG || ''; - set = set.toUpperCase(); - if (!debugs[set]) { - if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) { - var pid = process.pid; - debugs[set] = function() { - var msg = exports.format.apply(exports, arguments); - console.error('%s %d: %s', set, pid, msg); - }; + function d3_rgb_hsl(r, g, b) { + var min = Math.min(r /= 255, g /= 255, b /= 255), max = Math.max(r, g, b), d = max - min, h, s, l = (max + min) / 2; + if (d) { + s = l < .5 ? d / (max + min) : d / (2 - max - min); + if (r == max) h = (g - b) / d + (g < b ? 6 : 0); else if (g == max) h = (b - r) / d + 2; else h = (r - g) / d + 4; + h *= 60; } else { - debugs[set] = function() {}; - } - } - return debugs[set]; -}; - - -/** - * Echos the value of a value. Trys to print the value out - * in the best way possible given the different types. - * - * @param {Object} obj The object to print out. - * @param {Object} opts Optional options object that alters the output. - */ -/* legacy: obj, showHidden, depth, colors*/ -function inspect(obj, opts) { - // default options - var ctx = { - seen: [], - stylize: stylizeNoColor - }; - // legacy... - if (arguments.length >= 3) ctx.depth = arguments[2]; - if (arguments.length >= 4) ctx.colors = arguments[3]; - if (isBoolean(opts)) { - // legacy... - ctx.showHidden = opts; - } else if (opts) { - // got an "options" object - exports._extend(ctx, opts); - } - // set default options - if (isUndefined(ctx.showHidden)) ctx.showHidden = false; - if (isUndefined(ctx.depth)) ctx.depth = 2; - if (isUndefined(ctx.colors)) ctx.colors = false; - if (isUndefined(ctx.customInspect)) ctx.customInspect = true; - if (ctx.colors) ctx.stylize = stylizeWithColor; - return formatValue(ctx, obj, ctx.depth); -} -exports.inspect = inspect; - - -// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics -inspect.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] -}; - -// Don't use 'blue' not visible on cmd.exe -inspect.styles = { - 'special': 'cyan', - 'number': 'yellow', - 'boolean': 'yellow', - 'undefined': 'grey', - 'null': 'bold', - 'string': 'green', - 'date': 'magenta', - // "name": intentionally not styling - 'regexp': 'red' -}; - - -function stylizeWithColor(str, styleType) { - var style = inspect.styles[styleType]; - - if (style) { - return '\u001b[' + inspect.colors[style][0] + 'm' + str + - '\u001b[' + inspect.colors[style][1] + 'm'; - } else { - return str; - } -} - - -function stylizeNoColor(str, styleType) { - return str; -} - - -function arrayToHash(array) { - var hash = {}; - - array.forEach(function(val, idx) { - hash[val] = true; - }); - - return hash; -} - - -function formatValue(ctx, value, recurseTimes) { - // Provide a hook for user-specified inspect functions. - // Check that value is an object with an inspect function on it - if (ctx.customInspect && - value && - isFunction(value.inspect) && - // Filter out the util module, it's inspect function is special - value.inspect !== exports.inspect && - // Also filter out any prototype objects using the circular check. - !(value.constructor && value.constructor.prototype === value)) { - var ret = value.inspect(recurseTimes, ctx); - if (!isString(ret)) { - ret = formatValue(ctx, ret, recurseTimes); - } - return ret; - } - - // Primitive types cannot have properties - var primitive = formatPrimitive(ctx, value); - if (primitive) { - return primitive; - } - - // Look up the keys of the object. - var keys = Object.keys(value); - var visibleKeys = arrayToHash(keys); - - if (ctx.showHidden) { - keys = Object.getOwnPropertyNames(value); - } - - // IE doesn't make error fields non-enumerable - // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx - if (isError(value) - && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) { - return formatError(value); - } - - // Some type of object without properties can be shortcutted. - if (keys.length === 0) { - if (isFunction(value)) { - var name = value.name ? ': ' + value.name : ''; - return ctx.stylize('[Function' + name + ']', 'special'); - } - if (isRegExp(value)) { - return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); - } - if (isDate(value)) { - return ctx.stylize(Date.prototype.toString.call(value), 'date'); - } - if (isError(value)) { - return formatError(value); + h = NaN; + s = l > 0 && l < 1 ? 0 : h; } + return new d3_hsl(h, s, l); } - - var base = '', array = false, braces = ['{', '}']; - - // Make Array say that they are Array - if (isArray(value)) { - array = true; - braces = ['[', ']']; - } - - // Make functions say that they are functions - if (isFunction(value)) { - var n = value.name ? ': ' + value.name : ''; - base = ' [Function' + n + ']'; - } - - // Make RegExps say that they are RegExps - if (isRegExp(value)) { - base = ' ' + RegExp.prototype.toString.call(value); - } - - // Make dates with properties first say the date - if (isDate(value)) { - base = ' ' + Date.prototype.toUTCString.call(value); - } - - // Make error with message first say the error - if (isError(value)) { - base = ' ' + formatError(value); - } - - if (keys.length === 0 && (!array || value.length == 0)) { - return braces[0] + base + braces[1]; + function d3_rgb_lab(r, g, b) { + r = d3_rgb_xyz(r); + g = d3_rgb_xyz(g); + b = d3_rgb_xyz(b); + var x = d3_xyz_lab((.4124564 * r + .3575761 * g + .1804375 * b) / d3_lab_X), y = d3_xyz_lab((.2126729 * r + .7151522 * g + .072175 * b) / d3_lab_Y), z = d3_xyz_lab((.0193339 * r + .119192 * g + .9503041 * b) / d3_lab_Z); + return d3_lab(116 * y - 16, 500 * (x - y), 200 * (y - z)); } - - if (recurseTimes < 0) { - if (isRegExp(value)) { - return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); - } else { - return ctx.stylize('[Object]', 'special'); - } + function d3_rgb_xyz(r) { + return (r /= 255) <= .04045 ? r / 12.92 : Math.pow((r + .055) / 1.055, 2.4); } - - ctx.seen.push(value); - - var output; - if (array) { - output = formatArray(ctx, value, recurseTimes, visibleKeys, keys); - } else { - output = keys.map(function(key) { - return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array); - }); + function d3_rgb_parseNumber(c) { + var f = parseFloat(c); + return c.charAt(c.length - 1) === "%" ? Math.round(f * 2.55) : f; } - - ctx.seen.pop(); - - return reduceToSingleString(output, base, braces); -} - - -function formatPrimitive(ctx, value) { - if (isUndefined(value)) - return ctx.stylize('undefined', 'undefined'); - if (isString(value)) { - var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '') - .replace(/'/g, "\\'") - .replace(/\\"/g, '"') + '\''; - return ctx.stylize(simple, 'string'); + var d3_rgb_names = d3.map({ + 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 + }); + d3_rgb_names.forEach(function(key, value) { + d3_rgb_names.set(key, d3_rgbNumber(value)); + }); + function d3_functor(v) { + return typeof v === "function" ? v : function() { + return v; + }; } - if (isNumber(value)) - return ctx.stylize('' + value, 'number'); - if (isBoolean(value)) - return ctx.stylize('' + value, 'boolean'); - // For some reason typeof null is "object", so special case here. - if (isNull(value)) - return ctx.stylize('null', 'null'); -} - - -function formatError(value) { - return '[' + Error.prototype.toString.call(value) + ']'; -} - - -function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { - var output = []; - for (var i = 0, l = value.length; i < l; ++i) { - if (hasOwnProperty(value, String(i))) { - output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, - String(i), true)); - } else { - output.push(''); + d3.functor = d3_functor; + d3.xhr = d3_xhrType(d3_identity); + function d3_xhrType(response) { + return function(url, mimeType, callback) { + if (arguments.length === 2 && typeof mimeType === "function") callback = mimeType, + mimeType = null; + return d3_xhr(url, mimeType, response, callback); + }; + } + function d3_xhr(url, mimeType, response, callback) { + var xhr = {}, dispatch = d3.dispatch("beforesend", "progress", "load", "error"), headers = {}, request = new XMLHttpRequest(), responseType = null; + if (this.XDomainRequest && !("withCredentials" in request) && /^(http(s)?:)?\/\//.test(url)) request = new XDomainRequest(); + "onload" in request ? request.onload = request.onerror = respond : request.onreadystatechange = function() { + request.readyState > 3 && respond(); + }; + function respond() { + var status = request.status, result; + if (!status && d3_xhrHasResponse(request) || status >= 200 && status < 300 || status === 304) { + try { + result = response.call(xhr, request); + } catch (e) { + dispatch.error.call(xhr, e); + return; + } + dispatch.load.call(xhr, result); + } else { + dispatch.error.call(xhr, request); + } } + request.onprogress = function(event) { + var o = d3.event; + d3.event = event; + try { + dispatch.progress.call(xhr, request); + } finally { + d3.event = o; + } + }; + xhr.header = function(name, value) { + name = (name + "").toLowerCase(); + if (arguments.length < 2) return headers[name]; + if (value == null) delete headers[name]; else headers[name] = value + ""; + return xhr; + }; + xhr.mimeType = function(value) { + if (!arguments.length) return mimeType; + mimeType = value == null ? null : value + ""; + return xhr; + }; + xhr.responseType = function(value) { + if (!arguments.length) return responseType; + responseType = value; + return xhr; + }; + xhr.response = function(value) { + response = value; + return xhr; + }; + [ "get", "post" ].forEach(function(method) { + xhr[method] = function() { + return xhr.send.apply(xhr, [ method ].concat(d3_array(arguments))); + }; + }); + xhr.send = function(method, data, callback) { + if (arguments.length === 2 && typeof data === "function") callback = data, data = null; + request.open(method, url, true); + if (mimeType != null && !("accept" in headers)) headers["accept"] = mimeType + ",*/*"; + if (request.setRequestHeader) for (var name in headers) request.setRequestHeader(name, headers[name]); + if (mimeType != null && request.overrideMimeType) request.overrideMimeType(mimeType); + if (responseType != null) request.responseType = responseType; + if (callback != null) xhr.on("error", callback).on("load", function(request) { + callback(null, request); + }); + dispatch.beforesend.call(xhr, request); + request.send(data == null ? null : data); + return xhr; + }; + xhr.abort = function() { + request.abort(); + return xhr; + }; + d3.rebind(xhr, dispatch, "on"); + return callback == null ? xhr : xhr.get(d3_xhr_fixCallback(callback)); } - keys.forEach(function(key) { - if (!key.match(/^\d+$/)) { - output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, - key, true)); + function d3_xhr_fixCallback(callback) { + return callback.length === 1 ? function(error, request) { + callback(error == null ? request : null); + } : callback; + } + function d3_xhrHasResponse(request) { + var type = request.responseType; + return type && type !== "text" ? request.response : request.responseText; + } + d3.dsv = function(delimiter, mimeType) { + var reFormat = new RegExp('["' + delimiter + "\n]"), delimiterCode = delimiter.charCodeAt(0); + function dsv(url, row, callback) { + if (arguments.length < 3) callback = row, row = null; + var xhr = d3_xhr(url, mimeType, row == null ? response : typedResponse(row), callback); + xhr.row = function(_) { + return arguments.length ? xhr.response((row = _) == null ? response : typedResponse(_)) : row; + }; + return xhr; } - }); - return output; -} - - -function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { - var name, str, desc; - desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] }; - if (desc.get) { - if (desc.set) { - str = ctx.stylize('[Getter/Setter]', 'special'); - } else { - str = ctx.stylize('[Getter]', 'special'); + function response(request) { + return dsv.parse(request.responseText); } - } else { - if (desc.set) { - str = ctx.stylize('[Setter]', 'special'); + function typedResponse(f) { + return function(request) { + return dsv.parse(request.responseText, f); + }; } - } - if (!hasOwnProperty(visibleKeys, key)) { - name = '[' + key + ']'; - } - if (!str) { - if (ctx.seen.indexOf(desc.value) < 0) { - if (isNull(recurseTimes)) { - str = formatValue(ctx, desc.value, null); - } else { - str = formatValue(ctx, desc.value, recurseTimes - 1); + dsv.parse = function(text, f) { + var o; + return dsv.parseRows(text, function(row, i) { + if (o) return o(row, i - 1); + var a = function(d) { + var obj = {}; + var len = row.length; + for (var k = 0; k < len; ++k) { + obj[row[k]] = d[k]; + } + return obj; + }; + o = f ? function(row, i) { + return f(a(row), i); + } : a; + }); + }; + dsv.parseRows = function(text, f) { + var EOL = {}, EOF = {}, rows = [], N = text.length, I = 0, n = 0, t, eol; + function token() { + if (I >= N) return EOF; + if (eol) return eol = false, EOL; + var j = I; + if (text.charCodeAt(j) === 34) { + var i = j; + while (i++ < N) { + if (text.charCodeAt(i) === 34) { + if (text.charCodeAt(i + 1) !== 34) break; + ++i; + } + } + I = i + 2; + var c = text.charCodeAt(i + 1); + if (c === 13) { + eol = true; + if (text.charCodeAt(i + 2) === 10) ++I; + } else if (c === 10) { + eol = true; + } + return text.slice(j + 1, i).replace(/""/g, '"'); + } + while (I < N) { + var c = text.charCodeAt(I++), k = 1; + if (c === 10) eol = true; else if (c === 13) { + eol = true; + if (text.charCodeAt(I) === 10) ++I, ++k; + } else if (c !== delimiterCode) continue; + return text.slice(j, I - k); + } + return text.slice(j); } - if (str.indexOf('\n') > -1) { - if (array) { - str = str.split('\n').map(function(line) { - return ' ' + line; - }).join('\n').substr(2); - } else { - str = '\n' + str.split('\n').map(function(line) { - return ' ' + line; - }).join('\n'); + while ((t = token()) !== EOF) { + var a = []; + while (t !== EOL && t !== EOF) { + a.push(t); + t = token(); + } + if (f && (a = f(a, n++)) == null) continue; + rows.push(a); + } + return rows; + }; + dsv.format = function(rows) { + if (Array.isArray(rows[0])) return dsv.formatRows(rows); + var fieldSet = new d3_Set(), fields = []; + rows.forEach(function(row) { + for (var field in row) { + if (!fieldSet.has(field)) { + fields.push(fieldSet.add(field)); + } } + }); + return [ fields.map(formatValue).join(delimiter) ].concat(rows.map(function(row) { + return fields.map(function(field) { + return formatValue(row[field]); + }).join(delimiter); + })).join("\n"); + }; + dsv.formatRows = function(rows) { + return rows.map(formatRow).join("\n"); + }; + function formatRow(row) { + return row.map(formatValue).join(delimiter); + } + function formatValue(text) { + return reFormat.test(text) ? '"' + text.replace(/\"/g, '""') + '"' : text; + } + return dsv; + }; + d3.csv = d3.dsv(",", "text/csv"); + d3.tsv = d3.dsv(" ", "text/tab-separated-values"); + var d3_timer_queueHead, d3_timer_queueTail, d3_timer_interval, d3_timer_timeout, d3_timer_frame = this[d3_vendorSymbol(this, "requestAnimationFrame")] || function(callback) { + setTimeout(callback, 17); + }; + d3.timer = function() { + d3_timer.apply(this, arguments); + }; + function d3_timer(callback, delay, then) { + var n = arguments.length; + if (n < 2) delay = 0; + if (n < 3) then = Date.now(); + var time = then + delay, timer = { + c: callback, + t: time, + n: null + }; + if (d3_timer_queueTail) d3_timer_queueTail.n = timer; else d3_timer_queueHead = timer; + d3_timer_queueTail = timer; + if (!d3_timer_interval) { + d3_timer_timeout = clearTimeout(d3_timer_timeout); + d3_timer_interval = 1; + d3_timer_frame(d3_timer_step); + } + return timer; + } + function d3_timer_step() { + var now = d3_timer_mark(), delay = d3_timer_sweep() - now; + if (delay > 24) { + if (isFinite(delay)) { + clearTimeout(d3_timer_timeout); + d3_timer_timeout = setTimeout(d3_timer_step, delay); } + d3_timer_interval = 0; } else { - str = ctx.stylize('[Circular]', 'special'); + d3_timer_interval = 1; + d3_timer_frame(d3_timer_step); } } - if (isUndefined(name)) { - if (array && key.match(/^\d+$/)) { - return str; + d3.timer.flush = function() { + d3_timer_mark(); + d3_timer_sweep(); + }; + function d3_timer_mark() { + var now = Date.now(), timer = d3_timer_queueHead; + while (timer) { + if (now >= timer.t && timer.c(now - timer.t)) timer.c = null; + timer = timer.n; } - name = JSON.stringify('' + key); - if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { - name = name.substr(1, name.length - 2); - name = ctx.stylize(name, 'name'); - } else { - name = name.replace(/'/g, "\\'") - .replace(/\\"/g, '"') - .replace(/(^"|"$)/g, "'"); - name = ctx.stylize(name, 'string'); + return now; + } + function d3_timer_sweep() { + var t0, t1 = d3_timer_queueHead, time = Infinity; + while (t1) { + if (t1.c) { + if (t1.t < time) time = t1.t; + t1 = (t0 = t1).n; + } else { + t1 = t0 ? t0.n = t1.n : d3_timer_queueHead = t1.n; + } } + d3_timer_queueTail = t0; + return time; } - - return name + ': ' + str; -} - - -function reduceToSingleString(output, base, braces) { - var numLinesEst = 0; - var length = output.reduce(function(prev, cur) { - numLinesEst++; - if (cur.indexOf('\n') >= 0) numLinesEst++; - return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1; - }, 0); - - if (length > 60) { - return braces[0] + - (base === '' ? '' : base + '\n ') + - ' ' + - output.join(',\n ') + - ' ' + - braces[1]; + function d3_format_precision(x, p) { + return p - (x ? Math.ceil(Math.log(x) / Math.LN10) : 1); } - - return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; -} - - -// NOTE: These type checking functions intentionally don't use `instanceof` -// because it is fragile and can be easily faked with `Object.create()`. -function isArray(ar) { - return Array.isArray(ar); -} -exports.isArray = isArray; - -function isBoolean(arg) { - return typeof arg === 'boolean'; -} -exports.isBoolean = isBoolean; - -function isNull(arg) { - return arg === null; -} -exports.isNull = isNull; - -function isNullOrUndefined(arg) { - return arg == null; -} -exports.isNullOrUndefined = isNullOrUndefined; - -function isNumber(arg) { - return typeof arg === 'number'; -} -exports.isNumber = isNumber; - -function isString(arg) { - return typeof arg === 'string'; -} -exports.isString = isString; - -function isSymbol(arg) { - return typeof arg === 'symbol'; -} -exports.isSymbol = isSymbol; - -function isUndefined(arg) { - return arg === void 0; -} -exports.isUndefined = isUndefined; - -function isRegExp(re) { - return isObject(re) && objectToString(re) === '[object RegExp]'; -} -exports.isRegExp = isRegExp; - -function isObject(arg) { - return typeof arg === 'object' && arg !== null; -} -exports.isObject = isObject; - -function isDate(d) { - return isObject(d) && objectToString(d) === '[object Date]'; -} -exports.isDate = isDate; - -function isError(e) { - return isObject(e) && - (objectToString(e) === '[object Error]' || e instanceof Error); -} -exports.isError = isError; - -function isFunction(arg) { - return typeof arg === 'function'; -} -exports.isFunction = isFunction; - -function isPrimitive(arg) { - return arg === null || - typeof arg === 'boolean' || - typeof arg === 'number' || - typeof arg === 'string' || - typeof arg === 'symbol' || // ES6 symbol - typeof arg === 'undefined'; -} -exports.isPrimitive = isPrimitive; - -exports.isBuffer = _dereq_('./support/isBuffer'); - -function objectToString(o) { - return Object.prototype.toString.call(o); -} - - -function pad(n) { - return n < 10 ? '0' + n.toString(10) : n.toString(10); -} - - -var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec']; - -// 26 Feb 16:19:34 -function timestamp() { - var d = new Date(); - var time = [pad(d.getHours()), - pad(d.getMinutes()), - pad(d.getSeconds())].join(':'); - return [d.getDate(), months[d.getMonth()], time].join(' '); -} - - -// log is just a thin wrapper to console.log that prepends a timestamp -exports.log = function() { - console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments)); -}; - - -/** - * Inherit the prototype methods from one constructor into another. - * - * The Function.prototype.inherits from lang.js rewritten as a standalone - * function (not on Function.prototype). NOTE: If this file is to be loaded - * during bootstrapping this function needs to be rewritten using some native - * functions as prototype setup using normal JavaScript does not work as - * expected during bootstrapping (see mirror.js in r114903). - * - * @param {function} ctor Constructor function which needs to inherit the - * prototype. - * @param {function} superCtor Constructor function to inherit prototype from. - */ -exports.inherits = _dereq_('inherits'); - -exports._extend = function(origin, add) { - // Don't do anything if add isn't an object - if (!add || !isObject(add)) return origin; - - var keys = Object.keys(add); - var i = keys.length; - while (i--) { - origin[keys[i]] = add[keys[i]]; + d3.round = function(x, n) { + return n ? Math.round(x * (n = Math.pow(10, n))) / n : Math.round(x); + }; + var d3_formatPrefixes = [ "y", "z", "a", "f", "p", "n", "µ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y" ].map(d3_formatPrefix); + d3.formatPrefix = function(value, precision) { + var i = 0; + if (value = +value) { + if (value < 0) value *= -1; + if (precision) value = d3.round(value, d3_format_precision(value, precision)); + i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10); + i = Math.max(-24, Math.min(24, Math.floor((i - 1) / 3) * 3)); + } + return d3_formatPrefixes[8 + i / 3]; + }; + function d3_formatPrefix(d, i) { + var k = Math.pow(10, abs(8 - i) * 3); + return { + scale: i > 8 ? function(d) { + return d / k; + } : function(d) { + return d * k; + }, + symbol: d + }; } - return origin; -}; + function d3_locale_numberFormat(locale) { + var locale_decimal = locale.decimal, locale_thousands = locale.thousands, locale_grouping = locale.grouping, locale_currency = locale.currency, formatGroup = locale_grouping && locale_thousands ? function(value, width) { + var i = value.length, t = [], j = 0, g = locale_grouping[0], length = 0; + while (i > 0 && g > 0) { + if (length + g + 1 > width) g = Math.max(1, width - length); + t.push(value.substring(i -= g, i + g)); + if ((length += g + 1) > width) break; + g = locale_grouping[j = (j + 1) % locale_grouping.length]; + } + return t.reverse().join(locale_thousands); + } : d3_identity; + return function(specifier) { + var match = d3_format_re.exec(specifier), fill = match[1] || " ", align = match[2] || ">", sign = match[3] || "-", symbol = match[4] || "", zfill = match[5], width = +match[6], comma = match[7], precision = match[8], type = match[9], scale = 1, prefix = "", suffix = "", integer = false, exponent = true; + if (precision) precision = +precision.substring(1); + if (zfill || fill === "0" && align === "=") { + zfill = fill = "0"; + align = "="; + } + switch (type) { + case "n": + comma = true; + type = "g"; + break; -function hasOwnProperty(obj, prop) { - return Object.prototype.hasOwnProperty.call(obj, prop); -} + case "%": + scale = 100; + suffix = "%"; + type = "f"; + break; -}).call(this)}).call(this,_dereq_('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./support/isBuffer":75,"_process":526,"inherits":74}],77:[function(_dereq_,module,exports){ -module.exports = function _atob(str) { - return atob(str) -} + case "p": + scale = 100; + suffix = "%"; + type = "r"; + break; -},{}],78:[function(_dereq_,module,exports){ -'use strict' + case "b": + case "o": + case "x": + case "X": + if (symbol === "#") prefix = "0" + type.toLowerCase(); -module.exports = barycentric + case "c": + exponent = false; -var solve = _dereq_('robust-linear-solve') + case "d": + integer = true; + precision = 0; + break; -function reduce(x) { - var r = 0 - for(var i=0; i" ? padding + negative + value : align === "^" ? padding.substring(0, length >>= 1) + negative + value + padding.substring(length) : negative + (zcomma ? value : padding + value)) + fullSuffix; + }; + }; } - return r -} - -function barycentric(simplex, point) { - var d = point.length - var A = new Array(d+1) - for(var i=0; i=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i; + var d3_format_types = d3.map({ + b: function(x) { + return x.toString(2); + }, + c: function(x) { + return String.fromCharCode(x); + }, + o: function(x) { + return x.toString(8); + }, + x: function(x) { + return x.toString(16); + }, + X: function(x) { + return x.toString(16).toUpperCase(); + }, + g: function(x, p) { + return x.toPrecision(p); + }, + e: function(x, p) { + return x.toExponential(p); + }, + f: function(x, p) { + return x.toFixed(p); + }, + r: function(x, p) { + return (x = d3.round(x, d3_format_precision(x, p))).toFixed(Math.max(0, Math.min(20, d3_format_precision(x * (1 + 1e-15), p)))); } - A[i] = row - } - A[d] = new Array(d+1) - for(var i=0; i<=d; ++i) { - A[d][i] = 1 - } - - var b = new Array(d+1) - for(var i=0; i 1 ? Date.UTC.apply(this, arguments) : arguments[0]); } - var y = new Array(d+1) - for(var i=0; i<=d; ++i) { - y[i] = reduce(x[i]) / w + d3_date_utc.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() { + d3_time_prototype.setUTCDate.apply(this._, arguments); + }, + setDay: function() { + d3_time_prototype.setUTCDay.apply(this._, arguments); + }, + setFullYear: function() { + d3_time_prototype.setUTCFullYear.apply(this._, arguments); + }, + setHours: function() { + d3_time_prototype.setUTCHours.apply(this._, arguments); + }, + setMilliseconds: function() { + d3_time_prototype.setUTCMilliseconds.apply(this._, arguments); + }, + setMinutes: function() { + d3_time_prototype.setUTCMinutes.apply(this._, arguments); + }, + setMonth: function() { + d3_time_prototype.setUTCMonth.apply(this._, arguments); + }, + setSeconds: function() { + d3_time_prototype.setUTCSeconds.apply(this._, arguments); + }, + setTime: function() { + d3_time_prototype.setTime.apply(this._, arguments); + } + }; + var d3_time_prototype = Date.prototype; + function d3_time_interval(local, step, number) { + function round(date) { + var d0 = local(date), d1 = offset(d0, 1); + return date - d0 < d1 - date ? d0 : d1; + } + function ceil(date) { + step(date = local(new d3_date(date - 1)), 1); + return date; + } + function offset(date, k) { + step(date = new d3_date(+date), k); + return date; + } + function range(t0, t1, dt) { + var time = ceil(t0), times = []; + if (dt > 1) { + while (time < t1) { + if (!(number(time) % dt)) times.push(new Date(+time)); + step(time, 1); + } + } else { + while (time < t1) times.push(new Date(+time)), step(time, 1); + } + return times; + } + function range_utc(t0, t1, dt) { + try { + d3_date = d3_date_utc; + var utc = new d3_date_utc(); + utc._ = t0; + return range(utc, t1, dt); + } finally { + d3_date = Date; + } + } + local.floor = local; + local.round = round; + local.ceil = ceil; + local.offset = offset; + local.range = range; + var utc = local.utc = d3_time_interval_utc(local); + utc.floor = utc; + utc.round = d3_time_interval_utc(round); + utc.ceil = d3_time_interval_utc(ceil); + utc.offset = d3_time_interval_utc(offset); + utc.range = range_utc; + return local; } - return y -} -},{"robust-linear-solve":547}],79:[function(_dereq_,module,exports){ -'use strict' - -exports.byteLength = byteLength -exports.toByteArray = toByteArray -exports.fromByteArray = fromByteArray - -var lookup = [] -var revLookup = [] -var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array - -var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' -for (var i = 0, len = code.length; i < len; ++i) { - lookup[i] = code[i] - revLookup[code.charCodeAt(i)] = i -} - -// Support decoding URL-safe base64 strings, as Node.js does. -// See: https://en.wikipedia.org/wiki/Base64#URL_applications -revLookup['-'.charCodeAt(0)] = 62 -revLookup['_'.charCodeAt(0)] = 63 - -function getLens (b64) { - var len = b64.length - - if (len % 4 > 0) { - throw new Error('Invalid string. Length must be a multiple of 4') + function d3_time_interval_utc(method) { + return function(date, k) { + try { + d3_date = d3_date_utc; + var utc = new d3_date_utc(); + utc._ = date; + return method(utc, k)._; + } finally { + d3_date = Date; + } + }; } - - // Trim off extra bytes after placeholder bytes are found - // See: https://github.com/beatgammit/base64-js/issues/42 - var validLen = b64.indexOf('=') - if (validLen === -1) validLen = len - - var placeHoldersLen = validLen === len - ? 0 - : 4 - (validLen % 4) - - return [validLen, placeHoldersLen] -} - -// base64 is 4/3 + up to two characters of the original data -function byteLength (b64) { - var lens = getLens(b64) - var validLen = lens[0] - var placeHoldersLen = lens[1] - return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen -} - -function _byteLength (b64, validLen, placeHoldersLen) { - return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen -} - -function toByteArray (b64) { - var tmp - var lens = getLens(b64) - var validLen = lens[0] - var placeHoldersLen = lens[1] - - var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen)) - - var curByte = 0 - - // if there are placeholders, only get up to the last complete 4 chars - var len = placeHoldersLen > 0 - ? validLen - 4 - : validLen - - var i - for (i = 0; i < len; i += 4) { - tmp = - (revLookup[b64.charCodeAt(i)] << 18) | - (revLookup[b64.charCodeAt(i + 1)] << 12) | - (revLookup[b64.charCodeAt(i + 2)] << 6) | - revLookup[b64.charCodeAt(i + 3)] - arr[curByte++] = (tmp >> 16) & 0xFF - arr[curByte++] = (tmp >> 8) & 0xFF - arr[curByte++] = tmp & 0xFF + d3_time.year = d3_time_interval(function(date) { + date = d3_time.day(date); + date.setMonth(0, 1); + return date; + }, function(date, offset) { + date.setFullYear(date.getFullYear() + offset); + }, function(date) { + return date.getFullYear(); + }); + d3_time.years = d3_time.year.range; + d3_time.years.utc = d3_time.year.utc.range; + d3_time.day = d3_time_interval(function(date) { + var day = new d3_date(2e3, 0); + day.setFullYear(date.getFullYear(), date.getMonth(), date.getDate()); + return day; + }, function(date, offset) { + date.setDate(date.getDate() + offset); + }, function(date) { + return date.getDate() - 1; + }); + d3_time.days = d3_time.day.range; + d3_time.days.utc = d3_time.day.utc.range; + d3_time.dayOfYear = function(date) { + var year = d3_time.year(date); + return Math.floor((date - year - (date.getTimezoneOffset() - year.getTimezoneOffset()) * 6e4) / 864e5); + }; + [ "sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday" ].forEach(function(day, i) { + i = 7 - i; + var interval = d3_time[day] = d3_time_interval(function(date) { + (date = d3_time.day(date)).setDate(date.getDate() - (date.getDay() + i) % 7); + return date; + }, function(date, offset) { + date.setDate(date.getDate() + Math.floor(offset) * 7); + }, function(date) { + var day = d3_time.year(date).getDay(); + return Math.floor((d3_time.dayOfYear(date) + (day + i) % 7) / 7) - (day !== i); + }); + d3_time[day + "s"] = interval.range; + d3_time[day + "s"].utc = interval.utc.range; + d3_time[day + "OfYear"] = function(date) { + var day = d3_time.year(date).getDay(); + return Math.floor((d3_time.dayOfYear(date) + (day + i) % 7) / 7); + }; + }); + d3_time.week = d3_time.sunday; + d3_time.weeks = d3_time.sunday.range; + d3_time.weeks.utc = d3_time.sunday.utc.range; + d3_time.weekOfYear = d3_time.sundayOfYear; + function d3_locale_timeFormat(locale) { + var locale_dateTime = locale.dateTime, locale_date = locale.date, locale_time = locale.time, locale_periods = locale.periods, locale_days = locale.days, locale_shortDays = locale.shortDays, locale_months = locale.months, locale_shortMonths = locale.shortMonths; + function d3_time_format(template) { + var n = template.length; + function format(date) { + var string = [], i = -1, j = 0, c, p, f; + while (++i < n) { + if (template.charCodeAt(i) === 37) { + string.push(template.slice(j, i)); + if ((p = d3_time_formatPads[c = template.charAt(++i)]) != null) c = template.charAt(++i); + if (f = d3_time_formats[c]) c = f(date, p == null ? c === "e" ? " " : "0" : p); + string.push(c); + j = i + 1; + } + } + string.push(template.slice(j, i)); + return string.join(""); + } + format.parse = function(string) { + var d = { + y: 1900, + m: 0, + d: 1, + H: 0, + M: 0, + S: 0, + L: 0, + Z: null + }, i = d3_time_parse(d, template, string, 0); + if (i != string.length) return null; + if ("p" in d) d.H = d.H % 12 + d.p * 12; + var localZ = d.Z != null && d3_date !== d3_date_utc, date = new (localZ ? d3_date_utc : d3_date)(); + if ("j" in d) date.setFullYear(d.y, 0, d.j); else if ("W" in d || "U" in d) { + if (!("w" in d)) d.w = "W" in d ? 1 : 0; + date.setFullYear(d.y, 0, 1); + date.setFullYear(d.y, 0, "W" in d ? (d.w + 6) % 7 + d.W * 7 - (date.getDay() + 5) % 7 : d.w + d.U * 7 - (date.getDay() + 6) % 7); + } else date.setFullYear(d.y, d.m, d.d); + date.setHours(d.H + (d.Z / 100 | 0), d.M + d.Z % 100, d.S, d.L); + return localZ ? date._ : date; + }; + format.toString = function() { + return template; + }; + return format; + } + function d3_time_parse(date, template, string, j) { + var c, p, t, i = 0, n = template.length, m = string.length; + while (i < n) { + if (j >= m) return -1; + c = template.charCodeAt(i++); + if (c === 37) { + t = template.charAt(i++); + p = d3_time_parsers[t in d3_time_formatPads ? template.charAt(i++) : t]; + if (!p || (j = p(date, string, j)) < 0) return -1; + } else if (c != string.charCodeAt(j++)) { + return -1; + } + } + return j; + } + d3_time_format.utc = function(template) { + var local = d3_time_format(template); + function format(date) { + try { + d3_date = d3_date_utc; + var utc = new d3_date(); + utc._ = date; + return local(utc); + } finally { + d3_date = Date; + } + } + format.parse = function(string) { + try { + d3_date = d3_date_utc; + var date = local.parse(string); + return date && date._; + } finally { + d3_date = Date; + } + }; + format.toString = local.toString; + return format; + }; + d3_time_format.multi = d3_time_format.utc.multi = d3_time_formatMulti; + var d3_time_periodLookup = d3.map(), d3_time_dayRe = d3_time_formatRe(locale_days), d3_time_dayLookup = d3_time_formatLookup(locale_days), d3_time_dayAbbrevRe = d3_time_formatRe(locale_shortDays), d3_time_dayAbbrevLookup = d3_time_formatLookup(locale_shortDays), d3_time_monthRe = d3_time_formatRe(locale_months), d3_time_monthLookup = d3_time_formatLookup(locale_months), d3_time_monthAbbrevRe = d3_time_formatRe(locale_shortMonths), d3_time_monthAbbrevLookup = d3_time_formatLookup(locale_shortMonths); + locale_periods.forEach(function(p, i) { + d3_time_periodLookup.set(p.toLowerCase(), i); + }); + var d3_time_formats = { + a: function(d) { + return locale_shortDays[d.getDay()]; + }, + A: function(d) { + return locale_days[d.getDay()]; + }, + b: function(d) { + return locale_shortMonths[d.getMonth()]; + }, + B: function(d) { + return locale_months[d.getMonth()]; + }, + c: d3_time_format(locale_dateTime), + d: function(d, p) { + return d3_time_formatPad(d.getDate(), p, 2); + }, + e: function(d, p) { + return d3_time_formatPad(d.getDate(), p, 2); + }, + H: function(d, p) { + return d3_time_formatPad(d.getHours(), p, 2); + }, + I: function(d, p) { + return d3_time_formatPad(d.getHours() % 12 || 12, p, 2); + }, + j: function(d, p) { + return d3_time_formatPad(1 + d3_time.dayOfYear(d), p, 3); + }, + L: function(d, p) { + return d3_time_formatPad(d.getMilliseconds(), p, 3); + }, + m: function(d, p) { + return d3_time_formatPad(d.getMonth() + 1, p, 2); + }, + M: function(d, p) { + return d3_time_formatPad(d.getMinutes(), p, 2); + }, + p: function(d) { + return locale_periods[+(d.getHours() >= 12)]; + }, + S: function(d, p) { + return d3_time_formatPad(d.getSeconds(), p, 2); + }, + U: function(d, p) { + return d3_time_formatPad(d3_time.sundayOfYear(d), p, 2); + }, + w: function(d) { + return d.getDay(); + }, + W: function(d, p) { + return d3_time_formatPad(d3_time.mondayOfYear(d), p, 2); + }, + x: d3_time_format(locale_date), + X: d3_time_format(locale_time), + y: function(d, p) { + return d3_time_formatPad(d.getFullYear() % 100, p, 2); + }, + Y: function(d, p) { + return d3_time_formatPad(d.getFullYear() % 1e4, p, 4); + }, + Z: d3_time_zone, + "%": function() { + return "%"; + } + }; + var d3_time_parsers = { + a: d3_time_parseWeekdayAbbrev, + A: d3_time_parseWeekday, + b: d3_time_parseMonthAbbrev, + B: d3_time_parseMonth, + c: d3_time_parseLocaleFull, + d: d3_time_parseDay, + e: d3_time_parseDay, + H: d3_time_parseHour24, + I: d3_time_parseHour24, + j: d3_time_parseDayOfYear, + L: d3_time_parseMilliseconds, + m: d3_time_parseMonthNumber, + M: d3_time_parseMinutes, + p: d3_time_parseAmPm, + S: d3_time_parseSeconds, + U: d3_time_parseWeekNumberSunday, + w: d3_time_parseWeekdayNumber, + W: d3_time_parseWeekNumberMonday, + x: d3_time_parseLocaleDate, + X: d3_time_parseLocaleTime, + y: d3_time_parseYear, + Y: d3_time_parseFullYear, + Z: d3_time_parseZone, + "%": d3_time_parseLiteralPercent + }; + function d3_time_parseWeekdayAbbrev(date, string, i) { + d3_time_dayAbbrevRe.lastIndex = 0; + var n = d3_time_dayAbbrevRe.exec(string.slice(i)); + return n ? (date.w = d3_time_dayAbbrevLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + function d3_time_parseWeekday(date, string, i) { + d3_time_dayRe.lastIndex = 0; + var n = d3_time_dayRe.exec(string.slice(i)); + return n ? (date.w = d3_time_dayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + function d3_time_parseMonthAbbrev(date, string, i) { + d3_time_monthAbbrevRe.lastIndex = 0; + var n = d3_time_monthAbbrevRe.exec(string.slice(i)); + return n ? (date.m = d3_time_monthAbbrevLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + function d3_time_parseMonth(date, string, i) { + d3_time_monthRe.lastIndex = 0; + var n = d3_time_monthRe.exec(string.slice(i)); + return n ? (date.m = d3_time_monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + function d3_time_parseLocaleFull(date, string, i) { + return d3_time_parse(date, d3_time_formats.c.toString(), string, i); + } + function d3_time_parseLocaleDate(date, string, i) { + return d3_time_parse(date, d3_time_formats.x.toString(), string, i); + } + function d3_time_parseLocaleTime(date, string, i) { + return d3_time_parse(date, d3_time_formats.X.toString(), string, i); + } + function d3_time_parseAmPm(date, string, i) { + var n = d3_time_periodLookup.get(string.slice(i, i += 2).toLowerCase()); + return n == null ? -1 : (date.p = n, i); + } + return d3_time_format; } - - if (placeHoldersLen === 2) { - tmp = - (revLookup[b64.charCodeAt(i)] << 2) | - (revLookup[b64.charCodeAt(i + 1)] >> 4) - arr[curByte++] = tmp & 0xFF + var d3_time_formatPads = { + "-": "", + _: " ", + "0": "0" + }, d3_time_numberRe = /^\s*\d+/, d3_time_percentRe = /^%/; + function d3_time_formatPad(value, fill, width) { + var sign = value < 0 ? "-" : "", string = (sign ? -value : value) + "", length = string.length; + return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string); } - - if (placeHoldersLen === 1) { - tmp = - (revLookup[b64.charCodeAt(i)] << 10) | - (revLookup[b64.charCodeAt(i + 1)] << 4) | - (revLookup[b64.charCodeAt(i + 2)] >> 2) - arr[curByte++] = (tmp >> 8) & 0xFF - arr[curByte++] = tmp & 0xFF + function d3_time_formatRe(names) { + return new RegExp("^(?:" + names.map(d3.requote).join("|") + ")", "i"); } - - return arr -} - -function tripletToBase64 (num) { - return lookup[num >> 18 & 0x3F] + - lookup[num >> 12 & 0x3F] + - lookup[num >> 6 & 0x3F] + - lookup[num & 0x3F] -} - -function encodeChunk (uint8, start, end) { - var tmp - var output = [] - for (var i = start; i < end; i += 3) { - tmp = - ((uint8[i] << 16) & 0xFF0000) + - ((uint8[i + 1] << 8) & 0xFF00) + - (uint8[i + 2] & 0xFF) - output.push(tripletToBase64(tmp)) + function d3_time_formatLookup(names) { + var map = new d3_Map(), i = -1, n = names.length; + while (++i < n) map.set(names[i].toLowerCase(), i); + return map; } - return output.join('') -} - -function fromByteArray (uint8) { - var tmp - var len = uint8.length - var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes - var parts = [] - var maxChunkLength = 16383 // must be multiple of 3 - - // go through the array every three bytes, we'll deal with trailing stuff later - for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { - parts.push(encodeChunk( - uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength) - )) + function d3_time_parseWeekdayNumber(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.slice(i, i + 1)); + return n ? (date.w = +n[0], i + n[0].length) : -1; } - - // pad the end with zeros, but make sure to not forget the extra bytes - if (extraBytes === 1) { - tmp = uint8[len - 1] - parts.push( - lookup[tmp >> 2] + - lookup[(tmp << 4) & 0x3F] + - '==' - ) - } else if (extraBytes === 2) { - tmp = (uint8[len - 2] << 8) + uint8[len - 1] - parts.push( - lookup[tmp >> 10] + - lookup[(tmp >> 4) & 0x3F] + - lookup[(tmp << 2) & 0x3F] + - '=' - ) + function d3_time_parseWeekNumberSunday(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.slice(i)); + return n ? (date.U = +n[0], i + n[0].length) : -1; } - - return parts.join('') -} - -},{}],80:[function(_dereq_,module,exports){ -'use strict' - -var rationalize = _dereq_('./lib/rationalize') - -module.exports = add - -function add(a, b) { - return rationalize( - a[0].mul(b[1]).add(b[0].mul(a[1])), - a[1].mul(b[1])) -} - -},{"./lib/rationalize":90}],81:[function(_dereq_,module,exports){ -'use strict' - -module.exports = cmp - -function cmp(a, b) { - return a[0].mul(b[1]).cmp(b[0].mul(a[1])) -} - -},{}],82:[function(_dereq_,module,exports){ -'use strict' - -var rationalize = _dereq_('./lib/rationalize') - -module.exports = div - -function div(a, b) { - return rationalize(a[0].mul(b[1]), a[1].mul(b[0])) -} - -},{"./lib/rationalize":90}],83:[function(_dereq_,module,exports){ -'use strict' - -var isRat = _dereq_('./is-rat') -var isBN = _dereq_('./lib/is-bn') -var num2bn = _dereq_('./lib/num-to-bn') -var str2bn = _dereq_('./lib/str-to-bn') -var rationalize = _dereq_('./lib/rationalize') -var div = _dereq_('./div') - -module.exports = makeRational - -function makeRational(numer, denom) { - if(isRat(numer)) { - if(denom) { - return div(numer, makeRational(denom)) - } - return [numer[0].clone(), numer[1].clone()] + function d3_time_parseWeekNumberMonday(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.slice(i)); + return n ? (date.W = +n[0], i + n[0].length) : -1; } - var shift = 0 - var a, b - if(isBN(numer)) { - a = numer.clone() - } else if(typeof numer === 'string') { - a = str2bn(numer) - } else if(numer === 0) { - return [num2bn(0), num2bn(1)] - } else if(numer === Math.floor(numer)) { - a = num2bn(numer) - } else { - while(numer !== Math.floor(numer)) { - numer = numer * Math.pow(2, 256) - shift -= 256 - } - a = num2bn(numer) + function d3_time_parseFullYear(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.slice(i, i + 4)); + return n ? (date.y = +n[0], i + n[0].length) : -1; } - if(isRat(denom)) { - a.mul(denom[1]) - b = denom[0].clone() - } else if(isBN(denom)) { - b = denom.clone() - } else if(typeof denom === 'string') { - b = str2bn(denom) - } else if(!denom) { - b = num2bn(1) - } else if(denom === Math.floor(denom)) { - b = num2bn(denom) - } else { - while(denom !== Math.floor(denom)) { - denom = denom * Math.pow(2, 256) - shift += 256 - } - b = num2bn(denom) + function d3_time_parseYear(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.slice(i, i + 2)); + return n ? (date.y = d3_time_expandYear(+n[0]), i + n[0].length) : -1; } - if(shift > 0) { - a = a.ushln(shift) - } else if(shift < 0) { - b = b.ushln(-shift) + function d3_time_parseZone(date, string, i) { + return /^[+-]\d{4}$/.test(string = string.slice(i, i + 5)) ? (date.Z = -string, + i + 5) : -1; } - return rationalize(a, b) -} - -},{"./div":82,"./is-rat":84,"./lib/is-bn":88,"./lib/num-to-bn":89,"./lib/rationalize":90,"./lib/str-to-bn":91}],84:[function(_dereq_,module,exports){ -'use strict' - -var isBN = _dereq_('./lib/is-bn') - -module.exports = isRat - -function isRat(x) { - return Array.isArray(x) && x.length === 2 && isBN(x[0]) && isBN(x[1]) -} - -},{"./lib/is-bn":88}],85:[function(_dereq_,module,exports){ -'use strict' - -var BN = _dereq_('bn.js') - -module.exports = sign - -function sign (x) { - return x.cmp(new BN(0)) -} - -},{"bn.js":99}],86:[function(_dereq_,module,exports){ -'use strict' - -var sign = _dereq_('./bn-sign') - -module.exports = bn2num - -//TODO: Make this better -function bn2num(b) { - var l = b.length - var words = b.words - var out = 0 - if (l === 1) { - out = words[0] - } else if (l === 2) { - out = words[0] + (words[1] * 0x4000000) - } else { - for (var i = 0; i < l; i++) { - var w = words[i] - out += w * Math.pow(0x4000000, i) - } + function d3_time_expandYear(d) { + return d + (d > 68 ? 1900 : 2e3); } - return sign(b) * out -} - -},{"./bn-sign":85}],87:[function(_dereq_,module,exports){ -'use strict' - -var db = _dereq_('double-bits') -var ctz = _dereq_('bit-twiddle').countTrailingZeros - -module.exports = ctzNumber - -//Counts the number of trailing zeros -function ctzNumber(x) { - var l = ctz(db.lo(x)) - if(l < 32) { - return l + function d3_time_parseMonthNumber(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.slice(i, i + 2)); + return n ? (date.m = n[0] - 1, i + n[0].length) : -1; } - var h = ctz(db.hi(x)) - if(h > 20) { - return 52 + function d3_time_parseDay(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.slice(i, i + 2)); + return n ? (date.d = +n[0], i + n[0].length) : -1; } - return h + 32 -} - -},{"bit-twiddle":97,"double-bits":173}],88:[function(_dereq_,module,exports){ -'use strict' - -var BN = _dereq_('bn.js') - -module.exports = isBN - -//Test if x is a bignumber -//FIXME: obviously this is the wrong way to do it -function isBN(x) { - return x && typeof x === 'object' && Boolean(x.words) -} - -},{"bn.js":99}],89:[function(_dereq_,module,exports){ -'use strict' - -var BN = _dereq_('bn.js') -var db = _dereq_('double-bits') - -module.exports = num2bn - -function num2bn(x) { - var e = db.exponent(x) - if(e < 52) { - return new BN(x) - } else { - return (new BN(x * Math.pow(2, 52-e))).ushln(e-52) + function d3_time_parseDayOfYear(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.slice(i, i + 3)); + return n ? (date.j = +n[0], i + n[0].length) : -1; } -} - -},{"bn.js":99,"double-bits":173}],90:[function(_dereq_,module,exports){ -'use strict' - -var num2bn = _dereq_('./num-to-bn') -var sign = _dereq_('./bn-sign') - -module.exports = rationalize - -function rationalize(numer, denom) { - var snumer = sign(numer) - var sdenom = sign(denom) - if(snumer === 0) { - return [num2bn(0), num2bn(1)] + function d3_time_parseHour24(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.slice(i, i + 2)); + return n ? (date.H = +n[0], i + n[0].length) : -1; } - if(sdenom === 0) { - return [num2bn(0), num2bn(0)] + function d3_time_parseMinutes(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.slice(i, i + 2)); + return n ? (date.M = +n[0], i + n[0].length) : -1; } - if(sdenom < 0) { - numer = numer.neg() - denom = denom.neg() + function d3_time_parseSeconds(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.slice(i, i + 2)); + return n ? (date.S = +n[0], i + n[0].length) : -1; } - var d = numer.gcd(denom) - if(d.cmpn(1)) { - return [ numer.div(d), denom.div(d) ] + function d3_time_parseMilliseconds(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.slice(i, i + 3)); + return n ? (date.L = +n[0], i + n[0].length) : -1; } - return [ numer, denom ] -} - -},{"./bn-sign":85,"./num-to-bn":89}],91:[function(_dereq_,module,exports){ -'use strict' - -var BN = _dereq_('bn.js') - -module.exports = str2BN - -function str2BN(x) { - return new BN(x) -} - -},{"bn.js":99}],92:[function(_dereq_,module,exports){ -'use strict' - -var rationalize = _dereq_('./lib/rationalize') - -module.exports = mul - -function mul(a, b) { - return rationalize(a[0].mul(b[0]), a[1].mul(b[1])) -} - -},{"./lib/rationalize":90}],93:[function(_dereq_,module,exports){ -'use strict' - -var bnsign = _dereq_('./lib/bn-sign') - -module.exports = sign - -function sign(x) { - return bnsign(x[0]) * bnsign(x[1]) -} - -},{"./lib/bn-sign":85}],94:[function(_dereq_,module,exports){ -'use strict' - -var rationalize = _dereq_('./lib/rationalize') - -module.exports = sub - -function sub(a, b) { - return rationalize(a[0].mul(b[1]).sub(a[1].mul(b[0])), a[1].mul(b[1])) -} - -},{"./lib/rationalize":90}],95:[function(_dereq_,module,exports){ -'use strict' - -var bn2num = _dereq_('./lib/bn-to-num') -var ctz = _dereq_('./lib/ctz') - -module.exports = roundRat - -// Round a rational to the closest float -function roundRat (f) { - var a = f[0] - var b = f[1] - if (a.cmpn(0) === 0) { - return 0 + function d3_time_zone(d) { + var z = d.getTimezoneOffset(), zs = z > 0 ? "-" : "+", zh = abs(z) / 60 | 0, zm = abs(z) % 60; + return zs + d3_time_formatPad(zh, "0", 2) + d3_time_formatPad(zm, "0", 2); } - var h = a.abs().divmod(b.abs()) - var iv = h.div - var x = bn2num(iv) - var ir = h.mod - var sgn = (a.negative !== b.negative) ? -1 : 1 - if (ir.cmpn(0) === 0) { - return sgn * x + function d3_time_parseLiteralPercent(date, string, i) { + d3_time_percentRe.lastIndex = 0; + var n = d3_time_percentRe.exec(string.slice(i, i + 1)); + return n ? i + n[0].length : -1; } - if (x) { - var s = ctz(x) + 4 - var y = bn2num(ir.ushln(s).divRound(b)) - return sgn * (x + y * Math.pow(2, -s)) - } else { - var ybits = b.bitLength() - ir.bitLength() + 53 - var y = bn2num(ir.ushln(ybits).divRound(b)) - if (ybits < 1023) { - return sgn * y * Math.pow(2, -ybits) + function d3_time_formatMulti(formats) { + var n = formats.length, i = -1; + while (++i < n) formats[i][0] = this(formats[i][0]); + return function(date) { + var i = 0, f = formats[i]; + while (!f[1](date)) f = formats[++i]; + return f[0](date); + }; + } + d3.locale = function(locale) { + return { + numberFormat: d3_locale_numberFormat(locale), + timeFormat: d3_locale_timeFormat(locale) + }; + }; + var d3_locale_enUS = d3.locale({ + decimal: ".", + thousands: ",", + grouping: [ 3 ], + currency: [ "$", "" ], + dateTime: "%a %b %e %X %Y", + date: "%m/%d/%Y", + time: "%H:%M:%S", + 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" ] + }); + d3.format = d3_locale_enUS.numberFormat; + d3.geo = {}; + function d3_adder() {} + d3_adder.prototype = { + s: 0, + t: 0, + add: function(y) { + d3_adderSum(y, this.t, d3_adderTemp); + d3_adderSum(d3_adderTemp.s, this.s, this); + if (this.s) this.t += d3_adderTemp.t; else this.s = d3_adderTemp.t; + }, + reset: function() { + this.s = this.t = 0; + }, + valueOf: function() { + return this.s; } - y *= Math.pow(2, -1023) - return sgn * y * Math.pow(2, 1023 - ybits) + }; + var d3_adderTemp = new d3_adder(); + function d3_adderSum(a, b, o) { + var x = o.s = a + b, bv = x - a, av = x - bv; + o.t = a - av + (b - bv); } -} - -},{"./lib/bn-to-num":86,"./lib/ctz":87}],96:[function(_dereq_,module,exports){ -"use strict" - -function compileSearch(funcName, predicate, reversed, extraArgs, earlyOut) { - var code = [ - "function ", funcName, "(a,l,h,", extraArgs.join(","), "){", - earlyOut ? "" : "var i=", (reversed ? "l-1" : "h+1"), - ";while(l<=h){var m=(l+h)>>>1,x=a[m]"] - if(earlyOut) { - if(predicate.indexOf("c") < 0) { - code.push(";if(x===y){return m}else if(x<=y){") + d3.geo.stream = function(object, listener) { + if (object && d3_geo_streamObjectType.hasOwnProperty(object.type)) { + d3_geo_streamObjectType[object.type](object, listener); } else { - code.push(";var p=c(x,y);if(p===0){return m}else if(p<=0){") + d3_geo_streamGeometry(object, listener); + } + }; + function d3_geo_streamGeometry(geometry, listener) { + if (geometry && d3_geo_streamGeometryType.hasOwnProperty(geometry.type)) { + d3_geo_streamGeometryType[geometry.type](geometry, listener); } - } else { - code.push(";if(", predicate, "){i=m;") } - if(reversed) { - code.push("l=m+1}else{h=m-1}") - } else { - code.push("h=m-1}else{l=m+1}") + var d3_geo_streamObjectType = { + Feature: function(feature, listener) { + d3_geo_streamGeometry(feature.geometry, listener); + }, + FeatureCollection: function(object, listener) { + var features = object.features, i = -1, n = features.length; + while (++i < n) d3_geo_streamGeometry(features[i].geometry, listener); + } + }; + var d3_geo_streamGeometryType = { + Sphere: function(object, listener) { + listener.sphere(); + }, + Point: function(object, listener) { + object = object.coordinates; + listener.point(object[0], object[1], object[2]); + }, + MultiPoint: function(object, listener) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) object = coordinates[i], listener.point(object[0], object[1], object[2]); + }, + LineString: function(object, listener) { + d3_geo_streamLine(object.coordinates, listener, 0); + }, + MultiLineString: function(object, listener) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) d3_geo_streamLine(coordinates[i], listener, 0); + }, + Polygon: function(object, listener) { + d3_geo_streamPolygon(object.coordinates, listener); + }, + MultiPolygon: function(object, listener) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) d3_geo_streamPolygon(coordinates[i], listener); + }, + GeometryCollection: function(object, listener) { + var geometries = object.geometries, i = -1, n = geometries.length; + while (++i < n) d3_geo_streamGeometry(geometries[i], listener); + } + }; + function d3_geo_streamLine(coordinates, listener, closed) { + var i = -1, n = coordinates.length - closed, coordinate; + listener.lineStart(); + while (++i < n) coordinate = coordinates[i], listener.point(coordinate[0], coordinate[1], coordinate[2]); + listener.lineEnd(); } - code.push("}") - if(earlyOut) { - code.push("return -1};") - } else { - code.push("return i};") + function d3_geo_streamPolygon(coordinates, listener) { + var i = -1, n = coordinates.length; + listener.polygonStart(); + while (++i < n) d3_geo_streamLine(coordinates[i], listener, 1); + listener.polygonEnd(); } - return code.join("") -} - -function compileBoundsSearch(predicate, reversed, suffix, earlyOut) { - var result = new Function([ - compileSearch("A", "x" + predicate + "y", reversed, ["y"], earlyOut), - compileSearch("P", "c(x,y)" + predicate + "0", reversed, ["y", "c"], earlyOut), -"function dispatchBsearch", suffix, "(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", suffix].join("")) - return result() -} - -module.exports = { - ge: compileBoundsSearch(">=", false, "GE"), - gt: compileBoundsSearch(">", false, "GT"), - lt: compileBoundsSearch("<", true, "LT"), - le: compileBoundsSearch("<=", true, "LE"), - eq: compileBoundsSearch("-", true, "EQ", true) -} - -},{}],97:[function(_dereq_,module,exports){ -/** - * Bit twiddling hacks for JavaScript. - * - * Author: Mikola Lysenko - * - * Ported from Stanford bit twiddling hack library: - * http://graphics.stanford.edu/~seander/bithacks.html - */ - -"use strict"; "use restrict"; - -//Number of bits in an integer -var INT_BITS = 32; - -//Constants -exports.INT_BITS = INT_BITS; -exports.INT_MAX = 0x7fffffff; -exports.INT_MIN = -1<<(INT_BITS-1); - -//Returns -1, 0, +1 depending on sign of x -exports.sign = function(v) { - return (v > 0) - (v < 0); -} - -//Computes absolute value of integer -exports.abs = function(v) { - var mask = v >> (INT_BITS-1); - return (v ^ mask) - mask; -} - -//Computes minimum of integers x and y -exports.min = function(x, y) { - return y ^ ((x ^ y) & -(x < y)); -} - -//Computes maximum of integers x and y -exports.max = function(x, y) { - return x ^ ((x ^ y) & -(x < y)); -} - -//Checks if a number is a power of two -exports.isPow2 = function(v) { - return !(v & (v-1)) && (!!v); -} - -//Computes log base 2 of v -exports.log2 = function(v) { - var r, shift; - r = (v > 0xFFFF) << 4; v >>>= r; - shift = (v > 0xFF ) << 3; v >>>= shift; r |= shift; - shift = (v > 0xF ) << 2; v >>>= shift; r |= shift; - shift = (v > 0x3 ) << 1; v >>>= shift; r |= shift; - return r | (v >> 1); -} - -//Computes log base 10 of v -exports.log10 = function(v) { - return (v >= 1000000000) ? 9 : (v >= 100000000) ? 8 : (v >= 10000000) ? 7 : - (v >= 1000000) ? 6 : (v >= 100000) ? 5 : (v >= 10000) ? 4 : - (v >= 1000) ? 3 : (v >= 100) ? 2 : (v >= 10) ? 1 : 0; -} - -//Counts number of bits -exports.popCount = function(v) { - v = v - ((v >>> 1) & 0x55555555); - v = (v & 0x33333333) + ((v >>> 2) & 0x33333333); - return ((v + (v >>> 4) & 0xF0F0F0F) * 0x1010101) >>> 24; -} - -//Counts number of trailing zeros -function countTrailingZeros(v) { - var c = 32; - v &= -v; - if (v) c--; - if (v & 0x0000FFFF) c -= 16; - if (v & 0x00FF00FF) c -= 8; - if (v & 0x0F0F0F0F) c -= 4; - if (v & 0x33333333) c -= 2; - if (v & 0x55555555) c -= 1; - return c; -} -exports.countTrailingZeros = countTrailingZeros; - -//Rounds to next power of 2 -exports.nextPow2 = function(v) { - v += v === 0; - --v; - v |= v >>> 1; - v |= v >>> 2; - v |= v >>> 4; - v |= v >>> 8; - v |= v >>> 16; - return v + 1; -} - -//Rounds down to previous power of 2 -exports.prevPow2 = function(v) { - v |= v >>> 1; - v |= v >>> 2; - v |= v >>> 4; - v |= v >>> 8; - v |= v >>> 16; - return v - (v>>>1); -} - -//Computes parity of word -exports.parity = function(v) { - v ^= v >>> 16; - v ^= v >>> 8; - v ^= v >>> 4; - v &= 0xf; - return (0x6996 >>> v) & 1; -} - -var REVERSE_TABLE = new Array(256); - -(function(tab) { - for(var i=0; i<256; ++i) { - var v = i, r = i, s = 7; - for (v >>>= 1; v; v >>>= 1) { - r <<= 1; - r |= v & 1; - --s; + d3.geo.area = function(object) { + d3_geo_areaSum = 0; + d3.geo.stream(object, d3_geo_area); + return d3_geo_areaSum; + }; + var d3_geo_areaSum, d3_geo_areaRingSum = new d3_adder(); + var d3_geo_area = { + sphere: function() { + d3_geo_areaSum += 4 * π; + }, + point: d3_noop, + lineStart: d3_noop, + lineEnd: d3_noop, + polygonStart: function() { + d3_geo_areaRingSum.reset(); + d3_geo_area.lineStart = d3_geo_areaRingStart; + }, + polygonEnd: function() { + var area = 2 * d3_geo_areaRingSum; + d3_geo_areaSum += area < 0 ? 4 * π + area : area; + d3_geo_area.lineStart = d3_geo_area.lineEnd = d3_geo_area.point = d3_noop; } - tab[i] = (r << s) & 0xff; + }; + function d3_geo_areaRingStart() { + var λ00, φ00, λ0, cosφ0, sinφ0; + d3_geo_area.point = function(λ, φ) { + d3_geo_area.point = nextPoint; + λ0 = (λ00 = λ) * d3_radians, cosφ0 = Math.cos(φ = (φ00 = φ) * d3_radians / 2 + π / 4), + sinφ0 = Math.sin(φ); + }; + function nextPoint(λ, φ) { + λ *= d3_radians; + φ = φ * d3_radians / 2 + π / 4; + var dλ = λ - λ0, sdλ = dλ >= 0 ? 1 : -1, adλ = sdλ * dλ, cosφ = Math.cos(φ), sinφ = Math.sin(φ), k = sinφ0 * sinφ, u = cosφ0 * cosφ + k * Math.cos(adλ), v = k * sdλ * Math.sin(adλ); + d3_geo_areaRingSum.add(Math.atan2(v, u)); + λ0 = λ, cosφ0 = cosφ, sinφ0 = sinφ; + } + d3_geo_area.lineEnd = function() { + nextPoint(λ00, φ00); + }; } -})(REVERSE_TABLE); - -//Reverse bits in a 32 bit word -exports.reverse = function(v) { - return (REVERSE_TABLE[ v & 0xff] << 24) | - (REVERSE_TABLE[(v >>> 8) & 0xff] << 16) | - (REVERSE_TABLE[(v >>> 16) & 0xff] << 8) | - REVERSE_TABLE[(v >>> 24) & 0xff]; -} - -//Interleave bits of 2 coordinates with 16 bits. Useful for fast quadtree codes -exports.interleave2 = function(x, y) { - x &= 0xFFFF; - x = (x | (x << 8)) & 0x00FF00FF; - x = (x | (x << 4)) & 0x0F0F0F0F; - x = (x | (x << 2)) & 0x33333333; - x = (x | (x << 1)) & 0x55555555; - - y &= 0xFFFF; - y = (y | (y << 8)) & 0x00FF00FF; - y = (y | (y << 4)) & 0x0F0F0F0F; - y = (y | (y << 2)) & 0x33333333; - y = (y | (y << 1)) & 0x55555555; - - return x | (y << 1); -} - -//Extracts the nth interleaved component -exports.deinterleave2 = function(v, n) { - v = (v >>> n) & 0x55555555; - v = (v | (v >>> 1)) & 0x33333333; - v = (v | (v >>> 2)) & 0x0F0F0F0F; - v = (v | (v >>> 4)) & 0x00FF00FF; - v = (v | (v >>> 16)) & 0x000FFFF; - return (v << 16) >> 16; -} - - -//Interleave bits of 3 coordinates, each with 10 bits. Useful for fast octree codes -exports.interleave3 = function(x, y, z) { - x &= 0x3FF; - x = (x | (x<<16)) & 4278190335; - x = (x | (x<<8)) & 251719695; - x = (x | (x<<4)) & 3272356035; - x = (x | (x<<2)) & 1227133513; - - y &= 0x3FF; - y = (y | (y<<16)) & 4278190335; - y = (y | (y<<8)) & 251719695; - y = (y | (y<<4)) & 3272356035; - y = (y | (y<<2)) & 1227133513; - x |= (y << 1); - - z &= 0x3FF; - z = (z | (z<<16)) & 4278190335; - z = (z | (z<<8)) & 251719695; - z = (z | (z<<4)) & 3272356035; - z = (z | (z<<2)) & 1227133513; - - return x | (z << 2); -} - -//Extracts nth interleaved component of a 3-tuple -exports.deinterleave3 = function(v, n) { - v = (v >>> n) & 1227133513; - v = (v | (v>>>2)) & 3272356035; - v = (v | (v>>>4)) & 251719695; - v = (v | (v>>>8)) & 4278190335; - v = (v | (v>>>16)) & 0x3FF; - return (v<<22)>>22; -} - -//Computes next combination in colexicographic order (this is mistakenly called nextPermutation on the bit twiddling hacks page) -exports.nextCombination = function(v) { - var t = v | (v - 1); - return (t + 1) | (((~t & -~t) - 1) >>> (countTrailingZeros(v) + 1)); -} - - -},{}],98:[function(_dereq_,module,exports){ -'use strict' - -var clamp = _dereq_('clamp') - -module.exports = calcSDF - -var INF = 1e20; - -function calcSDF(src, options) { - if (!options) options = {} - - var cutoff = options.cutoff == null ? 0.25 : options.cutoff - var radius = options.radius == null ? 8 : options.radius - var channel = options.channel || 0 - var w, h, size, data, intData, stride, ctx, canvas, imgData, i, l - - // handle image container - if (ArrayBuffer.isView(src) || Array.isArray(src)) { - if (!options.width || !options.height) throw Error('For raw data width and height should be provided by options') - w = options.width, h = options.height - data = src - - if (!options.stride) stride = Math.floor(src.length / w / h) - else stride = options.stride - } - else { - if (window.HTMLCanvasElement && src instanceof window.HTMLCanvasElement) { - canvas = src - ctx = canvas.getContext('2d') - w = canvas.width, h = canvas.height - imgData = ctx.getImageData(0, 0, w, h) - data = imgData.data - stride = 4 - } - else if (window.CanvasRenderingContext2D && src instanceof window.CanvasRenderingContext2D) { - canvas = src.canvas - ctx = src - w = canvas.width, h = canvas.height - imgData = ctx.getImageData(0, 0, w, h) - data = imgData.data - stride = 4 - } - else if (window.ImageData && src instanceof window.ImageData) { - imgData = src - w = src.width, h = src.height - data = imgData.data - stride = 4 - } - } - - size = Math.max(w, h) - - //convert int data to floats - if ((window.Uint8ClampedArray && data instanceof window.Uint8ClampedArray) || (window.Uint8Array && data instanceof window.Uint8Array)) { - intData = data - data = Array(w*h) - - for (i = 0, l = intData.length; i < l; i++) { - data[i] = intData[i*stride + channel] / 255 - } - } - else { - if (stride !== 1) throw Error('Raw data can have only 1 value per pixel') - } - - // temporary arrays for the distance transform - var gridOuter = Array(w * h) - var gridInner = Array(w * h) - var f = Array(size) - var d = Array(size) - var z = Array(size + 1) - var v = Array(size) - - for (i = 0, l = w * h; i < l; i++) { - var a = data[i] - gridOuter[i] = a === 1 ? 0 : a === 0 ? INF : Math.pow(Math.max(0, 0.5 - a), 2) - gridInner[i] = a === 1 ? INF : a === 0 ? 0 : Math.pow(Math.max(0, a - 0.5), 2) - } - - edt(gridOuter, w, h, f, d, v, z) - edt(gridInner, w, h, f, d, v, z) - - var dist = window.Float32Array ? new Float32Array(w * h) : new Array(w * h) - - for (i = 0, l = w*h; i < l; i++) { - dist[i] = clamp(1 - ( (gridOuter[i] - gridInner[i]) / radius + cutoff), 0, 1) - } - - return dist -} - -// 2D Euclidean distance transform by Felzenszwalb & Huttenlocher https://cs.brown.edu/~pff/dt/ -function edt(data, width, height, f, d, v, z) { - for (var x = 0; x < width; x++) { - for (var y = 0; y < height; y++) { - f[y] = data[y * width + x] - } - edt1d(f, d, v, z, height) - for (y = 0; y < height; y++) { - data[y * width + x] = d[y] - } - } - for (y = 0; y < height; y++) { - for (x = 0; x < width; x++) { - f[x] = data[y * width + x] - } - edt1d(f, d, v, z, width) - for (x = 0; x < width; x++) { - data[y * width + x] = Math.sqrt(d[x]) - } - } -} - -// 1D squared distance transform -function edt1d(f, d, v, z, n) { - v[0] = 0; - z[0] = -INF - z[1] = +INF - - for (var q = 1, k = 0; q < n; q++) { - var s = ((f[q] + q * q) - (f[v[k]] + v[k] * v[k])) / (2 * q - 2 * v[k]) - while (s <= z[k]) { - k-- - s = ((f[q] + q * q) - (f[v[k]] + v[k] * v[k])) / (2 * q - 2 * v[k]) - } - k++ - v[k] = q - z[k] = s - z[k + 1] = +INF - } - - for (q = 0, k = 0; q < n; q++) { - while (z[k + 1] < q) k++ - d[q] = (q - v[k]) * (q - v[k]) + f[v[k]] - } -} - -},{"clamp":120}],99:[function(_dereq_,module,exports){ -(function (module, exports) { - 'use strict'; - - // Utils - function assert (val, msg) { - if (!val) throw new Error(msg || 'Assertion failed'); + function d3_geo_cartesian(spherical) { + var λ = spherical[0], φ = spherical[1], cosφ = Math.cos(φ); + return [ cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ) ]; } - - // Could use `inherits` module, but don't want to move from single file - // architecture yet. - function inherits (ctor, superCtor) { - ctor.super_ = superCtor; - var TempCtor = function () {}; - TempCtor.prototype = superCtor.prototype; - ctor.prototype = new TempCtor(); - ctor.prototype.constructor = ctor; + function d3_geo_cartesianDot(a, b) { + return a[0] * b[0] + a[1] * b[1] + a[2] * b[2]; } - - // BN - - function BN (number, base, endian) { - if (BN.isBN(number)) { - return number; - } - - this.negative = 0; - this.words = null; - this.length = 0; - - // Reduction context - this.red = null; - - if (number !== null) { - if (base === 'le' || base === 'be') { - endian = base; - base = 10; - } - - this._init(number || 0, base || 10, endian || 'be'); - } + function d3_geo_cartesianCross(a, b) { + return [ a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0] ]; } - if (typeof module === 'object') { - module.exports = BN; - } else { - exports.BN = BN; + function d3_geo_cartesianAdd(a, b) { + a[0] += b[0]; + a[1] += b[1]; + a[2] += b[2]; } - - BN.BN = BN; - BN.wordSize = 26; - - var Buffer; - try { - Buffer = _dereq_('buffer').Buffer; - } catch (e) { + function d3_geo_cartesianScale(vector, k) { + return [ vector[0] * k, vector[1] * k, vector[2] * k ]; } - - BN.isBN = function isBN (num) { - if (num instanceof BN) { - return true; - } - - return num !== null && typeof num === 'object' && - num.constructor.wordSize === BN.wordSize && Array.isArray(num.words); - }; - - BN.max = function max (left, right) { - if (left.cmp(right) > 0) return left; - return right; - }; - - BN.min = function min (left, right) { - if (left.cmp(right) < 0) return left; - return right; - }; - - BN.prototype._init = function init (number, base, endian) { - if (typeof number === 'number') { - return this._initNumber(number, base, endian); + function d3_geo_cartesianNormalize(d) { + var l = Math.sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]); + d[0] /= l; + d[1] /= l; + d[2] /= l; + } + function d3_geo_spherical(cartesian) { + return [ Math.atan2(cartesian[1], cartesian[0]), d3_asin(cartesian[2]) ]; + } + function d3_geo_sphericalEqual(a, b) { + return abs(a[0] - b[0]) < ε && abs(a[1] - b[1]) < ε; + } + d3.geo.bounds = function() { + var λ0, φ0, λ1, φ1, λ_, λ__, φ__, p0, dλSum, ranges, range; + var bound = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: function() { + bound.point = ringPoint; + bound.lineStart = ringStart; + bound.lineEnd = ringEnd; + dλSum = 0; + d3_geo_area.polygonStart(); + }, + polygonEnd: function() { + d3_geo_area.polygonEnd(); + bound.point = point; + bound.lineStart = lineStart; + bound.lineEnd = lineEnd; + if (d3_geo_areaRingSum < 0) λ0 = -(λ1 = 180), φ0 = -(φ1 = 90); else if (dλSum > ε) φ1 = 90; else if (dλSum < -ε) φ0 = -90; + range[0] = λ0, range[1] = λ1; + } + }; + function point(λ, φ) { + ranges.push(range = [ λ0 = λ, λ1 = λ ]); + if (φ < φ0) φ0 = φ; + if (φ > φ1) φ1 = φ; } - - if (typeof number === 'object') { - return this._initArray(number, base, endian); + function linePoint(λ, φ) { + var p = d3_geo_cartesian([ λ * d3_radians, φ * d3_radians ]); + if (p0) { + var normal = d3_geo_cartesianCross(p0, p), equatorial = [ normal[1], -normal[0], 0 ], inflection = d3_geo_cartesianCross(equatorial, normal); + d3_geo_cartesianNormalize(inflection); + inflection = d3_geo_spherical(inflection); + var dλ = λ - λ_, s = dλ > 0 ? 1 : -1, λi = inflection[0] * d3_degrees * s, antimeridian = abs(dλ) > 180; + if (antimeridian ^ (s * λ_ < λi && λi < s * λ)) { + var φi = inflection[1] * d3_degrees; + if (φi > φ1) φ1 = φi; + } else if (λi = (λi + 360) % 360 - 180, antimeridian ^ (s * λ_ < λi && λi < s * λ)) { + var φi = -inflection[1] * d3_degrees; + if (φi < φ0) φ0 = φi; + } else { + if (φ < φ0) φ0 = φ; + if (φ > φ1) φ1 = φ; + } + if (antimeridian) { + if (λ < λ_) { + if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ; + } else { + if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ; + } + } else { + if (λ1 >= λ0) { + if (λ < λ0) λ0 = λ; + if (λ > λ1) λ1 = λ; + } else { + if (λ > λ_) { + if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ; + } else { + if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ; + } + } + } + } else { + point(λ, φ); + } + p0 = p, λ_ = λ; } - - if (base === 'hex') { - base = 16; + function lineStart() { + bound.point = linePoint; } - assert(base === (base | 0) && base >= 2 && base <= 36); - - number = number.toString().replace(/\s+/g, ''); - var start = 0; - if (number[0] === '-') { - start++; + function lineEnd() { + range[0] = λ0, range[1] = λ1; + bound.point = point; + p0 = null; } - - if (base === 16) { - this._parseHex(number, start); - } else { - this._parseBase(number, base, start); + function ringPoint(λ, φ) { + if (p0) { + var dλ = λ - λ_; + dλSum += abs(dλ) > 180 ? dλ + (dλ > 0 ? 360 : -360) : dλ; + } else λ__ = λ, φ__ = φ; + d3_geo_area.point(λ, φ); + linePoint(λ, φ); } - - if (number[0] === '-') { - this.negative = 1; + function ringStart() { + d3_geo_area.lineStart(); } - - this.strip(); - - if (endian !== 'le') return; - - this._initArray(this.toArray(), base, endian); - }; - - BN.prototype._initNumber = function _initNumber (number, base, endian) { - if (number < 0) { - this.negative = 1; - number = -number; + function ringEnd() { + ringPoint(λ__, φ__); + d3_geo_area.lineEnd(); + if (abs(dλSum) > ε) λ0 = -(λ1 = 180); + range[0] = λ0, range[1] = λ1; + p0 = null; } - if (number < 0x4000000) { - this.words = [ number & 0x3ffffff ]; - this.length = 1; - } else if (number < 0x10000000000000) { - this.words = [ - number & 0x3ffffff, - (number / 0x4000000) & 0x3ffffff - ]; - this.length = 2; - } else { - assert(number < 0x20000000000000); // 2 ^ 53 (unsafe) - this.words = [ - number & 0x3ffffff, - (number / 0x4000000) & 0x3ffffff, - 1 - ]; - this.length = 3; + function angle(λ0, λ1) { + return (λ1 -= λ0) < 0 ? λ1 + 360 : λ1; } - - if (endian !== 'le') return; - - // Reverse the bytes - this._initArray(this.toArray(), base, endian); - }; - - BN.prototype._initArray = function _initArray (number, base, endian) { - // Perhaps a Uint8Array - assert(typeof number.length === 'number'); - if (number.length <= 0) { - this.words = [ 0 ]; - this.length = 1; - return this; + function compareRanges(a, b) { + return a[0] - b[0]; } - - this.length = Math.ceil(number.length / 3); - this.words = new Array(this.length); - for (var i = 0; i < this.length; i++) { - this.words[i] = 0; + function withinRange(x, range) { + return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x; } - - var j, w; - var off = 0; - if (endian === 'be') { - for (i = number.length - 1, j = 0; i >= 0; i -= 3) { - w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16); - this.words[j] |= (w << off) & 0x3ffffff; - this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff; - off += 24; - if (off >= 26) { - off -= 26; - j++; + return function(feature) { + φ1 = λ1 = -(λ0 = φ0 = Infinity); + ranges = []; + d3.geo.stream(feature, bound); + var n = ranges.length; + if (n) { + ranges.sort(compareRanges); + for (var i = 1, a = ranges[0], b, merged = [ a ]; i < n; ++i) { + b = ranges[i]; + if (withinRange(b[0], a) || withinRange(b[1], a)) { + if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1]; + if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0]; + } else { + merged.push(a = b); + } } - } - } else if (endian === 'le') { - for (i = 0, j = 0; i < number.length; i += 3) { - w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16); - this.words[j] |= (w << off) & 0x3ffffff; - this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff; - off += 24; - if (off >= 26) { - off -= 26; - j++; + var best = -Infinity, dλ; + for (var n = merged.length - 1, i = 0, a = merged[n], b; i <= n; a = b, ++i) { + b = merged[i]; + if ((dλ = angle(a[1], b[0])) > best) best = dλ, λ0 = b[0], λ1 = a[1]; } } + ranges = range = null; + return λ0 === Infinity || φ0 === Infinity ? [ [ NaN, NaN ], [ NaN, NaN ] ] : [ [ λ0, φ0 ], [ λ1, φ1 ] ]; + }; + }(); + d3.geo.centroid = function(object) { + d3_geo_centroidW0 = d3_geo_centroidW1 = d3_geo_centroidX0 = d3_geo_centroidY0 = d3_geo_centroidZ0 = d3_geo_centroidX1 = d3_geo_centroidY1 = d3_geo_centroidZ1 = d3_geo_centroidX2 = d3_geo_centroidY2 = d3_geo_centroidZ2 = 0; + d3.geo.stream(object, d3_geo_centroid); + var x = d3_geo_centroidX2, y = d3_geo_centroidY2, z = d3_geo_centroidZ2, m = x * x + y * y + z * z; + if (m < ε2) { + x = d3_geo_centroidX1, y = d3_geo_centroidY1, z = d3_geo_centroidZ1; + if (d3_geo_centroidW1 < ε) x = d3_geo_centroidX0, y = d3_geo_centroidY0, z = d3_geo_centroidZ0; + m = x * x + y * y + z * z; + if (m < ε2) return [ NaN, NaN ]; } - return this.strip(); + return [ Math.atan2(y, x) * d3_degrees, d3_asin(z / Math.sqrt(m)) * d3_degrees ]; }; - - function parseHex (str, start, end) { - var r = 0; - var len = Math.min(str.length, end); - for (var i = start; i < len; i++) { - var c = str.charCodeAt(i) - 48; - - r <<= 4; - - // 'a' - 'f' - if (c >= 49 && c <= 54) { - r |= c - 49 + 0xa; - - // 'A' - 'F' - } else if (c >= 17 && c <= 22) { - r |= c - 17 + 0xa; - - // '0' - '9' - } else { - r |= c & 0xf; - } - } - return r; - } - - BN.prototype._parseHex = function _parseHex (number, start) { - // Create possibly bigger array to ensure that it fits the number - this.length = Math.ceil((number.length - start) / 6); - this.words = new Array(this.length); - for (var i = 0; i < this.length; i++) { - this.words[i] = 0; - } - - var j, w; - // Scan 24-bit chunks and add them to the number - var off = 0; - for (i = number.length - 6, j = 0; i >= start; i -= 6) { - w = parseHex(number, i, i + 6); - this.words[j] |= (w << off) & 0x3ffffff; - // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb - this.words[j + 1] |= w >>> (26 - off) & 0x3fffff; - off += 24; - if (off >= 26) { - off -= 26; - j++; - } - } - if (i + 6 !== start) { - w = parseHex(number, start, i + 6); - this.words[j] |= (w << off) & 0x3ffffff; - this.words[j + 1] |= w >>> (26 - off) & 0x3fffff; + var d3_geo_centroidW0, d3_geo_centroidW1, d3_geo_centroidX0, d3_geo_centroidY0, d3_geo_centroidZ0, d3_geo_centroidX1, d3_geo_centroidY1, d3_geo_centroidZ1, d3_geo_centroidX2, d3_geo_centroidY2, d3_geo_centroidZ2; + var d3_geo_centroid = { + sphere: d3_noop, + point: d3_geo_centroidPoint, + lineStart: d3_geo_centroidLineStart, + lineEnd: d3_geo_centroidLineEnd, + polygonStart: function() { + d3_geo_centroid.lineStart = d3_geo_centroidRingStart; + }, + polygonEnd: function() { + d3_geo_centroid.lineStart = d3_geo_centroidLineStart; } - this.strip(); }; - - function parseBase (str, start, end, mul) { - var r = 0; - var len = Math.min(str.length, end); - for (var i = start; i < len; i++) { - var c = str.charCodeAt(i) - 48; - - r *= mul; - - // 'a' - if (c >= 49) { - r += c - 49 + 0xa; - - // 'A' - } else if (c >= 17) { - r += c - 17 + 0xa; - - // '0' - '9' - } else { - r += c; - } + function d3_geo_centroidPoint(λ, φ) { + λ *= d3_radians; + var cosφ = Math.cos(φ *= d3_radians); + d3_geo_centroidPointXYZ(cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ)); + } + function d3_geo_centroidPointXYZ(x, y, z) { + ++d3_geo_centroidW0; + d3_geo_centroidX0 += (x - d3_geo_centroidX0) / d3_geo_centroidW0; + d3_geo_centroidY0 += (y - d3_geo_centroidY0) / d3_geo_centroidW0; + d3_geo_centroidZ0 += (z - d3_geo_centroidZ0) / d3_geo_centroidW0; + } + function d3_geo_centroidLineStart() { + var x0, y0, z0; + d3_geo_centroid.point = function(λ, φ) { + λ *= d3_radians; + var cosφ = Math.cos(φ *= d3_radians); + x0 = cosφ * Math.cos(λ); + y0 = cosφ * Math.sin(λ); + z0 = Math.sin(φ); + d3_geo_centroid.point = nextPoint; + d3_geo_centroidPointXYZ(x0, y0, z0); + }; + function nextPoint(λ, φ) { + λ *= d3_radians; + var cosφ = Math.cos(φ *= d3_radians), x = cosφ * Math.cos(λ), y = cosφ * Math.sin(λ), z = Math.sin(φ), w = Math.atan2(Math.sqrt((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z); + d3_geo_centroidW1 += w; + d3_geo_centroidX1 += w * (x0 + (x0 = x)); + d3_geo_centroidY1 += w * (y0 + (y0 = y)); + d3_geo_centroidZ1 += w * (z0 + (z0 = z)); + d3_geo_centroidPointXYZ(x0, y0, z0); } - return r; } - - BN.prototype._parseBase = function _parseBase (number, base, start) { - // Initialize as zero - this.words = [ 0 ]; - this.length = 1; - - // Find length of limb in base - for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) { - limbLen++; + function d3_geo_centroidLineEnd() { + d3_geo_centroid.point = d3_geo_centroidPoint; + } + function d3_geo_centroidRingStart() { + var λ00, φ00, x0, y0, z0; + d3_geo_centroid.point = function(λ, φ) { + λ00 = λ, φ00 = φ; + d3_geo_centroid.point = nextPoint; + λ *= d3_radians; + var cosφ = Math.cos(φ *= d3_radians); + x0 = cosφ * Math.cos(λ); + y0 = cosφ * Math.sin(λ); + z0 = Math.sin(φ); + d3_geo_centroidPointXYZ(x0, y0, z0); + }; + d3_geo_centroid.lineEnd = function() { + nextPoint(λ00, φ00); + d3_geo_centroid.lineEnd = d3_geo_centroidLineEnd; + d3_geo_centroid.point = d3_geo_centroidPoint; + }; + function nextPoint(λ, φ) { + λ *= d3_radians; + var cosφ = Math.cos(φ *= d3_radians), x = cosφ * Math.cos(λ), y = cosφ * Math.sin(λ), z = Math.sin(φ), cx = y0 * z - z0 * y, cy = z0 * x - x0 * z, cz = x0 * y - y0 * x, m = Math.sqrt(cx * cx + cy * cy + cz * cz), u = x0 * x + y0 * y + z0 * z, v = m && -d3_acos(u) / m, w = Math.atan2(m, u); + d3_geo_centroidX2 += v * cx; + d3_geo_centroidY2 += v * cy; + d3_geo_centroidZ2 += v * cz; + d3_geo_centroidW1 += w; + d3_geo_centroidX1 += w * (x0 + (x0 = x)); + d3_geo_centroidY1 += w * (y0 + (y0 = y)); + d3_geo_centroidZ1 += w * (z0 + (z0 = z)); + d3_geo_centroidPointXYZ(x0, y0, z0); } - limbLen--; - limbPow = (limbPow / base) | 0; - - var total = number.length - start; - var mod = total % limbLen; - var end = Math.min(total, total - mod) + start; - - var word = 0; - for (var i = start; i < end; i += limbLen) { - word = parseBase(number, i, i + limbLen, base); - - this.imuln(limbPow); - if (this.words[0] + word < 0x4000000) { - this.words[0] += word; - } else { - this._iaddn(word); - } + } + function d3_geo_compose(a, b) { + function compose(x, y) { + return x = a(x, y), b(x[0], x[1]); } - - if (mod !== 0) { - var pow = 1; - word = parseBase(number, i, number.length, base); - - for (i = 0; i < mod; i++) { - pow *= base; - } - - this.imuln(pow); - if (this.words[0] + word < 0x4000000) { - this.words[0] += word; - } else { - this._iaddn(word); + if (a.invert && b.invert) compose.invert = function(x, y) { + return x = b.invert(x, y), x && a.invert(x[0], x[1]); + }; + return compose; + } + function d3_true() { + return true; + } + function d3_geo_clipPolygon(segments, compare, clipStartInside, interpolate, listener) { + var subject = [], clip = []; + segments.forEach(function(segment) { + if ((n = segment.length - 1) <= 0) return; + var n, p0 = segment[0], p1 = segment[n]; + if (d3_geo_sphericalEqual(p0, p1)) { + listener.lineStart(); + for (var i = 0; i < n; ++i) listener.point((p0 = segment[i])[0], p0[1]); + listener.lineEnd(); + return; } + var a = new d3_geo_clipPolygonIntersection(p0, segment, null, true), b = new d3_geo_clipPolygonIntersection(p0, null, a, false); + a.o = b; + subject.push(a); + clip.push(b); + a = new d3_geo_clipPolygonIntersection(p1, segment, null, false); + b = new d3_geo_clipPolygonIntersection(p1, null, a, true); + a.o = b; + subject.push(a); + clip.push(b); + }); + clip.sort(compare); + d3_geo_clipPolygonLinkCircular(subject); + d3_geo_clipPolygonLinkCircular(clip); + if (!subject.length) return; + for (var i = 0, entry = clipStartInside, n = clip.length; i < n; ++i) { + clip[i].e = entry = !entry; } - }; - - BN.prototype.copy = function copy (dest) { - dest.words = new Array(this.length); - for (var i = 0; i < this.length; i++) { - dest.words[i] = this.words[i]; - } - dest.length = this.length; - dest.negative = this.negative; - dest.red = this.red; - }; - - BN.prototype.clone = function clone () { - var r = new BN(null); - this.copy(r); - return r; - }; - - BN.prototype._expand = function _expand (size) { - while (this.length < size) { - this.words[this.length++] = 0; - } - return this; - }; - - // Remove leading `0` from `this` - BN.prototype.strip = function strip () { - while (this.length > 1 && this.words[this.length - 1] === 0) { - this.length--; - } - return this._normSign(); - }; - - BN.prototype._normSign = function _normSign () { - // -0 = 0 - if (this.length === 1 && this.words[0] === 0) { - this.negative = 0; + var start = subject[0], points, point; + while (1) { + var current = start, isSubject = true; + while (current.v) if ((current = current.n) === start) return; + points = current.z; + listener.lineStart(); + do { + current.v = current.o.v = true; + if (current.e) { + if (isSubject) { + for (var i = 0, n = points.length; i < n; ++i) listener.point((point = points[i])[0], point[1]); + } else { + interpolate(current.x, current.n.x, 1, listener); + } + current = current.n; + } else { + if (isSubject) { + points = current.p.z; + for (var i = points.length - 1; i >= 0; --i) listener.point((point = points[i])[0], point[1]); + } else { + interpolate(current.x, current.p.x, -1, listener); + } + current = current.p; + } + current = current.o; + points = current.z; + isSubject = !isSubject; + } while (!current.v); + listener.lineEnd(); } - return this; - }; - - BN.prototype.inspect = function inspect () { - return (this.red ? ''; - }; - - /* - - var zeros = []; - var groupSizes = []; - var groupBases = []; - - var s = ''; - var i = -1; - while (++i < BN.wordSize) { - zeros[i] = s; - s += '0'; } - groupSizes[0] = 0; - groupSizes[1] = 0; - groupBases[0] = 0; - groupBases[1] = 0; - var base = 2 - 1; - while (++base < 36 + 1) { - var groupSize = 0; - var groupBase = 1; - while (groupBase < (1 << BN.wordSize) / base) { - groupBase *= base; - groupSize += 1; + function d3_geo_clipPolygonLinkCircular(array) { + if (!(n = array.length)) return; + var n, i = 0, a = array[0], b; + while (++i < n) { + a.n = b = array[i]; + b.p = a; + a = b; } - groupSizes[base] = groupSize; - groupBases[base] = groupBase; + a.n = b = array[0]; + b.p = a; } - - */ - - var zeros = [ - '', - '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' - ]; - - var groupSizes = [ - 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 - ]; - - var groupBases = [ - 0, 0, - 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, - 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625, - 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632, - 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, - 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176 - ]; - - BN.prototype.toString = function toString (base, padding) { - base = base || 10; - padding = padding | 0 || 1; - - var out; - if (base === 16 || base === 'hex') { - out = ''; - var off = 0; - var carry = 0; - for (var i = 0; i < this.length; i++) { - var w = this.words[i]; - var word = (((w << off) | carry) & 0xffffff).toString(16); - carry = (w >>> (24 - off)) & 0xffffff; - if (carry !== 0 || i !== this.length - 1) { - out = zeros[6 - word.length] + word + out; - } else { - out = word + out; - } - off += 2; - if (off >= 26) { - off -= 26; - i--; + function d3_geo_clipPolygonIntersection(point, points, other, entry) { + this.x = point; + this.z = points; + this.o = other; + this.e = entry; + this.v = false; + this.n = this.p = null; + } + function d3_geo_clip(pointVisible, clipLine, interpolate, clipStart) { + return function(rotate, listener) { + var line = clipLine(listener), rotatedClipStart = rotate.invert(clipStart[0], clipStart[1]); + var clip = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: function() { + clip.point = pointRing; + clip.lineStart = ringStart; + clip.lineEnd = ringEnd; + segments = []; + polygon = []; + }, + polygonEnd: function() { + clip.point = point; + clip.lineStart = lineStart; + clip.lineEnd = lineEnd; + segments = d3.merge(segments); + var clipStartInside = d3_geo_pointInPolygon(rotatedClipStart, polygon); + if (segments.length) { + if (!polygonStarted) listener.polygonStart(), polygonStarted = true; + d3_geo_clipPolygon(segments, d3_geo_clipSort, clipStartInside, interpolate, listener); + } else if (clipStartInside) { + if (!polygonStarted) listener.polygonStart(), polygonStarted = true; + listener.lineStart(); + interpolate(null, null, 1, listener); + listener.lineEnd(); + } + if (polygonStarted) listener.polygonEnd(), polygonStarted = false; + segments = polygon = null; + }, + sphere: function() { + listener.polygonStart(); + listener.lineStart(); + interpolate(null, null, 1, listener); + listener.lineEnd(); + listener.polygonEnd(); } + }; + function point(λ, φ) { + var point = rotate(λ, φ); + if (pointVisible(λ = point[0], φ = point[1])) listener.point(λ, φ); } - if (carry !== 0) { - out = carry.toString(16) + out; + function pointLine(λ, φ) { + var point = rotate(λ, φ); + line.point(point[0], point[1]); } - while (out.length % padding !== 0) { - out = '0' + out; + function lineStart() { + clip.point = pointLine; + line.lineStart(); } - if (this.negative !== 0) { - out = '-' + out; + function lineEnd() { + clip.point = point; + line.lineEnd(); } - return out; - } - - if (base === (base | 0) && base >= 2 && base <= 36) { - // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base)); - var groupSize = groupSizes[base]; - // var groupBase = Math.pow(base, groupSize); - var groupBase = groupBases[base]; - out = ''; - var c = this.clone(); - c.negative = 0; - while (!c.isZero()) { - var r = c.modn(groupBase).toString(base); - c = c.idivn(groupBase); - - if (!c.isZero()) { - out = zeros[groupSize - r.length] + r + out; - } else { - out = r + out; - } + var segments; + var buffer = d3_geo_clipBufferListener(), ringListener = clipLine(buffer), polygonStarted = false, polygon, ring; + function pointRing(λ, φ) { + ring.push([ λ, φ ]); + var point = rotate(λ, φ); + ringListener.point(point[0], point[1]); } - if (this.isZero()) { - out = '0' + out; + function ringStart() { + ringListener.lineStart(); + ring = []; } - while (out.length % padding !== 0) { - out = '0' + out; + function ringEnd() { + pointRing(ring[0][0], ring[0][1]); + ringListener.lineEnd(); + var clean = ringListener.clean(), ringSegments = buffer.buffer(), segment, n = ringSegments.length; + ring.pop(); + polygon.push(ring); + ring = null; + if (!n) return; + if (clean & 1) { + segment = ringSegments[0]; + var n = segment.length - 1, i = -1, point; + if (n > 0) { + if (!polygonStarted) listener.polygonStart(), polygonStarted = true; + listener.lineStart(); + while (++i < n) listener.point((point = segment[i])[0], point[1]); + listener.lineEnd(); + } + return; + } + if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift())); + segments.push(ringSegments.filter(d3_geo_clipSegmentLength1)); } - if (this.negative !== 0) { - out = '-' + out; + return clip; + }; + } + function d3_geo_clipSegmentLength1(segment) { + return segment.length > 1; + } + function d3_geo_clipBufferListener() { + var lines = [], line; + return { + lineStart: function() { + lines.push(line = []); + }, + point: function(λ, φ) { + line.push([ λ, φ ]); + }, + lineEnd: d3_noop, + buffer: function() { + var buffer = lines; + lines = []; + line = null; + return buffer; + }, + rejoin: function() { + if (lines.length > 1) lines.push(lines.pop().concat(lines.shift())); } - return out; + }; + } + function d3_geo_clipSort(a, b) { + return ((a = a.x)[0] < 0 ? a[1] - halfπ - ε : halfπ - a[1]) - ((b = b.x)[0] < 0 ? b[1] - halfπ - ε : halfπ - b[1]); + } + var d3_geo_clipAntimeridian = d3_geo_clip(d3_true, d3_geo_clipAntimeridianLine, d3_geo_clipAntimeridianInterpolate, [ -π, -π / 2 ]); + function d3_geo_clipAntimeridianLine(listener) { + var λ0 = NaN, φ0 = NaN, sλ0 = NaN, clean; + return { + lineStart: function() { + listener.lineStart(); + clean = 1; + }, + point: function(λ1, φ1) { + var sλ1 = λ1 > 0 ? π : -π, dλ = abs(λ1 - λ0); + if (abs(dλ - π) < ε) { + listener.point(λ0, φ0 = (φ0 + φ1) / 2 > 0 ? halfπ : -halfπ); + listener.point(sλ0, φ0); + listener.lineEnd(); + listener.lineStart(); + listener.point(sλ1, φ0); + listener.point(λ1, φ0); + clean = 0; + } else if (sλ0 !== sλ1 && dλ >= π) { + if (abs(λ0 - sλ0) < ε) λ0 -= sλ0 * ε; + if (abs(λ1 - sλ1) < ε) λ1 -= sλ1 * ε; + φ0 = d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1); + listener.point(sλ0, φ0); + listener.lineEnd(); + listener.lineStart(); + listener.point(sλ1, φ0); + clean = 0; + } + listener.point(λ0 = λ1, φ0 = φ1); + sλ0 = sλ1; + }, + lineEnd: function() { + listener.lineEnd(); + λ0 = φ0 = NaN; + }, + clean: function() { + return 2 - clean; + } + }; + } + function d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1) { + var cosφ0, cosφ1, sinλ0_λ1 = Math.sin(λ0 - λ1); + return abs(sinλ0_λ1) > ε ? Math.atan((Math.sin(φ0) * (cosφ1 = Math.cos(φ1)) * Math.sin(λ1) - Math.sin(φ1) * (cosφ0 = Math.cos(φ0)) * Math.sin(λ0)) / (cosφ0 * cosφ1 * sinλ0_λ1)) : (φ0 + φ1) / 2; + } + function d3_geo_clipAntimeridianInterpolate(from, to, direction, listener) { + var φ; + if (from == null) { + φ = direction * halfπ; + listener.point(-π, φ); + listener.point(0, φ); + listener.point(π, φ); + listener.point(π, 0); + listener.point(π, -φ); + listener.point(0, -φ); + listener.point(-π, -φ); + listener.point(-π, 0); + listener.point(-π, φ); + } else if (abs(from[0] - to[0]) > ε) { + var s = from[0] < to[0] ? π : -π; + φ = direction * s / 2; + listener.point(-s, φ); + listener.point(0, φ); + listener.point(s, φ); + } else { + listener.point(to[0], to[1]); } - - assert(false, 'Base should be between 2 and 36'); - }; - - BN.prototype.toNumber = function toNumber () { - var ret = this.words[0]; - if (this.length === 2) { - ret += this.words[1] * 0x4000000; - } else if (this.length === 3 && this.words[2] === 0x01) { - // NOTE: at this stage it is known that the top bit is set - ret += 0x10000000000000 + (this.words[1] * 0x4000000); - } else if (this.length > 2) { - assert(false, 'Number can only safely store up to 53 bits'); + } + function d3_geo_pointInPolygon(point, polygon) { + var meridian = point[0], parallel = point[1], meridianNormal = [ Math.sin(meridian), -Math.cos(meridian), 0 ], polarAngle = 0, winding = 0; + d3_geo_areaRingSum.reset(); + for (var i = 0, n = polygon.length; i < n; ++i) { + var ring = polygon[i], m = ring.length; + if (!m) continue; + var point0 = ring[0], λ0 = point0[0], φ0 = point0[1] / 2 + π / 4, sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), j = 1; + while (true) { + if (j === m) j = 0; + point = ring[j]; + var λ = point[0], φ = point[1] / 2 + π / 4, sinφ = Math.sin(φ), cosφ = Math.cos(φ), dλ = λ - λ0, sdλ = dλ >= 0 ? 1 : -1, adλ = sdλ * dλ, antimeridian = adλ > π, k = sinφ0 * sinφ; + d3_geo_areaRingSum.add(Math.atan2(k * sdλ * Math.sin(adλ), cosφ0 * cosφ + k * Math.cos(adλ))); + polarAngle += antimeridian ? dλ + sdλ * τ : dλ; + if (antimeridian ^ λ0 >= meridian ^ λ >= meridian) { + var arc = d3_geo_cartesianCross(d3_geo_cartesian(point0), d3_geo_cartesian(point)); + d3_geo_cartesianNormalize(arc); + var intersection = d3_geo_cartesianCross(meridianNormal, arc); + d3_geo_cartesianNormalize(intersection); + var φarc = (antimeridian ^ dλ >= 0 ? -1 : 1) * d3_asin(intersection[2]); + if (parallel > φarc || parallel === φarc && (arc[0] || arc[1])) { + winding += antimeridian ^ dλ >= 0 ? 1 : -1; + } + } + if (!j++) break; + λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ, point0 = point; + } } - return (this.negative !== 0) ? -ret : ret; - }; - - BN.prototype.toJSON = function toJSON () { - return this.toString(16); - }; - - BN.prototype.toBuffer = function toBuffer (endian, length) { - assert(typeof Buffer !== 'undefined'); - return this.toArrayLike(Buffer, endian, length); - }; - - BN.prototype.toArray = function toArray (endian, length) { - return this.toArrayLike(Array, endian, length); - }; - - BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) { - var byteLength = this.byteLength(); - var reqLength = length || Math.max(1, byteLength); - assert(byteLength <= reqLength, 'byte array longer than desired length'); - assert(reqLength > 0, 'Requested array length <= 0'); - - this.strip(); - var littleEndian = endian === 'le'; - var res = new ArrayType(reqLength); - - var b, i; - var q = this.clone(); - if (!littleEndian) { - // Assume big-endian - for (i = 0; i < reqLength - byteLength; i++) { - res[i] = 0; + return (polarAngle < -ε || polarAngle < ε && d3_geo_areaRingSum < -ε) ^ winding & 1; + } + function d3_geo_clipCircle(radius) { + var cr = Math.cos(radius), smallRadius = cr > 0, notHemisphere = abs(cr) > ε, interpolate = d3_geo_circleInterpolate(radius, 6 * d3_radians); + return d3_geo_clip(visible, clipLine, interpolate, smallRadius ? [ 0, -radius ] : [ -π, radius - π ]); + function visible(λ, φ) { + return Math.cos(λ) * Math.cos(φ) > cr; + } + function clipLine(listener) { + var point0, c0, v0, v00, clean; + return { + lineStart: function() { + v00 = v0 = false; + clean = 1; + }, + point: function(λ, φ) { + var point1 = [ λ, φ ], point2, v = visible(λ, φ), c = smallRadius ? v ? 0 : code(λ, φ) : v ? code(λ + (λ < 0 ? π : -π), φ) : 0; + if (!point0 && (v00 = v0 = v)) listener.lineStart(); + if (v !== v0) { + point2 = intersect(point0, point1); + if (d3_geo_sphericalEqual(point0, point2) || d3_geo_sphericalEqual(point1, point2)) { + point1[0] += ε; + point1[1] += ε; + v = visible(point1[0], point1[1]); + } + } + if (v !== v0) { + clean = 0; + if (v) { + listener.lineStart(); + point2 = intersect(point1, point0); + listener.point(point2[0], point2[1]); + } else { + point2 = intersect(point0, point1); + listener.point(point2[0], point2[1]); + listener.lineEnd(); + } + point0 = point2; + } else if (notHemisphere && point0 && smallRadius ^ v) { + var t; + if (!(c & c0) && (t = intersect(point1, point0, true))) { + clean = 0; + if (smallRadius) { + listener.lineStart(); + listener.point(t[0][0], t[0][1]); + listener.point(t[1][0], t[1][1]); + listener.lineEnd(); + } else { + listener.point(t[1][0], t[1][1]); + listener.lineEnd(); + listener.lineStart(); + listener.point(t[0][0], t[0][1]); + } + } + } + if (v && (!point0 || !d3_geo_sphericalEqual(point0, point1))) { + listener.point(point1[0], point1[1]); + } + point0 = point1, v0 = v, c0 = c; + }, + lineEnd: function() { + if (v0) listener.lineEnd(); + point0 = null; + }, + clean: function() { + return clean | (v00 && v0) << 1; + } + }; + } + function intersect(a, b, two) { + var pa = d3_geo_cartesian(a), pb = d3_geo_cartesian(b); + var n1 = [ 1, 0, 0 ], n2 = d3_geo_cartesianCross(pa, pb), n2n2 = d3_geo_cartesianDot(n2, n2), n1n2 = n2[0], determinant = n2n2 - n1n2 * n1n2; + if (!determinant) return !two && a; + var c1 = cr * n2n2 / determinant, c2 = -cr * n1n2 / determinant, n1xn2 = d3_geo_cartesianCross(n1, n2), A = d3_geo_cartesianScale(n1, c1), B = d3_geo_cartesianScale(n2, c2); + d3_geo_cartesianAdd(A, B); + var u = n1xn2, w = d3_geo_cartesianDot(A, u), uu = d3_geo_cartesianDot(u, u), t2 = w * w - uu * (d3_geo_cartesianDot(A, A) - 1); + if (t2 < 0) return; + var t = Math.sqrt(t2), q = d3_geo_cartesianScale(u, (-w - t) / uu); + d3_geo_cartesianAdd(q, A); + q = d3_geo_spherical(q); + if (!two) return q; + var λ0 = a[0], λ1 = b[0], φ0 = a[1], φ1 = b[1], z; + if (λ1 < λ0) z = λ0, λ0 = λ1, λ1 = z; + var δλ = λ1 - λ0, polar = abs(δλ - π) < ε, meridian = polar || δλ < ε; + if (!polar && φ1 < φ0) z = φ0, φ0 = φ1, φ1 = z; + if (meridian ? polar ? φ0 + φ1 > 0 ^ q[1] < (abs(q[0] - λ0) < ε ? φ0 : φ1) : φ0 <= q[1] && q[1] <= φ1 : δλ > π ^ (λ0 <= q[0] && q[0] <= λ1)) { + var q1 = d3_geo_cartesianScale(u, (-w + t) / uu); + d3_geo_cartesianAdd(q1, A); + return [ q, d3_geo_spherical(q1) ]; } - - for (i = 0; !q.isZero(); i++) { - b = q.andln(0xff); - q.iushrn(8); - - res[reqLength - i - 1] = b; + } + function code(λ, φ) { + var r = smallRadius ? radius : π - radius, code = 0; + if (λ < -r) code |= 1; else if (λ > r) code |= 2; + if (φ < -r) code |= 4; else if (φ > r) code |= 8; + return code; + } + } + function d3_geom_clipLine(x0, y0, x1, y1) { + return function(line) { + var a = line.a, b = line.b, ax = a.x, ay = a.y, bx = b.x, by = b.y, t0 = 0, t1 = 1, dx = bx - ax, dy = by - ay, r; + r = x0 - ax; + if (!dx && r > 0) return; + r /= dx; + if (dx < 0) { + if (r < t0) return; + if (r < t1) t1 = r; + } else if (dx > 0) { + if (r > t1) return; + if (r > t0) t0 = r; } - } else { - for (i = 0; !q.isZero(); i++) { - b = q.andln(0xff); - q.iushrn(8); - - res[i] = b; + r = x1 - ax; + if (!dx && r < 0) return; + r /= dx; + if (dx < 0) { + if (r > t1) return; + if (r > t0) t0 = r; + } else if (dx > 0) { + if (r < t0) return; + if (r < t1) t1 = r; } - - for (; i < reqLength; i++) { - res[i] = 0; + r = y0 - ay; + if (!dy && r > 0) return; + r /= dy; + if (dy < 0) { + if (r < t0) return; + if (r < t1) t1 = r; + } else if (dy > 0) { + if (r > t1) return; + if (r > t0) t0 = r; } - } - - return res; - }; - - if (Math.clz32) { - BN.prototype._countBits = function _countBits (w) { - return 32 - Math.clz32(w); + r = y1 - ay; + if (!dy && r < 0) return; + r /= dy; + if (dy < 0) { + if (r > t1) return; + if (r > t0) t0 = r; + } else if (dy > 0) { + if (r < t0) return; + if (r < t1) t1 = r; + } + if (t0 > 0) line.a = { + x: ax + t0 * dx, + y: ay + t0 * dy + }; + if (t1 < 1) line.b = { + x: ax + t1 * dx, + y: ay + t1 * dy + }; + return line; }; - } else { - BN.prototype._countBits = function _countBits (w) { - var t = w; - var r = 0; - if (t >= 0x1000) { - r += 13; - t >>>= 13; + } + var d3_geo_clipExtentMAX = 1e9; + d3.geo.clipExtent = function() { + var x0, y0, x1, y1, stream, clip, clipExtent = { + stream: function(output) { + if (stream) stream.valid = false; + stream = clip(output); + stream.valid = true; + return stream; + }, + extent: function(_) { + if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ]; + clip = d3_geo_clipExtent(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]); + if (stream) stream.valid = false, stream = null; + return clipExtent; } - if (t >= 0x40) { - r += 7; - t >>>= 7; + }; + return clipExtent.extent([ [ 0, 0 ], [ 960, 500 ] ]); + }; + function d3_geo_clipExtent(x0, y0, x1, y1) { + return function(listener) { + var listener_ = listener, bufferListener = d3_geo_clipBufferListener(), clipLine = d3_geom_clipLine(x0, y0, x1, y1), segments, polygon, ring; + var clip = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: function() { + listener = bufferListener; + segments = []; + polygon = []; + clean = true; + }, + polygonEnd: function() { + listener = listener_; + segments = d3.merge(segments); + var clipStartInside = insidePolygon([ x0, y1 ]), inside = clean && clipStartInside, visible = segments.length; + if (inside || visible) { + listener.polygonStart(); + if (inside) { + listener.lineStart(); + interpolate(null, null, 1, listener); + listener.lineEnd(); + } + if (visible) { + d3_geo_clipPolygon(segments, compare, clipStartInside, interpolate, listener); + } + listener.polygonEnd(); + } + segments = polygon = ring = null; + } + }; + function insidePolygon(p) { + var wn = 0, n = polygon.length, y = p[1]; + for (var i = 0; i < n; ++i) { + for (var j = 1, v = polygon[i], m = v.length, a = v[0], b; j < m; ++j) { + b = v[j]; + if (a[1] <= y) { + if (b[1] > y && d3_cross2d(a, b, p) > 0) ++wn; + } else { + if (b[1] <= y && d3_cross2d(a, b, p) < 0) --wn; + } + a = b; + } + } + return wn !== 0; } - if (t >= 0x8) { - r += 4; - t >>>= 4; + function interpolate(from, to, direction, listener) { + var a = 0, a1 = 0; + if (from == null || (a = corner(from, direction)) !== (a1 = corner(to, direction)) || comparePoints(from, to) < 0 ^ direction > 0) { + do { + listener.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0); + } while ((a = (a + direction + 4) % 4) !== a1); + } else { + listener.point(to[0], to[1]); + } } - if (t >= 0x02) { - r += 2; - t >>>= 2; + function pointVisible(x, y) { + return x0 <= x && x <= x1 && y0 <= y && y <= y1; } - return r + t; + function point(x, y) { + if (pointVisible(x, y)) listener.point(x, y); + } + var x__, y__, v__, x_, y_, v_, first, clean; + function lineStart() { + clip.point = linePoint; + if (polygon) polygon.push(ring = []); + first = true; + v_ = false; + x_ = y_ = NaN; + } + function lineEnd() { + if (segments) { + linePoint(x__, y__); + if (v__ && v_) bufferListener.rejoin(); + segments.push(bufferListener.buffer()); + } + clip.point = point; + if (v_) listener.lineEnd(); + } + function linePoint(x, y) { + x = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, x)); + y = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, y)); + var v = pointVisible(x, y); + if (polygon) ring.push([ x, y ]); + if (first) { + x__ = x, y__ = y, v__ = v; + first = false; + if (v) { + listener.lineStart(); + listener.point(x, y); + } + } else { + if (v && v_) listener.point(x, y); else { + var l = { + a: { + x: x_, + y: y_ + }, + b: { + x: x, + y: y + } + }; + if (clipLine(l)) { + if (!v_) { + listener.lineStart(); + listener.point(l.a.x, l.a.y); + } + listener.point(l.b.x, l.b.y); + if (!v) listener.lineEnd(); + clean = false; + } else if (v) { + listener.lineStart(); + listener.point(x, y); + clean = false; + } + } + } + x_ = x, y_ = y, v_ = v; + } + return clip; }; - } - - BN.prototype._zeroBits = function _zeroBits (w) { - // Short-cut - if (w === 0) return 26; - - var t = w; - var r = 0; - if ((t & 0x1fff) === 0) { - r += 13; - t >>>= 13; - } - if ((t & 0x7f) === 0) { - r += 7; - t >>>= 7; - } - if ((t & 0xf) === 0) { - r += 4; - t >>>= 4; - } - if ((t & 0x3) === 0) { - r += 2; - t >>>= 2; + function corner(p, direction) { + return abs(p[0] - x0) < ε ? direction > 0 ? 0 : 3 : abs(p[0] - x1) < ε ? direction > 0 ? 2 : 1 : abs(p[1] - y0) < ε ? direction > 0 ? 1 : 0 : direction > 0 ? 3 : 2; } - if ((t & 0x1) === 0) { - r++; + function compare(a, b) { + return comparePoints(a.x, b.x); } - return r; - }; - - // Return number of used bits in a BN - BN.prototype.bitLength = function bitLength () { - var w = this.words[this.length - 1]; - var hi = this._countBits(w); - return (this.length - 1) * 26 + hi; - }; - - function toBitArray (num) { - var w = new Array(num.bitLength()); - - for (var bit = 0; bit < w.length; bit++) { - var off = (bit / 26) | 0; - var wbit = bit % 26; - - w[bit] = (num.words[off] & (1 << wbit)) >>> wbit; + function comparePoints(a, b) { + var ca = corner(a, 1), cb = corner(b, 1); + return ca !== cb ? ca - cb : ca === 0 ? b[1] - a[1] : ca === 1 ? a[0] - b[0] : ca === 2 ? a[1] - b[1] : b[0] - a[0]; } - - return w; } - - // Number of trailing zero bits - BN.prototype.zeroBits = function zeroBits () { - if (this.isZero()) return 0; - - var r = 0; - for (var i = 0; i < this.length; i++) { - var b = this._zeroBits(this.words[i]); - r += b; - if (b !== 26) break; + function d3_geo_conic(projectAt) { + var φ0 = 0, φ1 = π / 3, m = d3_geo_projectionMutator(projectAt), p = m(φ0, φ1); + p.parallels = function(_) { + if (!arguments.length) return [ φ0 / π * 180, φ1 / π * 180 ]; + return m(φ0 = _[0] * π / 180, φ1 = _[1] * π / 180); + }; + return p; + } + function d3_geo_conicEqualArea(φ0, φ1) { + var sinφ0 = Math.sin(φ0), n = (sinφ0 + Math.sin(φ1)) / 2, C = 1 + sinφ0 * (2 * n - sinφ0), ρ0 = Math.sqrt(C) / n; + function forward(λ, φ) { + var ρ = Math.sqrt(C - 2 * n * Math.sin(φ)) / n; + return [ ρ * Math.sin(λ *= n), ρ0 - ρ * Math.cos(λ) ]; } - return r; - }; - - BN.prototype.byteLength = function byteLength () { - return Math.ceil(this.bitLength() / 8); + forward.invert = function(x, y) { + var ρ0_y = ρ0 - y; + return [ Math.atan2(x, ρ0_y) / n, d3_asin((C - (x * x + ρ0_y * ρ0_y) * n * n) / (2 * n)) ]; + }; + return forward; + } + (d3.geo.conicEqualArea = function() { + return d3_geo_conic(d3_geo_conicEqualArea); + }).raw = d3_geo_conicEqualArea; + d3.geo.albers = function() { + return d3.geo.conicEqualArea().rotate([ 96, 0 ]).center([ -.6, 38.7 ]).parallels([ 29.5, 45.5 ]).scale(1070); }; - - BN.prototype.toTwos = function toTwos (width) { - if (this.negative !== 0) { - return this.abs().inotn(width).iaddn(1); + d3.geo.albersUsa = function() { + var lower48 = d3.geo.albers(); + var alaska = d3.geo.conicEqualArea().rotate([ 154, 0 ]).center([ -2, 58.5 ]).parallels([ 55, 65 ]); + var hawaii = d3.geo.conicEqualArea().rotate([ 157, 0 ]).center([ -3, 19.9 ]).parallels([ 8, 18 ]); + var point, pointStream = { + point: function(x, y) { + point = [ x, y ]; + } + }, lower48Point, alaskaPoint, hawaiiPoint; + function albersUsa(coordinates) { + var x = coordinates[0], y = coordinates[1]; + point = null; + (lower48Point(x, y), point) || (alaskaPoint(x, y), point) || hawaiiPoint(x, y); + return point; } - return this.clone(); + albersUsa.invert = function(coordinates) { + var k = lower48.scale(), t = lower48.translate(), x = (coordinates[0] - t[0]) / k, y = (coordinates[1] - t[1]) / k; + return (y >= .12 && y < .234 && x >= -.425 && x < -.214 ? alaska : y >= .166 && y < .234 && x >= -.214 && x < -.115 ? hawaii : lower48).invert(coordinates); + }; + albersUsa.stream = function(stream) { + var lower48Stream = lower48.stream(stream), alaskaStream = alaska.stream(stream), hawaiiStream = hawaii.stream(stream); + return { + point: function(x, y) { + lower48Stream.point(x, y); + alaskaStream.point(x, y); + hawaiiStream.point(x, y); + }, + sphere: function() { + lower48Stream.sphere(); + alaskaStream.sphere(); + hawaiiStream.sphere(); + }, + lineStart: function() { + lower48Stream.lineStart(); + alaskaStream.lineStart(); + hawaiiStream.lineStart(); + }, + lineEnd: function() { + lower48Stream.lineEnd(); + alaskaStream.lineEnd(); + hawaiiStream.lineEnd(); + }, + polygonStart: function() { + lower48Stream.polygonStart(); + alaskaStream.polygonStart(); + hawaiiStream.polygonStart(); + }, + polygonEnd: function() { + lower48Stream.polygonEnd(); + alaskaStream.polygonEnd(); + hawaiiStream.polygonEnd(); + } + }; + }; + albersUsa.precision = function(_) { + if (!arguments.length) return lower48.precision(); + lower48.precision(_); + alaska.precision(_); + hawaii.precision(_); + return albersUsa; + }; + albersUsa.scale = function(_) { + if (!arguments.length) return lower48.scale(); + lower48.scale(_); + alaska.scale(_ * .35); + hawaii.scale(_); + return albersUsa.translate(lower48.translate()); + }; + albersUsa.translate = function(_) { + if (!arguments.length) return lower48.translate(); + var k = lower48.scale(), x = +_[0], y = +_[1]; + lower48Point = lower48.translate(_).clipExtent([ [ x - .455 * k, y - .238 * k ], [ x + .455 * k, y + .238 * k ] ]).stream(pointStream).point; + alaskaPoint = alaska.translate([ x - .307 * k, y + .201 * k ]).clipExtent([ [ x - .425 * k + ε, y + .12 * k + ε ], [ x - .214 * k - ε, y + .234 * k - ε ] ]).stream(pointStream).point; + hawaiiPoint = hawaii.translate([ x - .205 * k, y + .212 * k ]).clipExtent([ [ x - .214 * k + ε, y + .166 * k + ε ], [ x - .115 * k - ε, y + .234 * k - ε ] ]).stream(pointStream).point; + return albersUsa; + }; + return albersUsa.scale(1070); }; - - BN.prototype.fromTwos = function fromTwos (width) { - if (this.testn(width - 1)) { - return this.notn(width).iaddn(1).ineg(); + var d3_geo_pathAreaSum, d3_geo_pathAreaPolygon, d3_geo_pathArea = { + point: d3_noop, + lineStart: d3_noop, + lineEnd: d3_noop, + polygonStart: function() { + d3_geo_pathAreaPolygon = 0; + d3_geo_pathArea.lineStart = d3_geo_pathAreaRingStart; + }, + polygonEnd: function() { + d3_geo_pathArea.lineStart = d3_geo_pathArea.lineEnd = d3_geo_pathArea.point = d3_noop; + d3_geo_pathAreaSum += abs(d3_geo_pathAreaPolygon / 2); } - return this.clone(); - }; - - BN.prototype.isNeg = function isNeg () { - return this.negative !== 0; - }; - - // Return negative clone of `this` - BN.prototype.neg = function neg () { - return this.clone().ineg(); }; - - BN.prototype.ineg = function ineg () { - if (!this.isZero()) { - this.negative ^= 1; + function d3_geo_pathAreaRingStart() { + var x00, y00, x0, y0; + d3_geo_pathArea.point = function(x, y) { + d3_geo_pathArea.point = nextPoint; + x00 = x0 = x, y00 = y0 = y; + }; + function nextPoint(x, y) { + d3_geo_pathAreaPolygon += y0 * x - x0 * y; + x0 = x, y0 = y; } - - return this; + d3_geo_pathArea.lineEnd = function() { + nextPoint(x00, y00); + }; + } + var d3_geo_pathBoundsX0, d3_geo_pathBoundsY0, d3_geo_pathBoundsX1, d3_geo_pathBoundsY1; + var d3_geo_pathBounds = { + point: d3_geo_pathBoundsPoint, + lineStart: d3_noop, + lineEnd: d3_noop, + polygonStart: d3_noop, + polygonEnd: d3_noop }; - - // Or `num` with `this` in-place - BN.prototype.iuor = function iuor (num) { - while (this.length < num.length) { - this.words[this.length++] = 0; - } - - for (var i = 0; i < num.length; i++) { - this.words[i] = this.words[i] | num.words[i]; + function d3_geo_pathBoundsPoint(x, y) { + if (x < d3_geo_pathBoundsX0) d3_geo_pathBoundsX0 = x; + if (x > d3_geo_pathBoundsX1) d3_geo_pathBoundsX1 = x; + if (y < d3_geo_pathBoundsY0) d3_geo_pathBoundsY0 = y; + if (y > d3_geo_pathBoundsY1) d3_geo_pathBoundsY1 = y; + } + function d3_geo_pathBuffer() { + var pointCircle = d3_geo_pathBufferCircle(4.5), buffer = []; + var stream = { + point: point, + lineStart: function() { + stream.point = pointLineStart; + }, + lineEnd: lineEnd, + polygonStart: function() { + stream.lineEnd = lineEndPolygon; + }, + polygonEnd: function() { + stream.lineEnd = lineEnd; + stream.point = point; + }, + pointRadius: function(_) { + pointCircle = d3_geo_pathBufferCircle(_); + return stream; + }, + result: function() { + if (buffer.length) { + var result = buffer.join(""); + buffer = []; + return result; + } + } + }; + function point(x, y) { + buffer.push("M", x, ",", y, pointCircle); } - - return this.strip(); - }; - - BN.prototype.ior = function ior (num) { - assert((this.negative | num.negative) === 0); - return this.iuor(num); - }; - - // Or `num` with `this` - BN.prototype.or = function or (num) { - if (this.length > num.length) return this.clone().ior(num); - return num.clone().ior(this); - }; - - BN.prototype.uor = function uor (num) { - if (this.length > num.length) return this.clone().iuor(num); - return num.clone().iuor(this); - }; - - // And `num` with `this` in-place - BN.prototype.iuand = function iuand (num) { - // b = min-length(num, this) - var b; - if (this.length > num.length) { - b = num; - } else { - b = this; + function pointLineStart(x, y) { + buffer.push("M", x, ",", y); + stream.point = pointLine; } - - for (var i = 0; i < b.length; i++) { - this.words[i] = this.words[i] & num.words[i]; + function pointLine(x, y) { + buffer.push("L", x, ",", y); } - - this.length = b.length; - - return this.strip(); - }; - - BN.prototype.iand = function iand (num) { - assert((this.negative | num.negative) === 0); - return this.iuand(num); - }; - - // And `num` with `this` - BN.prototype.and = function and (num) { - if (this.length > num.length) return this.clone().iand(num); - return num.clone().iand(this); - }; - - BN.prototype.uand = function uand (num) { - if (this.length > num.length) return this.clone().iuand(num); - return num.clone().iuand(this); - }; - - // Xor `num` with `this` in-place - BN.prototype.iuxor = function iuxor (num) { - // a.length > b.length - var a; - var b; - if (this.length > num.length) { - a = this; - b = num; - } else { - a = num; - b = this; + function lineEnd() { + stream.point = point; } - - for (var i = 0; i < b.length; i++) { - this.words[i] = a.words[i] ^ b.words[i]; + function lineEndPolygon() { + buffer.push("Z"); } - - if (this !== a) { - for (; i < a.length; i++) { - this.words[i] = a.words[i]; - } + return stream; + } + function d3_geo_pathBufferCircle(radius) { + return "m0," + radius + "a" + radius + "," + radius + " 0 1,1 0," + -2 * radius + "a" + radius + "," + radius + " 0 1,1 0," + 2 * radius + "z"; + } + var d3_geo_pathCentroid = { + point: d3_geo_pathCentroidPoint, + lineStart: d3_geo_pathCentroidLineStart, + lineEnd: d3_geo_pathCentroidLineEnd, + polygonStart: function() { + d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidRingStart; + }, + polygonEnd: function() { + d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint; + d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidLineStart; + d3_geo_pathCentroid.lineEnd = d3_geo_pathCentroidLineEnd; } - - this.length = a.length; - - return this.strip(); - }; - - BN.prototype.ixor = function ixor (num) { - assert((this.negative | num.negative) === 0); - return this.iuxor(num); - }; - - // Xor `num` with `this` - BN.prototype.xor = function xor (num) { - if (this.length > num.length) return this.clone().ixor(num); - return num.clone().ixor(this); - }; - - BN.prototype.uxor = function uxor (num) { - if (this.length > num.length) return this.clone().iuxor(num); - return num.clone().iuxor(this); }; - - // Not ``this`` with ``width`` bitwidth - BN.prototype.inotn = function inotn (width) { - assert(typeof width === 'number' && width >= 0); - - var bytesNeeded = Math.ceil(width / 26) | 0; - var bitsLeft = width % 26; - - // Extend the buffer with leading zeroes - this._expand(bytesNeeded); - - if (bitsLeft > 0) { - bytesNeeded--; + function d3_geo_pathCentroidPoint(x, y) { + d3_geo_centroidX0 += x; + d3_geo_centroidY0 += y; + ++d3_geo_centroidZ0; + } + function d3_geo_pathCentroidLineStart() { + var x0, y0; + d3_geo_pathCentroid.point = function(x, y) { + d3_geo_pathCentroid.point = nextPoint; + d3_geo_pathCentroidPoint(x0 = x, y0 = y); + }; + function nextPoint(x, y) { + var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy); + d3_geo_centroidX1 += z * (x0 + x) / 2; + d3_geo_centroidY1 += z * (y0 + y) / 2; + d3_geo_centroidZ1 += z; + d3_geo_pathCentroidPoint(x0 = x, y0 = y); } - - // Handle complete words - for (var i = 0; i < bytesNeeded; i++) { - this.words[i] = ~this.words[i] & 0x3ffffff; + } + function d3_geo_pathCentroidLineEnd() { + d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint; + } + function d3_geo_pathCentroidRingStart() { + var x00, y00, x0, y0; + d3_geo_pathCentroid.point = function(x, y) { + d3_geo_pathCentroid.point = nextPoint; + d3_geo_pathCentroidPoint(x00 = x0 = x, y00 = y0 = y); + }; + function nextPoint(x, y) { + var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy); + d3_geo_centroidX1 += z * (x0 + x) / 2; + d3_geo_centroidY1 += z * (y0 + y) / 2; + d3_geo_centroidZ1 += z; + z = y0 * x - x0 * y; + d3_geo_centroidX2 += z * (x0 + x); + d3_geo_centroidY2 += z * (y0 + y); + d3_geo_centroidZ2 += z * 3; + d3_geo_pathCentroidPoint(x0 = x, y0 = y); } - - // Handle the residue - if (bitsLeft > 0) { - this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft)); + d3_geo_pathCentroid.lineEnd = function() { + nextPoint(x00, y00); + }; + } + function d3_geo_pathContext(context) { + var pointRadius = 4.5; + var stream = { + point: point, + lineStart: function() { + stream.point = pointLineStart; + }, + lineEnd: lineEnd, + polygonStart: function() { + stream.lineEnd = lineEndPolygon; + }, + polygonEnd: function() { + stream.lineEnd = lineEnd; + stream.point = point; + }, + pointRadius: function(_) { + pointRadius = _; + return stream; + }, + result: d3_noop + }; + function point(x, y) { + context.moveTo(x + pointRadius, y); + context.arc(x, y, pointRadius, 0, τ); } - - // And remove leading zeroes - return this.strip(); - }; - - BN.prototype.notn = function notn (width) { - return this.clone().inotn(width); - }; - - // Set `bit` of `this` - BN.prototype.setn = function setn (bit, val) { - assert(typeof bit === 'number' && bit >= 0); - - var off = (bit / 26) | 0; - var wbit = bit % 26; - - this._expand(off + 1); - - if (val) { - this.words[off] = this.words[off] | (1 << wbit); - } else { - this.words[off] = this.words[off] & ~(1 << wbit); + function pointLineStart(x, y) { + context.moveTo(x, y); + stream.point = pointLine; } - - return this.strip(); - }; - - // Add `num` to `this` in-place - BN.prototype.iadd = function iadd (num) { - var r; - - // negative + positive - if (this.negative !== 0 && num.negative === 0) { - this.negative = 0; - r = this.isub(num); - this.negative ^= 1; - return this._normSign(); - - // positive + negative - } else if (this.negative === 0 && num.negative !== 0) { - num.negative = 0; - r = this.isub(num); - num.negative = 1; - return r._normSign(); + function pointLine(x, y) { + context.lineTo(x, y); } - - // a.length > b.length - var a, b; - if (this.length > num.length) { - a = this; - b = num; - } else { - a = num; - b = this; + function lineEnd() { + stream.point = point; } - - var carry = 0; - for (var i = 0; i < b.length; i++) { - r = (a.words[i] | 0) + (b.words[i] | 0) + carry; - this.words[i] = r & 0x3ffffff; - carry = r >>> 26; + function lineEndPolygon() { + context.closePath(); } - for (; carry !== 0 && i < a.length; i++) { - r = (a.words[i] | 0) + carry; - this.words[i] = r & 0x3ffffff; - carry = r >>> 26; + return stream; + } + function d3_geo_resample(project) { + var δ2 = .5, cosMinDistance = Math.cos(30 * d3_radians), maxDepth = 16; + function resample(stream) { + return (maxDepth ? resampleRecursive : resampleNone)(stream); } - - this.length = a.length; - if (carry !== 0) { - this.words[this.length] = carry; - this.length++; - // Copy the rest of the words - } else if (a !== this) { - for (; i < a.length; i++) { - this.words[i] = a.words[i]; + function resampleNone(stream) { + return d3_geo_transformPoint(stream, function(x, y) { + x = project(x, y); + stream.point(x[0], x[1]); + }); + } + function resampleRecursive(stream) { + var λ00, φ00, x00, y00, a00, b00, c00, λ0, x0, y0, a0, b0, c0; + var resample = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: function() { + stream.polygonStart(); + resample.lineStart = ringStart; + }, + polygonEnd: function() { + stream.polygonEnd(); + resample.lineStart = lineStart; + } + }; + function point(x, y) { + x = project(x, y); + stream.point(x[0], x[1]); + } + function lineStart() { + x0 = NaN; + resample.point = linePoint; + stream.lineStart(); + } + function linePoint(λ, φ) { + var c = d3_geo_cartesian([ λ, φ ]), p = project(λ, φ); + resampleLineTo(x0, y0, λ0, a0, b0, c0, x0 = p[0], y0 = p[1], λ0 = λ, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream); + stream.point(x0, y0); + } + function lineEnd() { + resample.point = point; + stream.lineEnd(); + } + function ringStart() { + lineStart(); + resample.point = ringPoint; + resample.lineEnd = ringEnd; + } + function ringPoint(λ, φ) { + linePoint(λ00 = λ, φ00 = φ), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0; + resample.point = linePoint; + } + function ringEnd() { + resampleLineTo(x0, y0, λ0, a0, b0, c0, x00, y00, λ00, a00, b00, c00, maxDepth, stream); + resample.lineEnd = lineEnd; + lineEnd(); } + return resample; } - - return this; + function resampleLineTo(x0, y0, λ0, a0, b0, c0, x1, y1, λ1, a1, b1, c1, depth, stream) { + var dx = x1 - x0, dy = y1 - y0, d2 = dx * dx + dy * dy; + if (d2 > 4 * δ2 && depth--) { + var a = a0 + a1, b = b0 + b1, c = c0 + c1, m = Math.sqrt(a * a + b * b + c * c), φ2 = Math.asin(c /= m), λ2 = abs(abs(c) - 1) < ε || abs(λ0 - λ1) < ε ? (λ0 + λ1) / 2 : Math.atan2(b, a), p = project(λ2, φ2), x2 = p[0], y2 = p[1], dx2 = x2 - x0, dy2 = y2 - y0, dz = dy * dx2 - dx * dy2; + if (dz * dz / d2 > δ2 || abs((dx * dx2 + dy * dy2) / d2 - .5) > .3 || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { + resampleLineTo(x0, y0, λ0, a0, b0, c0, x2, y2, λ2, a /= m, b /= m, c, depth, stream); + stream.point(x2, y2); + resampleLineTo(x2, y2, λ2, a, b, c, x1, y1, λ1, a1, b1, c1, depth, stream); + } + } + } + resample.precision = function(_) { + if (!arguments.length) return Math.sqrt(δ2); + maxDepth = (δ2 = _ * _) > 0 && 16; + return resample; + }; + return resample; + } + d3.geo.path = function() { + var pointRadius = 4.5, projection, context, projectStream, contextStream, cacheStream; + function path(object) { + if (object) { + if (typeof pointRadius === "function") contextStream.pointRadius(+pointRadius.apply(this, arguments)); + if (!cacheStream || !cacheStream.valid) cacheStream = projectStream(contextStream); + d3.geo.stream(object, cacheStream); + } + return contextStream.result(); + } + path.area = function(object) { + d3_geo_pathAreaSum = 0; + d3.geo.stream(object, projectStream(d3_geo_pathArea)); + return d3_geo_pathAreaSum; + }; + path.centroid = function(object) { + d3_geo_centroidX0 = d3_geo_centroidY0 = d3_geo_centroidZ0 = d3_geo_centroidX1 = d3_geo_centroidY1 = d3_geo_centroidZ1 = d3_geo_centroidX2 = d3_geo_centroidY2 = d3_geo_centroidZ2 = 0; + d3.geo.stream(object, projectStream(d3_geo_pathCentroid)); + return d3_geo_centroidZ2 ? [ d3_geo_centroidX2 / d3_geo_centroidZ2, d3_geo_centroidY2 / d3_geo_centroidZ2 ] : d3_geo_centroidZ1 ? [ d3_geo_centroidX1 / d3_geo_centroidZ1, d3_geo_centroidY1 / d3_geo_centroidZ1 ] : d3_geo_centroidZ0 ? [ d3_geo_centroidX0 / d3_geo_centroidZ0, d3_geo_centroidY0 / d3_geo_centroidZ0 ] : [ NaN, NaN ]; + }; + path.bounds = function(object) { + d3_geo_pathBoundsX1 = d3_geo_pathBoundsY1 = -(d3_geo_pathBoundsX0 = d3_geo_pathBoundsY0 = Infinity); + d3.geo.stream(object, projectStream(d3_geo_pathBounds)); + return [ [ d3_geo_pathBoundsX0, d3_geo_pathBoundsY0 ], [ d3_geo_pathBoundsX1, d3_geo_pathBoundsY1 ] ]; + }; + path.projection = function(_) { + if (!arguments.length) return projection; + projectStream = (projection = _) ? _.stream || d3_geo_pathProjectStream(_) : d3_identity; + return reset(); + }; + path.context = function(_) { + if (!arguments.length) return context; + contextStream = (context = _) == null ? new d3_geo_pathBuffer() : new d3_geo_pathContext(_); + if (typeof pointRadius !== "function") contextStream.pointRadius(pointRadius); + return reset(); + }; + path.pointRadius = function(_) { + if (!arguments.length) return pointRadius; + pointRadius = typeof _ === "function" ? _ : (contextStream.pointRadius(+_), +_); + return path; + }; + function reset() { + cacheStream = null; + return path; + } + return path.projection(d3.geo.albersUsa()).context(null); }; - - // Add `num` to `this` - BN.prototype.add = function add (num) { - var res; - if (num.negative !== 0 && this.negative === 0) { - num.negative = 0; - res = this.sub(num); - num.negative ^= 1; - return res; - } else if (num.negative === 0 && this.negative !== 0) { - this.negative = 0; - res = num.sub(this); - this.negative = 1; - return res; + function d3_geo_pathProjectStream(project) { + var resample = d3_geo_resample(function(x, y) { + return project([ x * d3_degrees, y * d3_degrees ]); + }); + return function(stream) { + return d3_geo_projectionRadians(resample(stream)); + }; + } + d3.geo.transform = function(methods) { + return { + stream: function(stream) { + var transform = new d3_geo_transform(stream); + for (var k in methods) transform[k] = methods[k]; + return transform; + } + }; + }; + function d3_geo_transform(stream) { + this.stream = stream; + } + d3_geo_transform.prototype = { + point: function(x, y) { + this.stream.point(x, y); + }, + sphere: function() { + this.stream.sphere(); + }, + lineStart: function() { + this.stream.lineStart(); + }, + lineEnd: function() { + this.stream.lineEnd(); + }, + polygonStart: function() { + this.stream.polygonStart(); + }, + polygonEnd: function() { + this.stream.polygonEnd(); } - - if (this.length > num.length) return this.clone().iadd(num); - - return num.clone().iadd(this); }; - - // Subtract `num` from `this` in-place - BN.prototype.isub = function isub (num) { - // this - (-num) = this + num - if (num.negative !== 0) { - num.negative = 0; - var r = this.iadd(num); - num.negative = 1; - return r._normSign(); - - // -this - num = -(this + num) - } else if (this.negative !== 0) { - this.negative = 0; - this.iadd(num); - this.negative = 1; - return this._normSign(); + function d3_geo_transformPoint(stream, point) { + return { + point: point, + sphere: function() { + stream.sphere(); + }, + lineStart: function() { + stream.lineStart(); + }, + lineEnd: function() { + stream.lineEnd(); + }, + polygonStart: function() { + stream.polygonStart(); + }, + polygonEnd: function() { + stream.polygonEnd(); + } + }; + } + d3.geo.projection = d3_geo_projection; + d3.geo.projectionMutator = d3_geo_projectionMutator; + function d3_geo_projection(project) { + return d3_geo_projectionMutator(function() { + return project; + })(); + } + function d3_geo_projectionMutator(projectAt) { + var project, rotate, projectRotate, projectResample = d3_geo_resample(function(x, y) { + x = project(x, y); + return [ x[0] * k + δx, δy - x[1] * k ]; + }), k = 150, x = 480, y = 250, λ = 0, φ = 0, δλ = 0, δφ = 0, δγ = 0, δx, δy, preclip = d3_geo_clipAntimeridian, postclip = d3_identity, clipAngle = null, clipExtent = null, stream; + function projection(point) { + point = projectRotate(point[0] * d3_radians, point[1] * d3_radians); + return [ point[0] * k + δx, δy - point[1] * k ]; } - - // At this point both numbers are positive - var cmp = this.cmp(num); - - // Optimization - zeroify - if (cmp === 0) { - this.negative = 0; - this.length = 1; - this.words[0] = 0; - return this; + function invert(point) { + point = projectRotate.invert((point[0] - δx) / k, (δy - point[1]) / k); + return point && [ point[0] * d3_degrees, point[1] * d3_degrees ]; } - - // a > b - var a, b; - if (cmp > 0) { - a = this; - b = num; - } else { - a = num; - b = this; + projection.stream = function(output) { + if (stream) stream.valid = false; + stream = d3_geo_projectionRadians(preclip(rotate, projectResample(postclip(output)))); + stream.valid = true; + return stream; + }; + projection.clipAngle = function(_) { + if (!arguments.length) return clipAngle; + preclip = _ == null ? (clipAngle = _, d3_geo_clipAntimeridian) : d3_geo_clipCircle((clipAngle = +_) * d3_radians); + return invalidate(); + }; + projection.clipExtent = function(_) { + if (!arguments.length) return clipExtent; + clipExtent = _; + postclip = _ ? d3_geo_clipExtent(_[0][0], _[0][1], _[1][0], _[1][1]) : d3_identity; + return invalidate(); + }; + projection.scale = function(_) { + if (!arguments.length) return k; + k = +_; + return reset(); + }; + projection.translate = function(_) { + if (!arguments.length) return [ x, y ]; + x = +_[0]; + y = +_[1]; + return reset(); + }; + projection.center = function(_) { + if (!arguments.length) return [ λ * d3_degrees, φ * d3_degrees ]; + λ = _[0] % 360 * d3_radians; + φ = _[1] % 360 * d3_radians; + return reset(); + }; + projection.rotate = function(_) { + if (!arguments.length) return [ δλ * d3_degrees, δφ * d3_degrees, δγ * d3_degrees ]; + δλ = _[0] % 360 * d3_radians; + δφ = _[1] % 360 * d3_radians; + δγ = _.length > 2 ? _[2] % 360 * d3_radians : 0; + return reset(); + }; + d3.rebind(projection, projectResample, "precision"); + function reset() { + projectRotate = d3_geo_compose(rotate = d3_geo_rotation(δλ, δφ, δγ), project); + var center = project(λ, φ); + δx = x - center[0] * k; + δy = y + center[1] * k; + return invalidate(); } - - var carry = 0; - for (var i = 0; i < b.length; i++) { - r = (a.words[i] | 0) - (b.words[i] | 0) + carry; - carry = r >> 26; - this.words[i] = r & 0x3ffffff; + function invalidate() { + if (stream) stream.valid = false, stream = null; + return projection; } - for (; carry !== 0 && i < a.length; i++) { - r = (a.words[i] | 0) + carry; - carry = r >> 26; - this.words[i] = r & 0x3ffffff; + return function() { + project = projectAt.apply(this, arguments); + projection.invert = project.invert && invert; + return reset(); + }; + } + function d3_geo_projectionRadians(stream) { + return d3_geo_transformPoint(stream, function(x, y) { + stream.point(x * d3_radians, y * d3_radians); + }); + } + function d3_geo_equirectangular(λ, φ) { + return [ λ, φ ]; + } + (d3.geo.equirectangular = function() { + return d3_geo_projection(d3_geo_equirectangular); + }).raw = d3_geo_equirectangular.invert = d3_geo_equirectangular; + d3.geo.rotation = function(rotate) { + rotate = d3_geo_rotation(rotate[0] % 360 * d3_radians, rotate[1] * d3_radians, rotate.length > 2 ? rotate[2] * d3_radians : 0); + function forward(coordinates) { + coordinates = rotate(coordinates[0] * d3_radians, coordinates[1] * d3_radians); + return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates; } - - // Copy rest of the words - if (carry === 0 && i < a.length && a !== this) { - for (; i < a.length; i++) { - this.words[i] = a.words[i]; + forward.invert = function(coordinates) { + coordinates = rotate.invert(coordinates[0] * d3_radians, coordinates[1] * d3_radians); + return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates; + }; + return forward; + }; + function d3_geo_identityRotation(λ, φ) { + return [ λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ ]; + } + d3_geo_identityRotation.invert = d3_geo_equirectangular; + function d3_geo_rotation(δλ, δφ, δγ) { + return δλ ? δφ || δγ ? d3_geo_compose(d3_geo_rotationλ(δλ), d3_geo_rotationφγ(δφ, δγ)) : d3_geo_rotationλ(δλ) : δφ || δγ ? d3_geo_rotationφγ(δφ, δγ) : d3_geo_identityRotation; + } + function d3_geo_forwardRotationλ(δλ) { + return function(λ, φ) { + return λ += δλ, [ λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ ]; + }; + } + function d3_geo_rotationλ(δλ) { + var rotation = d3_geo_forwardRotationλ(δλ); + rotation.invert = d3_geo_forwardRotationλ(-δλ); + return rotation; + } + function d3_geo_rotationφγ(δφ, δγ) { + var cosδφ = Math.cos(δφ), sinδφ = Math.sin(δφ), cosδγ = Math.cos(δγ), sinδγ = Math.sin(δγ); + function rotation(λ, φ) { + var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδφ + x * sinδφ; + return [ Math.atan2(y * cosδγ - k * sinδγ, x * cosδφ - z * sinδφ), d3_asin(k * cosδγ + y * sinδγ) ]; + } + rotation.invert = function(λ, φ) { + var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδγ - y * sinδγ; + return [ Math.atan2(y * cosδγ + z * sinδγ, x * cosδφ + k * sinδφ), d3_asin(k * cosδφ - x * sinδφ) ]; + }; + return rotation; + } + d3.geo.circle = function() { + var origin = [ 0, 0 ], angle, precision = 6, interpolate; + function circle() { + var center = typeof origin === "function" ? origin.apply(this, arguments) : origin, rotate = d3_geo_rotation(-center[0] * d3_radians, -center[1] * d3_radians, 0).invert, ring = []; + interpolate(null, null, 1, { + point: function(x, y) { + ring.push(x = rotate(x, y)); + x[0] *= d3_degrees, x[1] *= d3_degrees; + } + }); + return { + type: "Polygon", + coordinates: [ ring ] + }; + } + circle.origin = function(x) { + if (!arguments.length) return origin; + origin = x; + return circle; + }; + circle.angle = function(x) { + if (!arguments.length) return angle; + interpolate = d3_geo_circleInterpolate((angle = +x) * d3_radians, precision * d3_radians); + return circle; + }; + circle.precision = function(_) { + if (!arguments.length) return precision; + interpolate = d3_geo_circleInterpolate(angle * d3_radians, (precision = +_) * d3_radians); + return circle; + }; + return circle.angle(90); + }; + function d3_geo_circleInterpolate(radius, precision) { + var cr = Math.cos(radius), sr = Math.sin(radius); + return function(from, to, direction, listener) { + var step = direction * precision; + if (from != null) { + from = d3_geo_circleAngle(cr, from); + to = d3_geo_circleAngle(cr, to); + if (direction > 0 ? from < to : from > to) from += direction * τ; + } else { + from = radius + direction * τ; + to = radius - .5 * step; } + for (var point, t = from; direction > 0 ? t > to : t < to; t -= step) { + listener.point((point = d3_geo_spherical([ cr, -sr * Math.cos(t), -sr * Math.sin(t) ]))[0], point[1]); + } + }; + } + function d3_geo_circleAngle(cr, point) { + var a = d3_geo_cartesian(point); + a[0] -= cr; + d3_geo_cartesianNormalize(a); + var angle = d3_acos(-a[1]); + return ((-a[2] < 0 ? -angle : angle) + 2 * Math.PI - ε) % (2 * Math.PI); + } + d3.geo.distance = function(a, b) { + var Δλ = (b[0] - a[0]) * d3_radians, φ0 = a[1] * d3_radians, φ1 = b[1] * d3_radians, sinΔλ = Math.sin(Δλ), cosΔλ = Math.cos(Δλ), sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), sinφ1 = Math.sin(φ1), cosφ1 = Math.cos(φ1), t; + return Math.atan2(Math.sqrt((t = cosφ1 * sinΔλ) * t + (t = cosφ0 * sinφ1 - sinφ0 * cosφ1 * cosΔλ) * t), sinφ0 * sinφ1 + cosφ0 * cosφ1 * cosΔλ); + }; + d3.geo.graticule = function() { + var x1, x0, X1, X0, y1, y0, Y1, Y0, dx = 10, dy = dx, DX = 90, DY = 360, x, y, X, Y, precision = 2.5; + function graticule() { + return { + type: "MultiLineString", + coordinates: lines() + }; } - - this.length = Math.max(this.length, i); - - if (a !== this) { - this.negative = 1; + function lines() { + return d3.range(Math.ceil(X0 / DX) * DX, X1, DX).map(X).concat(d3.range(Math.ceil(Y0 / DY) * DY, Y1, DY).map(Y)).concat(d3.range(Math.ceil(x0 / dx) * dx, x1, dx).filter(function(x) { + return abs(x % DX) > ε; + }).map(x)).concat(d3.range(Math.ceil(y0 / dy) * dy, y1, dy).filter(function(y) { + return abs(y % DY) > ε; + }).map(y)); } - - return this.strip(); + graticule.lines = function() { + return lines().map(function(coordinates) { + return { + type: "LineString", + coordinates: coordinates + }; + }); + }; + graticule.outline = function() { + return { + type: "Polygon", + coordinates: [ X(X0).concat(Y(Y1).slice(1), X(X1).reverse().slice(1), Y(Y0).reverse().slice(1)) ] + }; + }; + graticule.extent = function(_) { + if (!arguments.length) return graticule.minorExtent(); + return graticule.majorExtent(_).minorExtent(_); + }; + graticule.majorExtent = function(_) { + if (!arguments.length) return [ [ X0, Y0 ], [ X1, Y1 ] ]; + X0 = +_[0][0], X1 = +_[1][0]; + Y0 = +_[0][1], Y1 = +_[1][1]; + if (X0 > X1) _ = X0, X0 = X1, X1 = _; + if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _; + return graticule.precision(precision); + }; + graticule.minorExtent = function(_) { + if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ]; + x0 = +_[0][0], x1 = +_[1][0]; + y0 = +_[0][1], y1 = +_[1][1]; + if (x0 > x1) _ = x0, x0 = x1, x1 = _; + if (y0 > y1) _ = y0, y0 = y1, y1 = _; + return graticule.precision(precision); + }; + graticule.step = function(_) { + if (!arguments.length) return graticule.minorStep(); + return graticule.majorStep(_).minorStep(_); + }; + graticule.majorStep = function(_) { + if (!arguments.length) return [ DX, DY ]; + DX = +_[0], DY = +_[1]; + return graticule; + }; + graticule.minorStep = function(_) { + if (!arguments.length) return [ dx, dy ]; + dx = +_[0], dy = +_[1]; + return graticule; + }; + graticule.precision = function(_) { + if (!arguments.length) return precision; + precision = +_; + x = d3_geo_graticuleX(y0, y1, 90); + y = d3_geo_graticuleY(x0, x1, precision); + X = d3_geo_graticuleX(Y0, Y1, 90); + Y = d3_geo_graticuleY(X0, X1, precision); + return graticule; + }; + return graticule.majorExtent([ [ -180, -90 + ε ], [ 180, 90 - ε ] ]).minorExtent([ [ -180, -80 - ε ], [ 180, 80 + ε ] ]); }; - - // Subtract `num` from `this` - BN.prototype.sub = function sub (num) { - return this.clone().isub(num); + function d3_geo_graticuleX(y0, y1, dy) { + var y = d3.range(y0, y1 - ε, dy).concat(y1); + return function(x) { + return y.map(function(y) { + return [ x, y ]; + }); + }; + } + function d3_geo_graticuleY(x0, x1, dx) { + var x = d3.range(x0, x1 - ε, dx).concat(x1); + return function(y) { + return x.map(function(x) { + return [ x, y ]; + }); + }; + } + function d3_source(d) { + return d.source; + } + function d3_target(d) { + return d.target; + } + d3.geo.greatArc = function() { + var source = d3_source, source_, target = d3_target, target_; + function greatArc() { + return { + type: "LineString", + coordinates: [ source_ || source.apply(this, arguments), target_ || target.apply(this, arguments) ] + }; + } + greatArc.distance = function() { + return d3.geo.distance(source_ || source.apply(this, arguments), target_ || target.apply(this, arguments)); + }; + greatArc.source = function(_) { + if (!arguments.length) return source; + source = _, source_ = typeof _ === "function" ? null : _; + return greatArc; + }; + greatArc.target = function(_) { + if (!arguments.length) return target; + target = _, target_ = typeof _ === "function" ? null : _; + return greatArc; + }; + greatArc.precision = function() { + return arguments.length ? greatArc : 0; + }; + return greatArc; }; - - function smallMulTo (self, num, out) { - out.negative = num.negative ^ self.negative; - var len = (self.length + num.length) | 0; - out.length = len; - len = (len - 1) | 0; - - // Peel one iteration (compiler can't do it, because of code complexity) - var a = self.words[0] | 0; - var b = num.words[0] | 0; - var r = a * b; - - var lo = r & 0x3ffffff; - var carry = (r / 0x4000000) | 0; - out.words[0] = lo; - - for (var k = 1; k < len; k++) { - // Sum all words with the same `i + j = k` and accumulate `ncarry`, - // note that ncarry could be >= 0x3ffffff - var ncarry = carry >>> 26; - var rword = carry & 0x3ffffff; - var maxJ = Math.min(k, num.length - 1); - for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) { - var i = (k - j) | 0; - a = self.words[i] | 0; - b = num.words[j] | 0; - r = a * b + rword; - ncarry += (r / 0x4000000) | 0; - rword = r & 0x3ffffff; + d3.geo.interpolate = function(source, target) { + return d3_geo_interpolate(source[0] * d3_radians, source[1] * d3_radians, target[0] * d3_radians, target[1] * d3_radians); + }; + function d3_geo_interpolate(x0, y0, x1, y1) { + var cy0 = Math.cos(y0), sy0 = Math.sin(y0), cy1 = Math.cos(y1), sy1 = Math.sin(y1), kx0 = cy0 * Math.cos(x0), ky0 = cy0 * Math.sin(x0), kx1 = cy1 * Math.cos(x1), ky1 = cy1 * Math.sin(x1), d = 2 * Math.asin(Math.sqrt(d3_haversin(y1 - y0) + cy0 * cy1 * d3_haversin(x1 - x0))), k = 1 / Math.sin(d); + var interpolate = d ? function(t) { + var B = Math.sin(t *= d) * k, A = Math.sin(d - t) * k, x = A * kx0 + B * kx1, y = A * ky0 + B * ky1, z = A * sy0 + B * sy1; + return [ Math.atan2(y, x) * d3_degrees, Math.atan2(z, Math.sqrt(x * x + y * y)) * d3_degrees ]; + } : function() { + return [ x0 * d3_degrees, y0 * d3_degrees ]; + }; + interpolate.distance = d; + return interpolate; + } + d3.geo.length = function(object) { + d3_geo_lengthSum = 0; + d3.geo.stream(object, d3_geo_length); + return d3_geo_lengthSum; + }; + var d3_geo_lengthSum; + var d3_geo_length = { + sphere: d3_noop, + point: d3_noop, + lineStart: d3_geo_lengthLineStart, + lineEnd: d3_noop, + polygonStart: d3_noop, + polygonEnd: d3_noop + }; + function d3_geo_lengthLineStart() { + var λ0, sinφ0, cosφ0; + d3_geo_length.point = function(λ, φ) { + λ0 = λ * d3_radians, sinφ0 = Math.sin(φ *= d3_radians), cosφ0 = Math.cos(φ); + d3_geo_length.point = nextPoint; + }; + d3_geo_length.lineEnd = function() { + d3_geo_length.point = d3_geo_length.lineEnd = d3_noop; + }; + function nextPoint(λ, φ) { + var sinφ = Math.sin(φ *= d3_radians), cosφ = Math.cos(φ), t = abs((λ *= d3_radians) - λ0), cosΔλ = Math.cos(t); + d3_geo_lengthSum += Math.atan2(Math.sqrt((t = cosφ * Math.sin(t)) * t + (t = cosφ0 * sinφ - sinφ0 * cosφ * cosΔλ) * t), sinφ0 * sinφ + cosφ0 * cosφ * cosΔλ); + λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ; + } + } + function d3_geo_azimuthal(scale, angle) { + function azimuthal(λ, φ) { + var cosλ = Math.cos(λ), cosφ = Math.cos(φ), k = scale(cosλ * cosφ); + return [ k * cosφ * Math.sin(λ), k * Math.sin(φ) ]; + } + azimuthal.invert = function(x, y) { + var ρ = Math.sqrt(x * x + y * y), c = angle(ρ), sinc = Math.sin(c), cosc = Math.cos(c); + return [ Math.atan2(x * sinc, ρ * cosc), Math.asin(ρ && y * sinc / ρ) ]; + }; + return azimuthal; + } + var d3_geo_azimuthalEqualArea = d3_geo_azimuthal(function(cosλcosφ) { + return Math.sqrt(2 / (1 + cosλcosφ)); + }, function(ρ) { + return 2 * Math.asin(ρ / 2); + }); + (d3.geo.azimuthalEqualArea = function() { + return d3_geo_projection(d3_geo_azimuthalEqualArea); + }).raw = d3_geo_azimuthalEqualArea; + var d3_geo_azimuthalEquidistant = d3_geo_azimuthal(function(cosλcosφ) { + var c = Math.acos(cosλcosφ); + return c && c / Math.sin(c); + }, d3_identity); + (d3.geo.azimuthalEquidistant = function() { + return d3_geo_projection(d3_geo_azimuthalEquidistant); + }).raw = d3_geo_azimuthalEquidistant; + function d3_geo_conicConformal(φ0, φ1) { + var cosφ0 = Math.cos(φ0), t = function(φ) { + return Math.tan(π / 4 + φ / 2); + }, n = φ0 === φ1 ? Math.sin(φ0) : Math.log(cosφ0 / Math.cos(φ1)) / Math.log(t(φ1) / t(φ0)), F = cosφ0 * Math.pow(t(φ0), n) / n; + if (!n) return d3_geo_mercator; + function forward(λ, φ) { + if (F > 0) { + if (φ < -halfπ + ε) φ = -halfπ + ε; + } else { + if (φ > halfπ - ε) φ = halfπ - ε; } - out.words[k] = rword | 0; - carry = ncarry | 0; + var ρ = F / Math.pow(t(φ), n); + return [ ρ * Math.sin(n * λ), F - ρ * Math.cos(n * λ) ]; } - if (carry !== 0) { - out.words[k] = carry | 0; - } else { - out.length--; + forward.invert = function(x, y) { + var ρ0_y = F - y, ρ = d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y); + return [ Math.atan2(x, ρ0_y) / n, 2 * Math.atan(Math.pow(F / ρ, 1 / n)) - halfπ ]; + }; + return forward; + } + (d3.geo.conicConformal = function() { + return d3_geo_conic(d3_geo_conicConformal); + }).raw = d3_geo_conicConformal; + function d3_geo_conicEquidistant(φ0, φ1) { + var cosφ0 = Math.cos(φ0), n = φ0 === φ1 ? Math.sin(φ0) : (cosφ0 - Math.cos(φ1)) / (φ1 - φ0), G = cosφ0 / n + φ0; + if (abs(n) < ε) return d3_geo_equirectangular; + function forward(λ, φ) { + var ρ = G - φ; + return [ ρ * Math.sin(n * λ), G - ρ * Math.cos(n * λ) ]; } - - return out.strip(); + forward.invert = function(x, y) { + var ρ0_y = G - y; + return [ Math.atan2(x, ρ0_y) / n, G - d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y) ]; + }; + return forward; } - - // TODO(indutny): it may be reasonable to omit it for users who don't need - // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit - // multiplication (like elliptic secp256k1). - var comb10MulTo = function comb10MulTo (self, num, out) { - var a = self.words; - var b = num.words; - var o = out.words; - var c = 0; - var lo; - var mid; - var hi; - var a0 = a[0] | 0; - var al0 = a0 & 0x1fff; - var ah0 = a0 >>> 13; - var a1 = a[1] | 0; - var al1 = a1 & 0x1fff; - var ah1 = a1 >>> 13; - var a2 = a[2] | 0; - var al2 = a2 & 0x1fff; - var ah2 = a2 >>> 13; - var a3 = a[3] | 0; - var al3 = a3 & 0x1fff; - var ah3 = a3 >>> 13; - var a4 = a[4] | 0; - var al4 = a4 & 0x1fff; - var ah4 = a4 >>> 13; - var a5 = a[5] | 0; - var al5 = a5 & 0x1fff; - var ah5 = a5 >>> 13; - var a6 = a[6] | 0; - var al6 = a6 & 0x1fff; - var ah6 = a6 >>> 13; - var a7 = a[7] | 0; - var al7 = a7 & 0x1fff; - var ah7 = a7 >>> 13; - var a8 = a[8] | 0; - var al8 = a8 & 0x1fff; - var ah8 = a8 >>> 13; - var a9 = a[9] | 0; - var al9 = a9 & 0x1fff; - var ah9 = a9 >>> 13; - var b0 = b[0] | 0; - var bl0 = b0 & 0x1fff; - var bh0 = b0 >>> 13; - var b1 = b[1] | 0; - var bl1 = b1 & 0x1fff; - var bh1 = b1 >>> 13; - var b2 = b[2] | 0; - var bl2 = b2 & 0x1fff; - var bh2 = b2 >>> 13; - var b3 = b[3] | 0; - var bl3 = b3 & 0x1fff; - var bh3 = b3 >>> 13; - var b4 = b[4] | 0; - var bl4 = b4 & 0x1fff; - var bh4 = b4 >>> 13; - var b5 = b[5] | 0; - var bl5 = b5 & 0x1fff; - var bh5 = b5 >>> 13; - var b6 = b[6] | 0; - var bl6 = b6 & 0x1fff; - var bh6 = b6 >>> 13; - var b7 = b[7] | 0; - var bl7 = b7 & 0x1fff; - var bh7 = b7 >>> 13; - var b8 = b[8] | 0; - var bl8 = b8 & 0x1fff; - var bh8 = b8 >>> 13; - var b9 = b[9] | 0; - var bl9 = b9 & 0x1fff; - var bh9 = b9 >>> 13; - - out.negative = self.negative ^ num.negative; - out.length = 19; - /* k = 0 */ - lo = Math.imul(al0, bl0); - mid = Math.imul(al0, bh0); - mid = (mid + Math.imul(ah0, bl0)) | 0; - hi = Math.imul(ah0, bh0); - var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; - c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0; - w0 &= 0x3ffffff; - /* k = 1 */ - lo = Math.imul(al1, bl0); - mid = Math.imul(al1, bh0); - mid = (mid + Math.imul(ah1, bl0)) | 0; - hi = Math.imul(ah1, bh0); - lo = (lo + Math.imul(al0, bl1)) | 0; - mid = (mid + Math.imul(al0, bh1)) | 0; - mid = (mid + Math.imul(ah0, bl1)) | 0; - hi = (hi + Math.imul(ah0, bh1)) | 0; - var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; - c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0; - w1 &= 0x3ffffff; - /* k = 2 */ - lo = Math.imul(al2, bl0); - mid = Math.imul(al2, bh0); - mid = (mid + Math.imul(ah2, bl0)) | 0; - hi = Math.imul(ah2, bh0); - lo = (lo + Math.imul(al1, bl1)) | 0; - mid = (mid + Math.imul(al1, bh1)) | 0; - mid = (mid + Math.imul(ah1, bl1)) | 0; - hi = (hi + Math.imul(ah1, bh1)) | 0; - lo = (lo + Math.imul(al0, bl2)) | 0; - mid = (mid + Math.imul(al0, bh2)) | 0; - mid = (mid + Math.imul(ah0, bl2)) | 0; - hi = (hi + Math.imul(ah0, bh2)) | 0; - var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; - c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0; - w2 &= 0x3ffffff; - /* k = 3 */ - lo = Math.imul(al3, bl0); - mid = Math.imul(al3, bh0); - mid = (mid + Math.imul(ah3, bl0)) | 0; - hi = Math.imul(ah3, bh0); - lo = (lo + Math.imul(al2, bl1)) | 0; - mid = (mid + Math.imul(al2, bh1)) | 0; - mid = (mid + Math.imul(ah2, bl1)) | 0; - hi = (hi + Math.imul(ah2, bh1)) | 0; - lo = (lo + Math.imul(al1, bl2)) | 0; - mid = (mid + Math.imul(al1, bh2)) | 0; - mid = (mid + Math.imul(ah1, bl2)) | 0; - hi = (hi + Math.imul(ah1, bh2)) | 0; - lo = (lo + Math.imul(al0, bl3)) | 0; - mid = (mid + Math.imul(al0, bh3)) | 0; - mid = (mid + Math.imul(ah0, bl3)) | 0; - hi = (hi + Math.imul(ah0, bh3)) | 0; - var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; - c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0; - w3 &= 0x3ffffff; - /* k = 4 */ - lo = Math.imul(al4, bl0); - mid = Math.imul(al4, bh0); - mid = (mid + Math.imul(ah4, bl0)) | 0; - hi = Math.imul(ah4, bh0); - lo = (lo + Math.imul(al3, bl1)) | 0; - mid = (mid + Math.imul(al3, bh1)) | 0; - mid = (mid + Math.imul(ah3, bl1)) | 0; - hi = (hi + Math.imul(ah3, bh1)) | 0; - lo = (lo + Math.imul(al2, bl2)) | 0; - mid = (mid + Math.imul(al2, bh2)) | 0; - mid = (mid + Math.imul(ah2, bl2)) | 0; - hi = (hi + Math.imul(ah2, bh2)) | 0; - lo = (lo + Math.imul(al1, bl3)) | 0; - mid = (mid + Math.imul(al1, bh3)) | 0; - mid = (mid + Math.imul(ah1, bl3)) | 0; - hi = (hi + Math.imul(ah1, bh3)) | 0; - lo = (lo + Math.imul(al0, bl4)) | 0; - mid = (mid + Math.imul(al0, bh4)) | 0; - mid = (mid + Math.imul(ah0, bl4)) | 0; - hi = (hi + Math.imul(ah0, bh4)) | 0; - var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; - c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0; - w4 &= 0x3ffffff; - /* k = 5 */ - lo = Math.imul(al5, bl0); - mid = Math.imul(al5, bh0); - mid = (mid + Math.imul(ah5, bl0)) | 0; - hi = Math.imul(ah5, bh0); - lo = (lo + Math.imul(al4, bl1)) | 0; - mid = (mid + Math.imul(al4, bh1)) | 0; - mid = (mid + Math.imul(ah4, bl1)) | 0; - hi = (hi + Math.imul(ah4, bh1)) | 0; - lo = (lo + Math.imul(al3, bl2)) | 0; - mid = (mid + Math.imul(al3, bh2)) | 0; - mid = (mid + Math.imul(ah3, bl2)) | 0; - hi = (hi + Math.imul(ah3, bh2)) | 0; - lo = (lo + Math.imul(al2, bl3)) | 0; - mid = (mid + Math.imul(al2, bh3)) | 0; - mid = (mid + Math.imul(ah2, bl3)) | 0; - hi = (hi + Math.imul(ah2, bh3)) | 0; - lo = (lo + Math.imul(al1, bl4)) | 0; - mid = (mid + Math.imul(al1, bh4)) | 0; - mid = (mid + Math.imul(ah1, bl4)) | 0; - hi = (hi + Math.imul(ah1, bh4)) | 0; - lo = (lo + Math.imul(al0, bl5)) | 0; - mid = (mid + Math.imul(al0, bh5)) | 0; - mid = (mid + Math.imul(ah0, bl5)) | 0; - hi = (hi + Math.imul(ah0, bh5)) | 0; - var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; - c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0; - w5 &= 0x3ffffff; - /* k = 6 */ - lo = Math.imul(al6, bl0); - mid = Math.imul(al6, bh0); - mid = (mid + Math.imul(ah6, bl0)) | 0; - hi = Math.imul(ah6, bh0); - lo = (lo + Math.imul(al5, bl1)) | 0; - mid = (mid + Math.imul(al5, bh1)) | 0; - mid = (mid + Math.imul(ah5, bl1)) | 0; - hi = (hi + Math.imul(ah5, bh1)) | 0; - lo = (lo + Math.imul(al4, bl2)) | 0; - mid = (mid + Math.imul(al4, bh2)) | 0; - mid = (mid + Math.imul(ah4, bl2)) | 0; - hi = (hi + Math.imul(ah4, bh2)) | 0; - lo = (lo + Math.imul(al3, bl3)) | 0; - mid = (mid + Math.imul(al3, bh3)) | 0; - mid = (mid + Math.imul(ah3, bl3)) | 0; - hi = (hi + Math.imul(ah3, bh3)) | 0; - lo = (lo + Math.imul(al2, bl4)) | 0; - mid = (mid + Math.imul(al2, bh4)) | 0; - mid = (mid + Math.imul(ah2, bl4)) | 0; - hi = (hi + Math.imul(ah2, bh4)) | 0; - lo = (lo + Math.imul(al1, bl5)) | 0; - mid = (mid + Math.imul(al1, bh5)) | 0; - mid = (mid + Math.imul(ah1, bl5)) | 0; - hi = (hi + Math.imul(ah1, bh5)) | 0; - lo = (lo + Math.imul(al0, bl6)) | 0; - mid = (mid + Math.imul(al0, bh6)) | 0; - mid = (mid + Math.imul(ah0, bl6)) | 0; - hi = (hi + Math.imul(ah0, bh6)) | 0; - var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; - c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0; - w6 &= 0x3ffffff; - /* k = 7 */ - lo = Math.imul(al7, bl0); - mid = Math.imul(al7, bh0); - mid = (mid + Math.imul(ah7, bl0)) | 0; - hi = Math.imul(ah7, bh0); - lo = (lo + Math.imul(al6, bl1)) | 0; - mid = (mid + Math.imul(al6, bh1)) | 0; - mid = (mid + Math.imul(ah6, bl1)) | 0; - hi = (hi + Math.imul(ah6, bh1)) | 0; - lo = (lo + Math.imul(al5, bl2)) | 0; - mid = (mid + Math.imul(al5, bh2)) | 0; - mid = (mid + Math.imul(ah5, bl2)) | 0; - hi = (hi + Math.imul(ah5, bh2)) | 0; - lo = (lo + Math.imul(al4, bl3)) | 0; - mid = (mid + Math.imul(al4, bh3)) | 0; - mid = (mid + Math.imul(ah4, bl3)) | 0; - hi = (hi + Math.imul(ah4, bh3)) | 0; - lo = (lo + Math.imul(al3, bl4)) | 0; - mid = (mid + Math.imul(al3, bh4)) | 0; - mid = (mid + Math.imul(ah3, bl4)) | 0; - hi = (hi + Math.imul(ah3, bh4)) | 0; - lo = (lo + Math.imul(al2, bl5)) | 0; - mid = (mid + Math.imul(al2, bh5)) | 0; - mid = (mid + Math.imul(ah2, bl5)) | 0; - hi = (hi + Math.imul(ah2, bh5)) | 0; - lo = (lo + Math.imul(al1, bl6)) | 0; - mid = (mid + Math.imul(al1, bh6)) | 0; - mid = (mid + Math.imul(ah1, bl6)) | 0; - hi = (hi + Math.imul(ah1, bh6)) | 0; - lo = (lo + Math.imul(al0, bl7)) | 0; - mid = (mid + Math.imul(al0, bh7)) | 0; - mid = (mid + Math.imul(ah0, bl7)) | 0; - hi = (hi + Math.imul(ah0, bh7)) | 0; - var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; - c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0; - w7 &= 0x3ffffff; - /* k = 8 */ - lo = Math.imul(al8, bl0); - mid = Math.imul(al8, bh0); - mid = (mid + Math.imul(ah8, bl0)) | 0; - hi = Math.imul(ah8, bh0); - lo = (lo + Math.imul(al7, bl1)) | 0; - mid = (mid + Math.imul(al7, bh1)) | 0; - mid = (mid + Math.imul(ah7, bl1)) | 0; - hi = (hi + Math.imul(ah7, bh1)) | 0; - lo = (lo + Math.imul(al6, bl2)) | 0; - mid = (mid + Math.imul(al6, bh2)) | 0; - mid = (mid + Math.imul(ah6, bl2)) | 0; - hi = (hi + Math.imul(ah6, bh2)) | 0; - lo = (lo + Math.imul(al5, bl3)) | 0; - mid = (mid + Math.imul(al5, bh3)) | 0; - mid = (mid + Math.imul(ah5, bl3)) | 0; - hi = (hi + Math.imul(ah5, bh3)) | 0; - lo = (lo + Math.imul(al4, bl4)) | 0; - mid = (mid + Math.imul(al4, bh4)) | 0; - mid = (mid + Math.imul(ah4, bl4)) | 0; - hi = (hi + Math.imul(ah4, bh4)) | 0; - lo = (lo + Math.imul(al3, bl5)) | 0; - mid = (mid + Math.imul(al3, bh5)) | 0; - mid = (mid + Math.imul(ah3, bl5)) | 0; - hi = (hi + Math.imul(ah3, bh5)) | 0; - lo = (lo + Math.imul(al2, bl6)) | 0; - mid = (mid + Math.imul(al2, bh6)) | 0; - mid = (mid + Math.imul(ah2, bl6)) | 0; - hi = (hi + Math.imul(ah2, bh6)) | 0; - lo = (lo + Math.imul(al1, bl7)) | 0; - mid = (mid + Math.imul(al1, bh7)) | 0; - mid = (mid + Math.imul(ah1, bl7)) | 0; - hi = (hi + Math.imul(ah1, bh7)) | 0; - lo = (lo + Math.imul(al0, bl8)) | 0; - mid = (mid + Math.imul(al0, bh8)) | 0; - mid = (mid + Math.imul(ah0, bl8)) | 0; - hi = (hi + Math.imul(ah0, bh8)) | 0; - var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; - c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0; - w8 &= 0x3ffffff; - /* k = 9 */ - lo = Math.imul(al9, bl0); - mid = Math.imul(al9, bh0); - mid = (mid + Math.imul(ah9, bl0)) | 0; - hi = Math.imul(ah9, bh0); - lo = (lo + Math.imul(al8, bl1)) | 0; - mid = (mid + Math.imul(al8, bh1)) | 0; - mid = (mid + Math.imul(ah8, bl1)) | 0; - hi = (hi + Math.imul(ah8, bh1)) | 0; - lo = (lo + Math.imul(al7, bl2)) | 0; - mid = (mid + Math.imul(al7, bh2)) | 0; - mid = (mid + Math.imul(ah7, bl2)) | 0; - hi = (hi + Math.imul(ah7, bh2)) | 0; - lo = (lo + Math.imul(al6, bl3)) | 0; - mid = (mid + Math.imul(al6, bh3)) | 0; - mid = (mid + Math.imul(ah6, bl3)) | 0; - hi = (hi + Math.imul(ah6, bh3)) | 0; - lo = (lo + Math.imul(al5, bl4)) | 0; - mid = (mid + Math.imul(al5, bh4)) | 0; - mid = (mid + Math.imul(ah5, bl4)) | 0; - hi = (hi + Math.imul(ah5, bh4)) | 0; - lo = (lo + Math.imul(al4, bl5)) | 0; - mid = (mid + Math.imul(al4, bh5)) | 0; - mid = (mid + Math.imul(ah4, bl5)) | 0; - hi = (hi + Math.imul(ah4, bh5)) | 0; - lo = (lo + Math.imul(al3, bl6)) | 0; - mid = (mid + Math.imul(al3, bh6)) | 0; - mid = (mid + Math.imul(ah3, bl6)) | 0; - hi = (hi + Math.imul(ah3, bh6)) | 0; - lo = (lo + Math.imul(al2, bl7)) | 0; - mid = (mid + Math.imul(al2, bh7)) | 0; - mid = (mid + Math.imul(ah2, bl7)) | 0; - hi = (hi + Math.imul(ah2, bh7)) | 0; - lo = (lo + Math.imul(al1, bl8)) | 0; - mid = (mid + Math.imul(al1, bh8)) | 0; - mid = (mid + Math.imul(ah1, bl8)) | 0; - hi = (hi + Math.imul(ah1, bh8)) | 0; - lo = (lo + Math.imul(al0, bl9)) | 0; - mid = (mid + Math.imul(al0, bh9)) | 0; - mid = (mid + Math.imul(ah0, bl9)) | 0; - hi = (hi + Math.imul(ah0, bh9)) | 0; - var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; - c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0; - w9 &= 0x3ffffff; - /* k = 10 */ - lo = Math.imul(al9, bl1); - mid = Math.imul(al9, bh1); - mid = (mid + Math.imul(ah9, bl1)) | 0; - hi = Math.imul(ah9, bh1); - lo = (lo + Math.imul(al8, bl2)) | 0; - mid = (mid + Math.imul(al8, bh2)) | 0; - mid = (mid + Math.imul(ah8, bl2)) | 0; - hi = (hi + Math.imul(ah8, bh2)) | 0; - lo = (lo + Math.imul(al7, bl3)) | 0; - mid = (mid + Math.imul(al7, bh3)) | 0; - mid = (mid + Math.imul(ah7, bl3)) | 0; - hi = (hi + Math.imul(ah7, bh3)) | 0; - lo = (lo + Math.imul(al6, bl4)) | 0; - mid = (mid + Math.imul(al6, bh4)) | 0; - mid = (mid + Math.imul(ah6, bl4)) | 0; - hi = (hi + Math.imul(ah6, bh4)) | 0; - lo = (lo + Math.imul(al5, bl5)) | 0; - mid = (mid + Math.imul(al5, bh5)) | 0; - mid = (mid + Math.imul(ah5, bl5)) | 0; - hi = (hi + Math.imul(ah5, bh5)) | 0; - lo = (lo + Math.imul(al4, bl6)) | 0; - mid = (mid + Math.imul(al4, bh6)) | 0; - mid = (mid + Math.imul(ah4, bl6)) | 0; - hi = (hi + Math.imul(ah4, bh6)) | 0; - lo = (lo + Math.imul(al3, bl7)) | 0; - mid = (mid + Math.imul(al3, bh7)) | 0; - mid = (mid + Math.imul(ah3, bl7)) | 0; - hi = (hi + Math.imul(ah3, bh7)) | 0; - lo = (lo + Math.imul(al2, bl8)) | 0; - mid = (mid + Math.imul(al2, bh8)) | 0; - mid = (mid + Math.imul(ah2, bl8)) | 0; - hi = (hi + Math.imul(ah2, bh8)) | 0; - lo = (lo + Math.imul(al1, bl9)) | 0; - mid = (mid + Math.imul(al1, bh9)) | 0; - mid = (mid + Math.imul(ah1, bl9)) | 0; - hi = (hi + Math.imul(ah1, bh9)) | 0; - var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; - c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0; - w10 &= 0x3ffffff; - /* k = 11 */ - lo = Math.imul(al9, bl2); - mid = Math.imul(al9, bh2); - mid = (mid + Math.imul(ah9, bl2)) | 0; - hi = Math.imul(ah9, bh2); - lo = (lo + Math.imul(al8, bl3)) | 0; - mid = (mid + Math.imul(al8, bh3)) | 0; - mid = (mid + Math.imul(ah8, bl3)) | 0; - hi = (hi + Math.imul(ah8, bh3)) | 0; - lo = (lo + Math.imul(al7, bl4)) | 0; - mid = (mid + Math.imul(al7, bh4)) | 0; - mid = (mid + Math.imul(ah7, bl4)) | 0; - hi = (hi + Math.imul(ah7, bh4)) | 0; - lo = (lo + Math.imul(al6, bl5)) | 0; - mid = (mid + Math.imul(al6, bh5)) | 0; - mid = (mid + Math.imul(ah6, bl5)) | 0; - hi = (hi + Math.imul(ah6, bh5)) | 0; - lo = (lo + Math.imul(al5, bl6)) | 0; - mid = (mid + Math.imul(al5, bh6)) | 0; - mid = (mid + Math.imul(ah5, bl6)) | 0; - hi = (hi + Math.imul(ah5, bh6)) | 0; - lo = (lo + Math.imul(al4, bl7)) | 0; - mid = (mid + Math.imul(al4, bh7)) | 0; - mid = (mid + Math.imul(ah4, bl7)) | 0; - hi = (hi + Math.imul(ah4, bh7)) | 0; - lo = (lo + Math.imul(al3, bl8)) | 0; - mid = (mid + Math.imul(al3, bh8)) | 0; - mid = (mid + Math.imul(ah3, bl8)) | 0; - hi = (hi + Math.imul(ah3, bh8)) | 0; - lo = (lo + Math.imul(al2, bl9)) | 0; - mid = (mid + Math.imul(al2, bh9)) | 0; - mid = (mid + Math.imul(ah2, bl9)) | 0; - hi = (hi + Math.imul(ah2, bh9)) | 0; - var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; - c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0; - w11 &= 0x3ffffff; - /* k = 12 */ - lo = Math.imul(al9, bl3); - mid = Math.imul(al9, bh3); - mid = (mid + Math.imul(ah9, bl3)) | 0; - hi = Math.imul(ah9, bh3); - lo = (lo + Math.imul(al8, bl4)) | 0; - mid = (mid + Math.imul(al8, bh4)) | 0; - mid = (mid + Math.imul(ah8, bl4)) | 0; - hi = (hi + Math.imul(ah8, bh4)) | 0; - lo = (lo + Math.imul(al7, bl5)) | 0; - mid = (mid + Math.imul(al7, bh5)) | 0; - mid = (mid + Math.imul(ah7, bl5)) | 0; - hi = (hi + Math.imul(ah7, bh5)) | 0; - lo = (lo + Math.imul(al6, bl6)) | 0; - mid = (mid + Math.imul(al6, bh6)) | 0; - mid = (mid + Math.imul(ah6, bl6)) | 0; - hi = (hi + Math.imul(ah6, bh6)) | 0; - lo = (lo + Math.imul(al5, bl7)) | 0; - mid = (mid + Math.imul(al5, bh7)) | 0; - mid = (mid + Math.imul(ah5, bl7)) | 0; - hi = (hi + Math.imul(ah5, bh7)) | 0; - lo = (lo + Math.imul(al4, bl8)) | 0; - mid = (mid + Math.imul(al4, bh8)) | 0; - mid = (mid + Math.imul(ah4, bl8)) | 0; - hi = (hi + Math.imul(ah4, bh8)) | 0; - lo = (lo + Math.imul(al3, bl9)) | 0; - mid = (mid + Math.imul(al3, bh9)) | 0; - mid = (mid + Math.imul(ah3, bl9)) | 0; - hi = (hi + Math.imul(ah3, bh9)) | 0; - var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; - c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0; - w12 &= 0x3ffffff; - /* k = 13 */ - lo = Math.imul(al9, bl4); - mid = Math.imul(al9, bh4); - mid = (mid + Math.imul(ah9, bl4)) | 0; - hi = Math.imul(ah9, bh4); - lo = (lo + Math.imul(al8, bl5)) | 0; - mid = (mid + Math.imul(al8, bh5)) | 0; - mid = (mid + Math.imul(ah8, bl5)) | 0; - hi = (hi + Math.imul(ah8, bh5)) | 0; - lo = (lo + Math.imul(al7, bl6)) | 0; - mid = (mid + Math.imul(al7, bh6)) | 0; - mid = (mid + Math.imul(ah7, bl6)) | 0; - hi = (hi + Math.imul(ah7, bh6)) | 0; - lo = (lo + Math.imul(al6, bl7)) | 0; - mid = (mid + Math.imul(al6, bh7)) | 0; - mid = (mid + Math.imul(ah6, bl7)) | 0; - hi = (hi + Math.imul(ah6, bh7)) | 0; - lo = (lo + Math.imul(al5, bl8)) | 0; - mid = (mid + Math.imul(al5, bh8)) | 0; - mid = (mid + Math.imul(ah5, bl8)) | 0; - hi = (hi + Math.imul(ah5, bh8)) | 0; - lo = (lo + Math.imul(al4, bl9)) | 0; - mid = (mid + Math.imul(al4, bh9)) | 0; - mid = (mid + Math.imul(ah4, bl9)) | 0; - hi = (hi + Math.imul(ah4, bh9)) | 0; - var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; - c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0; - w13 &= 0x3ffffff; - /* k = 14 */ - lo = Math.imul(al9, bl5); - mid = Math.imul(al9, bh5); - mid = (mid + Math.imul(ah9, bl5)) | 0; - hi = Math.imul(ah9, bh5); - lo = (lo + Math.imul(al8, bl6)) | 0; - mid = (mid + Math.imul(al8, bh6)) | 0; - mid = (mid + Math.imul(ah8, bl6)) | 0; - hi = (hi + Math.imul(ah8, bh6)) | 0; - lo = (lo + Math.imul(al7, bl7)) | 0; - mid = (mid + Math.imul(al7, bh7)) | 0; - mid = (mid + Math.imul(ah7, bl7)) | 0; - hi = (hi + Math.imul(ah7, bh7)) | 0; - lo = (lo + Math.imul(al6, bl8)) | 0; - mid = (mid + Math.imul(al6, bh8)) | 0; - mid = (mid + Math.imul(ah6, bl8)) | 0; - hi = (hi + Math.imul(ah6, bh8)) | 0; - lo = (lo + Math.imul(al5, bl9)) | 0; - mid = (mid + Math.imul(al5, bh9)) | 0; - mid = (mid + Math.imul(ah5, bl9)) | 0; - hi = (hi + Math.imul(ah5, bh9)) | 0; - var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; - c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0; - w14 &= 0x3ffffff; - /* k = 15 */ - lo = Math.imul(al9, bl6); - mid = Math.imul(al9, bh6); - mid = (mid + Math.imul(ah9, bl6)) | 0; - hi = Math.imul(ah9, bh6); - lo = (lo + Math.imul(al8, bl7)) | 0; - mid = (mid + Math.imul(al8, bh7)) | 0; - mid = (mid + Math.imul(ah8, bl7)) | 0; - hi = (hi + Math.imul(ah8, bh7)) | 0; - lo = (lo + Math.imul(al7, bl8)) | 0; - mid = (mid + Math.imul(al7, bh8)) | 0; - mid = (mid + Math.imul(ah7, bl8)) | 0; - hi = (hi + Math.imul(ah7, bh8)) | 0; - lo = (lo + Math.imul(al6, bl9)) | 0; - mid = (mid + Math.imul(al6, bh9)) | 0; - mid = (mid + Math.imul(ah6, bl9)) | 0; - hi = (hi + Math.imul(ah6, bh9)) | 0; - var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; - c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0; - w15 &= 0x3ffffff; - /* k = 16 */ - lo = Math.imul(al9, bl7); - mid = Math.imul(al9, bh7); - mid = (mid + Math.imul(ah9, bl7)) | 0; - hi = Math.imul(ah9, bh7); - lo = (lo + Math.imul(al8, bl8)) | 0; - mid = (mid + Math.imul(al8, bh8)) | 0; - mid = (mid + Math.imul(ah8, bl8)) | 0; - hi = (hi + Math.imul(ah8, bh8)) | 0; - lo = (lo + Math.imul(al7, bl9)) | 0; - mid = (mid + Math.imul(al7, bh9)) | 0; - mid = (mid + Math.imul(ah7, bl9)) | 0; - hi = (hi + Math.imul(ah7, bh9)) | 0; - var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; - c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0; - w16 &= 0x3ffffff; - /* k = 17 */ - lo = Math.imul(al9, bl8); - mid = Math.imul(al9, bh8); - mid = (mid + Math.imul(ah9, bl8)) | 0; - hi = Math.imul(ah9, bh8); - lo = (lo + Math.imul(al8, bl9)) | 0; - mid = (mid + Math.imul(al8, bh9)) | 0; - mid = (mid + Math.imul(ah8, bl9)) | 0; - hi = (hi + Math.imul(ah8, bh9)) | 0; - var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; - c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0; - w17 &= 0x3ffffff; - /* k = 18 */ - lo = Math.imul(al9, bl9); - mid = Math.imul(al9, bh9); - mid = (mid + Math.imul(ah9, bl9)) | 0; - hi = Math.imul(ah9, bh9); - var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; - c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0; - w18 &= 0x3ffffff; - o[0] = w0; - o[1] = w1; - o[2] = w2; - o[3] = w3; - o[4] = w4; - o[5] = w5; - o[6] = w6; - o[7] = w7; - o[8] = w8; - o[9] = w9; - o[10] = w10; - o[11] = w11; - o[12] = w12; - o[13] = w13; - o[14] = w14; - o[15] = w15; - o[16] = w16; - o[17] = w17; - o[18] = w18; - if (c !== 0) { - o[19] = c; - out.length++; - } - return out; - }; - - // Polyfill comb - if (!Math.imul) { - comb10MulTo = smallMulTo; + (d3.geo.conicEquidistant = function() { + return d3_geo_conic(d3_geo_conicEquidistant); + }).raw = d3_geo_conicEquidistant; + var d3_geo_gnomonic = d3_geo_azimuthal(function(cosλcosφ) { + return 1 / cosλcosφ; + }, Math.atan); + (d3.geo.gnomonic = function() { + return d3_geo_projection(d3_geo_gnomonic); + }).raw = d3_geo_gnomonic; + function d3_geo_mercator(λ, φ) { + return [ λ, Math.log(Math.tan(π / 4 + φ / 2)) ]; } - - function bigMulTo (self, num, out) { - out.negative = num.negative ^ self.negative; - out.length = self.length + num.length; - - var carry = 0; - var hncarry = 0; - for (var k = 0; k < out.length - 1; k++) { - // Sum all words with the same `i + j = k` and accumulate `ncarry`, - // note that ncarry could be >= 0x3ffffff - var ncarry = hncarry; - hncarry = 0; - var rword = carry & 0x3ffffff; - var maxJ = Math.min(k, num.length - 1); - for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) { - var i = k - j; - var a = self.words[i] | 0; - var b = num.words[j] | 0; - var r = a * b; - - var lo = r & 0x3ffffff; - ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0; - lo = (lo + rword) | 0; - rword = lo & 0x3ffffff; - ncarry = (ncarry + (lo >>> 26)) | 0; - - hncarry += ncarry >>> 26; - ncarry &= 0x3ffffff; + d3_geo_mercator.invert = function(x, y) { + return [ x, 2 * Math.atan(Math.exp(y)) - halfπ ]; + }; + function d3_geo_mercatorProjection(project) { + var m = d3_geo_projection(project), scale = m.scale, translate = m.translate, clipExtent = m.clipExtent, clipAuto; + m.scale = function() { + var v = scale.apply(m, arguments); + return v === m ? clipAuto ? m.clipExtent(null) : m : v; + }; + m.translate = function() { + var v = translate.apply(m, arguments); + return v === m ? clipAuto ? m.clipExtent(null) : m : v; + }; + m.clipExtent = function(_) { + var v = clipExtent.apply(m, arguments); + if (v === m) { + if (clipAuto = _ == null) { + var k = π * scale(), t = translate(); + clipExtent([ [ t[0] - k, t[1] - k ], [ t[0] + k, t[1] + k ] ]); + } + } else if (clipAuto) { + v = null; } - out.words[k] = rword; - carry = ncarry; - ncarry = hncarry; - } - if (carry !== 0) { - out.words[k] = carry; - } else { - out.length--; - } - - return out.strip(); + return v; + }; + return m.clipExtent(null); } - - function jumboMulTo (self, num, out) { - var fftm = new FFTM(); - return fftm.mulp(self, num, out); + (d3.geo.mercator = function() { + return d3_geo_mercatorProjection(d3_geo_mercator); + }).raw = d3_geo_mercator; + var d3_geo_orthographic = d3_geo_azimuthal(function() { + return 1; + }, Math.asin); + (d3.geo.orthographic = function() { + return d3_geo_projection(d3_geo_orthographic); + }).raw = d3_geo_orthographic; + var d3_geo_stereographic = d3_geo_azimuthal(function(cosλcosφ) { + return 1 / (1 + cosλcosφ); + }, function(ρ) { + return 2 * Math.atan(ρ); + }); + (d3.geo.stereographic = function() { + return d3_geo_projection(d3_geo_stereographic); + }).raw = d3_geo_stereographic; + function d3_geo_transverseMercator(λ, φ) { + return [ Math.log(Math.tan(π / 4 + φ / 2)), -λ ]; } - - BN.prototype.mulTo = function mulTo (num, out) { - var res; - var len = this.length + num.length; - if (this.length === 10 && num.length === 10) { - res = comb10MulTo(this, num, out); - } else if (len < 63) { - res = smallMulTo(this, num, out); - } else if (len < 1024) { - res = bigMulTo(this, num, out); - } else { - res = jumboMulTo(this, num, out); - } - - return res; + d3_geo_transverseMercator.invert = function(x, y) { + return [ -y, 2 * Math.atan(Math.exp(x)) - halfπ ]; }; - - // Cooley-Tukey algorithm for FFT - // slightly revisited to rely on looping instead of recursion - - function FFTM (x, y) { - this.x = x; - this.y = y; + (d3.geo.transverseMercator = function() { + var projection = d3_geo_mercatorProjection(d3_geo_transverseMercator), center = projection.center, rotate = projection.rotate; + projection.center = function(_) { + return _ ? center([ -_[1], _[0] ]) : (_ = center(), [ _[1], -_[0] ]); + }; + projection.rotate = function(_) { + return _ ? rotate([ _[0], _[1], _.length > 2 ? _[2] + 90 : 90 ]) : (_ = rotate(), + [ _[0], _[1], _[2] - 90 ]); + }; + return rotate([ 0, 0, 90 ]); + }).raw = d3_geo_transverseMercator; + d3.geom = {}; + function d3_geom_pointX(d) { + return d[0]; } - - FFTM.prototype.makeRBT = function makeRBT (N) { - var t = new Array(N); - var l = BN.prototype._countBits(N) - 1; - for (var i = 0; i < N; i++) { - t[i] = this.revBin(i, l, N); + function d3_geom_pointY(d) { + return d[1]; + } + d3.geom.hull = function(vertices) { + var x = d3_geom_pointX, y = d3_geom_pointY; + if (arguments.length) return hull(vertices); + function hull(data) { + if (data.length < 3) return []; + var fx = d3_functor(x), fy = d3_functor(y), i, n = data.length, points = [], flippedPoints = []; + for (i = 0; i < n; i++) { + points.push([ +fx.call(this, data[i], i), +fy.call(this, data[i], i), i ]); + } + points.sort(d3_geom_hullOrder); + for (i = 0; i < n; i++) flippedPoints.push([ points[i][0], -points[i][1] ]); + var upper = d3_geom_hullUpper(points), lower = d3_geom_hullUpper(flippedPoints); + var skipLeft = lower[0] === upper[0], skipRight = lower[lower.length - 1] === upper[upper.length - 1], polygon = []; + for (i = upper.length - 1; i >= 0; --i) polygon.push(data[points[upper[i]][2]]); + for (i = +skipLeft; i < lower.length - skipRight; ++i) polygon.push(data[points[lower[i]][2]]); + return polygon; } - - return t; + hull.x = function(_) { + return arguments.length ? (x = _, hull) : x; + }; + hull.y = function(_) { + return arguments.length ? (y = _, hull) : y; + }; + return hull; }; - - // Returns binary-reversed representation of `x` - FFTM.prototype.revBin = function revBin (x, l, N) { - if (x === 0 || x === N - 1) return x; - - var rb = 0; - for (var i = 0; i < l; i++) { - rb |= (x & 1) << (l - i - 1); - x >>= 1; + function d3_geom_hullUpper(points) { + var n = points.length, hull = [ 0, 1 ], hs = 2; + for (var i = 2; i < n; i++) { + while (hs > 1 && d3_cross2d(points[hull[hs - 2]], points[hull[hs - 1]], points[i]) <= 0) --hs; + hull[hs++] = i; } - - return rb; + return hull.slice(0, hs); + } + function d3_geom_hullOrder(a, b) { + return a[0] - b[0] || a[1] - b[1]; + } + d3.geom.polygon = function(coordinates) { + d3_subclass(coordinates, d3_geom_polygonPrototype); + return coordinates; }; - - // Performs "tweedling" phase, therefore 'emulating' - // behaviour of the recursive algorithm - FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) { - for (var i = 0; i < N; i++) { - rtws[i] = rws[rbt[i]]; - itws[i] = iws[rbt[i]]; + var d3_geom_polygonPrototype = d3.geom.polygon.prototype = []; + d3_geom_polygonPrototype.area = function() { + var i = -1, n = this.length, a, b = this[n - 1], area = 0; + while (++i < n) { + a = b; + b = this[i]; + area += a[1] * b[0] - a[0] * b[1]; } + return area * .5; }; - - FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) { - this.permute(rbt, rws, iws, rtws, itws, N); - - for (var s = 1; s < N; s <<= 1) { - var l = s << 1; - - var rtwdf = Math.cos(2 * Math.PI / l); - var itwdf = Math.sin(2 * Math.PI / l); - - for (var p = 0; p < N; p += l) { - var rtwdf_ = rtwdf; - var itwdf_ = itwdf; - - for (var j = 0; j < s; j++) { - var re = rtws[p + j]; - var ie = itws[p + j]; - - var ro = rtws[p + j + s]; - var io = itws[p + j + s]; - - var rx = rtwdf_ * ro - itwdf_ * io; - - io = rtwdf_ * io + itwdf_ * ro; - ro = rx; - - rtws[p + j] = re + ro; - itws[p + j] = ie + io; - - rtws[p + j + s] = re - ro; - itws[p + j + s] = ie - io; - - /* jshint maxdepth : false */ - if (j !== l) { - rx = rtwdf * rtwdf_ - itwdf * itwdf_; - - itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_; - rtwdf_ = rx; + d3_geom_polygonPrototype.centroid = function(k) { + var i = -1, n = this.length, x = 0, y = 0, a, b = this[n - 1], c; + if (!arguments.length) k = -1 / (6 * this.area()); + while (++i < n) { + a = b; + b = this[i]; + c = a[0] * b[1] - b[0] * a[1]; + x += (a[0] + b[0]) * c; + y += (a[1] + b[1]) * c; + } + return [ x * k, y * k ]; + }; + d3_geom_polygonPrototype.clip = function(subject) { + var input, closed = d3_geom_polygonClosed(subject), i = -1, n = this.length - d3_geom_polygonClosed(this), j, m, a = this[n - 1], b, c, d; + while (++i < n) { + input = subject.slice(); + subject.length = 0; + b = this[i]; + c = input[(m = input.length - closed) - 1]; + j = -1; + while (++j < m) { + d = input[j]; + if (d3_geom_polygonInside(d, a, b)) { + if (!d3_geom_polygonInside(c, a, b)) { + subject.push(d3_geom_polygonIntersect(c, d, a, b)); } + subject.push(d); + } else if (d3_geom_polygonInside(c, a, b)) { + subject.push(d3_geom_polygonIntersect(c, d, a, b)); } + c = d; } + if (closed) subject.push(subject[0]); + a = b; } + return subject; }; - - FFTM.prototype.guessLen13b = function guessLen13b (n, m) { - var N = Math.max(m, n) | 1; - var odd = N & 1; - var i = 0; - for (N = N / 2 | 0; N; N = N >>> 1) { - i++; - } - - return 1 << i + 1 + odd; - }; - - FFTM.prototype.conjugate = function conjugate (rws, iws, N) { - if (N <= 1) return; - - for (var i = 0; i < N / 2; i++) { - var t = rws[i]; - - rws[i] = rws[N - i - 1]; - rws[N - i - 1] = t; - - t = iws[i]; - - iws[i] = -iws[N - i - 1]; - iws[N - i - 1] = -t; - } - }; - - FFTM.prototype.normalize13b = function normalize13b (ws, N) { - var carry = 0; - for (var i = 0; i < N / 2; i++) { - var w = Math.round(ws[2 * i + 1] / N) * 0x2000 + - Math.round(ws[2 * i] / N) + - carry; - - ws[i] = w & 0x3ffffff; - - if (w < 0x4000000) { - carry = 0; - } else { - carry = w / 0x4000000 | 0; - } + function d3_geom_polygonInside(p, a, b) { + return (b[0] - a[0]) * (p[1] - a[1]) < (b[1] - a[1]) * (p[0] - a[0]); + } + function d3_geom_polygonIntersect(c, d, a, b) { + var x1 = c[0], x3 = a[0], x21 = d[0] - x1, x43 = b[0] - x3, y1 = c[1], y3 = a[1], y21 = d[1] - y1, y43 = b[1] - y3, ua = (x43 * (y1 - y3) - y43 * (x1 - x3)) / (y43 * x21 - x43 * y21); + return [ x1 + ua * x21, y1 + ua * y21 ]; + } + function d3_geom_polygonClosed(coordinates) { + var a = coordinates[0], b = coordinates[coordinates.length - 1]; + return !(a[0] - b[0] || a[1] - b[1]); + } + var d3_geom_voronoiEdges, d3_geom_voronoiCells, d3_geom_voronoiBeaches, d3_geom_voronoiBeachPool = [], d3_geom_voronoiFirstCircle, d3_geom_voronoiCircles, d3_geom_voronoiCirclePool = []; + function d3_geom_voronoiBeach() { + d3_geom_voronoiRedBlackNode(this); + this.edge = this.site = this.circle = null; + } + function d3_geom_voronoiCreateBeach(site) { + var beach = d3_geom_voronoiBeachPool.pop() || new d3_geom_voronoiBeach(); + beach.site = site; + return beach; + } + function d3_geom_voronoiDetachBeach(beach) { + d3_geom_voronoiDetachCircle(beach); + d3_geom_voronoiBeaches.remove(beach); + d3_geom_voronoiBeachPool.push(beach); + d3_geom_voronoiRedBlackNode(beach); + } + function d3_geom_voronoiRemoveBeach(beach) { + var circle = beach.circle, x = circle.x, y = circle.cy, vertex = { + x: x, + y: y + }, previous = beach.P, next = beach.N, disappearing = [ beach ]; + d3_geom_voronoiDetachBeach(beach); + var lArc = previous; + while (lArc.circle && abs(x - lArc.circle.x) < ε && abs(y - lArc.circle.cy) < ε) { + previous = lArc.P; + disappearing.unshift(lArc); + d3_geom_voronoiDetachBeach(lArc); + lArc = previous; } - - return ws; - }; - - FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) { - var carry = 0; - for (var i = 0; i < len; i++) { - carry = carry + (ws[i] | 0); - - rws[2 * i] = carry & 0x1fff; carry = carry >>> 13; - rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13; + disappearing.unshift(lArc); + d3_geom_voronoiDetachCircle(lArc); + var rArc = next; + while (rArc.circle && abs(x - rArc.circle.x) < ε && abs(y - rArc.circle.cy) < ε) { + next = rArc.N; + disappearing.push(rArc); + d3_geom_voronoiDetachBeach(rArc); + rArc = next; } - - // Pad with zeroes - for (i = 2 * len; i < N; ++i) { - rws[i] = 0; + disappearing.push(rArc); + d3_geom_voronoiDetachCircle(rArc); + var nArcs = disappearing.length, iArc; + for (iArc = 1; iArc < nArcs; ++iArc) { + rArc = disappearing[iArc]; + lArc = disappearing[iArc - 1]; + d3_geom_voronoiSetEdgeEnd(rArc.edge, lArc.site, rArc.site, vertex); } - - assert(carry === 0); - assert((carry & ~0x1fff) === 0); - }; - - FFTM.prototype.stub = function stub (N) { - var ph = new Array(N); - for (var i = 0; i < N; i++) { - ph[i] = 0; + lArc = disappearing[0]; + rArc = disappearing[nArcs - 1]; + rArc.edge = d3_geom_voronoiCreateEdge(lArc.site, rArc.site, null, vertex); + d3_geom_voronoiAttachCircle(lArc); + d3_geom_voronoiAttachCircle(rArc); + } + function d3_geom_voronoiAddBeach(site) { + var x = site.x, directrix = site.y, lArc, rArc, dxl, dxr, node = d3_geom_voronoiBeaches._; + while (node) { + dxl = d3_geom_voronoiLeftBreakPoint(node, directrix) - x; + if (dxl > ε) node = node.L; else { + dxr = x - d3_geom_voronoiRightBreakPoint(node, directrix); + if (dxr > ε) { + if (!node.R) { + lArc = node; + break; + } + node = node.R; + } else { + if (dxl > -ε) { + lArc = node.P; + rArc = node; + } else if (dxr > -ε) { + lArc = node; + rArc = node.N; + } else { + lArc = rArc = node; + } + break; + } + } } - - return ph; - }; - - FFTM.prototype.mulp = function mulp (x, y, out) { - var N = 2 * this.guessLen13b(x.length, y.length); - - var rbt = this.makeRBT(N); - - var _ = this.stub(N); - - var rws = new Array(N); - var rwst = new Array(N); - var iwst = new Array(N); - - var nrws = new Array(N); - var nrwst = new Array(N); - var niwst = new Array(N); - - var rmws = out.words; - rmws.length = N; - - this.convert13b(x.words, x.length, rws, N); - this.convert13b(y.words, y.length, nrws, N); - - this.transform(rws, _, rwst, iwst, N, rbt); - this.transform(nrws, _, nrwst, niwst, N, rbt); - - for (var i = 0; i < N; i++) { - var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i]; - iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i]; - rwst[i] = rx; + var newArc = d3_geom_voronoiCreateBeach(site); + d3_geom_voronoiBeaches.insert(lArc, newArc); + if (!lArc && !rArc) return; + if (lArc === rArc) { + d3_geom_voronoiDetachCircle(lArc); + rArc = d3_geom_voronoiCreateBeach(lArc.site); + d3_geom_voronoiBeaches.insert(newArc, rArc); + newArc.edge = rArc.edge = d3_geom_voronoiCreateEdge(lArc.site, newArc.site); + d3_geom_voronoiAttachCircle(lArc); + d3_geom_voronoiAttachCircle(rArc); + return; } - - this.conjugate(rwst, iwst, N); - this.transform(rwst, iwst, rmws, _, N, rbt); - this.conjugate(rmws, _, N); - this.normalize13b(rmws, N); - - out.negative = x.negative ^ y.negative; - out.length = x.length + y.length; - return out.strip(); - }; - - // Multiply `this` by `num` - BN.prototype.mul = function mul (num) { - var out = new BN(null); - out.words = new Array(this.length + num.length); - return this.mulTo(num, out); - }; - - // Multiply employing FFT - BN.prototype.mulf = function mulf (num) { - var out = new BN(null); - out.words = new Array(this.length + num.length); - return jumboMulTo(this, num, out); - }; - - // In-place Multiplication - BN.prototype.imul = function imul (num) { - return this.clone().mulTo(num, this); - }; - - BN.prototype.imuln = function imuln (num) { - assert(typeof num === 'number'); - assert(num < 0x4000000); - - // Carry - var carry = 0; - for (var i = 0; i < this.length; i++) { - var w = (this.words[i] | 0) * num; - var lo = (w & 0x3ffffff) + (carry & 0x3ffffff); - carry >>= 26; - carry += (w / 0x4000000) | 0; - // NOTE: lo is 27bit maximum - carry += lo >>> 26; - this.words[i] = lo & 0x3ffffff; + if (!rArc) { + newArc.edge = d3_geom_voronoiCreateEdge(lArc.site, newArc.site); + return; } - - if (carry !== 0) { - this.words[i] = carry; - this.length++; + d3_geom_voronoiDetachCircle(lArc); + d3_geom_voronoiDetachCircle(rArc); + var lSite = lArc.site, ax = lSite.x, ay = lSite.y, bx = site.x - ax, by = site.y - ay, rSite = rArc.site, cx = rSite.x - ax, cy = rSite.y - ay, d = 2 * (bx * cy - by * cx), hb = bx * bx + by * by, hc = cx * cx + cy * cy, vertex = { + x: (cy * hb - by * hc) / d + ax, + y: (bx * hc - cx * hb) / d + ay + }; + d3_geom_voronoiSetEdgeEnd(rArc.edge, lSite, rSite, vertex); + newArc.edge = d3_geom_voronoiCreateEdge(lSite, site, null, vertex); + rArc.edge = d3_geom_voronoiCreateEdge(site, rSite, null, vertex); + d3_geom_voronoiAttachCircle(lArc); + d3_geom_voronoiAttachCircle(rArc); + } + function d3_geom_voronoiLeftBreakPoint(arc, directrix) { + var site = arc.site, rfocx = site.x, rfocy = site.y, pby2 = rfocy - directrix; + if (!pby2) return rfocx; + var lArc = arc.P; + if (!lArc) return -Infinity; + site = lArc.site; + var lfocx = site.x, lfocy = site.y, plby2 = lfocy - directrix; + if (!plby2) return lfocx; + var hl = lfocx - rfocx, aby2 = 1 / pby2 - 1 / plby2, b = hl / plby2; + if (aby2) return (-b + Math.sqrt(b * b - 2 * aby2 * (hl * hl / (-2 * plby2) - lfocy + plby2 / 2 + rfocy - pby2 / 2))) / aby2 + rfocx; + return (rfocx + lfocx) / 2; + } + function d3_geom_voronoiRightBreakPoint(arc, directrix) { + var rArc = arc.N; + if (rArc) return d3_geom_voronoiLeftBreakPoint(rArc, directrix); + var site = arc.site; + return site.y === directrix ? site.x : Infinity; + } + function d3_geom_voronoiCell(site) { + this.site = site; + this.edges = []; + } + d3_geom_voronoiCell.prototype.prepare = function() { + var halfEdges = this.edges, iHalfEdge = halfEdges.length, edge; + while (iHalfEdge--) { + edge = halfEdges[iHalfEdge].edge; + if (!edge.b || !edge.a) halfEdges.splice(iHalfEdge, 1); } - - return this; - }; - - BN.prototype.muln = function muln (num) { - return this.clone().imuln(num); - }; - - // `this` * `this` - BN.prototype.sqr = function sqr () { - return this.mul(this); - }; - - // `this` * `this` in-place - BN.prototype.isqr = function isqr () { - return this.imul(this.clone()); + halfEdges.sort(d3_geom_voronoiHalfEdgeOrder); + return halfEdges.length; }; - - // Math.pow(`this`, `num`) - BN.prototype.pow = function pow (num) { - var w = toBitArray(num); - if (w.length === 0) return new BN(1); - - // Skip leading zeroes - var res = this; - for (var i = 0; i < w.length; i++, res = res.sqr()) { - if (w[i] !== 0) break; - } - - if (++i < w.length) { - for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) { - if (w[i] === 0) continue; - - res = res.mul(q); + function d3_geom_voronoiCloseCells(extent) { + var x0 = extent[0][0], x1 = extent[1][0], y0 = extent[0][1], y1 = extent[1][1], x2, y2, x3, y3, cells = d3_geom_voronoiCells, iCell = cells.length, cell, iHalfEdge, halfEdges, nHalfEdges, start, end; + while (iCell--) { + cell = cells[iCell]; + if (!cell || !cell.prepare()) continue; + halfEdges = cell.edges; + nHalfEdges = halfEdges.length; + iHalfEdge = 0; + while (iHalfEdge < nHalfEdges) { + end = halfEdges[iHalfEdge].end(), x3 = end.x, y3 = end.y; + start = halfEdges[++iHalfEdge % nHalfEdges].start(), x2 = start.x, y2 = start.y; + if (abs(x3 - x2) > ε || abs(y3 - y2) > ε) { + halfEdges.splice(iHalfEdge, 0, new d3_geom_voronoiHalfEdge(d3_geom_voronoiCreateBorderEdge(cell.site, end, abs(x3 - x0) < ε && y1 - y3 > ε ? { + x: x0, + y: abs(x2 - x0) < ε ? y2 : y1 + } : abs(y3 - y1) < ε && x1 - x3 > ε ? { + x: abs(y2 - y1) < ε ? x2 : x1, + y: y1 + } : abs(x3 - x1) < ε && y3 - y0 > ε ? { + x: x1, + y: abs(x2 - x1) < ε ? y2 : y0 + } : abs(y3 - y0) < ε && x3 - x0 > ε ? { + x: abs(y2 - y0) < ε ? x2 : x0, + y: y0 + } : null), cell.site, null)); + ++nHalfEdges; + } } } - - return res; - }; - - // Shift-left in-place - BN.prototype.iushln = function iushln (bits) { - assert(typeof bits === 'number' && bits >= 0); - var r = bits % 26; - var s = (bits - r) / 26; - var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r); - var i; - - if (r !== 0) { - var carry = 0; - - for (i = 0; i < this.length; i++) { - var newCarry = this.words[i] & carryMask; - var c = ((this.words[i] | 0) - newCarry) << r; - this.words[i] = c | carry; - carry = newCarry >>> (26 - r); - } - - if (carry) { - this.words[i] = carry; - this.length++; + } + function d3_geom_voronoiHalfEdgeOrder(a, b) { + return b.angle - a.angle; + } + function d3_geom_voronoiCircle() { + d3_geom_voronoiRedBlackNode(this); + this.x = this.y = this.arc = this.site = this.cy = null; + } + function d3_geom_voronoiAttachCircle(arc) { + var lArc = arc.P, rArc = arc.N; + if (!lArc || !rArc) return; + var lSite = lArc.site, cSite = arc.site, rSite = rArc.site; + if (lSite === rSite) return; + var bx = cSite.x, by = cSite.y, ax = lSite.x - bx, ay = lSite.y - by, cx = rSite.x - bx, cy = rSite.y - by; + var d = 2 * (ax * cy - ay * cx); + if (d >= -ε2) return; + var ha = ax * ax + ay * ay, hc = cx * cx + cy * cy, x = (cy * ha - ay * hc) / d, y = (ax * hc - cx * ha) / d, cy = y + by; + var circle = d3_geom_voronoiCirclePool.pop() || new d3_geom_voronoiCircle(); + circle.arc = arc; + circle.site = cSite; + circle.x = x + bx; + circle.y = cy + Math.sqrt(x * x + y * y); + circle.cy = cy; + arc.circle = circle; + var before = null, node = d3_geom_voronoiCircles._; + while (node) { + if (circle.y < node.y || circle.y === node.y && circle.x <= node.x) { + if (node.L) node = node.L; else { + before = node.P; + break; + } + } else { + if (node.R) node = node.R; else { + before = node; + break; + } } } - - if (s !== 0) { - for (i = this.length - 1; i >= 0; i--) { - this.words[i + s] = this.words[i]; - } - - for (i = 0; i < s; i++) { - this.words[i] = 0; - } - - this.length += s; + d3_geom_voronoiCircles.insert(before, circle); + if (!before) d3_geom_voronoiFirstCircle = circle; + } + function d3_geom_voronoiDetachCircle(arc) { + var circle = arc.circle; + if (circle) { + if (!circle.P) d3_geom_voronoiFirstCircle = circle.N; + d3_geom_voronoiCircles.remove(circle); + d3_geom_voronoiCirclePool.push(circle); + d3_geom_voronoiRedBlackNode(circle); + arc.circle = null; } - - return this.strip(); - }; - - BN.prototype.ishln = function ishln (bits) { - // TODO(indutny): implement me - assert(this.negative === 0); - return this.iushln(bits); - }; - - // Shift-right in-place - // NOTE: `hint` is a lowest bit before trailing zeroes - // NOTE: if `extended` is present - it will be filled with destroyed bits - BN.prototype.iushrn = function iushrn (bits, hint, extended) { - assert(typeof bits === 'number' && bits >= 0); - var h; - if (hint) { - h = (hint - (hint % 26)) / 26; - } else { - h = 0; + } + function d3_geom_voronoiClipEdges(extent) { + var edges = d3_geom_voronoiEdges, clip = d3_geom_clipLine(extent[0][0], extent[0][1], extent[1][0], extent[1][1]), i = edges.length, e; + while (i--) { + e = edges[i]; + if (!d3_geom_voronoiConnectEdge(e, extent) || !clip(e) || abs(e.a.x - e.b.x) < ε && abs(e.a.y - e.b.y) < ε) { + e.a = e.b = null; + edges.splice(i, 1); + } } - - var r = bits % 26; - var s = Math.min((bits - r) / 26, this.length); - var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r); - var maskedWords = extended; - - h -= s; - h = Math.max(0, h); - - // Extended mode, copy masked part - if (maskedWords) { - for (var i = 0; i < s; i++) { - maskedWords.words[i] = this.words[i]; - } - maskedWords.length = s; - } - - if (s === 0) { - // No-op, we should not move anything at all - } else if (this.length > s) { - this.length -= s; - for (i = 0; i < this.length; i++) { - this.words[i] = this.words[i + s]; + } + function d3_geom_voronoiConnectEdge(edge, extent) { + var vb = edge.b; + if (vb) return true; + var va = edge.a, x0 = extent[0][0], x1 = extent[1][0], y0 = extent[0][1], y1 = extent[1][1], lSite = edge.l, rSite = edge.r, lx = lSite.x, ly = lSite.y, rx = rSite.x, ry = rSite.y, fx = (lx + rx) / 2, fy = (ly + ry) / 2, fm, fb; + if (ry === ly) { + if (fx < x0 || fx >= x1) return; + if (lx > rx) { + if (!va) va = { + x: fx, + y: y0 + }; else if (va.y >= y1) return; + vb = { + x: fx, + y: y1 + }; + } else { + if (!va) va = { + x: fx, + y: y1 + }; else if (va.y < y0) return; + vb = { + x: fx, + y: y0 + }; } } else { - this.words[0] = 0; - this.length = 1; - } - - var carry = 0; - for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) { - var word = this.words[i] | 0; - this.words[i] = (carry << (26 - r)) | (word >>> r); - carry = word & mask; - } - - // Push carried bits as a mask - if (maskedWords && carry !== 0) { - maskedWords.words[maskedWords.length++] = carry; - } - - if (this.length === 0) { - this.words[0] = 0; - this.length = 1; - } - - return this.strip(); - }; - - BN.prototype.ishrn = function ishrn (bits, hint, extended) { - // TODO(indutny): implement me - assert(this.negative === 0); - return this.iushrn(bits, hint, extended); - }; - - // Shift-left - BN.prototype.shln = function shln (bits) { - return this.clone().ishln(bits); - }; - - BN.prototype.ushln = function ushln (bits) { - return this.clone().iushln(bits); - }; - - // Shift-right - BN.prototype.shrn = function shrn (bits) { - return this.clone().ishrn(bits); - }; - - BN.prototype.ushrn = function ushrn (bits) { - return this.clone().iushrn(bits); - }; - - // Test if n bit is set - BN.prototype.testn = function testn (bit) { - assert(typeof bit === 'number' && bit >= 0); - var r = bit % 26; - var s = (bit - r) / 26; - var q = 1 << r; - - // Fast case: bit is much higher than all existing words - if (this.length <= s) return false; - - // Check bit and return - var w = this.words[s]; - - return !!(w & q); - }; - - // Return only lowers bits of number (in-place) - BN.prototype.imaskn = function imaskn (bits) { - assert(typeof bits === 'number' && bits >= 0); - var r = bits % 26; - var s = (bits - r) / 26; - - assert(this.negative === 0, 'imaskn works only with positive numbers'); - - if (this.length <= s) { - return this; + fm = (lx - rx) / (ry - ly); + fb = fy - fm * fx; + if (fm < -1 || fm > 1) { + if (lx > rx) { + if (!va) va = { + x: (y0 - fb) / fm, + y: y0 + }; else if (va.y >= y1) return; + vb = { + x: (y1 - fb) / fm, + y: y1 + }; + } else { + if (!va) va = { + x: (y1 - fb) / fm, + y: y1 + }; else if (va.y < y0) return; + vb = { + x: (y0 - fb) / fm, + y: y0 + }; + } + } else { + if (ly < ry) { + if (!va) va = { + x: x0, + y: fm * x0 + fb + }; else if (va.x >= x1) return; + vb = { + x: x1, + y: fm * x1 + fb + }; + } else { + if (!va) va = { + x: x1, + y: fm * x1 + fb + }; else if (va.x < x0) return; + vb = { + x: x0, + y: fm * x0 + fb + }; + } + } } - - if (r !== 0) { - s++; + edge.a = va; + edge.b = vb; + return true; + } + function d3_geom_voronoiEdge(lSite, rSite) { + this.l = lSite; + this.r = rSite; + this.a = this.b = null; + } + function d3_geom_voronoiCreateEdge(lSite, rSite, va, vb) { + var edge = new d3_geom_voronoiEdge(lSite, rSite); + d3_geom_voronoiEdges.push(edge); + if (va) d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, va); + if (vb) d3_geom_voronoiSetEdgeEnd(edge, rSite, lSite, vb); + d3_geom_voronoiCells[lSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge, lSite, rSite)); + d3_geom_voronoiCells[rSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge, rSite, lSite)); + return edge; + } + function d3_geom_voronoiCreateBorderEdge(lSite, va, vb) { + var edge = new d3_geom_voronoiEdge(lSite, null); + edge.a = va; + edge.b = vb; + d3_geom_voronoiEdges.push(edge); + return edge; + } + function d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, vertex) { + if (!edge.a && !edge.b) { + edge.a = vertex; + edge.l = lSite; + edge.r = rSite; + } else if (edge.l === rSite) { + edge.b = vertex; + } else { + edge.a = vertex; } - this.length = Math.min(s, this.length); - - if (r !== 0) { - var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r); - this.words[this.length - 1] &= mask; + } + function d3_geom_voronoiHalfEdge(edge, lSite, rSite) { + var va = edge.a, vb = edge.b; + this.edge = edge; + this.site = lSite; + this.angle = rSite ? Math.atan2(rSite.y - lSite.y, rSite.x - lSite.x) : edge.l === lSite ? Math.atan2(vb.x - va.x, va.y - vb.y) : Math.atan2(va.x - vb.x, vb.y - va.y); + } + d3_geom_voronoiHalfEdge.prototype = { + start: function() { + return this.edge.l === this.site ? this.edge.a : this.edge.b; + }, + end: function() { + return this.edge.l === this.site ? this.edge.b : this.edge.a; } - - return this.strip(); - }; - - // Return only lowers bits of number - BN.prototype.maskn = function maskn (bits) { - return this.clone().imaskn(bits); }; - - // Add plain number `num` to `this` - BN.prototype.iaddn = function iaddn (num) { - assert(typeof num === 'number'); - assert(num < 0x4000000); - if (num < 0) return this.isubn(-num); - - // Possible sign change - if (this.negative !== 0) { - if (this.length === 1 && (this.words[0] | 0) < num) { - this.words[0] = num - (this.words[0] | 0); - this.negative = 0; - return this; + function d3_geom_voronoiRedBlackTree() { + this._ = null; + } + function d3_geom_voronoiRedBlackNode(node) { + node.U = node.C = node.L = node.R = node.P = node.N = null; + } + d3_geom_voronoiRedBlackTree.prototype = { + insert: function(after, node) { + var parent, grandpa, uncle; + if (after) { + node.P = after; + node.N = after.N; + if (after.N) after.N.P = node; + after.N = node; + if (after.R) { + after = after.R; + while (after.L) after = after.L; + after.L = node; + } else { + after.R = node; + } + parent = after; + } else if (this._) { + after = d3_geom_voronoiRedBlackFirst(this._); + node.P = null; + node.N = after; + after.P = after.L = node; + parent = after; + } else { + node.P = node.N = null; + this._ = node; + parent = null; } - - this.negative = 0; - this.isubn(num); - this.negative = 1; - return this; - } - - // Add without checks - return this._iaddn(num); - }; - - BN.prototype._iaddn = function _iaddn (num) { - this.words[0] += num; - - // Carry - for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) { - this.words[i] -= 0x4000000; - if (i === this.length - 1) { - this.words[i + 1] = 1; + node.L = node.R = null; + node.U = parent; + node.C = true; + after = node; + while (parent && parent.C) { + grandpa = parent.U; + if (parent === grandpa.L) { + uncle = grandpa.R; + if (uncle && uncle.C) { + parent.C = uncle.C = false; + grandpa.C = true; + after = grandpa; + } else { + if (after === parent.R) { + d3_geom_voronoiRedBlackRotateLeft(this, parent); + after = parent; + parent = after.U; + } + parent.C = false; + grandpa.C = true; + d3_geom_voronoiRedBlackRotateRight(this, grandpa); + } + } else { + uncle = grandpa.L; + if (uncle && uncle.C) { + parent.C = uncle.C = false; + grandpa.C = true; + after = grandpa; + } else { + if (after === parent.L) { + d3_geom_voronoiRedBlackRotateRight(this, parent); + after = parent; + parent = after.U; + } + parent.C = false; + grandpa.C = true; + d3_geom_voronoiRedBlackRotateLeft(this, grandpa); + } + } + parent = after.U; + } + this._.C = false; + }, + remove: function(node) { + if (node.N) node.N.P = node.P; + if (node.P) node.P.N = node.N; + node.N = node.P = null; + var parent = node.U, sibling, left = node.L, right = node.R, next, red; + if (!left) next = right; else if (!right) next = left; else next = d3_geom_voronoiRedBlackFirst(right); + if (parent) { + if (parent.L === node) parent.L = next; else parent.R = next; } else { - this.words[i + 1]++; + this._ = next; + } + if (left && right) { + red = next.C; + next.C = node.C; + next.L = left; + left.U = next; + if (next !== right) { + parent = next.U; + next.U = node.U; + node = next.R; + parent.L = node; + next.R = right; + right.U = next; + } else { + next.U = parent; + parent = next; + node = next.R; + } + } else { + red = node.C; + node = next; + } + if (node) node.U = parent; + if (red) return; + if (node && node.C) { + node.C = false; + return; } + do { + if (node === this._) break; + if (node === parent.L) { + sibling = parent.R; + if (sibling.C) { + sibling.C = false; + parent.C = true; + d3_geom_voronoiRedBlackRotateLeft(this, parent); + sibling = parent.R; + } + if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) { + if (!sibling.R || !sibling.R.C) { + sibling.L.C = false; + sibling.C = true; + d3_geom_voronoiRedBlackRotateRight(this, sibling); + sibling = parent.R; + } + sibling.C = parent.C; + parent.C = sibling.R.C = false; + d3_geom_voronoiRedBlackRotateLeft(this, parent); + node = this._; + break; + } + } else { + sibling = parent.L; + if (sibling.C) { + sibling.C = false; + parent.C = true; + d3_geom_voronoiRedBlackRotateRight(this, parent); + sibling = parent.L; + } + if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) { + if (!sibling.L || !sibling.L.C) { + sibling.R.C = false; + sibling.C = true; + d3_geom_voronoiRedBlackRotateLeft(this, sibling); + sibling = parent.L; + } + sibling.C = parent.C; + parent.C = sibling.L.C = false; + d3_geom_voronoiRedBlackRotateRight(this, parent); + node = this._; + break; + } + } + sibling.C = true; + node = parent; + parent = parent.U; + } while (!node.C); + if (node) node.C = false; } - this.length = Math.max(this.length, i + 1); - - return this; }; - - // Subtract plain number `num` from `this` - BN.prototype.isubn = function isubn (num) { - assert(typeof num === 'number'); - assert(num < 0x4000000); - if (num < 0) return this.iaddn(-num); - - if (this.negative !== 0) { - this.negative = 0; - this.iaddn(num); - this.negative = 1; - return this; + function d3_geom_voronoiRedBlackRotateLeft(tree, node) { + var p = node, q = node.R, parent = p.U; + if (parent) { + if (parent.L === p) parent.L = q; else parent.R = q; + } else { + tree._ = q; } - - this.words[0] -= num; - - if (this.length === 1 && this.words[0] < 0) { - this.words[0] = -this.words[0]; - this.negative = 1; + q.U = parent; + p.U = q; + p.R = q.L; + if (p.R) p.R.U = p; + q.L = p; + } + function d3_geom_voronoiRedBlackRotateRight(tree, node) { + var p = node, q = node.L, parent = p.U; + if (parent) { + if (parent.L === p) parent.L = q; else parent.R = q; } else { - // Carry - for (var i = 0; i < this.length && this.words[i] < 0; i++) { - this.words[i] += 0x4000000; - this.words[i + 1] -= 1; - } + tree._ = q; } - - return this.strip(); - }; - - BN.prototype.addn = function addn (num) { - return this.clone().iaddn(num); - }; - - BN.prototype.subn = function subn (num) { - return this.clone().isubn(num); - }; - - BN.prototype.iabs = function iabs () { - this.negative = 0; - - return this; - }; - - BN.prototype.abs = function abs () { - return this.clone().iabs(); - }; - - BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) { - var len = num.length + shift; - var i; - - this._expand(len); - - var w; - var carry = 0; - for (i = 0; i < num.length; i++) { - w = (this.words[i + shift] | 0) + carry; - var right = (num.words[i] | 0) * mul; - w -= right & 0x3ffffff; - carry = (w >> 26) - ((right / 0x4000000) | 0); - this.words[i + shift] = w & 0x3ffffff; + q.U = parent; + p.U = q; + p.L = q.R; + if (p.L) p.L.U = p; + q.R = p; + } + function d3_geom_voronoiRedBlackFirst(node) { + while (node.L) node = node.L; + return node; + } + function d3_geom_voronoi(sites, bbox) { + var site = sites.sort(d3_geom_voronoiVertexOrder).pop(), x0, y0, circle; + d3_geom_voronoiEdges = []; + d3_geom_voronoiCells = new Array(sites.length); + d3_geom_voronoiBeaches = new d3_geom_voronoiRedBlackTree(); + d3_geom_voronoiCircles = new d3_geom_voronoiRedBlackTree(); + while (true) { + circle = d3_geom_voronoiFirstCircle; + if (site && (!circle || site.y < circle.y || site.y === circle.y && site.x < circle.x)) { + if (site.x !== x0 || site.y !== y0) { + d3_geom_voronoiCells[site.i] = new d3_geom_voronoiCell(site); + d3_geom_voronoiAddBeach(site); + x0 = site.x, y0 = site.y; + } + site = sites.pop(); + } else if (circle) { + d3_geom_voronoiRemoveBeach(circle.arc); + } else { + break; + } } - for (; i < this.length - shift; i++) { - w = (this.words[i + shift] | 0) + carry; - carry = w >> 26; - this.words[i + shift] = w & 0x3ffffff; + if (bbox) d3_geom_voronoiClipEdges(bbox), d3_geom_voronoiCloseCells(bbox); + var diagram = { + cells: d3_geom_voronoiCells, + edges: d3_geom_voronoiEdges + }; + d3_geom_voronoiBeaches = d3_geom_voronoiCircles = d3_geom_voronoiEdges = d3_geom_voronoiCells = null; + return diagram; + } + function d3_geom_voronoiVertexOrder(a, b) { + return b.y - a.y || b.x - a.x; + } + d3.geom.voronoi = function(points) { + var x = d3_geom_pointX, y = d3_geom_pointY, fx = x, fy = y, clipExtent = d3_geom_voronoiClipExtent; + if (points) return voronoi(points); + function voronoi(data) { + var polygons = new Array(data.length), x0 = clipExtent[0][0], y0 = clipExtent[0][1], x1 = clipExtent[1][0], y1 = clipExtent[1][1]; + d3_geom_voronoi(sites(data), clipExtent).cells.forEach(function(cell, i) { + var edges = cell.edges, site = cell.site, polygon = polygons[i] = edges.length ? edges.map(function(e) { + var s = e.start(); + return [ s.x, s.y ]; + }) : site.x >= x0 && site.x <= x1 && site.y >= y0 && site.y <= y1 ? [ [ x0, y1 ], [ x1, y1 ], [ x1, y0 ], [ x0, y0 ] ] : []; + polygon.point = data[i]; + }); + return polygons; } - - if (carry === 0) return this.strip(); - - // Subtraction overflow - assert(carry === -1); - carry = 0; - for (i = 0; i < this.length; i++) { - w = -(this.words[i] | 0) + carry; - carry = w >> 26; - this.words[i] = w & 0x3ffffff; + function sites(data) { + return data.map(function(d, i) { + return { + x: Math.round(fx(d, i) / ε) * ε, + y: Math.round(fy(d, i) / ε) * ε, + i: i + }; + }); } - this.negative = 1; - - return this.strip(); + voronoi.links = function(data) { + return d3_geom_voronoi(sites(data)).edges.filter(function(edge) { + return edge.l && edge.r; + }).map(function(edge) { + return { + source: data[edge.l.i], + target: data[edge.r.i] + }; + }); + }; + voronoi.triangles = function(data) { + var triangles = []; + d3_geom_voronoi(sites(data)).cells.forEach(function(cell, i) { + var site = cell.site, edges = cell.edges.sort(d3_geom_voronoiHalfEdgeOrder), j = -1, m = edges.length, e0, s0, e1 = edges[m - 1].edge, s1 = e1.l === site ? e1.r : e1.l; + while (++j < m) { + e0 = e1; + s0 = s1; + e1 = edges[j].edge; + s1 = e1.l === site ? e1.r : e1.l; + if (i < s0.i && i < s1.i && d3_geom_voronoiTriangleArea(site, s0, s1) < 0) { + triangles.push([ data[i], data[s0.i], data[s1.i] ]); + } + } + }); + return triangles; + }; + voronoi.x = function(_) { + return arguments.length ? (fx = d3_functor(x = _), voronoi) : x; + }; + voronoi.y = function(_) { + return arguments.length ? (fy = d3_functor(y = _), voronoi) : y; + }; + voronoi.clipExtent = function(_) { + if (!arguments.length) return clipExtent === d3_geom_voronoiClipExtent ? null : clipExtent; + clipExtent = _ == null ? d3_geom_voronoiClipExtent : _; + return voronoi; + }; + voronoi.size = function(_) { + if (!arguments.length) return clipExtent === d3_geom_voronoiClipExtent ? null : clipExtent && clipExtent[1]; + return voronoi.clipExtent(_ && [ [ 0, 0 ], _ ]); + }; + return voronoi; }; - - BN.prototype._wordDiv = function _wordDiv (num, mode) { - var shift = this.length - num.length; - - var a = this.clone(); - var b = num; - - // Normalize - var bhi = b.words[b.length - 1] | 0; - var bhiBits = this._countBits(bhi); - shift = 26 - bhiBits; - if (shift !== 0) { - b = b.ushln(shift); - a.iushln(shift); - bhi = b.words[b.length - 1] | 0; - } - - // Initialize quotient - var m = a.length - b.length; - var q; - - if (mode !== 'mod') { - q = new BN(null); - q.length = m + 1; - q.words = new Array(q.length); - for (var i = 0; i < q.length; i++) { - q.words[i] = 0; + var d3_geom_voronoiClipExtent = [ [ -1e6, -1e6 ], [ 1e6, 1e6 ] ]; + function d3_geom_voronoiTriangleArea(a, b, c) { + return (a.x - c.x) * (b.y - a.y) - (a.x - b.x) * (c.y - a.y); + } + d3.geom.delaunay = function(vertices) { + return d3.geom.voronoi().triangles(vertices); + }; + d3.geom.quadtree = function(points, x1, y1, x2, y2) { + var x = d3_geom_pointX, y = d3_geom_pointY, compat; + if (compat = arguments.length) { + x = d3_geom_quadtreeCompatX; + y = d3_geom_quadtreeCompatY; + if (compat === 3) { + y2 = y1; + x2 = x1; + y1 = x1 = 0; } + return quadtree(points); } - - var diff = a.clone()._ishlnsubmul(b, 1, m); - if (diff.negative === 0) { - a = diff; - if (q) { - q.words[m] = 1; + function quadtree(data) { + var d, fx = d3_functor(x), fy = d3_functor(y), xs, ys, i, n, x1_, y1_, x2_, y2_; + if (x1 != null) { + x1_ = x1, y1_ = y1, x2_ = x2, y2_ = y2; + } else { + x2_ = y2_ = -(x1_ = y1_ = Infinity); + xs = [], ys = []; + n = data.length; + if (compat) for (i = 0; i < n; ++i) { + d = data[i]; + if (d.x < x1_) x1_ = d.x; + if (d.y < y1_) y1_ = d.y; + if (d.x > x2_) x2_ = d.x; + if (d.y > y2_) y2_ = d.y; + xs.push(d.x); + ys.push(d.y); + } else for (i = 0; i < n; ++i) { + var x_ = +fx(d = data[i], i), y_ = +fy(d, i); + if (x_ < x1_) x1_ = x_; + if (y_ < y1_) y1_ = y_; + if (x_ > x2_) x2_ = x_; + if (y_ > y2_) y2_ = y_; + xs.push(x_); + ys.push(y_); + } } - } - - for (var j = m - 1; j >= 0; j--) { - var qj = (a.words[b.length + j] | 0) * 0x4000000 + - (a.words[b.length + j - 1] | 0); - - // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max - // (0x7ffffff) - qj = Math.min((qj / bhi) | 0, 0x3ffffff); - - a._ishlnsubmul(b, qj, j); - while (a.negative !== 0) { - qj--; - a.negative = 0; - a._ishlnsubmul(b, 1, j); - if (!a.isZero()) { - a.negative ^= 1; + var dx = x2_ - x1_, dy = y2_ - y1_; + if (dx > dy) y2_ = y1_ + dx; else x2_ = x1_ + dy; + function insert(n, d, x, y, x1, y1, x2, y2) { + if (isNaN(x) || isNaN(y)) return; + if (n.leaf) { + var nx = n.x, ny = n.y; + if (nx != null) { + if (abs(nx - x) + abs(ny - y) < .01) { + insertChild(n, d, x, y, x1, y1, x2, y2); + } else { + var nPoint = n.point; + n.x = n.y = n.point = null; + insertChild(n, nPoint, nx, ny, x1, y1, x2, y2); + insertChild(n, d, x, y, x1, y1, x2, y2); + } + } else { + n.x = x, n.y = y, n.point = d; + } + } else { + insertChild(n, d, x, y, x1, y1, x2, y2); } } - if (q) { - q.words[j] = qj; + function insertChild(n, d, x, y, x1, y1, x2, y2) { + var xm = (x1 + x2) * .5, ym = (y1 + y2) * .5, right = x >= xm, below = y >= ym, i = below << 1 | right; + n.leaf = false; + n = n.nodes[i] || (n.nodes[i] = d3_geom_quadtreeNode()); + if (right) x1 = xm; else x2 = xm; + if (below) y1 = ym; else y2 = ym; + insert(n, d, x, y, x1, y1, x2, y2); } + var root = d3_geom_quadtreeNode(); + root.add = function(d) { + insert(root, d, +fx(d, ++i), +fy(d, i), x1_, y1_, x2_, y2_); + }; + root.visit = function(f) { + d3_geom_quadtreeVisit(f, root, x1_, y1_, x2_, y2_); + }; + root.find = function(point) { + return d3_geom_quadtreeFind(root, point[0], point[1], x1_, y1_, x2_, y2_); + }; + i = -1; + if (x1 == null) { + while (++i < n) { + insert(root, data[i], xs[i], ys[i], x1_, y1_, x2_, y2_); + } + --i; + } else data.forEach(root.add); + xs = ys = data = d = null; + return root; } - if (q) { - q.strip(); - } - a.strip(); - - // Denormalize - if (mode !== 'div' && shift !== 0) { - a.iushrn(shift); - } - - return { - div: q || null, - mod: a + quadtree.x = function(_) { + return arguments.length ? (x = _, quadtree) : x; + }; + quadtree.y = function(_) { + return arguments.length ? (y = _, quadtree) : y; + }; + quadtree.extent = function(_) { + if (!arguments.length) return x1 == null ? null : [ [ x1, y1 ], [ x2, y2 ] ]; + if (_ == null) x1 = y1 = x2 = y2 = null; else x1 = +_[0][0], y1 = +_[0][1], x2 = +_[1][0], + y2 = +_[1][1]; + return quadtree; + }; + quadtree.size = function(_) { + if (!arguments.length) return x1 == null ? null : [ x2 - x1, y2 - y1 ]; + if (_ == null) x1 = y1 = x2 = y2 = null; else x1 = y1 = 0, x2 = +_[0], y2 = +_[1]; + return quadtree; }; + return quadtree; }; - - // NOTE: 1) `mode` can be set to `mod` to request mod only, - // to `div` to request div only, or be absent to - // request both div & mod - // 2) `positive` is true if unsigned mod is requested - BN.prototype.divmod = function divmod (num, mode, positive) { - assert(!num.isZero()); - - if (this.isZero()) { - return { - div: new BN(0), - mod: new BN(0) - }; + function d3_geom_quadtreeCompatX(d) { + return d.x; + } + function d3_geom_quadtreeCompatY(d) { + return d.y; + } + function d3_geom_quadtreeNode() { + return { + leaf: true, + nodes: [], + point: null, + x: null, + y: null + }; + } + function d3_geom_quadtreeVisit(f, node, x1, y1, x2, y2) { + if (!f(node, x1, y1, x2, y2)) { + var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, children = node.nodes; + if (children[0]) d3_geom_quadtreeVisit(f, children[0], x1, y1, sx, sy); + if (children[1]) d3_geom_quadtreeVisit(f, children[1], sx, y1, x2, sy); + if (children[2]) d3_geom_quadtreeVisit(f, children[2], x1, sy, sx, y2); + if (children[3]) d3_geom_quadtreeVisit(f, children[3], sx, sy, x2, y2); } - - var div, mod, res; - if (this.negative !== 0 && num.negative === 0) { - res = this.neg().divmod(num, mode); - - if (mode !== 'mod') { - div = res.div.neg(); - } - - if (mode !== 'div') { - mod = res.mod.neg(); - if (positive && mod.negative !== 0) { - mod.iadd(num); + } + function d3_geom_quadtreeFind(root, x, y, x0, y0, x3, y3) { + var minDistance2 = Infinity, closestPoint; + (function find(node, x1, y1, x2, y2) { + if (x1 > x3 || y1 > y3 || x2 < x0 || y2 < y0) return; + if (point = node.point) { + var point, dx = x - node.x, dy = y - node.y, distance2 = dx * dx + dy * dy; + if (distance2 < minDistance2) { + var distance = Math.sqrt(minDistance2 = distance2); + x0 = x - distance, y0 = y - distance; + x3 = x + distance, y3 = y + distance; + closestPoint = point; } } + var children = node.nodes, xm = (x1 + x2) * .5, ym = (y1 + y2) * .5, right = x >= xm, below = y >= ym; + for (var i = below << 1 | right, j = i + 4; i < j; ++i) { + if (node = children[i & 3]) switch (i & 3) { + case 0: + find(node, x1, y1, xm, ym); + break; - return { - div: div, - mod: mod - }; - } - - if (this.negative === 0 && num.negative !== 0) { - res = this.divmod(num.neg(), mode); - - if (mode !== 'mod') { - div = res.div.neg(); - } - - return { - div: div, - mod: res.mod - }; - } + case 1: + find(node, xm, y1, x2, ym); + break; - if ((this.negative & num.negative) !== 0) { - res = this.neg().divmod(num.neg(), mode); + case 2: + find(node, x1, ym, xm, y2); + break; - if (mode !== 'div') { - mod = res.mod.neg(); - if (positive && mod.negative !== 0) { - mod.isub(num); + case 3: + find(node, xm, ym, x2, y2); + break; } } - - return { - div: res.div, - mod: mod - }; + })(root, x0, y0, x3, y3); + return closestPoint; + } + d3.interpolateRgb = d3_interpolateRgb; + function d3_interpolateRgb(a, b) { + a = d3.rgb(a); + b = d3.rgb(b); + var ar = a.r, ag = a.g, ab = a.b, br = b.r - ar, bg = b.g - ag, bb = b.b - ab; + return function(t) { + return "#" + d3_rgb_hex(Math.round(ar + br * t)) + d3_rgb_hex(Math.round(ag + bg * t)) + d3_rgb_hex(Math.round(ab + bb * t)); + }; + } + d3.interpolateObject = d3_interpolateObject; + function d3_interpolateObject(a, b) { + var i = {}, c = {}, k; + for (k in a) { + if (k in b) { + i[k] = d3_interpolate(a[k], b[k]); + } else { + c[k] = a[k]; + } } - - // Both numbers are positive at this point - - // Strip both numbers to approximate shift value - if (num.length > this.length || this.cmp(num) < 0) { - return { - div: new BN(0), - mod: this - }; + for (k in b) { + if (!(k in a)) { + c[k] = b[k]; + } } - - // Very short reduction - if (num.length === 1) { - if (mode === 'div') { - return { - div: this.divn(num.words[0]), - mod: null - }; + return function(t) { + for (k in i) c[k] = i[k](t); + return c; + }; + } + d3.interpolateNumber = d3_interpolateNumber; + function d3_interpolateNumber(a, b) { + a = +a, b = +b; + return function(t) { + return a * (1 - t) + b * t; + }; + } + d3.interpolateString = d3_interpolateString; + function d3_interpolateString(a, b) { + var bi = d3_interpolate_numberA.lastIndex = d3_interpolate_numberB.lastIndex = 0, am, bm, bs, i = -1, s = [], q = []; + a = a + "", b = b + ""; + while ((am = d3_interpolate_numberA.exec(a)) && (bm = d3_interpolate_numberB.exec(b))) { + if ((bs = bm.index) > bi) { + bs = b.slice(bi, bs); + if (s[i]) s[i] += bs; else s[++i] = bs; } - - if (mode === 'mod') { - return { - div: null, - mod: new BN(this.modn(num.words[0])) - }; + if ((am = am[0]) === (bm = bm[0])) { + if (s[i]) s[i] += bm; else s[++i] = bm; + } else { + s[++i] = null; + q.push({ + i: i, + x: d3_interpolateNumber(am, bm) + }); } - - return { - div: this.divn(num.words[0]), - mod: new BN(this.modn(num.words[0])) - }; + bi = d3_interpolate_numberB.lastIndex; } - - return this._wordDiv(num, mode); - }; - - // Find `this` / `num` - BN.prototype.div = function div (num) { - return this.divmod(num, 'div', false).div; - }; - - // Find `this` % `num` - BN.prototype.mod = function mod (num) { - return this.divmod(num, 'mod', false).mod; - }; - - BN.prototype.umod = function umod (num) { - return this.divmod(num, 'mod', true).mod; - }; - - // Find Round(`this` / `num`) - BN.prototype.divRound = function divRound (num) { - var dm = this.divmod(num); - - // Fast case - exact division - if (dm.mod.isZero()) return dm.div; - - var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod; - - var half = num.ushrn(1); - var r2 = num.andln(1); - var cmp = mod.cmp(half); - - // Round down - if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div; - - // Round up - return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1); - }; - - BN.prototype.modn = function modn (num) { - assert(num <= 0x3ffffff); - var p = (1 << 26) % num; - - var acc = 0; - for (var i = this.length - 1; i >= 0; i--) { - acc = (p * acc + (this.words[i] | 0)) % num; + if (bi < b.length) { + bs = b.slice(bi); + if (s[i]) s[i] += bs; else s[++i] = bs; } - - return acc; - }; - - // In-place division by number - BN.prototype.idivn = function idivn (num) { - assert(num <= 0x3ffffff); - - var carry = 0; - for (var i = this.length - 1; i >= 0; i--) { - var w = (this.words[i] | 0) + carry * 0x4000000; - this.words[i] = (w / num) | 0; - carry = w % num; + return s.length < 2 ? q[0] ? (b = q[0].x, function(t) { + return b(t) + ""; + }) : function() { + return b; + } : (b = q.length, function(t) { + for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t); + return s.join(""); + }); + } + var d3_interpolate_numberA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, d3_interpolate_numberB = new RegExp(d3_interpolate_numberA.source, "g"); + d3.interpolate = d3_interpolate; + function d3_interpolate(a, b) { + var i = d3.interpolators.length, f; + while (--i >= 0 && !(f = d3.interpolators[i](a, b))) ; + return f; + } + d3.interpolators = [ function(a, b) { + var t = typeof b; + return (t === "string" ? d3_rgb_names.has(b.toLowerCase()) || /^(#|rgb\(|hsl\()/i.test(b) ? d3_interpolateRgb : d3_interpolateString : b instanceof d3_color ? d3_interpolateRgb : Array.isArray(b) ? d3_interpolateArray : t === "object" && isNaN(b) ? d3_interpolateObject : d3_interpolateNumber)(a, b); + } ]; + d3.interpolateArray = d3_interpolateArray; + function d3_interpolateArray(a, b) { + var x = [], c = [], na = a.length, nb = b.length, n0 = Math.min(a.length, b.length), i; + for (i = 0; i < n0; ++i) x.push(d3_interpolate(a[i], b[i])); + for (;i < na; ++i) c[i] = a[i]; + for (;i < nb; ++i) c[i] = b[i]; + return function(t) { + for (i = 0; i < n0; ++i) c[i] = x[i](t); + return c; + }; + } + var d3_ease_default = function() { + return d3_identity; + }; + var d3_ease = d3.map({ + linear: d3_ease_default, + poly: d3_ease_poly, + quad: function() { + return d3_ease_quad; + }, + cubic: function() { + return d3_ease_cubic; + }, + sin: function() { + return d3_ease_sin; + }, + exp: function() { + return d3_ease_exp; + }, + circle: function() { + return d3_ease_circle; + }, + elastic: d3_ease_elastic, + back: d3_ease_back, + bounce: function() { + return d3_ease_bounce; } - - return this.strip(); + }); + var d3_ease_mode = d3.map({ + "in": d3_identity, + out: d3_ease_reverse, + "in-out": d3_ease_reflect, + "out-in": function(f) { + return d3_ease_reflect(d3_ease_reverse(f)); + } + }); + d3.ease = function(name) { + var i = name.indexOf("-"), t = i >= 0 ? name.slice(0, i) : name, m = i >= 0 ? name.slice(i + 1) : "in"; + t = d3_ease.get(t) || d3_ease_default; + m = d3_ease_mode.get(m) || d3_identity; + return d3_ease_clamp(m(t.apply(null, d3_arraySlice.call(arguments, 1)))); }; - - BN.prototype.divn = function divn (num) { - return this.clone().idivn(num); + function d3_ease_clamp(f) { + return function(t) { + return t <= 0 ? 0 : t >= 1 ? 1 : f(t); + }; + } + function d3_ease_reverse(f) { + return function(t) { + return 1 - f(1 - t); + }; + } + function d3_ease_reflect(f) { + return function(t) { + return .5 * (t < .5 ? f(2 * t) : 2 - f(2 - 2 * t)); + }; + } + function d3_ease_quad(t) { + return t * t; + } + function d3_ease_cubic(t) { + return t * t * t; + } + function d3_ease_cubicInOut(t) { + if (t <= 0) return 0; + if (t >= 1) return 1; + var t2 = t * t, t3 = t2 * t; + return 4 * (t < .5 ? t3 : 3 * (t - t2) + t3 - .75); + } + function d3_ease_poly(e) { + return function(t) { + return Math.pow(t, e); + }; + } + function d3_ease_sin(t) { + return 1 - Math.cos(t * halfπ); + } + function d3_ease_exp(t) { + return Math.pow(2, 10 * (t - 1)); + } + function d3_ease_circle(t) { + return 1 - Math.sqrt(1 - t * t); + } + function d3_ease_elastic(a, p) { + var s; + if (arguments.length < 2) p = .45; + if (arguments.length) s = p / τ * Math.asin(1 / a); else a = 1, s = p / 4; + return function(t) { + return 1 + a * Math.pow(2, -10 * t) * Math.sin((t - s) * τ / p); + }; + } + function d3_ease_back(s) { + if (!s) s = 1.70158; + return function(t) { + return t * t * ((s + 1) * t - s); + }; + } + function d3_ease_bounce(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; + } + d3.interpolateHcl = d3_interpolateHcl; + function d3_interpolateHcl(a, b) { + a = d3.hcl(a); + b = d3.hcl(b); + var ah = a.h, ac = a.c, al = a.l, bh = b.h - ah, bc = b.c - ac, bl = b.l - al; + if (isNaN(bc)) bc = 0, ac = isNaN(ac) ? b.c : ac; + if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah; else if (bh > 180) bh -= 360; else if (bh < -180) bh += 360; + return function(t) { + return d3_hcl_lab(ah + bh * t, ac + bc * t, al + bl * t) + ""; + }; + } + d3.interpolateHsl = d3_interpolateHsl; + function d3_interpolateHsl(a, b) { + a = d3.hsl(a); + b = d3.hsl(b); + var ah = a.h, as = a.s, al = a.l, bh = b.h - ah, bs = b.s - as, bl = b.l - al; + if (isNaN(bs)) bs = 0, as = isNaN(as) ? b.s : as; + if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah; else if (bh > 180) bh -= 360; else if (bh < -180) bh += 360; + return function(t) { + return d3_hsl_rgb(ah + bh * t, as + bs * t, al + bl * t) + ""; + }; + } + d3.interpolateLab = d3_interpolateLab; + function d3_interpolateLab(a, b) { + a = d3.lab(a); + b = d3.lab(b); + var al = a.l, aa = a.a, ab = a.b, bl = b.l - al, ba = b.a - aa, bb = b.b - ab; + return function(t) { + return d3_lab_rgb(al + bl * t, aa + ba * t, ab + bb * t) + ""; + }; + } + d3.interpolateRound = d3_interpolateRound; + function d3_interpolateRound(a, b) { + b -= a; + return function(t) { + return Math.round(a + b * t); + }; + } + d3.transform = function(string) { + var g = d3_document.createElementNS(d3.ns.prefix.svg, "g"); + return (d3.transform = function(string) { + if (string != null) { + g.setAttribute("transform", string); + var t = g.transform.baseVal.consolidate(); + } + return new d3_transform(t ? t.matrix : d3_transformIdentity); + })(string); }; - - BN.prototype.egcd = function egcd (p) { - assert(p.negative === 0); - assert(!p.isZero()); - - var x = this; - var y = p.clone(); - - if (x.negative !== 0) { - x = x.umod(p); - } else { - x = x.clone(); + function d3_transform(m) { + var r0 = [ m.a, m.b ], r1 = [ m.c, m.d ], kx = d3_transformNormalize(r0), kz = d3_transformDot(r0, r1), ky = d3_transformNormalize(d3_transformCombine(r1, r0, -kz)) || 0; + if (r0[0] * r1[1] < r1[0] * r0[1]) { + r0[0] *= -1; + r0[1] *= -1; + kx *= -1; + kz *= -1; } - - // A * x + B * y = x - var A = new BN(1); - var B = new BN(0); - - // C * x + D * y = y - var C = new BN(0); - var D = new BN(1); - - var g = 0; - - while (x.isEven() && y.isEven()) { - x.iushrn(1); - y.iushrn(1); - ++g; + this.rotate = (kx ? Math.atan2(r0[1], r0[0]) : Math.atan2(-r1[0], r1[1])) * d3_degrees; + this.translate = [ m.e, m.f ]; + this.scale = [ kx, ky ]; + this.skew = ky ? Math.atan2(kz, ky) * d3_degrees : 0; + } + d3_transform.prototype.toString = function() { + return "translate(" + this.translate + ")rotate(" + this.rotate + ")skewX(" + this.skew + ")scale(" + this.scale + ")"; + }; + function d3_transformDot(a, b) { + return a[0] * b[0] + a[1] * b[1]; + } + function d3_transformNormalize(a) { + var k = Math.sqrt(d3_transformDot(a, a)); + if (k) { + a[0] /= k; + a[1] /= k; } - - var yp = y.clone(); - var xp = x.clone(); - - while (!x.isZero()) { - for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1); - if (i > 0) { - x.iushrn(i); - while (i-- > 0) { - if (A.isOdd() || B.isOdd()) { - A.iadd(yp); - B.isub(xp); - } - - A.iushrn(1); - B.iushrn(1); + return k; + } + function d3_transformCombine(a, b, k) { + a[0] += k * b[0]; + a[1] += k * b[1]; + return a; + } + var d3_transformIdentity = { + a: 1, + b: 0, + c: 0, + d: 1, + e: 0, + f: 0 + }; + d3.interpolateTransform = d3_interpolateTransform; + function d3_interpolateTransformPop(s) { + return s.length ? s.pop() + "," : ""; + } + function d3_interpolateTranslate(ta, tb, s, q) { + if (ta[0] !== tb[0] || ta[1] !== tb[1]) { + var i = s.push("translate(", null, ",", null, ")"); + q.push({ + i: i - 4, + x: d3_interpolateNumber(ta[0], tb[0]) + }, { + i: i - 2, + x: d3_interpolateNumber(ta[1], tb[1]) + }); + } else if (tb[0] || tb[1]) { + s.push("translate(" + tb + ")"); + } + } + function d3_interpolateRotate(ra, rb, s, q) { + if (ra !== rb) { + if (ra - rb > 180) rb += 360; else if (rb - ra > 180) ra += 360; + q.push({ + i: s.push(d3_interpolateTransformPop(s) + "rotate(", null, ")") - 2, + x: d3_interpolateNumber(ra, rb) + }); + } else if (rb) { + s.push(d3_interpolateTransformPop(s) + "rotate(" + rb + ")"); + } + } + function d3_interpolateSkew(wa, wb, s, q) { + if (wa !== wb) { + q.push({ + i: s.push(d3_interpolateTransformPop(s) + "skewX(", null, ")") - 2, + x: d3_interpolateNumber(wa, wb) + }); + } else if (wb) { + s.push(d3_interpolateTransformPop(s) + "skewX(" + wb + ")"); + } + } + function d3_interpolateScale(ka, kb, s, q) { + if (ka[0] !== kb[0] || ka[1] !== kb[1]) { + var i = s.push(d3_interpolateTransformPop(s) + "scale(", null, ",", null, ")"); + q.push({ + i: i - 4, + x: d3_interpolateNumber(ka[0], kb[0]) + }, { + i: i - 2, + x: d3_interpolateNumber(ka[1], kb[1]) + }); + } else if (kb[0] !== 1 || kb[1] !== 1) { + s.push(d3_interpolateTransformPop(s) + "scale(" + kb + ")"); + } + } + function d3_interpolateTransform(a, b) { + var s = [], q = []; + a = d3.transform(a), b = d3.transform(b); + d3_interpolateTranslate(a.translate, b.translate, s, q); + d3_interpolateRotate(a.rotate, b.rotate, s, q); + d3_interpolateSkew(a.skew, b.skew, s, q); + d3_interpolateScale(a.scale, b.scale, s, q); + a = b = null; + return function(t) { + var i = -1, n = q.length, o; + while (++i < n) s[(o = q[i]).i] = o.x(t); + return s.join(""); + }; + } + function d3_uninterpolateNumber(a, b) { + b = (b -= a = +a) || 1 / b; + return function(x) { + return (x - a) / b; + }; + } + function d3_uninterpolateClamp(a, b) { + b = (b -= a = +a) || 1 / b; + return function(x) { + return Math.max(0, Math.min(1, (x - a) / b)); + }; + } + d3.layout = {}; + d3.layout.bundle = function() { + return function(links) { + var paths = [], i = -1, n = links.length; + while (++i < n) paths.push(d3_layout_bundlePath(links[i])); + return paths; + }; + }; + function d3_layout_bundlePath(link) { + var start = link.source, end = link.target, lca = d3_layout_bundleLeastCommonAncestor(start, end), points = [ start ]; + while (start !== lca) { + start = start.parent; + points.push(start); + } + var k = points.length; + while (end !== lca) { + points.splice(k, 0, end); + end = end.parent; + } + return points; + } + function d3_layout_bundleAncestors(node) { + var ancestors = [], parent = node.parent; + while (parent != null) { + ancestors.push(node); + node = parent; + parent = parent.parent; + } + ancestors.push(node); + return ancestors; + } + function d3_layout_bundleLeastCommonAncestor(a, b) { + if (a === b) return a; + var aNodes = d3_layout_bundleAncestors(a), bNodes = d3_layout_bundleAncestors(b), aNode = aNodes.pop(), bNode = bNodes.pop(), sharedNode = null; + while (aNode === bNode) { + sharedNode = aNode; + aNode = aNodes.pop(); + bNode = bNodes.pop(); + } + return sharedNode; + } + d3.layout.chord = function() { + var chord = {}, chords, groups, matrix, n, padding = 0, sortGroups, sortSubgroups, sortChords; + function relayout() { + var subgroups = {}, groupSums = [], groupIndex = d3.range(n), subgroupIndex = [], k, x, x0, i, j; + chords = []; + groups = []; + k = 0, i = -1; + while (++i < n) { + x = 0, j = -1; + while (++j < n) { + x += matrix[i][j]; } + groupSums.push(x); + subgroupIndex.push(d3.range(n)); + k += x; } - - for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1); - if (j > 0) { - y.iushrn(j); - while (j-- > 0) { - if (C.isOdd() || D.isOdd()) { - C.iadd(yp); - D.isub(xp); - } - - C.iushrn(1); - D.iushrn(1); + if (sortGroups) { + groupIndex.sort(function(a, b) { + return sortGroups(groupSums[a], groupSums[b]); + }); + } + if (sortSubgroups) { + subgroupIndex.forEach(function(d, i) { + d.sort(function(a, b) { + return sortSubgroups(matrix[i][a], matrix[i][b]); + }); + }); + } + k = (τ - padding * n) / k; + x = 0, i = -1; + while (++i < n) { + x0 = x, j = -1; + while (++j < n) { + var di = groupIndex[i], dj = subgroupIndex[di][j], v = matrix[di][dj], a0 = x, a1 = x += v * k; + subgroups[di + "-" + dj] = { + index: di, + subindex: dj, + startAngle: a0, + endAngle: a1, + value: v + }; } + groups[di] = { + index: di, + startAngle: x0, + endAngle: x, + value: groupSums[di] + }; + x += padding; } - - if (x.cmp(y) >= 0) { - x.isub(y); - A.isub(C); - B.isub(D); - } else { - y.isub(x); - C.isub(A); - D.isub(B); + i = -1; + while (++i < n) { + j = i - 1; + while (++j < n) { + var source = subgroups[i + "-" + j], target = subgroups[j + "-" + i]; + if (source.value || target.value) { + chords.push(source.value < target.value ? { + source: target, + target: source + } : { + source: source, + target: target + }); + } + } } + if (sortChords) resort(); } - - return { - a: C, - b: D, - gcd: y.iushln(g) + function resort() { + chords.sort(function(a, b) { + return sortChords((a.source.value + a.target.value) / 2, (b.source.value + b.target.value) / 2); + }); + } + chord.matrix = function(x) { + if (!arguments.length) return matrix; + n = (matrix = x) && matrix.length; + chords = groups = null; + return chord; + }; + chord.padding = function(x) { + if (!arguments.length) return padding; + padding = x; + chords = groups = null; + return chord; + }; + chord.sortGroups = function(x) { + if (!arguments.length) return sortGroups; + sortGroups = x; + chords = groups = null; + return chord; + }; + chord.sortSubgroups = function(x) { + if (!arguments.length) return sortSubgroups; + sortSubgroups = x; + chords = null; + return chord; + }; + chord.sortChords = function(x) { + if (!arguments.length) return sortChords; + sortChords = x; + if (chords) resort(); + return chord; + }; + chord.chords = function() { + if (!chords) relayout(); + return chords; + }; + chord.groups = function() { + if (!groups) relayout(); + return groups; }; + return chord; }; - - // This is reduced incarnation of the binary EEA - // above, designated to invert members of the - // _prime_ fields F(p) at a maximal speed - BN.prototype._invmp = function _invmp (p) { - assert(p.negative === 0); - assert(!p.isZero()); - - var a = this; - var b = p.clone(); - - if (a.negative !== 0) { - a = a.umod(p); - } else { - a = a.clone(); + d3.layout.force = function() { + var force = {}, event = d3.dispatch("start", "tick", "end"), timer, size = [ 1, 1 ], drag, alpha, friction = .9, linkDistance = d3_layout_forceLinkDistance, linkStrength = d3_layout_forceLinkStrength, charge = -30, chargeDistance2 = d3_layout_forceChargeDistance2, gravity = .1, theta2 = .64, nodes = [], links = [], distances, strengths, charges; + function repulse(node) { + return function(quad, x1, _, x2) { + if (quad.point !== node) { + var dx = quad.cx - node.x, dy = quad.cy - node.y, dw = x2 - x1, dn = dx * dx + dy * dy; + if (dw * dw / theta2 < dn) { + if (dn < chargeDistance2) { + var k = quad.charge / dn; + node.px -= dx * k; + node.py -= dy * k; + } + return true; + } + if (quad.point && dn && dn < chargeDistance2) { + var k = quad.pointCharge / dn; + node.px -= dx * k; + node.py -= dy * k; + } + } + return !quad.charge; + }; } - - var x1 = new BN(1); - var x2 = new BN(0); - - var delta = b.clone(); - - while (a.cmpn(1) > 0 && b.cmpn(1) > 0) { - for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1); - if (i > 0) { - a.iushrn(i); - while (i-- > 0) { - if (x1.isOdd()) { - x1.iadd(delta); + force.tick = function() { + if ((alpha *= .99) < .005) { + timer = null; + event.end({ + type: "end", + alpha: alpha = 0 + }); + return true; + } + var n = nodes.length, m = links.length, q, i, o, s, t, l, k, x, y; + for (i = 0; i < m; ++i) { + o = links[i]; + s = o.source; + t = o.target; + x = t.x - s.x; + y = t.y - s.y; + if (l = x * x + y * y) { + l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l; + x *= l; + y *= l; + t.x -= x * (k = s.weight + t.weight ? s.weight / (s.weight + t.weight) : .5); + t.y -= y * k; + s.x += x * (k = 1 - k); + s.y += y * k; + } + } + if (k = alpha * gravity) { + x = size[0] / 2; + y = size[1] / 2; + i = -1; + if (k) while (++i < n) { + o = nodes[i]; + o.x += (x - o.x) * k; + o.y += (y - o.y) * k; + } + } + if (charge) { + d3_layout_forceAccumulate(q = d3.geom.quadtree(nodes), alpha, charges); + i = -1; + while (++i < n) { + if (!(o = nodes[i]).fixed) { + q.visit(repulse(o)); } - - x1.iushrn(1); } } - - for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1); - if (j > 0) { - b.iushrn(j); - while (j-- > 0) { - if (x2.isOdd()) { - x2.iadd(delta); + i = -1; + while (++i < n) { + o = nodes[i]; + if (o.fixed) { + o.x = o.px; + o.y = o.py; + } else { + o.x -= (o.px - (o.px = o.x)) * friction; + o.y -= (o.py - (o.py = o.y)) * friction; + } + } + event.tick({ + type: "tick", + alpha: alpha + }); + }; + force.nodes = function(x) { + if (!arguments.length) return nodes; + nodes = x; + return force; + }; + force.links = function(x) { + if (!arguments.length) return links; + links = x; + return force; + }; + force.size = function(x) { + if (!arguments.length) return size; + size = x; + return force; + }; + force.linkDistance = function(x) { + if (!arguments.length) return linkDistance; + linkDistance = typeof x === "function" ? x : +x; + return force; + }; + force.distance = force.linkDistance; + force.linkStrength = function(x) { + if (!arguments.length) return linkStrength; + linkStrength = typeof x === "function" ? x : +x; + return force; + }; + force.friction = function(x) { + if (!arguments.length) return friction; + friction = +x; + return force; + }; + force.charge = function(x) { + if (!arguments.length) return charge; + charge = typeof x === "function" ? x : +x; + return force; + }; + force.chargeDistance = function(x) { + if (!arguments.length) return Math.sqrt(chargeDistance2); + chargeDistance2 = x * x; + return force; + }; + force.gravity = function(x) { + if (!arguments.length) return gravity; + gravity = +x; + return force; + }; + force.theta = function(x) { + if (!arguments.length) return Math.sqrt(theta2); + theta2 = x * x; + return force; + }; + force.alpha = function(x) { + if (!arguments.length) return alpha; + x = +x; + if (alpha) { + if (x > 0) { + alpha = x; + } else { + timer.c = null, timer.t = NaN, timer = null; + event.end({ + type: "end", + alpha: alpha = 0 + }); + } + } else if (x > 0) { + event.start({ + type: "start", + alpha: alpha = x + }); + timer = d3_timer(force.tick); + } + return force; + }; + force.start = function() { + var i, n = nodes.length, m = links.length, w = size[0], h = size[1], neighbors, o; + for (i = 0; i < n; ++i) { + (o = nodes[i]).index = i; + o.weight = 0; + } + for (i = 0; i < m; ++i) { + o = links[i]; + if (typeof o.source == "number") o.source = nodes[o.source]; + if (typeof o.target == "number") o.target = nodes[o.target]; + ++o.source.weight; + ++o.target.weight; + } + for (i = 0; i < n; ++i) { + o = nodes[i]; + if (isNaN(o.x)) o.x = position("x", w); + if (isNaN(o.y)) o.y = position("y", h); + if (isNaN(o.px)) o.px = o.x; + if (isNaN(o.py)) o.py = o.y; + } + distances = []; + if (typeof linkDistance === "function") for (i = 0; i < m; ++i) distances[i] = +linkDistance.call(this, links[i], i); else for (i = 0; i < m; ++i) distances[i] = linkDistance; + strengths = []; + if (typeof linkStrength === "function") for (i = 0; i < m; ++i) strengths[i] = +linkStrength.call(this, links[i], i); else for (i = 0; i < m; ++i) strengths[i] = linkStrength; + charges = []; + if (typeof charge === "function") for (i = 0; i < n; ++i) charges[i] = +charge.call(this, nodes[i], i); else for (i = 0; i < n; ++i) charges[i] = charge; + function position(dimension, size) { + if (!neighbors) { + neighbors = new Array(n); + for (j = 0; j < n; ++j) { + neighbors[j] = []; + } + for (j = 0; j < m; ++j) { + var o = links[j]; + neighbors[o.source.index].push(o.target); + neighbors[o.target.index].push(o.source); } - - x2.iushrn(1); } + var candidates = neighbors[i], j = -1, l = candidates.length, x; + while (++j < l) if (!isNaN(x = candidates[j][dimension])) return x; + return Math.random() * size; } - - if (a.cmp(b) >= 0) { - a.isub(b); - x1.isub(x2); - } else { - b.isub(a); - x2.isub(x1); + return force.resume(); + }; + force.resume = function() { + return force.alpha(.1); + }; + force.stop = function() { + return force.alpha(0); + }; + force.drag = function() { + if (!drag) drag = d3.behavior.drag().origin(d3_identity).on("dragstart.force", d3_layout_forceDragstart).on("drag.force", dragmove).on("dragend.force", d3_layout_forceDragend); + if (!arguments.length) return drag; + this.on("mouseover.force", d3_layout_forceMouseover).on("mouseout.force", d3_layout_forceMouseout).call(drag); + }; + function dragmove(d) { + d.px = d3.event.x, d.py = d3.event.y; + force.resume(); + } + return d3.rebind(force, event, "on"); + }; + function d3_layout_forceDragstart(d) { + d.fixed |= 2; + } + function d3_layout_forceDragend(d) { + d.fixed &= ~6; + } + function d3_layout_forceMouseover(d) { + d.fixed |= 4; + d.px = d.x, d.py = d.y; + } + function d3_layout_forceMouseout(d) { + d.fixed &= ~4; + } + function d3_layout_forceAccumulate(quad, alpha, charges) { + var cx = 0, cy = 0; + quad.charge = 0; + if (!quad.leaf) { + var nodes = quad.nodes, n = nodes.length, i = -1, c; + while (++i < n) { + c = nodes[i]; + if (c == null) continue; + d3_layout_forceAccumulate(c, alpha, charges); + quad.charge += c.charge; + cx += c.charge * c.cx; + cy += c.charge * c.cy; } } - - var res; - if (a.cmpn(1) === 0) { - res = x1; - } else { - res = x2; + if (quad.point) { + if (!quad.leaf) { + quad.point.x += Math.random() - .5; + quad.point.y += Math.random() - .5; + } + var k = alpha * charges[quad.point.index]; + quad.charge += quad.pointCharge = k; + cx += k * quad.point.x; + cy += k * quad.point.y; } - - if (res.cmpn(0) < 0) { - res.iadd(p); + quad.cx = cx / quad.charge; + quad.cy = cy / quad.charge; + } + var d3_layout_forceLinkDistance = 20, d3_layout_forceLinkStrength = 1, d3_layout_forceChargeDistance2 = Infinity; + d3.layout.hierarchy = function() { + var sort = d3_layout_hierarchySort, children = d3_layout_hierarchyChildren, value = d3_layout_hierarchyValue; + function hierarchy(root) { + var stack = [ root ], nodes = [], node; + root.depth = 0; + while ((node = stack.pop()) != null) { + nodes.push(node); + if ((childs = children.call(hierarchy, node, node.depth)) && (n = childs.length)) { + var n, childs, child; + while (--n >= 0) { + stack.push(child = childs[n]); + child.parent = node; + child.depth = node.depth + 1; + } + if (value) node.value = 0; + node.children = childs; + } else { + if (value) node.value = +value.call(hierarchy, node, node.depth) || 0; + delete node.children; + } + } + d3_layout_hierarchyVisitAfter(root, function(node) { + var childs, parent; + if (sort && (childs = node.children)) childs.sort(sort); + if (value && (parent = node.parent)) parent.value += node.value; + }); + return nodes; } - - return res; + hierarchy.sort = function(x) { + if (!arguments.length) return sort; + sort = x; + return hierarchy; + }; + hierarchy.children = function(x) { + if (!arguments.length) return children; + children = x; + return hierarchy; + }; + hierarchy.value = function(x) { + if (!arguments.length) return value; + value = x; + return hierarchy; + }; + hierarchy.revalue = function(root) { + if (value) { + d3_layout_hierarchyVisitBefore(root, function(node) { + if (node.children) node.value = 0; + }); + d3_layout_hierarchyVisitAfter(root, function(node) { + var parent; + if (!node.children) node.value = +value.call(hierarchy, node, node.depth) || 0; + if (parent = node.parent) parent.value += node.value; + }); + } + return root; + }; + return hierarchy; }; - - BN.prototype.gcd = function gcd (num) { - if (this.isZero()) return num.abs(); - if (num.isZero()) return this.abs(); - - var a = this.clone(); - var b = num.clone(); - a.negative = 0; - b.negative = 0; - - // Remove common factor of two - for (var shift = 0; a.isEven() && b.isEven(); shift++) { - a.iushrn(1); - b.iushrn(1); + function d3_layout_hierarchyRebind(object, hierarchy) { + d3.rebind(object, hierarchy, "sort", "children", "value"); + object.nodes = object; + object.links = d3_layout_hierarchyLinks; + return object; + } + function d3_layout_hierarchyVisitBefore(node, callback) { + var nodes = [ node ]; + while ((node = nodes.pop()) != null) { + callback(node); + if ((children = node.children) && (n = children.length)) { + var n, children; + while (--n >= 0) nodes.push(children[n]); + } } - - do { - while (a.isEven()) { - a.iushrn(1); + } + function d3_layout_hierarchyVisitAfter(node, callback) { + var nodes = [ node ], nodes2 = []; + while ((node = nodes.pop()) != null) { + nodes2.push(node); + if ((children = node.children) && (n = children.length)) { + var i = -1, n, children; + while (++i < n) nodes.push(children[i]); } - while (b.isEven()) { - b.iushrn(1); + } + while ((node = nodes2.pop()) != null) { + callback(node); + } + } + function d3_layout_hierarchyChildren(d) { + return d.children; + } + function d3_layout_hierarchyValue(d) { + return d.value; + } + function d3_layout_hierarchySort(a, b) { + return b.value - a.value; + } + function d3_layout_hierarchyLinks(nodes) { + return d3.merge(nodes.map(function(parent) { + return (parent.children || []).map(function(child) { + return { + source: parent, + target: child + }; + }); + })); + } + d3.layout.partition = function() { + var hierarchy = d3.layout.hierarchy(), size = [ 1, 1 ]; + function position(node, x, dx, dy) { + var children = node.children; + node.x = x; + node.y = node.depth * dy; + node.dx = dx; + node.dy = dy; + if (children && (n = children.length)) { + var i = -1, n, c, d; + dx = node.value ? dx / node.value : 0; + while (++i < n) { + position(c = children[i], x, d = c.value * dx, dy); + x += d; + } } - - var r = a.cmp(b); - if (r < 0) { - // Swap `a` and `b` to make `a` always bigger than `b` - var t = a; - a = b; - b = t; - } else if (r === 0 || b.cmpn(1) === 0) { - break; + } + function depth(node) { + var children = node.children, d = 0; + if (children && (n = children.length)) { + var i = -1, n; + while (++i < n) d = Math.max(d, depth(children[i])); } - - a.isub(b); - } while (true); - - return b.iushln(shift); - }; - - // Invert number in the field F(num) - BN.prototype.invm = function invm (num) { - return this.egcd(num).a.umod(num); - }; - - BN.prototype.isEven = function isEven () { - return (this.words[0] & 1) === 0; - }; - - BN.prototype.isOdd = function isOdd () { - return (this.words[0] & 1) === 1; - }; - - // And first word and num - BN.prototype.andln = function andln (num) { - return this.words[0] & num; - }; - - // Increment at the bit position in-line - BN.prototype.bincn = function bincn (bit) { - assert(typeof bit === 'number'); - var r = bit % 26; - var s = (bit - r) / 26; - var q = 1 << r; - - // Fast case: bit is much higher than all existing words - if (this.length <= s) { - this._expand(s + 1); - this.words[s] |= q; - return this; + return 1 + d; } - - // Add bit and propagate, if needed - var carry = q; - for (var i = s; carry !== 0 && i < this.length; i++) { - var w = this.words[i] | 0; - w += carry; - carry = w >>> 26; - w &= 0x3ffffff; - this.words[i] = w; + function partition(d, i) { + var nodes = hierarchy.call(this, d, i); + position(nodes[0], 0, size[0], size[1] / depth(nodes[0])); + return nodes; } - if (carry !== 0) { - this.words[i] = carry; - this.length++; - } - return this; - }; - - BN.prototype.isZero = function isZero () { - return this.length === 1 && this.words[0] === 0; + partition.size = function(x) { + if (!arguments.length) return size; + size = x; + return partition; + }; + return d3_layout_hierarchyRebind(partition, hierarchy); }; - - BN.prototype.cmpn = function cmpn (num) { - var negative = num < 0; - - if (this.negative !== 0 && !negative) return -1; - if (this.negative === 0 && negative) return 1; - - this.strip(); - - var res; - if (this.length > 1) { - res = 1; - } else { - if (negative) { - num = -num; - } - - assert(num <= 0x3ffffff, 'Number is too big'); - - var w = this.words[0] | 0; - res = w === num ? 0 : w < num ? -1 : 1; + d3.layout.pie = function() { + var value = Number, sort = d3_layout_pieSortByValue, startAngle = 0, endAngle = τ, padAngle = 0; + function pie(data) { + var n = data.length, values = data.map(function(d, i) { + return +value.call(pie, d, i); + }), a = +(typeof startAngle === "function" ? startAngle.apply(this, arguments) : startAngle), da = (typeof endAngle === "function" ? endAngle.apply(this, arguments) : endAngle) - a, p = Math.min(Math.abs(da) / n, +(typeof padAngle === "function" ? padAngle.apply(this, arguments) : padAngle)), pa = p * (da < 0 ? -1 : 1), sum = d3.sum(values), k = sum ? (da - n * pa) / sum : 0, index = d3.range(n), arcs = [], v; + if (sort != null) index.sort(sort === d3_layout_pieSortByValue ? function(i, j) { + return values[j] - values[i]; + } : function(i, j) { + return sort(data[i], data[j]); + }); + index.forEach(function(i) { + arcs[i] = { + data: data[i], + value: v = values[i], + startAngle: a, + endAngle: a += v * k + pa, + padAngle: p + }; + }); + return arcs; } - if (this.negative !== 0) return -res | 0; - return res; - }; - - // Compare two numbers and return: - // 1 - if `this` > `num` - // 0 - if `this` == `num` - // -1 - if `this` < `num` - BN.prototype.cmp = function cmp (num) { - if (this.negative !== 0 && num.negative === 0) return -1; - if (this.negative === 0 && num.negative !== 0) return 1; - - var res = this.ucmp(num); - if (this.negative !== 0) return -res | 0; - return res; + pie.value = function(_) { + if (!arguments.length) return value; + value = _; + return pie; + }; + pie.sort = function(_) { + if (!arguments.length) return sort; + sort = _; + return pie; + }; + pie.startAngle = function(_) { + if (!arguments.length) return startAngle; + startAngle = _; + return pie; + }; + pie.endAngle = function(_) { + if (!arguments.length) return endAngle; + endAngle = _; + return pie; + }; + pie.padAngle = function(_) { + if (!arguments.length) return padAngle; + padAngle = _; + return pie; + }; + return pie; }; - - // Unsigned comparison - BN.prototype.ucmp = function ucmp (num) { - // At this point both numbers have the same sign - if (this.length > num.length) return 1; - if (this.length < num.length) return -1; - - var res = 0; - for (var i = this.length - 1; i >= 0; i--) { - var a = this.words[i] | 0; - var b = num.words[i] | 0; - - if (a === b) continue; - if (a < b) { - res = -1; - } else if (a > b) { - res = 1; + var d3_layout_pieSortByValue = {}; + d3.layout.stack = function() { + var values = d3_identity, order = d3_layout_stackOrderDefault, offset = d3_layout_stackOffsetZero, out = d3_layout_stackOut, x = d3_layout_stackX, y = d3_layout_stackY; + function stack(data, index) { + if (!(n = data.length)) return data; + var series = data.map(function(d, i) { + return values.call(stack, d, i); + }); + var points = series.map(function(d) { + return d.map(function(v, i) { + return [ x.call(stack, v, i), y.call(stack, v, i) ]; + }); + }); + var orders = order.call(stack, points, index); + series = d3.permute(series, orders); + points = d3.permute(points, orders); + var offsets = offset.call(stack, points, index); + var m = series[0].length, n, i, j, o; + for (j = 0; j < m; ++j) { + out.call(stack, series[0][j], o = offsets[j], points[0][j][1]); + for (i = 1; i < n; ++i) { + out.call(stack, series[i][j], o += points[i - 1][j][1], points[i][j][1]); + } } - break; + return data; } - return res; - }; - - BN.prototype.gtn = function gtn (num) { - return this.cmpn(num) === 1; - }; - - BN.prototype.gt = function gt (num) { - return this.cmp(num) === 1; - }; - - BN.prototype.gten = function gten (num) { - return this.cmpn(num) >= 0; - }; - - BN.prototype.gte = function gte (num) { - return this.cmp(num) >= 0; - }; - - BN.prototype.ltn = function ltn (num) { - return this.cmpn(num) === -1; - }; - - BN.prototype.lt = function lt (num) { - return this.cmp(num) === -1; - }; - - BN.prototype.lten = function lten (num) { - return this.cmpn(num) <= 0; - }; - - BN.prototype.lte = function lte (num) { - return this.cmp(num) <= 0; - }; - - BN.prototype.eqn = function eqn (num) { - return this.cmpn(num) === 0; - }; - - BN.prototype.eq = function eq (num) { - return this.cmp(num) === 0; - }; - - // - // A reduce context, could be using montgomery or something better, depending - // on the `m` itself. - // - BN.red = function red (num) { - return new Red(num); - }; - - BN.prototype.toRed = function toRed (ctx) { - assert(!this.red, 'Already a number in reduction context'); - assert(this.negative === 0, 'red works only with positives'); - return ctx.convertTo(this)._forceRed(ctx); - }; - - BN.prototype.fromRed = function fromRed () { - assert(this.red, 'fromRed works only with numbers in reduction context'); - return this.red.convertFrom(this); - }; - - BN.prototype._forceRed = function _forceRed (ctx) { - this.red = ctx; - return this; - }; - - BN.prototype.forceRed = function forceRed (ctx) { - assert(!this.red, 'Already a number in reduction context'); - return this._forceRed(ctx); - }; - - BN.prototype.redAdd = function redAdd (num) { - assert(this.red, 'redAdd works only with red numbers'); - return this.red.add(this, num); - }; - - BN.prototype.redIAdd = function redIAdd (num) { - assert(this.red, 'redIAdd works only with red numbers'); - return this.red.iadd(this, num); - }; - - BN.prototype.redSub = function redSub (num) { - assert(this.red, 'redSub works only with red numbers'); - return this.red.sub(this, num); - }; - - BN.prototype.redISub = function redISub (num) { - assert(this.red, 'redISub works only with red numbers'); - return this.red.isub(this, num); - }; - - BN.prototype.redShl = function redShl (num) { - assert(this.red, 'redShl works only with red numbers'); - return this.red.shl(this, num); - }; - - BN.prototype.redMul = function redMul (num) { - assert(this.red, 'redMul works only with red numbers'); - this.red._verify2(this, num); - return this.red.mul(this, num); - }; - - BN.prototype.redIMul = function redIMul (num) { - assert(this.red, 'redMul works only with red numbers'); - this.red._verify2(this, num); - return this.red.imul(this, num); - }; - - BN.prototype.redSqr = function redSqr () { - assert(this.red, 'redSqr works only with red numbers'); - this.red._verify1(this); - return this.red.sqr(this); - }; - - BN.prototype.redISqr = function redISqr () { - assert(this.red, 'redISqr works only with red numbers'); - this.red._verify1(this); - return this.red.isqr(this); - }; - - // Square root over p - BN.prototype.redSqrt = function redSqrt () { - assert(this.red, 'redSqrt works only with red numbers'); - this.red._verify1(this); - return this.red.sqrt(this); - }; - - BN.prototype.redInvm = function redInvm () { - assert(this.red, 'redInvm works only with red numbers'); - this.red._verify1(this); - return this.red.invm(this); - }; - - // Return negative clone of `this` % `red modulo` - BN.prototype.redNeg = function redNeg () { - assert(this.red, 'redNeg works only with red numbers'); - this.red._verify1(this); - return this.red.neg(this); - }; - - BN.prototype.redPow = function redPow (num) { - assert(this.red && !num.red, 'redPow(normalNum)'); - this.red._verify1(this); - return this.red.pow(this, num); - }; - - // Prime numbers with efficient reduction - var primes = { - k256: null, - p224: null, - p192: null, - p25519: null + stack.values = function(x) { + if (!arguments.length) return values; + values = x; + return stack; + }; + stack.order = function(x) { + if (!arguments.length) return order; + order = typeof x === "function" ? x : d3_layout_stackOrders.get(x) || d3_layout_stackOrderDefault; + return stack; + }; + stack.offset = function(x) { + if (!arguments.length) return offset; + offset = typeof x === "function" ? x : d3_layout_stackOffsets.get(x) || d3_layout_stackOffsetZero; + return stack; + }; + stack.x = function(z) { + if (!arguments.length) return x; + x = z; + return stack; + }; + stack.y = function(z) { + if (!arguments.length) return y; + y = z; + return stack; + }; + stack.out = function(z) { + if (!arguments.length) return out; + out = z; + return stack; + }; + return stack; }; - - // Pseudo-Mersenne prime - function MPrime (name, p) { - // P = 2 ^ N - K - this.name = name; - this.p = new BN(p, 16); - this.n = this.p.bitLength(); - this.k = new BN(1).iushln(this.n).isub(this.p); - - this.tmp = this._tmp(); + function d3_layout_stackX(d) { + return d.x; } - - MPrime.prototype._tmp = function _tmp () { - var tmp = new BN(null); - tmp.words = new Array(Math.ceil(this.n / 13)); - return tmp; - }; - - MPrime.prototype.ireduce = function ireduce (num) { - // Assumes that `num` is less than `P^2` - // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P) - var r = num; - var rlen; - - do { - this.split(r, this.tmp); - r = this.imulK(r); - r = r.iadd(this.tmp); - rlen = r.bitLength(); - } while (rlen > this.n); - - var cmp = rlen < this.n ? -1 : r.ucmp(this.p); - if (cmp === 0) { - r.words[0] = 0; - r.length = 1; - } else if (cmp > 0) { - r.isub(this.p); - } else { - r.strip(); - } - - return r; - }; - - MPrime.prototype.split = function split (input, out) { - input.iushrn(this.n, 0, out); - }; - - MPrime.prototype.imulK = function imulK (num) { - return num.imul(this.k); - }; - - function K256 () { - MPrime.call( - this, - 'k256', - 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f'); + function d3_layout_stackY(d) { + return d.y; } - inherits(K256, MPrime); - - K256.prototype.split = function split (input, output) { - // 256 = 9 * 26 + 22 - var mask = 0x3fffff; - - var outLen = Math.min(input.length, 9); - for (var i = 0; i < outLen; i++) { - output.words[i] = input.words[i]; - } - output.length = outLen; - - if (input.length <= 9) { - input.words[0] = 0; - input.length = 1; - return; - } - - // Shift by 9 limbs - var prev = input.words[9]; - output.words[output.length++] = prev & mask; - - for (i = 10; i < input.length; i++) { - var next = input.words[i] | 0; - input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22); - prev = next; + function d3_layout_stackOut(d, y0, y) { + d.y0 = y0; + d.y = y; + } + var d3_layout_stackOrders = d3.map({ + "inside-out": function(data) { + var n = data.length, i, j, max = data.map(d3_layout_stackMaxIndex), sums = data.map(d3_layout_stackReduceSum), index = d3.range(n).sort(function(a, b) { + return max[a] - max[b]; + }), top = 0, bottom = 0, tops = [], bottoms = []; + for (i = 0; i < n; ++i) { + j = index[i]; + if (top < bottom) { + top += sums[j]; + tops.push(j); + } else { + bottom += sums[j]; + bottoms.push(j); + } + } + return bottoms.reverse().concat(tops); + }, + reverse: function(data) { + return d3.range(data.length).reverse(); + }, + "default": d3_layout_stackOrderDefault + }); + var d3_layout_stackOffsets = d3.map({ + silhouette: function(data) { + var n = data.length, m = data[0].length, sums = [], max = 0, i, j, o, y0 = []; + for (j = 0; j < m; ++j) { + for (i = 0, o = 0; i < n; i++) o += data[i][j][1]; + if (o > max) max = o; + sums.push(o); + } + for (j = 0; j < m; ++j) { + y0[j] = (max - sums[j]) / 2; + } + return y0; + }, + wiggle: function(data) { + var n = data.length, x = data[0], m = x.length, i, j, k, s1, s2, s3, dx, o, o0, y0 = []; + y0[0] = o = o0 = 0; + for (j = 1; j < m; ++j) { + for (i = 0, s1 = 0; i < n; ++i) s1 += data[i][j][1]; + for (i = 0, s2 = 0, dx = x[j][0] - x[j - 1][0]; i < n; ++i) { + for (k = 0, s3 = (data[i][j][1] - data[i][j - 1][1]) / (2 * dx); k < i; ++k) { + s3 += (data[k][j][1] - data[k][j - 1][1]) / dx; + } + s2 += s3 * data[i][j][1]; + } + y0[j] = o -= s1 ? s2 / s1 * dx : 0; + if (o < o0) o0 = o; + } + for (j = 0; j < m; ++j) y0[j] -= o0; + return y0; + }, + expand: function(data) { + var n = data.length, m = data[0].length, k = 1 / n, i, j, o, y0 = []; + for (j = 0; j < m; ++j) { + for (i = 0, o = 0; i < n; i++) o += data[i][j][1]; + if (o) for (i = 0; i < n; i++) data[i][j][1] /= o; else for (i = 0; i < n; i++) data[i][j][1] = k; + } + for (j = 0; j < m; ++j) y0[j] = 0; + return y0; + }, + zero: d3_layout_stackOffsetZero + }); + function d3_layout_stackOrderDefault(data) { + return d3.range(data.length); + } + function d3_layout_stackOffsetZero(data) { + var j = -1, m = data[0].length, y0 = []; + while (++j < m) y0[j] = 0; + return y0; + } + function d3_layout_stackMaxIndex(array) { + var i = 1, j = 0, v = array[0][1], k, n = array.length; + for (;i < n; ++i) { + if ((k = array[i][1]) > v) { + j = i; + v = k; + } } - prev >>>= 22; - input.words[i - 10] = prev; - if (prev === 0 && input.length > 10) { - input.length -= 10; - } else { - input.length -= 9; + return j; + } + function d3_layout_stackReduceSum(d) { + return d.reduce(d3_layout_stackSum, 0); + } + function d3_layout_stackSum(p, d) { + return p + d[1]; + } + d3.layout.histogram = function() { + var frequency = true, valuer = Number, ranger = d3_layout_histogramRange, binner = d3_layout_histogramBinSturges; + function histogram(data, i) { + var bins = [], values = data.map(valuer, this), range = ranger.call(this, values, i), thresholds = binner.call(this, range, values, i), bin, i = -1, n = values.length, m = thresholds.length - 1, k = frequency ? 1 : 1 / n, x; + while (++i < m) { + bin = bins[i] = []; + bin.dx = thresholds[i + 1] - (bin.x = thresholds[i]); + bin.y = 0; + } + if (m > 0) { + i = -1; + while (++i < n) { + x = values[i]; + if (x >= range[0] && x <= range[1]) { + bin = bins[d3.bisect(thresholds, x, 1, m) - 1]; + bin.y += k; + bin.push(data[i]); + } + } + } + return bins; } + histogram.value = function(x) { + if (!arguments.length) return valuer; + valuer = x; + return histogram; + }; + histogram.range = function(x) { + if (!arguments.length) return ranger; + ranger = d3_functor(x); + return histogram; + }; + histogram.bins = function(x) { + if (!arguments.length) return binner; + binner = typeof x === "number" ? function(range) { + return d3_layout_histogramBinFixed(range, x); + } : d3_functor(x); + return histogram; + }; + histogram.frequency = function(x) { + if (!arguments.length) return frequency; + frequency = !!x; + return histogram; + }; + return histogram; }; - - K256.prototype.imulK = function imulK (num) { - // K = 0x1000003d1 = [ 0x40, 0x3d1 ] - num.words[num.length] = 0; - num.words[num.length + 1] = 0; - num.length += 2; - - // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390 - var lo = 0; - for (var i = 0; i < num.length; i++) { - var w = num.words[i] | 0; - lo += w * 0x3d1; - num.words[i] = lo & 0x3ffffff; - lo = w * 0x40 + ((lo / 0x4000000) | 0); - } - - // Fast length reduction - if (num.words[num.length - 1] === 0) { - num.length--; - if (num.words[num.length - 1] === 0) { - num.length--; + function d3_layout_histogramBinSturges(range, values) { + return d3_layout_histogramBinFixed(range, Math.ceil(Math.log(values.length) / Math.LN2 + 1)); + } + function d3_layout_histogramBinFixed(range, n) { + var x = -1, b = +range[0], m = (range[1] - b) / n, f = []; + while (++x <= n) f[x] = m * x + b; + return f; + } + function d3_layout_histogramRange(values) { + return [ d3.min(values), d3.max(values) ]; + } + d3.layout.pack = function() { + var hierarchy = d3.layout.hierarchy().sort(d3_layout_packSort), padding = 0, size = [ 1, 1 ], radius; + function pack(d, i) { + var nodes = hierarchy.call(this, d, i), root = nodes[0], w = size[0], h = size[1], r = radius == null ? Math.sqrt : typeof radius === "function" ? radius : function() { + return radius; + }; + root.x = root.y = 0; + d3_layout_hierarchyVisitAfter(root, function(d) { + d.r = +r(d.value); + }); + d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings); + if (padding) { + var dr = padding * (radius ? 1 : Math.max(2 * root.r / w, 2 * root.r / h)) / 2; + d3_layout_hierarchyVisitAfter(root, function(d) { + d.r += dr; + }); + d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings); + d3_layout_hierarchyVisitAfter(root, function(d) { + d.r -= dr; + }); } + d3_layout_packTransform(root, w / 2, h / 2, radius ? 1 : 1 / Math.max(2 * root.r / w, 2 * root.r / h)); + return nodes; } - return num; + pack.size = function(_) { + if (!arguments.length) return size; + size = _; + return pack; + }; + pack.radius = function(_) { + if (!arguments.length) return radius; + radius = _ == null || typeof _ === "function" ? _ : +_; + return pack; + }; + pack.padding = function(_) { + if (!arguments.length) return padding; + padding = +_; + return pack; + }; + return d3_layout_hierarchyRebind(pack, hierarchy); }; - - function P224 () { - MPrime.call( - this, - 'p224', - 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001'); + function d3_layout_packSort(a, b) { + return a.value - b.value; } - inherits(P224, MPrime); - - function P192 () { - MPrime.call( - this, - 'p192', - 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff'); + function d3_layout_packInsert(a, b) { + var c = a._pack_next; + a._pack_next = b; + b._pack_prev = a; + b._pack_next = c; + c._pack_prev = b; } - inherits(P192, MPrime); - - function P25519 () { - // 2 ^ 255 - 19 - MPrime.call( - this, - '25519', - '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed'); + function d3_layout_packSplice(a, b) { + a._pack_next = b; + b._pack_prev = a; } - inherits(P25519, MPrime); - - P25519.prototype.imulK = function imulK (num) { - // K = 0x13 - var carry = 0; - for (var i = 0; i < num.length; i++) { - var hi = (num.words[i] | 0) * 0x13 + carry; - var lo = hi & 0x3ffffff; - hi >>>= 26; - - num.words[i] = lo; - carry = hi; + function d3_layout_packIntersects(a, b) { + var dx = b.x - a.x, dy = b.y - a.y, dr = a.r + b.r; + return .999 * dr * dr > dx * dx + dy * dy; + } + function d3_layout_packSiblings(node) { + if (!(nodes = node.children) || !(n = nodes.length)) return; + var nodes, xMin = Infinity, xMax = -Infinity, yMin = Infinity, yMax = -Infinity, a, b, c, i, j, k, n; + function bound(node) { + xMin = Math.min(node.x - node.r, xMin); + xMax = Math.max(node.x + node.r, xMax); + yMin = Math.min(node.y - node.r, yMin); + yMax = Math.max(node.y + node.r, yMax); } - if (carry !== 0) { - num.words[num.length++] = carry; + nodes.forEach(d3_layout_packLink); + a = nodes[0]; + a.x = -a.r; + a.y = 0; + bound(a); + if (n > 1) { + b = nodes[1]; + b.x = b.r; + b.y = 0; + bound(b); + if (n > 2) { + c = nodes[2]; + d3_layout_packPlace(a, b, c); + bound(c); + d3_layout_packInsert(a, c); + a._pack_prev = c; + d3_layout_packInsert(c, b); + b = a._pack_next; + for (i = 3; i < n; i++) { + d3_layout_packPlace(a, b, c = nodes[i]); + var isect = 0, s1 = 1, s2 = 1; + for (j = b._pack_next; j !== b; j = j._pack_next, s1++) { + if (d3_layout_packIntersects(j, c)) { + isect = 1; + break; + } + } + if (isect == 1) { + for (k = a._pack_prev; k !== j._pack_prev; k = k._pack_prev, s2++) { + if (d3_layout_packIntersects(k, c)) { + break; + } + } + } + if (isect) { + if (s1 < s2 || s1 == s2 && b.r < a.r) d3_layout_packSplice(a, b = j); else d3_layout_packSplice(a = k, b); + i--; + } else { + d3_layout_packInsert(a, c); + b = c; + bound(c); + } + } + } } - return num; - }; - - // Exported mostly for testing purposes, use plain name instead - BN._prime = function prime (name) { - // Cached version of prime - if (primes[name]) return primes[name]; - - var prime; - if (name === 'k256') { - prime = new K256(); - } else if (name === 'p224') { - prime = new P224(); - } else if (name === 'p192') { - prime = new P192(); - } else if (name === 'p25519') { - prime = new P25519(); - } else { - throw new Error('Unknown prime ' + name); + var cx = (xMin + xMax) / 2, cy = (yMin + yMax) / 2, cr = 0; + for (i = 0; i < n; i++) { + c = nodes[i]; + c.x -= cx; + c.y -= cy; + cr = Math.max(cr, c.r + Math.sqrt(c.x * c.x + c.y * c.y)); } - primes[name] = prime; - - return prime; - }; - - // - // Base reduction engine - // - function Red (m) { - if (typeof m === 'string') { - var prime = BN._prime(m); - this.m = prime.p; - this.prime = prime; + node.r = cr; + nodes.forEach(d3_layout_packUnlink); + } + function d3_layout_packLink(node) { + node._pack_next = node._pack_prev = node; + } + function d3_layout_packUnlink(node) { + delete node._pack_next; + delete node._pack_prev; + } + function d3_layout_packTransform(node, x, y, k) { + var children = node.children; + node.x = x += k * node.x; + node.y = y += k * node.y; + node.r *= k; + if (children) { + var i = -1, n = children.length; + while (++i < n) d3_layout_packTransform(children[i], x, y, k); + } + } + function d3_layout_packPlace(a, b, c) { + var db = a.r + c.r, dx = b.x - a.x, dy = b.y - a.y; + if (db && (dx || dy)) { + var da = b.r + c.r, dc = dx * dx + dy * dy; + da *= da; + db *= db; + var x = .5 + (db - da) / (2 * dc), y = Math.sqrt(Math.max(0, 2 * da * (db + dc) - (db -= dc) * db - da * da)) / (2 * dc); + c.x = a.x + x * dx + y * dy; + c.y = a.y + x * dy - y * dx; } else { - assert(m.gtn(1), 'modulus must be greater than 1'); - this.m = m; - this.prime = null; + c.x = a.x + db; + c.y = a.y; } } - - Red.prototype._verify1 = function _verify1 (a) { - assert(a.negative === 0, 'red works only with positives'); - assert(a.red, 'red works only with red numbers'); - }; - - Red.prototype._verify2 = function _verify2 (a, b) { - assert((a.negative | b.negative) === 0, 'red works only with positives'); - assert(a.red && a.red === b.red, - 'red works only with red numbers'); - }; - - Red.prototype.imod = function imod (a) { - if (this.prime) return this.prime.ireduce(a)._forceRed(this); - return a.umod(this.m)._forceRed(this); - }; - - Red.prototype.neg = function neg (a) { - if (a.isZero()) { - return a.clone(); + d3.layout.tree = function() { + var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ], nodeSize = null; + function tree(d, i) { + var nodes = hierarchy.call(this, d, i), root0 = nodes[0], root1 = wrapTree(root0); + d3_layout_hierarchyVisitAfter(root1, firstWalk), root1.parent.m = -root1.z; + d3_layout_hierarchyVisitBefore(root1, secondWalk); + if (nodeSize) d3_layout_hierarchyVisitBefore(root0, sizeNode); else { + var left = root0, right = root0, bottom = root0; + d3_layout_hierarchyVisitBefore(root0, function(node) { + if (node.x < left.x) left = node; + if (node.x > right.x) right = node; + if (node.depth > bottom.depth) bottom = node; + }); + var tx = separation(left, right) / 2 - left.x, kx = size[0] / (right.x + separation(right, left) / 2 + tx), ky = size[1] / (bottom.depth || 1); + d3_layout_hierarchyVisitBefore(root0, function(node) { + node.x = (node.x + tx) * kx; + node.y = node.depth * ky; + }); + } + return nodes; } - - return this.m.sub(a)._forceRed(this); - }; - - Red.prototype.add = function add (a, b) { - this._verify2(a, b); - - var res = a.add(b); - if (res.cmp(this.m) >= 0) { - res.isub(this.m); + function wrapTree(root0) { + var root1 = { + A: null, + children: [ root0 ] + }, queue = [ root1 ], node1; + while ((node1 = queue.pop()) != null) { + for (var children = node1.children, child, i = 0, n = children.length; i < n; ++i) { + queue.push((children[i] = child = { + _: children[i], + parent: node1, + children: (child = children[i].children) && child.slice() || [], + A: null, + a: null, + z: 0, + m: 0, + c: 0, + s: 0, + t: null, + i: i + }).a = child); + } + } + return root1.children[0]; } - return res._forceRed(this); - }; - - Red.prototype.iadd = function iadd (a, b) { - this._verify2(a, b); - - var res = a.iadd(b); - if (res.cmp(this.m) >= 0) { - res.isub(this.m); + function firstWalk(v) { + var children = v.children, siblings = v.parent.children, w = v.i ? siblings[v.i - 1] : null; + if (children.length) { + d3_layout_treeShift(v); + var midpoint = (children[0].z + children[children.length - 1].z) / 2; + if (w) { + v.z = w.z + separation(v._, w._); + v.m = v.z - midpoint; + } else { + v.z = midpoint; + } + } else if (w) { + v.z = w.z + separation(v._, w._); + } + v.parent.A = apportion(v, w, v.parent.A || siblings[0]); } - return res; - }; - - Red.prototype.sub = function sub (a, b) { - this._verify2(a, b); - - var res = a.sub(b); - if (res.cmpn(0) < 0) { - res.iadd(this.m); + function secondWalk(v) { + v._.x = v.z + v.parent.m; + v.m += v.parent.m; } - return res._forceRed(this); - }; - - Red.prototype.isub = function isub (a, b) { - this._verify2(a, b); - - var res = a.isub(b); - if (res.cmpn(0) < 0) { - res.iadd(this.m); + function apportion(v, w, ancestor) { + if (w) { + var vip = v, vop = v, vim = w, vom = vip.parent.children[0], sip = vip.m, sop = vop.m, sim = vim.m, som = vom.m, shift; + while (vim = d3_layout_treeRight(vim), vip = d3_layout_treeLeft(vip), vim && vip) { + vom = d3_layout_treeLeft(vom); + vop = d3_layout_treeRight(vop); + vop.a = v; + shift = vim.z + sim - vip.z - sip + separation(vim._, vip._); + if (shift > 0) { + d3_layout_treeMove(d3_layout_treeAncestor(vim, v, ancestor), v, shift); + sip += shift; + sop += shift; + } + sim += vim.m; + sip += vip.m; + som += vom.m; + sop += vop.m; + } + if (vim && !d3_layout_treeRight(vop)) { + vop.t = vim; + vop.m += sim - sop; + } + if (vip && !d3_layout_treeLeft(vom)) { + vom.t = vip; + vom.m += sip - som; + ancestor = v; + } + } + return ancestor; } - return res; - }; - - Red.prototype.shl = function shl (a, num) { - this._verify1(a); - return this.imod(a.ushln(num)); - }; - - Red.prototype.imul = function imul (a, b) { - this._verify2(a, b); - return this.imod(a.imul(b)); - }; - - Red.prototype.mul = function mul (a, b) { - this._verify2(a, b); - return this.imod(a.mul(b)); - }; - - Red.prototype.isqr = function isqr (a) { - return this.imul(a, a.clone()); - }; - - Red.prototype.sqr = function sqr (a) { - return this.mul(a, a); + function sizeNode(node) { + node.x *= size[0]; + node.y = node.depth * size[1]; + } + tree.separation = function(x) { + if (!arguments.length) return separation; + separation = x; + return tree; + }; + tree.size = function(x) { + if (!arguments.length) return nodeSize ? null : size; + nodeSize = (size = x) == null ? sizeNode : null; + return tree; + }; + tree.nodeSize = function(x) { + if (!arguments.length) return nodeSize ? size : null; + nodeSize = (size = x) == null ? null : sizeNode; + return tree; + }; + return d3_layout_hierarchyRebind(tree, hierarchy); }; - - Red.prototype.sqrt = function sqrt (a) { - if (a.isZero()) return a.clone(); - - var mod3 = this.m.andln(3); - assert(mod3 % 2 === 1); - - // Fast case - if (mod3 === 3) { - var pow = this.m.add(new BN(1)).iushrn(2); - return this.pow(a, pow); + function d3_layout_treeSeparation(a, b) { + return a.parent == b.parent ? 1 : 2; + } + function d3_layout_treeLeft(v) { + var children = v.children; + return children.length ? children[0] : v.t; + } + function d3_layout_treeRight(v) { + var children = v.children, n; + return (n = children.length) ? children[n - 1] : v.t; + } + function d3_layout_treeMove(wm, wp, shift) { + var change = shift / (wp.i - wm.i); + wp.c -= change; + wp.s += shift; + wm.c += change; + wp.z += shift; + wp.m += shift; + } + function d3_layout_treeShift(v) { + var shift = 0, change = 0, children = v.children, i = children.length, w; + while (--i >= 0) { + w = children[i]; + w.z += shift; + w.m += shift; + shift += w.s + (change += w.c); } - - // Tonelli-Shanks algorithm (Totally unoptimized and slow) - // - // Find Q and S, that Q * 2 ^ S = (P - 1) - var q = this.m.subn(1); - var s = 0; - while (!q.isZero() && q.andln(1) === 0) { - s++; - q.iushrn(1); - } - assert(!q.isZero()); - - var one = new BN(1).toRed(this); - var nOne = one.redNeg(); - - // Find quadratic non-residue - // NOTE: Max is such because of generalized Riemann hypothesis. - var lpow = this.m.subn(1).iushrn(1); - var z = this.m.bitLength(); - z = new BN(2 * z * z).toRed(this); - - while (this.pow(z, lpow).cmp(nOne) !== 0) { - z.redIAdd(nOne); - } - - var c = this.pow(z, q); - var r = this.pow(a, q.addn(1).iushrn(1)); - var t = this.pow(a, q); - var m = s; - while (t.cmp(one) !== 0) { - var tmp = t; - for (var i = 0; tmp.cmp(one) !== 0; i++) { - tmp = tmp.redSqr(); - } - assert(i < m); - var b = this.pow(c, new BN(1).iushln(m - i - 1)); - - r = r.redMul(b); - c = b.redSqr(); - t = t.redMul(c); - m = i; - } - - return r; - }; - - Red.prototype.invm = function invm (a) { - var inv = a._invmp(this.m); - if (inv.negative !== 0) { - inv.negative = 0; - return this.imod(inv).redNeg(); - } else { - return this.imod(inv); + } + function d3_layout_treeAncestor(vim, v, ancestor) { + return vim.a.parent === v.parent ? vim.a : ancestor; + } + d3.layout.cluster = function() { + var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ], nodeSize = false; + function cluster(d, i) { + var nodes = hierarchy.call(this, d, i), root = nodes[0], previousNode, x = 0; + d3_layout_hierarchyVisitAfter(root, function(node) { + var children = node.children; + if (children && children.length) { + node.x = d3_layout_clusterX(children); + node.y = d3_layout_clusterY(children); + } else { + node.x = previousNode ? x += separation(node, previousNode) : 0; + node.y = 0; + previousNode = node; + } + }); + var left = d3_layout_clusterLeft(root), right = d3_layout_clusterRight(root), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2; + d3_layout_hierarchyVisitAfter(root, nodeSize ? function(node) { + node.x = (node.x - root.x) * size[0]; + node.y = (root.y - node.y) * size[1]; + } : function(node) { + node.x = (node.x - x0) / (x1 - x0) * size[0]; + node.y = (1 - (root.y ? node.y / root.y : 1)) * size[1]; + }); + return nodes; } + cluster.separation = function(x) { + if (!arguments.length) return separation; + separation = x; + return cluster; + }; + cluster.size = function(x) { + if (!arguments.length) return nodeSize ? null : size; + nodeSize = (size = x) == null; + return cluster; + }; + cluster.nodeSize = function(x) { + if (!arguments.length) return nodeSize ? size : null; + nodeSize = (size = x) != null; + return cluster; + }; + return d3_layout_hierarchyRebind(cluster, hierarchy); }; - - Red.prototype.pow = function pow (a, num) { - if (num.isZero()) return new BN(1).toRed(this); - if (num.cmpn(1) === 0) return a.clone(); - - var windowSize = 4; - var wnd = new Array(1 << windowSize); - wnd[0] = new BN(1).toRed(this); - wnd[1] = a; - for (var i = 2; i < wnd.length; i++) { - wnd[i] = this.mul(wnd[i - 1], a); - } - - var res = wnd[0]; - var current = 0; - var currentLen = 0; - var start = num.bitLength() % 26; - if (start === 0) { - start = 26; + function d3_layout_clusterY(children) { + return 1 + d3.max(children, function(child) { + return child.y; + }); + } + function d3_layout_clusterX(children) { + return children.reduce(function(x, child) { + return x + child.x; + }, 0) / children.length; + } + function d3_layout_clusterLeft(node) { + var children = node.children; + return children && children.length ? d3_layout_clusterLeft(children[0]) : node; + } + function d3_layout_clusterRight(node) { + var children = node.children, n; + return children && (n = children.length) ? d3_layout_clusterRight(children[n - 1]) : node; + } + d3.layout.treemap = function() { + var hierarchy = d3.layout.hierarchy(), round = Math.round, size = [ 1, 1 ], padding = null, pad = d3_layout_treemapPadNull, sticky = false, stickies, mode = "squarify", ratio = .5 * (1 + Math.sqrt(5)); + function scale(children, k) { + var i = -1, n = children.length, child, area; + while (++i < n) { + area = (child = children[i]).value * (k < 0 ? 0 : k); + child.area = isNaN(area) || area <= 0 ? 0 : area; + } } - - for (i = num.length - 1; i >= 0; i--) { - var word = num.words[i]; - for (var j = start - 1; j >= 0; j--) { - var bit = (word >> j) & 1; - if (res !== wnd[0]) { - res = this.sqr(res); + function squarify(node) { + var children = node.children; + if (children && children.length) { + var rect = pad(node), row = [], remaining = children.slice(), child, best = Infinity, score, u = mode === "slice" ? rect.dx : mode === "dice" ? rect.dy : mode === "slice-dice" ? node.depth & 1 ? rect.dy : rect.dx : Math.min(rect.dx, rect.dy), n; + scale(remaining, rect.dx * rect.dy / node.value); + row.area = 0; + while ((n = remaining.length) > 0) { + row.push(child = remaining[n - 1]); + row.area += child.area; + if (mode !== "squarify" || (score = worst(row, u)) <= best) { + remaining.pop(); + best = score; + } else { + row.area -= row.pop().area; + position(row, u, rect, false); + u = Math.min(rect.dx, rect.dy); + row.length = row.area = 0; + best = Infinity; + } } - - if (bit === 0 && current === 0) { - currentLen = 0; - continue; + if (row.length) { + position(row, u, rect, true); + row.length = row.area = 0; } - - current <<= 1; - current |= bit; - currentLen++; - if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue; - - res = this.mul(res, wnd[current]); - currentLen = 0; - current = 0; + children.forEach(squarify); } - start = 26; } - - return res; - }; - - Red.prototype.convertTo = function convertTo (num) { - var r = num.umod(this.m); - - return r === num ? r.clone() : r; - }; - - Red.prototype.convertFrom = function convertFrom (num) { - var res = num.clone(); - res.red = null; - return res; - }; - - // - // Montgomery method engine - // - - BN.mont = function mont (num) { - return new Mont(num); - }; - - function Mont (m) { - Red.call(this, m); - - this.shift = this.m.bitLength(); - if (this.shift % 26 !== 0) { - this.shift += 26 - (this.shift % 26); + function stickify(node) { + var children = node.children; + if (children && children.length) { + var rect = pad(node), remaining = children.slice(), child, row = []; + scale(remaining, rect.dx * rect.dy / node.value); + row.area = 0; + while (child = remaining.pop()) { + row.push(child); + row.area += child.area; + if (child.z != null) { + position(row, child.z ? rect.dx : rect.dy, rect, !remaining.length); + row.length = row.area = 0; + } + } + children.forEach(stickify); + } } - - this.r = new BN(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); - } - inherits(Mont, Red); - - Mont.prototype.convertTo = function convertTo (num) { - return this.imod(num.ushln(this.shift)); - }; - - Mont.prototype.convertFrom = function convertFrom (num) { - var r = this.imod(num.mul(this.rinv)); - r.red = null; - return r; - }; - - Mont.prototype.imul = function imul (a, b) { - if (a.isZero() || b.isZero()) { - a.words[0] = 0; - a.length = 1; - return a; + function worst(row, u) { + var s = row.area, r, rmax = 0, rmin = Infinity, i = -1, n = row.length; + while (++i < n) { + if (!(r = row[i].area)) continue; + if (r < rmin) rmin = r; + if (r > rmax) rmax = r; + } + s *= s; + u *= u; + return s ? Math.max(u * rmax * ratio / s, s / (u * rmin * ratio)) : Infinity; } - - var t = a.imul(b); - var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m); - var u = t.isub(c).iushrn(this.shift); - var res = u; - - if (u.cmp(this.m) >= 0) { - res = u.isub(this.m); - } else if (u.cmpn(0) < 0) { - res = u.iadd(this.m); + function position(row, u, rect, flush) { + var i = -1, n = row.length, x = rect.x, y = rect.y, v = u ? round(row.area / u) : 0, o; + if (u == rect.dx) { + if (flush || v > rect.dy) v = rect.dy; + while (++i < n) { + o = row[i]; + o.x = x; + o.y = y; + o.dy = v; + x += o.dx = Math.min(rect.x + rect.dx - x, v ? round(o.area / v) : 0); + } + o.z = true; + o.dx += rect.x + rect.dx - x; + rect.y += v; + rect.dy -= v; + } else { + if (flush || v > rect.dx) v = rect.dx; + while (++i < n) { + o = row[i]; + o.x = x; + o.y = y; + o.dx = v; + y += o.dy = Math.min(rect.y + rect.dy - y, v ? round(o.area / v) : 0); + } + o.z = false; + o.dy += rect.y + rect.dy - y; + rect.x += v; + rect.dx -= v; + } } - - return res._forceRed(this); - }; - - Mont.prototype.mul = function mul (a, b) { - if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this); - - var t = a.mul(b); - var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m); - var u = t.isub(c).iushrn(this.shift); - var res = u; - if (u.cmp(this.m) >= 0) { - res = u.isub(this.m); - } else if (u.cmpn(0) < 0) { - res = u.iadd(this.m); + function treemap(d) { + var nodes = stickies || hierarchy(d), root = nodes[0]; + root.x = root.y = 0; + if (root.value) root.dx = size[0], root.dy = size[1]; else root.dx = root.dy = 0; + if (stickies) hierarchy.revalue(root); + scale([ root ], root.dx * root.dy / root.value); + (stickies ? stickify : squarify)(root); + if (sticky) stickies = nodes; + return nodes; } - - return res._forceRed(this); - }; - - Mont.prototype.invm = function invm (a) { - // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R - var res = this.imod(a._invmp(this.m).mul(this.r2)); - return res._forceRed(this); - }; -})(typeof module === 'undefined' || module, this); - -},{"buffer":108}],100:[function(_dereq_,module,exports){ -'use strict' - -module.exports = boundary - -function boundary (cells) { - var i, j, k - var n = cells.length - var sz = 0 - for (i = 0; i < n; ++i) { - sz += cells[i].length - } - var result = new Array(sz) - var ptr = 0 - for (i = 0; i < n; ++i) { - var c = cells[i] - var d = c.length - for (j = 0; j < d; ++j) { - var b = result[ptr++] = new Array(d - 1) - var p = 0 - for (k = 0; k < d; ++k) { - if (k === j) { - continue - } - b[p++] = c[k] + treemap.size = function(x) { + if (!arguments.length) return size; + size = x; + return treemap; + }; + treemap.padding = function(x) { + if (!arguments.length) return padding; + function padFunction(node) { + var p = x.call(treemap, node, node.depth); + return p == null ? d3_layout_treemapPadNull(node) : d3_layout_treemapPad(node, typeof p === "number" ? [ p, p, p, p ] : p); } - if (j & 1) { - var tmp = b[1] - b[1] = b[0] - b[0] = tmp + function padConstant(node) { + return d3_layout_treemapPad(node, x); } - } + var type; + pad = (padding = x) == null ? d3_layout_treemapPadNull : (type = typeof x) === "function" ? padFunction : type === "number" ? (x = [ x, x, x, x ], + padConstant) : padConstant; + return treemap; + }; + treemap.round = function(x) { + if (!arguments.length) return round != Number; + round = x ? Math.round : Number; + return treemap; + }; + treemap.sticky = function(x) { + if (!arguments.length) return sticky; + sticky = x; + stickies = null; + return treemap; + }; + treemap.ratio = function(x) { + if (!arguments.length) return ratio; + ratio = x; + return treemap; + }; + treemap.mode = function(x) { + if (!arguments.length) return mode; + mode = x + ""; + return treemap; + }; + return d3_layout_hierarchyRebind(treemap, hierarchy); + }; + function d3_layout_treemapPadNull(node) { + return { + x: node.x, + y: node.y, + dx: node.dx, + dy: node.dy + }; } - return result -} - -},{}],101:[function(_dereq_,module,exports){ -'use strict' - -module.exports = boxIntersectWrapper - -var pool = _dereq_('typedarray-pool') -var sweep = _dereq_('./lib/sweep') -var boxIntersectIter = _dereq_('./lib/intersect') - -function boxEmpty(d, box) { - for(var j=0; j 1); + return µ + σ * x * Math.sqrt(-2 * Math.log(r) / r); + }; + }, + logNormal: function() { + var random = d3.random.normal.apply(d3, arguments); + return function() { + return Math.exp(random()); + }; + }, + bates: function(m) { + var random = d3.random.irwinHall(m); + return function() { + return random() / m; + }; + }, + irwinHall: function(m) { + return function() { + for (var s = 0, j = 0; j < m; j++) s += Math.random(); + return s; + }; } - ids[count++] = i + }; + d3.scale = {}; + function d3_scaleExtent(domain) { + var start = domain[0], stop = domain[domain.length - 1]; + return start < stop ? [ start, stop ] : [ stop, start ]; } - return count -} - -//Perform type conversions, check bounds -function boxIntersect(red, blue, visit, full) { - var n = red.length - var m = blue.length - - //If either array is empty, then we can skip this whole thing - if(n <= 0 || m <= 0) { - return + function d3_scaleRange(scale) { + return scale.rangeExtent ? scale.rangeExtent() : d3_scaleExtent(scale.range()); } - - //Compute dimension, if it is 0 then we skip - var d = (red[0].length)>>>1 - if(d <= 0) { - return + function d3_scale_bilinear(domain, range, uninterpolate, interpolate) { + var u = uninterpolate(domain[0], domain[1]), i = interpolate(range[0], range[1]); + return function(x) { + return i(u(x)); + }; } - - var retval - - //Convert red boxes - var redList = pool.mallocDouble(2*d*n) - var redIds = pool.mallocInt32(n) - n = convertBoxes(red, d, redList, redIds) - - if(n > 0) { - if(d === 1 && full) { - //Special case: 1d complete - sweep.init(n) - retval = sweep.sweepComplete( - d, visit, - 0, n, redList, redIds, - 0, n, redList, redIds) - } else { - - //Convert blue boxes - var blueList = pool.mallocDouble(2*d*m) - var blueIds = pool.mallocInt32(m) - m = convertBoxes(blue, d, blueList, blueIds) - - if(m > 0) { - sweep.init(n+m) - - if(d === 1) { - //Special case: 1d bipartite - retval = sweep.sweepBipartite( - d, visit, - 0, n, redList, redIds, - 0, m, blueList, blueIds) - } else { - //General case: d>1 - retval = boxIntersectIter( - d, visit, full, - n, redList, redIds, - m, blueList, blueIds) - } - - pool.free(blueList) - pool.free(blueIds) - } + function d3_scale_nice(domain, nice) { + var i0 = 0, i1 = domain.length - 1, x0 = domain[i0], x1 = domain[i1], dx; + if (x1 < x0) { + dx = i0, i0 = i1, i1 = dx; + dx = x0, x0 = x1, x1 = dx; } - - pool.free(redList) - pool.free(redIds) + domain[i0] = nice.floor(x0); + domain[i1] = nice.ceil(x1); + return domain; } - - return retval -} - - -var RESULT - -function appendItem(i,j) { - RESULT.push([i,j]) -} - -function intersectFullArray(x) { - RESULT = [] - boxIntersect(x, x, appendItem, true) - return RESULT -} - -function intersectBipartiteArray(x, y) { - RESULT = [] - boxIntersect(x, y, appendItem, false) - return RESULT -} - -//User-friendly wrapper, handle full input and no-visitor cases -function boxIntersectWrapper(arg0, arg1, arg2) { - var result - switch(arguments.length) { - case 1: - return intersectFullArray(arg0) - case 2: - if(typeof arg1 === 'function') { - return boxIntersect(arg0, arg0, arg1, true) - } else { - return intersectBipartiteArray(arg0, arg1) + function d3_scale_niceStep(step) { + return step ? { + floor: function(x) { + return Math.floor(x / step) * step; + }, + ceil: function(x) { + return Math.ceil(x / step) * step; } - case 3: - return boxIntersect(arg0, arg1, arg2, false) - default: - throw new Error('box-intersect: Invalid arguments') + } : d3_scale_niceIdentity; } -} -},{"./lib/intersect":103,"./lib/sweep":107,"typedarray-pool":595}],102:[function(_dereq_,module,exports){ -'use strict' - -var DIMENSION = 'd' -var AXIS = 'ax' -var VISIT = 'vv' -var FLIP = 'fp' - -var ELEM_SIZE = 'es' - -var RED_START = 'rs' -var RED_END = 're' -var RED_BOXES = 'rb' -var RED_INDEX = 'ri' -var RED_PTR = 'rp' - -var BLUE_START = 'bs' -var BLUE_END = 'be' -var BLUE_BOXES = 'bb' -var BLUE_INDEX = 'bi' -var BLUE_PTR = 'bp' - -var RETVAL = 'rv' - -var INNER_LABEL = 'Q' - -var ARGS = [ - DIMENSION, - AXIS, - VISIT, - RED_START, - RED_END, - RED_BOXES, - RED_INDEX, - BLUE_START, - BLUE_END, - BLUE_BOXES, - BLUE_INDEX -] - -function generateBruteForce(redMajor, flip, full) { - var funcName = 'bruteForce' + - (redMajor ? 'Red' : 'Blue') + - (flip ? 'Flip' : '') + - (full ? 'Full' : '') - - var code = ['function ', funcName, '(', ARGS.join(), '){', - 'var ', ELEM_SIZE, '=2*', DIMENSION, ';'] - - var redLoop = - 'for(var i=' + RED_START + ',' + RED_PTR + '=' + ELEM_SIZE + '*' + RED_START + ';' + - 'i<' + RED_END +';' + - '++i,' + RED_PTR + '+=' + ELEM_SIZE + '){' + - 'var x0=' + RED_BOXES + '[' + AXIS + '+' + RED_PTR + '],' + - 'x1=' + RED_BOXES + '[' + AXIS + '+' + RED_PTR + '+' + DIMENSION + '],' + - 'xi=' + RED_INDEX + '[i];' - - var blueLoop = - 'for(var j=' + BLUE_START + ',' + BLUE_PTR + '=' + ELEM_SIZE + '*' + BLUE_START + ';' + - 'j<' + BLUE_END + ';' + - '++j,' + BLUE_PTR + '+=' + ELEM_SIZE + '){' + - 'var y0=' + BLUE_BOXES + '[' + AXIS + '+' + BLUE_PTR + '],' + - (full ? 'y1=' + BLUE_BOXES + '[' + AXIS + '+' + BLUE_PTR + '+' + DIMENSION + '],' : '') + - 'yi=' + BLUE_INDEX + '[j];' - - if(redMajor) { - code.push(redLoop, INNER_LABEL, ':', blueLoop) - } else { - code.push(blueLoop, INNER_LABEL, ':', redLoop) + var d3_scale_niceIdentity = { + floor: d3_identity, + ceil: d3_identity + }; + function d3_scale_polylinear(domain, range, uninterpolate, interpolate) { + var u = [], i = [], j = 0, k = Math.min(domain.length, range.length) - 1; + if (domain[k] < domain[0]) { + domain = domain.slice().reverse(); + range = range.slice().reverse(); + } + while (++j <= k) { + u.push(uninterpolate(domain[j - 1], domain[j])); + i.push(interpolate(range[j - 1], range[j])); + } + return function(x) { + var j = d3.bisect(domain, x, 1, k) - 1; + return i[j](u[j](x)); + }; } - - if(full) { - code.push('if(y1 2 ? d3_scale_polylinear : d3_scale_bilinear, uninterpolate = clamp ? d3_uninterpolateClamp : d3_uninterpolateNumber; + output = linear(domain, range, uninterpolate, interpolate); + input = linear(range, domain, uninterpolate, d3_interpolate); + return scale; + } + function scale(x) { + return output(x); + } + scale.invert = function(y) { + return input(y); + }; + scale.domain = function(x) { + if (!arguments.length) return domain; + domain = x.map(Number); + return rescale(); + }; + scale.range = function(x) { + if (!arguments.length) return range; + range = x; + return rescale(); + }; + scale.rangeRound = function(x) { + return scale.range(x).interpolate(d3_interpolateRound); + }; + scale.clamp = function(x) { + if (!arguments.length) return clamp; + clamp = x; + return rescale(); + }; + scale.interpolate = function(x) { + if (!arguments.length) return interpolate; + interpolate = x; + return rescale(); + }; + scale.ticks = function(m) { + return d3_scale_linearTicks(domain, m); + }; + scale.tickFormat = function(m, format) { + return d3_scale_linearTickFormat(domain, m, format); + }; + scale.nice = function(m) { + d3_scale_linearNice(domain, m); + return rescale(); + }; + scale.copy = function() { + return d3_scale_linear(domain, range, interpolate, clamp); + }; + return rescale(); } - - code.push('for(var k='+AXIS+'+1;k<'+DIMENSION+';++k){'+ - 'var r0='+RED_BOXES+'[k+'+RED_PTR+'],'+ - 'r1='+RED_BOXES+'[k+'+DIMENSION+'+'+RED_PTR+'],'+ - 'b0='+BLUE_BOXES+'[k+'+BLUE_PTR+'],'+ - 'b1='+BLUE_BOXES+'[k+'+DIMENSION+'+'+BLUE_PTR+'];'+ - 'if(r1' + - BLUE_END + '-' + BLUE_START + '){') - - if(full) { - invoke(true, false) - code.push('}else{') - invoke(false, false) - } else { - code.push('if(' + FLIP + '){') - invoke(true, true) - code.push('}else{') - invoke(true, false) - code.push('}}else{if(' + FLIP + '){') - invoke(false, true) - code.push('}else{') - invoke(false, false) - code.push('}') + function d3_scale_linearTickFormat(domain, m, format) { + var range = d3_scale_linearTickRange(domain, m); + if (format) { + var match = d3_format_re.exec(format); + match.shift(); + if (match[8] === "s") { + var prefix = d3.formatPrefix(Math.max(abs(range[0]), abs(range[1]))); + if (!match[7]) match[7] = "." + d3_scale_linearPrecision(prefix.scale(range[2])); + match[8] = "f"; + format = d3.format(match.join("")); + return function(d) { + return format(prefix.scale(d)) + prefix.symbol; + }; + } + if (!match[7]) match[7] = "." + d3_scale_linearFormatPrecision(match[8], range); + format = match.join(""); + } else { + format = ",." + d3_scale_linearPrecision(range[2]) + "f"; + } + return d3.format(format); } - code.push('}}return ' + funcName) - - var codeStr = prefix.join('') + code.join('') - var proc = new Function(codeStr) - return proc() -} - - -exports.partial = bruteForcePlanner(false) -exports.full = bruteForcePlanner(true) -},{}],103:[function(_dereq_,module,exports){ -'use strict' - -module.exports = boxIntersectIter - -var pool = _dereq_('typedarray-pool') -var bits = _dereq_('bit-twiddle') -var bruteForce = _dereq_('./brute') -var bruteForcePartial = bruteForce.partial -var bruteForceFull = bruteForce.full -var sweep = _dereq_('./sweep') -var findMedian = _dereq_('./median') -var genPartition = _dereq_('./partition') - -//Twiddle parameters -var BRUTE_FORCE_CUTOFF = 128 //Cut off for brute force search -var SCAN_CUTOFF = (1<<22) //Cut off for two way scan -var SCAN_COMPLETE_CUTOFF = (1<<22) - -//Partition functions -var partitionInteriorContainsInterval = genPartition( - '!(lo>=p0)&&!(p1>=hi)', - ['p0', 'p1']) - -var partitionStartEqual = genPartition( - 'lo===p0', - ['p0']) - -var partitionStartLessThan = genPartition( - 'lo 0 ? 0 : -x)) / Math.log(base); } - var retval - if(flip) { - retval = visit(blueId, redId) - } else { - retval = visit(redId, blueId) + function pow(x) { + return positive ? Math.pow(base, x) : -Math.pow(base, -x); } - if(retval !== void 0) { - return retval + function scale(x) { + return linear(log(x)); } - } -} - -//Special case: Intersect one point with list of intervals -function onePointFull( - d, axis, visit, - redStart, redEnd, red, redIndex, - blueOffset, blue, blueId) { - - var elemSize = 2 * d - var bluePtr = blueOffset * elemSize - var blueX = blue[bluePtr + axis] - -red_loop: - for(var i=redStart, redPtr=redStart*elemSize; i= 0; + linear.domain((domain = x.map(Number)).map(log)); + return scale; + }; + scale.base = function(_) { + if (!arguments.length) return base; + base = +_; + linear.domain(domain.map(log)); + return scale; + }; + scale.nice = function() { + var niced = d3_scale_nice(domain.map(log), positive ? Math : d3_scale_logNiceNegative); + linear.domain(niced); + domain = niced.map(pow); + return scale; + }; + scale.ticks = function() { + var extent = d3_scaleExtent(domain), ticks = [], u = extent[0], v = extent[1], i = Math.floor(log(u)), j = Math.ceil(log(v)), n = base % 1 ? 2 : base; + if (isFinite(j - i)) { + if (positive) { + for (;i < j; i++) for (var k = 1; k < n; k++) ticks.push(pow(i) * k); + ticks.push(pow(i)); + } else { + ticks.push(pow(i)); + for (;i++ < j; ) for (var k = n - 1; k > 0; k--) ticks.push(pow(i) * k); + } + for (i = 0; ticks[i] < u; i++) {} + for (j = ticks.length; ticks[j - 1] > v; j--) {} + ticks = ticks.slice(i, j); + } + return ticks; + }; + scale.tickFormat = function(n, format) { + if (!arguments.length) return d3_scale_logFormat; + if (arguments.length < 2) format = d3_scale_logFormat; else if (typeof format !== "function") format = d3.format(format); + var k = Math.max(1, base * n / scale.ticks().length); + return function(d) { + var i = d / pow(Math.round(log(d))); + if (i * base < base - .5) i *= base; + return i <= k ? format(d) : ""; + }; + }; + scale.copy = function() { + return d3_scale_log(linear.copy(), base, positive, domain); + }; + return d3_scale_linearRebind(scale, linear); + } + var d3_scale_logFormat = d3.format(".0e"), d3_scale_logNiceNegative = { + floor: function(x) { + return -Math.ceil(-x); + }, + ceil: function(x) { + return -Math.floor(-x); } - var r0 = red[redPtr+axis] - var r1 = red[redPtr+axis+d] - if(blueX < r0 || r1 < blueX) { - continue + }; + d3.scale.pow = function() { + return d3_scale_pow(d3.scale.linear(), 1, [ 0, 1 ]); + }; + function d3_scale_pow(linear, exponent, domain) { + var powp = d3_scale_powPow(exponent), powb = d3_scale_powPow(1 / exponent); + function scale(x) { + return linear(powp(x)); } - for(var j=axis+1; j 0 ? thresholds[y - 1] : domain[0], y < thresholds.length ? thresholds[y] : domain[domain.length - 1] ]; + }; + scale.copy = function() { + return d3_scale_quantile(domain, range); + }; + return rescale(); } - - while(top > 0) { - top -= 1 - - var iptr = top * IFRAME_SIZE - var axis = BOX_ISTACK[iptr] - var redStart = BOX_ISTACK[iptr+1] - var redEnd = BOX_ISTACK[iptr+2] - var blueStart = BOX_ISTACK[iptr+3] - var blueEnd = BOX_ISTACK[iptr+4] - var state = BOX_ISTACK[iptr+5] - - var dptr = top * DFRAME_SIZE - var lo = BOX_DSTACK[dptr] - var hi = BOX_DSTACK[dptr+1] - - //Unpack state info - var flip = (state & 1) - var full = !!(state & 16) - - //Unpack indices - var red = xBoxes - var redIndex = xIndex - var blue = yBoxes - var blueIndex = yIndex - if(flip) { - red = yBoxes - redIndex = yIndex - blue = xBoxes - blueIndex = xIndex + d3.scale.quantize = function() { + return d3_scale_quantize(0, 1, [ 0, 1 ]); + }; + function d3_scale_quantize(x0, x1, range) { + var kx, i; + function scale(x) { + return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))]; } - - if(state & 2) { - redEnd = partitionStartLessThan( - d, axis, - redStart, redEnd, red, redIndex, - hi) - if(redStart >= redEnd) { - continue - } + function rescale() { + kx = range.length / (x1 - x0); + i = range.length - 1; + return scale; } - if(state & 4) { - redStart = partitionEndLessThanEqual( - d, axis, - redStart, redEnd, red, redIndex, - lo) - if(redStart >= redEnd) { - continue - } + scale.domain = function(x) { + if (!arguments.length) return [ x0, x1 ]; + x0 = +x[0]; + x1 = +x[x.length - 1]; + return rescale(); + }; + scale.range = function(x) { + if (!arguments.length) return range; + range = x; + return rescale(); + }; + scale.invertExtent = function(y) { + y = range.indexOf(y); + y = y < 0 ? NaN : y / kx + x0; + return [ y, y + 1 / kx ]; + }; + scale.copy = function() { + return d3_scale_quantize(x0, x1, range); + }; + return rescale(); + } + d3.scale.threshold = function() { + return d3_scale_threshold([ .5 ], [ 0, 1 ]); + }; + function d3_scale_threshold(domain, range) { + function scale(x) { + if (x <= x) return range[d3.bisect(domain, x)]; } - - var redCount = redEnd - redStart - var blueCount = blueEnd - blueStart - - if(full) { - if(d * redCount * (redCount + blueCount) < SCAN_COMPLETE_CUTOFF) { - retval = sweep.scanComplete( - d, axis, visit, - redStart, redEnd, red, redIndex, - blueStart, blueEnd, blue, blueIndex) - if(retval !== void 0) { - return retval - } - continue + scale.domain = function(_) { + if (!arguments.length) return domain; + domain = _; + return scale; + }; + scale.range = function(_) { + if (!arguments.length) return range; + range = _; + return scale; + }; + scale.invertExtent = function(y) { + y = range.indexOf(y); + return [ domain[y - 1], domain[y] ]; + }; + scale.copy = function() { + return d3_scale_threshold(domain, range); + }; + return scale; + } + d3.scale.identity = function() { + return d3_scale_identity([ 0, 1 ]); + }; + function d3_scale_identity(domain) { + function identity(x) { + return +x; + } + identity.invert = identity; + identity.domain = identity.range = function(x) { + if (!arguments.length) return domain; + domain = x.map(identity); + return identity; + }; + identity.ticks = function(m) { + return d3_scale_linearTicks(domain, m); + }; + identity.tickFormat = function(m, format) { + return d3_scale_linearTickFormat(domain, m, format); + }; + identity.copy = function() { + return d3_scale_identity(domain); + }; + return identity; + } + d3.svg = {}; + function d3_zero() { + return 0; + } + d3.svg.arc = function() { + var innerRadius = d3_svg_arcInnerRadius, outerRadius = d3_svg_arcOuterRadius, cornerRadius = d3_zero, padRadius = d3_svg_arcAuto, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle, padAngle = d3_svg_arcPadAngle; + function arc() { + var r0 = Math.max(0, +innerRadius.apply(this, arguments)), r1 = Math.max(0, +outerRadius.apply(this, arguments)), a0 = startAngle.apply(this, arguments) - halfπ, a1 = endAngle.apply(this, arguments) - halfπ, da = Math.abs(a1 - a0), cw = a0 > a1 ? 0 : 1; + if (r1 < r0) rc = r1, r1 = r0, r0 = rc; + if (da >= τε) return circleSegment(r1, cw) + (r0 ? circleSegment(r0, 1 - cw) : "") + "Z"; + var rc, cr, rp, ap, p0 = 0, p1 = 0, x0, y0, x1, y1, x2, y2, x3, y3, path = []; + if (ap = (+padAngle.apply(this, arguments) || 0) / 2) { + rp = padRadius === d3_svg_arcAuto ? Math.sqrt(r0 * r0 + r1 * r1) : +padRadius.apply(this, arguments); + if (!cw) p1 *= -1; + if (r1) p1 = d3_asin(rp / r1 * Math.sin(ap)); + if (r0) p0 = d3_asin(rp / r0 * Math.sin(ap)); } - } else { - if(d * Math.min(redCount, blueCount) < BRUTE_FORCE_CUTOFF) { - //If input small, then use brute force - retval = bruteForcePartial( - d, axis, visit, flip, - redStart, redEnd, red, redIndex, - blueStart, blueEnd, blue, blueIndex) - if(retval !== void 0) { - return retval - } - continue - } else if(d * redCount * blueCount < SCAN_CUTOFF) { - //If input medium sized, then use sweep and prune - retval = sweep.scanBipartite( - d, axis, visit, flip, - redStart, redEnd, red, redIndex, - blueStart, blueEnd, blue, blueIndex) - if(retval !== void 0) { - return retval + if (r1) { + x0 = r1 * Math.cos(a0 + p1); + y0 = r1 * Math.sin(a0 + p1); + x1 = r1 * Math.cos(a1 - p1); + y1 = r1 * Math.sin(a1 - p1); + var l1 = Math.abs(a1 - a0 - 2 * p1) <= π ? 0 : 1; + if (p1 && d3_svg_arcSweep(x0, y0, x1, y1) === cw ^ l1) { + var h1 = (a0 + a1) / 2; + x0 = r1 * Math.cos(h1); + y0 = r1 * Math.sin(h1); + x1 = y1 = null; } - continue + } else { + x0 = y0 = 0; } - } - - //First, find all red intervals whose interior contains (lo,hi) - var red0 = partitionInteriorContainsInterval( - d, axis, - redStart, redEnd, red, redIndex, - lo, hi) - - //Lower dimensional case - if(redStart < red0) { - - if(d * (red0 - redStart) < BRUTE_FORCE_CUTOFF) { - //Special case for small inputs: use brute force - retval = bruteForceFull( - d, axis+1, visit, - redStart, red0, red, redIndex, - blueStart, blueEnd, blue, blueIndex) - if(retval !== void 0) { - return retval - } - } else if(axis === d-2) { - if(flip) { - retval = sweep.sweepBipartite( - d, visit, - blueStart, blueEnd, blue, blueIndex, - redStart, red0, red, redIndex) - } else { - retval = sweep.sweepBipartite( - d, visit, - redStart, red0, red, redIndex, - blueStart, blueEnd, blue, blueIndex) - } - if(retval !== void 0) { - return retval + if (r0) { + x2 = r0 * Math.cos(a1 - p0); + y2 = r0 * Math.sin(a1 - p0); + x3 = r0 * Math.cos(a0 + p0); + y3 = r0 * Math.sin(a0 + p0); + var l0 = Math.abs(a0 - a1 + 2 * p0) <= π ? 0 : 1; + if (p0 && d3_svg_arcSweep(x2, y2, x3, y3) === 1 - cw ^ l0) { + var h0 = (a0 + a1) / 2; + x2 = r0 * Math.cos(h0); + y2 = r0 * Math.sin(h0); + x3 = y3 = null; } } else { - iterPush(top++, - axis+1, - redStart, red0, - blueStart, blueEnd, - flip, - -Infinity, Infinity) - iterPush(top++, - axis+1, - blueStart, blueEnd, - redStart, red0, - flip^1, - -Infinity, Infinity) - } - } - - //Divide and conquer phase - if(red0 < redEnd) { - - //Cut blue into 3 parts: - // - // Points < mid point - // Points = mid point - // Points > mid point - // - var blue0 = findMedian( - d, axis, - blueStart, blueEnd, blue, blueIndex) - var mid = blue[elemSize * blue0 + axis] - var blue1 = partitionStartEqual( - d, axis, - blue0, blueEnd, blue, blueIndex, - mid) - - //Right case - if(blue1 < blueEnd) { - iterPush(top++, - axis, - red0, redEnd, - blue1, blueEnd, - (flip|4) + (full ? 16 : 0), - mid, hi) - } - - //Left case - if(blueStart < blue0) { - iterPush(top++, - axis, - red0, redEnd, - blueStart, blue0, - (flip|2) + (full ? 16 : 0), - lo, mid) + x2 = y2 = 0; } - - //Center case (the hard part) - if(blue0 + 1 === blue1) { - //Optimization: Range with exactly 1 point, use a brute force scan - if(full) { - retval = onePointFull( - d, axis, visit, - red0, redEnd, red, redIndex, - blue0, blue, blueIndex[blue0]) - } else { - retval = onePointPartial( - d, axis, visit, flip, - red0, redEnd, red, redIndex, - blue0, blue, blueIndex[blue0]) - } - if(retval !== void 0) { - return retval + if (da > ε && (rc = Math.min(Math.abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments))) > .001) { + cr = r0 < r1 ^ cw ? 0 : 1; + var rc1 = rc, rc0 = rc; + if (da < π) { + var oc = x3 == null ? [ x2, y2 ] : x1 == null ? [ x0, y0 ] : d3_geom_polygonIntersect([ x0, y0 ], [ x3, y3 ], [ x1, y1 ], [ x2, y2 ]), ax = x0 - oc[0], ay = y0 - oc[1], bx = x1 - oc[0], by = y1 - oc[1], kc = 1 / Math.sin(Math.acos((ax * bx + ay * by) / (Math.sqrt(ax * ax + ay * ay) * Math.sqrt(bx * bx + by * by))) / 2), lc = Math.sqrt(oc[0] * oc[0] + oc[1] * oc[1]); + rc0 = Math.min(rc, (r0 - lc) / (kc - 1)); + rc1 = Math.min(rc, (r1 - lc) / (kc + 1)); } - } else if(blue0 < blue1) { - var red1 - if(full) { - //If full intersection, need to handle special case - red1 = partitionContainsPoint( - d, axis, - red0, redEnd, red, redIndex, - mid) - if(red0 < red1) { - var redX = partitionStartEqual( - d, axis, - red0, red1, red, redIndex, - mid) - if(axis === d-2) { - //Degenerate sweep intersection: - // [red0, redX] with [blue0, blue1] - if(red0 < redX) { - retval = sweep.sweepComplete( - d, visit, - red0, redX, red, redIndex, - blue0, blue1, blue, blueIndex) - if(retval !== void 0) { - return retval - } - } - - //Normal sweep intersection: - // [redX, red1] with [blue0, blue1] - if(redX < red1) { - retval = sweep.sweepBipartite( - d, visit, - redX, red1, red, redIndex, - blue0, blue1, blue, blueIndex) - if(retval !== void 0) { - return retval - } - } - } else { - if(red0 < redX) { - iterPush(top++, - axis+1, - red0, redX, - blue0, blue1, - 16, - -Infinity, Infinity) - } - if(redX < red1) { - iterPush(top++, - axis+1, - redX, red1, - blue0, blue1, - 0, - -Infinity, Infinity) - iterPush(top++, - axis+1, - blue0, blue1, - redX, red1, - 1, - -Infinity, Infinity) - } - } + if (x1 != null) { + var t30 = d3_svg_arcCornerTangents(x3 == null ? [ x2, y2 ] : [ x3, y3 ], [ x0, y0 ], r1, rc1, cw), t12 = d3_svg_arcCornerTangents([ x1, y1 ], [ x2, y2 ], r1, rc1, cw); + if (rc === rc1) { + path.push("M", t30[0], "A", rc1, ",", rc1, " 0 0,", cr, " ", t30[1], "A", r1, ",", r1, " 0 ", 1 - cw ^ d3_svg_arcSweep(t30[1][0], t30[1][1], t12[1][0], t12[1][1]), ",", cw, " ", t12[1], "A", rc1, ",", rc1, " 0 0,", cr, " ", t12[0]); + } else { + path.push("M", t30[0], "A", rc1, ",", rc1, " 0 1,", cr, " ", t12[0]); } } else { - if(flip) { - red1 = partitionContainsPointProper( - d, axis, - red0, redEnd, red, redIndex, - mid) + path.push("M", x0, ",", y0); + } + if (x3 != null) { + var t03 = d3_svg_arcCornerTangents([ x0, y0 ], [ x3, y3 ], r0, -rc0, cw), t21 = d3_svg_arcCornerTangents([ x2, y2 ], x1 == null ? [ x0, y0 ] : [ x1, y1 ], r0, -rc0, cw); + if (rc === rc0) { + path.push("L", t21[0], "A", rc0, ",", rc0, " 0 0,", cr, " ", t21[1], "A", r0, ",", r0, " 0 ", cw ^ d3_svg_arcSweep(t21[1][0], t21[1][1], t03[1][0], t03[1][1]), ",", 1 - cw, " ", t03[1], "A", rc0, ",", rc0, " 0 0,", cr, " ", t03[0]); } else { - red1 = partitionContainsPoint( - d, axis, - red0, redEnd, red, redIndex, - mid) - } - if(red0 < red1) { - if(axis === d-2) { - if(flip) { - retval = sweep.sweepBipartite( - d, visit, - blue0, blue1, blue, blueIndex, - red0, red1, red, redIndex) - } else { - retval = sweep.sweepBipartite( - d, visit, - red0, red1, red, redIndex, - blue0, blue1, blue, blueIndex) - } - } else { - iterPush(top++, - axis+1, - red0, red1, - blue0, blue1, - flip, - -Infinity, Infinity) - iterPush(top++, - axis+1, - blue0, blue1, - red0, red1, - flip^1, - -Infinity, Infinity) - } + path.push("L", t21[0], "A", rc0, ",", rc0, " 0 0,", cr, " ", t03[0]); } + } else { + path.push("L", x2, ",", y2); } + } else { + path.push("M", x0, ",", y0); + if (x1 != null) path.push("A", r1, ",", r1, " 0 ", l1, ",", cw, " ", x1, ",", y1); + path.push("L", x2, ",", y2); + if (x3 != null) path.push("A", r0, ",", r0, " 0 ", l0, ",", 1 - cw, " ", x3, ",", y3); } + path.push("Z"); + return path.join(""); } - } -} -},{"./brute":102,"./median":104,"./partition":105,"./sweep":107,"bit-twiddle":97,"typedarray-pool":595}],104:[function(_dereq_,module,exports){ -'use strict' - -module.exports = findMedian - -var genPartition = _dereq_('./partition') - -var partitionStartLessThan = genPartition('lostart && boxes[ptr+axis] > x; - --j, ptr-=elemSize) { - //Swap - var aPtr = ptr - var bPtr = ptr+elemSize - for(var k=0; k>> 1) - var elemSize = 2*d - var pivot = mid - var value = boxes[elemSize*mid+axis] - - while(lo < hi) { - if(hi - lo < PARTITION_THRESHOLD) { - insertionSort(d, axis, lo, hi, boxes, ids) - value = boxes[elemSize*mid+axis] - break - } - - //Select pivot using median-of-3 - var count = hi - lo - var pivot0 = (Math.random()*count+lo)|0 - var value0 = boxes[elemSize*pivot0 + axis] - var pivot1 = (Math.random()*count+lo)|0 - var value1 = boxes[elemSize*pivot1 + axis] - var pivot2 = (Math.random()*count+lo)|0 - var value2 = boxes[elemSize*pivot2 + axis] - if(value0 <= value1) { - if(value2 >= value1) { - pivot = pivot1 - value = value1 - } else if(value0 >= value2) { - pivot = pivot0 - value = value0 - } else { - pivot = pivot2 - value = value2 - } - } else { - if(value1 >= value2) { - pivot = pivot1 - value = value1 - } else if(value2 >= value0) { - pivot = pivot0 - value = value0 - } else { - pivot = pivot2 - value = value2 - } - } - - //Swap pivot to end of array - var aPtr = elemSize * (hi-1) - var bPtr = elemSize * pivot - for(var i=0; i= 0) { - reads.push('lo=e[k+n]') + function d3_svg_arcEndAngle(d) { + return d.endAngle; } - if(predicate.indexOf('hi') >= 0) { - reads.push('hi=e[k+o]') + function d3_svg_arcPadAngle(d) { + return d && d.padAngle; } - fargs.push( - code.replace('_', reads.join()) - .replace('$', predicate)) - return Function.apply(void 0, fargs) -} -},{}],106:[function(_dereq_,module,exports){ -'use strict'; - -//This code is extracted from ndarray-sort -//It is inlined here as a temporary workaround - -module.exports = wrapper; - -var INSERT_SORT_CUTOFF = 32 - -function wrapper(data, n0) { - if (n0 <= 4*INSERT_SORT_CUTOFF) { - insertionSort(0, n0 - 1, data); - } else { - quickSort(0, n0 - 1, data); + function d3_svg_arcSweep(x0, y0, x1, y1) { + return (x0 - x1) * y0 - (y0 - y1) * x0 > 0 ? 0 : 1; } -} - -function insertionSort(left, right, data) { - var ptr = 2*(left+1) - for(var i=left+1; i<=right; ++i) { - var a = data[ptr++] - var b = data[ptr++] - var j = i - var jptr = ptr-2 - while(j-- > left) { - var x = data[jptr-2] - var y = data[jptr-1] - if(x < a) { - break - } else if(x === a && y < b) { - break + function d3_svg_arcCornerTangents(p0, p1, r1, rc, cw) { + var x01 = p0[0] - p1[0], y01 = p0[1] - p1[1], lo = (cw ? rc : -rc) / Math.sqrt(x01 * x01 + y01 * y01), ox = lo * y01, oy = -lo * x01, x1 = p0[0] + ox, y1 = p0[1] + oy, x2 = p1[0] + ox, y2 = p1[1] + oy, x3 = (x1 + x2) / 2, y3 = (y1 + y2) / 2, dx = x2 - x1, dy = y2 - y1, d2 = dx * dx + dy * dy, r = r1 - rc, D = x1 * y2 - x2 * y1, d = (dy < 0 ? -1 : 1) * Math.sqrt(Math.max(0, r * r * d2 - D * D)), cx0 = (D * dy - dx * d) / d2, cy0 = (-D * dx - dy * d) / d2, cx1 = (D * dy + dx * d) / d2, cy1 = (-D * dx + dy * d) / d2, dx0 = cx0 - x3, dy0 = cy0 - y3, dx1 = cx1 - x3, dy1 = cy1 - y3; + if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1; + return [ [ cx0 - ox, cy0 - oy ], [ cx0 * r1 / r, cy0 * r1 / r ] ]; + } + function d3_svg_line(projection) { + var x = d3_geom_pointX, y = d3_geom_pointY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, tension = .7; + function line(data) { + var segments = [], points = [], i = -1, n = data.length, d, fx = d3_functor(x), fy = d3_functor(y); + function segment() { + segments.push("M", interpolate(projection(points), tension)); } - data[jptr] = x - data[jptr+1] = y - jptr -= 2 + while (++i < n) { + if (defined.call(this, d = data[i], i)) { + points.push([ +fx.call(this, d, i), +fy.call(this, d, i) ]); + } else if (points.length) { + segment(); + points = []; + } + } + if (points.length) segment(); + return segments.length ? segments.join("") : null; } - data[jptr] = a - data[jptr+1] = b + line.x = function(_) { + if (!arguments.length) return x; + x = _; + return line; + }; + line.y = function(_) { + if (!arguments.length) return y; + y = _; + return line; + }; + line.defined = function(_) { + if (!arguments.length) return defined; + defined = _; + return line; + }; + line.interpolate = function(_) { + if (!arguments.length) return interpolateKey; + if (typeof _ === "function") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key; + return line; + }; + line.tension = function(_) { + if (!arguments.length) return tension; + tension = _; + return line; + }; + return line; } -} - -function swap(i, j, data) { - i *= 2 - j *= 2 - var x = data[i] - var y = data[i+1] - data[i] = data[j] - data[i+1] = data[j+1] - data[j] = x - data[j+1] = y -} - -function move(i, j, data) { - i *= 2 - j *= 2 - data[i] = data[j] - data[i+1] = data[j+1] -} - -function rotate(i, j, k, data) { - i *= 2 - j *= 2 - k *= 2 - var x = data[i] - var y = data[i+1] - data[i] = data[j] - data[i+1] = data[j+1] - data[j] = data[k] - data[j+1] = data[k+1] - data[k] = x - data[k+1] = y -} - -function shufflePivot(i, j, px, py, data) { - i *= 2 - j *= 2 - data[i] = data[j] - data[j] = px - data[i+1] = data[j+1] - data[j+1] = py -} - -function compare(i, j, data) { - i *= 2 - j *= 2 - var x = data[i], - y = data[j] - if(x < y) { - return false - } else if(x === y) { - return data[i+1] > data[j+1] - } - return true -} - -function comparePivot(i, y, b, data) { - i *= 2 - var x = data[i] - if(x < y) { - return true - } else if(x === y) { - return data[i+1] < b - } - return false -} - -function quickSort(left, right, data) { - var 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, - tmp = 0 - if(compare(el1, el2, data)) { - tmp = el1 - el1 = el2 - el2 = tmp - } - if(compare(el4, el5, data)) { - tmp = el4 - el4 = el5 - el5 = tmp - } - if(compare(el1, el3, data)) { - tmp = el1 - el1 = el3 - el3 = tmp + d3.svg.line = function() { + return d3_svg_line(d3_identity); + }; + var d3_svg_lineInterpolators = d3.map({ + linear: d3_svg_lineLinear, + "linear-closed": d3_svg_lineLinearClosed, + step: d3_svg_lineStep, + "step-before": d3_svg_lineStepBefore, + "step-after": d3_svg_lineStepAfter, + basis: d3_svg_lineBasis, + "basis-open": d3_svg_lineBasisOpen, + "basis-closed": d3_svg_lineBasisClosed, + bundle: d3_svg_lineBundle, + cardinal: d3_svg_lineCardinal, + "cardinal-open": d3_svg_lineCardinalOpen, + "cardinal-closed": d3_svg_lineCardinalClosed, + monotone: d3_svg_lineMonotone + }); + d3_svg_lineInterpolators.forEach(function(key, value) { + value.key = key; + value.closed = /-closed$/.test(key); + }); + function d3_svg_lineLinear(points) { + return points.length > 1 ? points.join("L") : points + "Z"; } - if(compare(el2, el3, data)) { - tmp = el2 - el2 = el3 - el3 = tmp + function d3_svg_lineLinearClosed(points) { + return points.join("L") + "Z"; } - if(compare(el1, el4, data)) { - tmp = el1 - el1 = el4 - el4 = tmp + function d3_svg_lineStep(points) { + var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ]; + while (++i < n) path.push("H", (p[0] + (p = points[i])[0]) / 2, "V", p[1]); + if (n > 1) path.push("H", p[0]); + return path.join(""); } - if(compare(el3, el4, data)) { - tmp = el3 - el3 = el4 - el4 = tmp + function d3_svg_lineStepBefore(points) { + var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ]; + while (++i < n) path.push("V", (p = points[i])[1], "H", p[0]); + return path.join(""); } - if(compare(el2, el5, data)) { - tmp = el2 - el2 = el5 - el5 = tmp + function d3_svg_lineStepAfter(points) { + var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ]; + while (++i < n) path.push("H", (p = points[i])[0], "V", p[1]); + return path.join(""); } - if(compare(el2, el3, data)) { - tmp = el2 - el2 = el3 - el3 = tmp + function d3_svg_lineCardinalOpen(points, tension) { + return points.length < 4 ? d3_svg_lineLinear(points) : points[1] + d3_svg_lineHermite(points.slice(1, -1), d3_svg_lineCardinalTangents(points, tension)); } - if(compare(el4, el5, data)) { - tmp = el4 - el4 = el5 - el5 = tmp + function d3_svg_lineCardinalClosed(points, tension) { + return points.length < 3 ? d3_svg_lineLinearClosed(points) : points[0] + d3_svg_lineHermite((points.push(points[0]), + points), d3_svg_lineCardinalTangents([ points[points.length - 2] ].concat(points, [ points[1] ]), tension)); } - - var pivot1X = data[2*el2] - var pivot1Y = data[2*el2+1] - var pivot2X = data[2*el4] - var pivot2Y = data[2*el4+1] - - var ptr0 = 2 * el1; - var ptr2 = 2 * el3; - var ptr4 = 2 * el5; - var ptr5 = 2 * index1; - var ptr6 = 2 * index3; - var ptr7 = 2 * index5; - for (var i1 = 0; i1 < 2; ++i1) { - var x = data[ptr0+i1]; - var y = data[ptr2+i1]; - var z = data[ptr4+i1]; - data[ptr5+i1] = x; - data[ptr6+i1] = y; - data[ptr7+i1] = z; + function d3_svg_lineCardinal(points, tension) { + return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineCardinalTangents(points, tension)); } - - move(index2, left, data) - move(index4, right, data) - for (var k = less; k <= great; ++k) { - if (comparePivot(k, pivot1X, pivot1Y, data)) { - if (k !== less) { - swap(k, less, data) - } - ++less; - } else { - if (!comparePivot(k, pivot2X, pivot2Y, data)) { - while (true) { - if (!comparePivot(great, pivot2X, pivot2Y, data)) { - if (--great < k) { - break; - } - continue; - } else { - if (comparePivot(great, pivot1X, pivot1Y, data)) { - rotate(k, less, great, data) - ++less; - --great; - } else { - swap(k, great, data) - --great; - } - break; - } - } + function d3_svg_lineHermite(points, tangents) { + if (tangents.length < 1 || points.length != tangents.length && points.length != tangents.length + 2) { + return d3_svg_lineLinear(points); + } + var quad = points.length != tangents.length, path = "", p0 = points[0], p = points[1], t0 = tangents[0], t = t0, pi = 1; + if (quad) { + path += "Q" + (p[0] - t0[0] * 2 / 3) + "," + (p[1] - t0[1] * 2 / 3) + "," + p[0] + "," + p[1]; + p0 = points[1]; + pi = 2; + } + if (tangents.length > 1) { + t = tangents[1]; + p = points[pi]; + pi++; + path += "C" + (p0[0] + t0[0]) + "," + (p0[1] + t0[1]) + "," + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1]; + for (var i = 2; i < tangents.length; i++, pi++) { + p = points[pi]; + t = tangents[i]; + path += "S" + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1]; } } + if (quad) { + var lp = points[pi]; + path += "Q" + (p[0] + t[0] * 2 / 3) + "," + (p[1] + t[1] * 2 / 3) + "," + lp[0] + "," + lp[1]; + } + return path; } - shufflePivot(left, less-1, pivot1X, pivot1Y, data) - shufflePivot(right, great+1, pivot2X, pivot2Y, data) - if (less - 2 - left <= INSERT_SORT_CUTOFF) { - insertionSort(left, less - 2, data); - } else { - quickSort(left, less - 2, data); + function d3_svg_lineCardinalTangents(points, tension) { + var tangents = [], a = (1 - tension) / 2, p0, p1 = points[0], p2 = points[1], i = 1, n = points.length; + while (++i < n) { + p0 = p1; + p1 = p2; + p2 = points[i]; + tangents.push([ a * (p2[0] - p0[0]), a * (p2[1] - p0[1]) ]); + } + return tangents; } - if (right - (great + 2) <= INSERT_SORT_CUTOFF) { - insertionSort(great + 2, right, data); - } else { - quickSort(great + 2, right, data); + function d3_svg_lineBasis(points) { + if (points.length < 3) return d3_svg_lineLinear(points); + var i = 1, n = points.length, pi = points[0], x0 = pi[0], y0 = pi[1], px = [ x0, x0, x0, (pi = points[1])[0] ], py = [ y0, y0, y0, pi[1] ], path = [ x0, ",", y0, "L", d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ]; + points.push(points[n - 1]); + while (++i <= n) { + pi = points[i]; + px.shift(); + px.push(pi[0]); + py.shift(); + py.push(pi[1]); + d3_svg_lineBasisBezier(path, px, py); + } + points.pop(); + path.push("L", pi); + return path.join(""); } - if (great - less <= INSERT_SORT_CUTOFF) { - insertionSort(less, great, data); - } else { - quickSort(less, great, data); + function d3_svg_lineBasisOpen(points) { + if (points.length < 4) return d3_svg_lineLinear(points); + var path = [], i = -1, n = points.length, pi, px = [ 0 ], py = [ 0 ]; + while (++i < 3) { + pi = points[i]; + px.push(pi[0]); + py.push(pi[1]); + } + path.push(d3_svg_lineDot4(d3_svg_lineBasisBezier3, px) + "," + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py)); + --i; + while (++i < n) { + pi = points[i]; + px.shift(); + px.push(pi[0]); + py.shift(); + py.push(pi[1]); + d3_svg_lineBasisBezier(path, px, py); + } + return path.join(""); } -} -},{}],107:[function(_dereq_,module,exports){ -'use strict' - -module.exports = { - init: sqInit, - sweepBipartite: sweepBipartite, - sweepComplete: sweepComplete, - scanBipartite: scanBipartite, - scanComplete: scanComplete -} - -var pool = _dereq_('typedarray-pool') -var bits = _dereq_('bit-twiddle') -var isort = _dereq_('./sort') - -//Flag for blue -var BLUE_FLAG = (1<<28) - -//1D sweep event queue stuff (use pool to save space) -var INIT_CAPACITY = 1024 -var RED_SWEEP_QUEUE = pool.mallocInt32(INIT_CAPACITY) -var RED_SWEEP_INDEX = pool.mallocInt32(INIT_CAPACITY) -var BLUE_SWEEP_QUEUE = pool.mallocInt32(INIT_CAPACITY) -var BLUE_SWEEP_INDEX = pool.mallocInt32(INIT_CAPACITY) -var COMMON_SWEEP_QUEUE = pool.mallocInt32(INIT_CAPACITY) -var COMMON_SWEEP_INDEX = pool.mallocInt32(INIT_CAPACITY) -var SWEEP_EVENTS = pool.mallocDouble(INIT_CAPACITY * 8) - -//Reserves memory for the 1D sweep data structures -function sqInit(count) { - var rcount = bits.nextPow2(count) - if(RED_SWEEP_QUEUE.length < rcount) { - pool.free(RED_SWEEP_QUEUE) - RED_SWEEP_QUEUE = pool.mallocInt32(rcount) + function d3_svg_lineBasisClosed(points) { + var path, i = -1, n = points.length, m = n + 4, pi, px = [], py = []; + while (++i < 4) { + pi = points[i % n]; + px.push(pi[0]); + py.push(pi[1]); + } + path = [ d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ]; + --i; + while (++i < m) { + pi = points[i % n]; + px.shift(); + px.push(pi[0]); + py.shift(); + py.push(pi[1]); + d3_svg_lineBasisBezier(path, px, py); + } + return path.join(""); } - if(RED_SWEEP_INDEX.length < rcount) { - pool.free(RED_SWEEP_INDEX) - RED_SWEEP_INDEX = pool.mallocInt32(rcount) + function d3_svg_lineBundle(points, tension) { + var n = points.length - 1; + if (n) { + var x0 = points[0][0], y0 = points[0][1], dx = points[n][0] - x0, dy = points[n][1] - y0, i = -1, p, t; + while (++i <= n) { + p = points[i]; + t = i / n; + p[0] = tension * p[0] + (1 - tension) * (x0 + t * dx); + p[1] = tension * p[1] + (1 - tension) * (y0 + t * dy); + } + } + return d3_svg_lineBasis(points); } - if(BLUE_SWEEP_QUEUE.length < rcount) { - pool.free(BLUE_SWEEP_QUEUE) - BLUE_SWEEP_QUEUE = pool.mallocInt32(rcount) + function d3_svg_lineDot4(a, b) { + return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3]; } - if(BLUE_SWEEP_INDEX.length < rcount) { - pool.free(BLUE_SWEEP_INDEX) - BLUE_SWEEP_INDEX = pool.mallocInt32(rcount) + var d3_svg_lineBasisBezier1 = [ 0, 2 / 3, 1 / 3, 0 ], d3_svg_lineBasisBezier2 = [ 0, 1 / 3, 2 / 3, 0 ], d3_svg_lineBasisBezier3 = [ 0, 1 / 6, 2 / 3, 1 / 6 ]; + function d3_svg_lineBasisBezier(path, x, y) { + path.push("C", d3_svg_lineDot4(d3_svg_lineBasisBezier1, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier1, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, y)); } - if(COMMON_SWEEP_QUEUE.length < rcount) { - pool.free(COMMON_SWEEP_QUEUE) - COMMON_SWEEP_QUEUE = pool.mallocInt32(rcount) + function d3_svg_lineSlope(p0, p1) { + return (p1[1] - p0[1]) / (p1[0] - p0[0]); } - if(COMMON_SWEEP_INDEX.length < rcount) { - pool.free(COMMON_SWEEP_INDEX) - COMMON_SWEEP_INDEX = pool.mallocInt32(rcount) + function d3_svg_lineFiniteDifferences(points) { + var i = 0, j = points.length - 1, m = [], p0 = points[0], p1 = points[1], d = m[0] = d3_svg_lineSlope(p0, p1); + while (++i < j) { + m[i] = (d + (d = d3_svg_lineSlope(p0 = p1, p1 = points[i + 1]))) / 2; + } + m[i] = d; + return m; } - var eventLength = 8 * rcount - if(SWEEP_EVENTS.length < eventLength) { - pool.free(SWEEP_EVENTS) - SWEEP_EVENTS = pool.mallocDouble(eventLength) + function d3_svg_lineMonotoneTangents(points) { + var tangents = [], d, a, b, s, m = d3_svg_lineFiniteDifferences(points), i = -1, j = points.length - 1; + while (++i < j) { + d = d3_svg_lineSlope(points[i], points[i + 1]); + if (abs(d) < ε) { + m[i] = m[i + 1] = 0; + } else { + a = m[i] / d; + b = m[i + 1] / d; + s = a * a + b * b; + if (s > 9) { + s = d * 3 / Math.sqrt(s); + m[i] = s * a; + m[i + 1] = s * b; + } + } + } + i = -1; + while (++i <= j) { + s = (points[Math.min(j, i + 1)][0] - points[Math.max(0, i - 1)][0]) / (6 * (1 + m[i] * m[i])); + tangents.push([ s || 0, m[i] * s || 0 ]); + } + return tangents; } -} - -//Remove an item from the active queue in O(1) -function sqPop(queue, index, count, item) { - var idx = index[item] - var top = queue[count-1] - queue[idx] = top - index[top] = idx -} - -//Insert an item into the active queue in O(1) -function sqPush(queue, index, count, item) { - queue[count] = item - index[item] = count -} - -//Recursion base case: use 1D sweep algorithm -function sweepBipartite( - d, visit, - redStart, redEnd, red, redIndex, - blueStart, blueEnd, blue, blueIndex) { - - //store events as pairs [coordinate, idx] - // - // red create: -(idx+1) - // red destroy: idx - // blue create: -(idx+BLUE_FLAG) - // blue destroy: idx+BLUE_FLAG - // - var ptr = 0 - var elemSize = 2*d - var istart = d-1 - var iend = elemSize-1 - - for(var i=redStart; iright - var n = ptr >>> 1 - isort(SWEEP_EVENTS, n) - - var redActive = 0 - var blueActive = 0 - for(var i=0; i= BLUE_FLAG) { - //blue destroy event - e = (e-BLUE_FLAG)|0 - sqPop(BLUE_SWEEP_QUEUE, BLUE_SWEEP_INDEX, blueActive--, e) - } else if(e >= 0) { - //red destroy event - sqPop(RED_SWEEP_QUEUE, RED_SWEEP_INDEX, redActive--, e) - } else if(e <= -BLUE_FLAG) { - //blue create event - e = (-e-BLUE_FLAG)|0 - for(var j=0; j π) + ",1 " + p; + } + function curve(r0, p0, r1, p1) { + return "Q 0,0 " + p1; + } + chord.radius = function(v) { + if (!arguments.length) return radius; + radius = d3_functor(v); + return chord; + }; + chord.source = function(v) { + if (!arguments.length) return source; + source = d3_functor(v); + return chord; + }; + chord.target = function(v) { + if (!arguments.length) return target; + target = d3_functor(v); + return chord; + }; + chord.startAngle = function(v) { + if (!arguments.length) return startAngle; + startAngle = d3_functor(v); + return chord; + }; + chord.endAngle = function(v) { + if (!arguments.length) return endAngle; + endAngle = d3_functor(v); + return chord; + }; + return chord; + }; + function d3_svg_chordRadius(d) { + return d.radius; } - - for(var i=blueStart; iright - var n = ptr >>> 1 - isort(SWEEP_EVENTS, n) - - var redActive = 0 - var blueActive = 0 - var commonActive = 0 - for(var i=0; i>1) === (SWEEP_EVENTS[2*i+3]>>1)) { - color = 2 - i += 1 + d3.svg.diagonal.radial = function() { + var diagonal = d3.svg.diagonal(), projection = d3_svg_diagonalProjection, projection_ = diagonal.projection; + diagonal.projection = function(x) { + return arguments.length ? projection_(d3_svg_diagonalRadialProjection(projection = x)) : projection; + }; + return diagonal; + }; + function d3_svg_diagonalRadialProjection(projection) { + return function() { + var d = projection.apply(this, arguments), r = d[0], a = d[1] - halfπ; + return [ r * Math.cos(a), r * Math.sin(a) ]; + }; + } + d3.svg.symbol = function() { + var type = d3_svg_symbolType, size = d3_svg_symbolSize; + function symbol(d, i) { + return (d3_svg_symbols.get(type.call(this, d, i)) || d3_svg_symbolCircle)(size.call(this, d, i)); } - - if(e < 0) { - //Create event - var id = -(e>>1) - 1 - - //Intersect with common - for(var j=0; j>1) - 1 - if(color === 0) { - //Red - sqPop(RED_SWEEP_QUEUE, RED_SWEEP_INDEX, redActive--, id) - } else if(color === 1) { - //Blue - sqPop(BLUE_SWEEP_QUEUE, BLUE_SWEEP_INDEX, blueActive--, id) - } else if(color === 2) { - //Both - sqPop(COMMON_SWEEP_QUEUE, COMMON_SWEEP_INDEX, commonActive--, id) - } } - } -} - -//Sweep and prune/scanline algorithm: -// Scan along axis, detect intersections -// Brute force all boxes along axis -function scanBipartite( - d, axis, visit, flip, - redStart, redEnd, red, redIndex, - blueStart, blueEnd, blue, blueIndex) { - - var ptr = 0 - var elemSize = 2*d - var istart = axis - var iend = axis+d - - var redShift = 1 - var blueShift = 1 - if(flip) { - blueShift = BLUE_FLAG - } else { - redShift = BLUE_FLAG - } - - for(var i=redStart; iright - var n = ptr >>> 1 - isort(SWEEP_EVENTS, n) - - var redActive = 0 - for(var i=0; i= BLUE_FLAG) { - isRed = !flip - idx -= BLUE_FLAG - } else { - isRed = !!flip - idx -= 1 - } - if(isRed) { - sqPush(RED_SWEEP_QUEUE, RED_SWEEP_INDEX, redActive++, idx) - } else { - var blueId = blueIndex[idx] - var bluePtr = elemSize * idx - - var b0 = blue[bluePtr+axis+1] - var b1 = blue[bluePtr+axis+1+d] - -red_loop: - for(var j=0; jright - var n = ptr >>> 1 - isort(SWEEP_EVENTS, n) - - var redActive = 0 - for(var i=0; i= BLUE_FLAG) { - RED_SWEEP_QUEUE[redActive++] = idx - BLUE_FLAG - } else { - idx -= 1 - var blueId = blueIndex[idx] - var bluePtr = elemSize * idx - - var b0 = blue[bluePtr+axis+1] - var b1 = blue[bluePtr+axis+1+d] - -red_loop: - for(var j=0; j=0; --j) { - if(RED_SWEEP_QUEUE[j] === idx) { - for(var k=j+1; k 0) - er = args[0]; - if (er instanceof Error) { - // Note: The comments on the `throw` lines are intentional, they show - // up in Node's output if this results in an unhandled exception. - throw er; // Unhandled 'error' event + function d3_transitionNode(node, i, ns, id, inherit) { + var lock = node[ns] || (node[ns] = { + active: 0, + count: 0 + }), transition = lock[id], time, timer, duration, ease, tweens; + function schedule(elapsed) { + var delay = transition.delay; + timer.t = delay + time; + if (delay <= elapsed) return start(elapsed - delay); + timer.c = start; } - // At least give some kind of context to the user - var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : '')); - err.context = er; - throw err; // Unhandled 'error' event - } - - var handler = events[type]; - - if (handler === undefined) - return false; - - if (typeof handler === 'function') { - ReflectApply(handler, this, args); - } else { - var len = handler.length; - var listeners = arrayClone(handler, len); - for (var i = 0; i < len; ++i) - ReflectApply(listeners[i], this, args); - } - - return true; -}; - -function _addListener(target, type, listener, prepend) { - var m; - var events; - var existing; - - checkListener(listener); - - events = target._events; - if (events === undefined) { - events = target._events = Object.create(null); - target._eventsCount = 0; - } else { - // To avoid recursion in the case that type === "newListener"! Before - // adding it to the listeners, first emit "newListener". - if (events.newListener !== undefined) { - target.emit('newListener', type, - listener.listener ? listener.listener : listener); - - // Re-assign `events` because a newListener handler could have caused the - // this._events to be assigned to a new object - events = target._events; + function start(elapsed) { + var activeId = lock.active, active = lock[activeId]; + if (active) { + active.timer.c = null; + active.timer.t = NaN; + --lock.count; + delete lock[activeId]; + active.event && active.event.interrupt.call(node, node.__data__, active.index); + } + for (var cancelId in lock) { + if (+cancelId < id) { + var cancel = lock[cancelId]; + cancel.timer.c = null; + cancel.timer.t = NaN; + --lock.count; + delete lock[cancelId]; + } + } + timer.c = tick; + d3_timer(function() { + if (timer.c && tick(elapsed || 1)) { + timer.c = null; + timer.t = NaN; + } + return 1; + }, 0, time); + lock.active = id; + transition.event && transition.event.start.call(node, node.__data__, i); + tweens = []; + transition.tween.forEach(function(key, value) { + if (value = value.call(node, node.__data__, i)) { + tweens.push(value); + } + }); + ease = transition.ease; + duration = transition.duration; } - existing = events[type]; - } - - if (existing === undefined) { - // Optimize the case of one listener. Don't need the extra array object. - existing = events[type] = listener; - ++target._eventsCount; - } else { - if (typeof existing === 'function') { - // Adding the second element, need to change to array. - existing = events[type] = - prepend ? [listener, existing] : [existing, listener]; - // If we've already got an array, just append. - } else if (prepend) { - existing.unshift(listener); - } else { - existing.push(listener); + function tick(elapsed) { + var t = elapsed / duration, e = ease(t), n = tweens.length; + while (n > 0) { + tweens[--n].call(node, e); + } + if (t >= 1) { + transition.event && transition.event.end.call(node, node.__data__, i); + if (--lock.count) delete lock[id]; else delete node[ns]; + return 1; + } } - - // Check for listener leak - m = _getMaxListeners(target); - if (m > 0 && existing.length > m && !existing.warned) { - existing.warned = true; - // No error code for this since it is a Warning - // eslint-disable-next-line no-restricted-syntax - var w = new Error('Possible EventEmitter memory leak detected. ' + - existing.length + ' ' + String(type) + ' listeners ' + - 'added. Use emitter.setMaxListeners() to ' + - 'increase limit'); - w.name = 'MaxListenersExceededWarning'; - w.emitter = target; - w.type = type; - w.count = existing.length; - ProcessEmitWarning(w); + if (!transition) { + time = inherit.time; + timer = d3_timer(schedule, 0, time); + transition = lock[id] = { + tween: new d3_Map(), + time: time, + timer: timer, + delay: inherit.delay, + duration: inherit.duration, + ease: inherit.ease, + index: i + }; + inherit = null; + ++lock.count; } } - - return target; -} - -EventEmitter.prototype.addListener = function addListener(type, listener) { - return _addListener(this, type, listener, false); -}; - -EventEmitter.prototype.on = EventEmitter.prototype.addListener; - -EventEmitter.prototype.prependListener = - function prependListener(type, listener) { - return _addListener(this, type, listener, true); + d3.svg.axis = function() { + var scale = d3.scale.linear(), orient = d3_svg_axisDefaultOrient, innerTickSize = 6, outerTickSize = 6, tickPadding = 3, tickArguments_ = [ 10 ], tickValues = null, tickFormat_; + function axis(g) { + g.each(function() { + var g = d3.select(this); + var scale0 = this.__chart__ || scale, scale1 = this.__chart__ = scale.copy(); + var ticks = tickValues == null ? scale1.ticks ? scale1.ticks.apply(scale1, tickArguments_) : scale1.domain() : tickValues, tickFormat = tickFormat_ == null ? scale1.tickFormat ? scale1.tickFormat.apply(scale1, tickArguments_) : d3_identity : tickFormat_, tick = g.selectAll(".tick").data(ticks, scale1), tickEnter = tick.enter().insert("g", ".domain").attr("class", "tick").style("opacity", ε), tickExit = d3.transition(tick.exit()).style("opacity", ε).remove(), tickUpdate = d3.transition(tick.order()).style("opacity", 1), tickSpacing = Math.max(innerTickSize, 0) + tickPadding, tickTransform; + var range = d3_scaleRange(scale1), path = g.selectAll(".domain").data([ 0 ]), pathUpdate = (path.enter().append("path").attr("class", "domain"), + d3.transition(path)); + tickEnter.append("line"); + tickEnter.append("text"); + var lineEnter = tickEnter.select("line"), lineUpdate = tickUpdate.select("line"), text = tick.select("text").text(tickFormat), textEnter = tickEnter.select("text"), textUpdate = tickUpdate.select("text"), sign = orient === "top" || orient === "left" ? -1 : 1, x1, x2, y1, y2; + if (orient === "bottom" || orient === "top") { + tickTransform = d3_svg_axisX, x1 = "x", y1 = "y", x2 = "x2", y2 = "y2"; + text.attr("dy", sign < 0 ? "0em" : ".71em").style("text-anchor", "middle"); + pathUpdate.attr("d", "M" + range[0] + "," + sign * outerTickSize + "V0H" + range[1] + "V" + sign * outerTickSize); + } else { + tickTransform = d3_svg_axisY, x1 = "y", y1 = "x", x2 = "y2", y2 = "x2"; + text.attr("dy", ".32em").style("text-anchor", sign < 0 ? "end" : "start"); + pathUpdate.attr("d", "M" + sign * outerTickSize + "," + range[0] + "H0V" + range[1] + "H" + sign * outerTickSize); + } + lineEnter.attr(y2, sign * innerTickSize); + textEnter.attr(y1, sign * tickSpacing); + lineUpdate.attr(x2, 0).attr(y2, sign * innerTickSize); + textUpdate.attr(x1, 0).attr(y1, sign * tickSpacing); + if (scale1.rangeBand) { + var x = scale1, dx = x.rangeBand() / 2; + scale0 = scale1 = function(d) { + return x(d) + dx; + }; + } else if (scale0.rangeBand) { + scale0 = scale1; + } else { + tickExit.call(tickTransform, scale1, scale0); + } + tickEnter.call(tickTransform, scale0, scale1); + tickUpdate.call(tickTransform, scale1, scale1); + }); + } + axis.scale = function(x) { + if (!arguments.length) return scale; + scale = x; + return axis; }; - -function onceWrapper() { - if (!this.fired) { - this.target.removeListener(this.type, this.wrapFn); - this.fired = true; - if (arguments.length === 0) - return this.listener.call(this.target); - return this.listener.apply(this.target, arguments); - } -} - -function _onceWrap(target, type, listener) { - var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener }; - var wrapped = onceWrapper.bind(state); - wrapped.listener = listener; - state.wrapFn = wrapped; - return wrapped; -} - -EventEmitter.prototype.once = function once(type, listener) { - checkListener(listener); - this.on(type, _onceWrap(this, type, listener)); - return this; -}; - -EventEmitter.prototype.prependOnceListener = - function prependOnceListener(type, listener) { - checkListener(listener); - this.prependListener(type, _onceWrap(this, type, listener)); - return this; + axis.orient = function(x) { + if (!arguments.length) return orient; + orient = x in d3_svg_axisOrients ? x + "" : d3_svg_axisDefaultOrient; + return axis; }; - -// Emits a 'removeListener' event if and only if the listener was removed. -EventEmitter.prototype.removeListener = - function removeListener(type, listener) { - var list, events, position, i, originalListener; - - checkListener(listener); - - events = this._events; - if (events === undefined) - return this; - - list = events[type]; - if (list === undefined) - return this; - - if (list === listener || list.listener === listener) { - if (--this._eventsCount === 0) - this._events = Object.create(null); - else { - delete events[type]; - if (events.removeListener) - this.emit('removeListener', type, list.listener || listener); + axis.ticks = function() { + if (!arguments.length) return tickArguments_; + tickArguments_ = d3_array(arguments); + return axis; + }; + axis.tickValues = function(x) { + if (!arguments.length) return tickValues; + tickValues = x; + return axis; + }; + axis.tickFormat = function(x) { + if (!arguments.length) return tickFormat_; + tickFormat_ = x; + return axis; + }; + axis.tickSize = function(x) { + var n = arguments.length; + if (!n) return innerTickSize; + innerTickSize = +x; + outerTickSize = +arguments[n - 1]; + return axis; + }; + axis.innerTickSize = function(x) { + if (!arguments.length) return innerTickSize; + innerTickSize = +x; + return axis; + }; + axis.outerTickSize = function(x) { + if (!arguments.length) return outerTickSize; + outerTickSize = +x; + return axis; + }; + axis.tickPadding = function(x) { + if (!arguments.length) return tickPadding; + tickPadding = +x; + return axis; + }; + axis.tickSubdivide = function() { + return arguments.length && axis; + }; + return axis; + }; + var d3_svg_axisDefaultOrient = "bottom", d3_svg_axisOrients = { + top: 1, + right: 1, + bottom: 1, + left: 1 + }; + function d3_svg_axisX(selection, x0, x1) { + selection.attr("transform", function(d) { + var v0 = x0(d); + return "translate(" + (isFinite(v0) ? v0 : x1(d)) + ",0)"; + }); + } + function d3_svg_axisY(selection, y0, y1) { + selection.attr("transform", function(d) { + var v0 = y0(d); + return "translate(0," + (isFinite(v0) ? v0 : y1(d)) + ")"; + }); + } + d3.svg.brush = function() { + var event = d3_eventDispatch(brush, "brushstart", "brush", "brushend"), x = null, y = null, xExtent = [ 0, 0 ], yExtent = [ 0, 0 ], xExtentDomain, yExtentDomain, xClamp = true, yClamp = true, resizes = d3_svg_brushResizes[0]; + function brush(g) { + g.each(function() { + var g = d3.select(this).style("pointer-events", "all").style("-webkit-tap-highlight-color", "rgba(0,0,0,0)").on("mousedown.brush", brushstart).on("touchstart.brush", brushstart); + var background = g.selectAll(".background").data([ 0 ]); + background.enter().append("rect").attr("class", "background").style("visibility", "hidden").style("cursor", "crosshair"); + g.selectAll(".extent").data([ 0 ]).enter().append("rect").attr("class", "extent").style("cursor", "move"); + var resize = g.selectAll(".resize").data(resizes, d3_identity); + resize.exit().remove(); + resize.enter().append("g").attr("class", function(d) { + return "resize " + d; + }).style("cursor", function(d) { + return d3_svg_brushCursor[d]; + }).append("rect").attr("x", function(d) { + return /[ew]$/.test(d) ? -3 : null; + }).attr("y", function(d) { + return /^[ns]/.test(d) ? -3 : null; + }).attr("width", 6).attr("height", 6).style("visibility", "hidden"); + resize.style("display", brush.empty() ? "none" : null); + var gUpdate = d3.transition(g), backgroundUpdate = d3.transition(background), range; + if (x) { + range = d3_scaleRange(x); + backgroundUpdate.attr("x", range[0]).attr("width", range[1] - range[0]); + redrawX(gUpdate); } - } else if (typeof list !== 'function') { - position = -1; - - for (i = list.length - 1; i >= 0; i--) { - if (list[i] === listener || list[i].listener === listener) { - originalListener = list[i].listener; - position = i; - break; - } + if (y) { + range = d3_scaleRange(y); + backgroundUpdate.attr("y", range[0]).attr("height", range[1] - range[0]); + redrawY(gUpdate); } - - if (position < 0) - return this; - - if (position === 0) - list.shift(); - else { - spliceOne(list, position); + redraw(gUpdate); + }); + } + brush.event = function(g) { + g.each(function() { + var event_ = event.of(this, arguments), extent1 = { + x: xExtent, + y: yExtent, + i: xExtentDomain, + j: yExtentDomain + }, extent0 = this.__chart__ || extent1; + this.__chart__ = extent1; + if (d3_transitionInheritId) { + d3.select(this).transition().each("start.brush", function() { + xExtentDomain = extent0.i; + yExtentDomain = extent0.j; + xExtent = extent0.x; + yExtent = extent0.y; + event_({ + type: "brushstart" + }); + }).tween("brush:brush", function() { + var xi = d3_interpolateArray(xExtent, extent1.x), yi = d3_interpolateArray(yExtent, extent1.y); + xExtentDomain = yExtentDomain = null; + return function(t) { + xExtent = extent1.x = xi(t); + yExtent = extent1.y = yi(t); + event_({ + type: "brush", + mode: "resize" + }); + }; + }).each("end.brush", function() { + xExtentDomain = extent1.i; + yExtentDomain = extent1.j; + event_({ + type: "brush", + mode: "resize" + }); + event_({ + type: "brushend" + }); + }); + } else { + event_({ + type: "brushstart" + }); + event_({ + type: "brush", + mode: "resize" + }); + event_({ + type: "brushend" + }); } - - if (list.length === 1) - events[type] = list[0]; - - if (events.removeListener !== undefined) - this.emit('removeListener', type, originalListener || listener); - } - - return this; + }); }; - -EventEmitter.prototype.off = EventEmitter.prototype.removeListener; - -EventEmitter.prototype.removeAllListeners = - function removeAllListeners(type) { - var listeners, events, i; - - events = this._events; - if (events === undefined) - return this; - - // not listening for removeListener, no need to emit - if (events.removeListener === undefined) { - if (arguments.length === 0) { - this._events = Object.create(null); - this._eventsCount = 0; - } else if (events[type] !== undefined) { - if (--this._eventsCount === 0) - this._events = Object.create(null); - else - delete events[type]; + function redraw(g) { + g.selectAll(".resize").attr("transform", function(d) { + return "translate(" + xExtent[+/e$/.test(d)] + "," + yExtent[+/^s/.test(d)] + ")"; + }); + } + function redrawX(g) { + g.select(".extent").attr("x", xExtent[0]); + g.selectAll(".extent,.n>rect,.s>rect").attr("width", xExtent[1] - xExtent[0]); + } + function redrawY(g) { + g.select(".extent").attr("y", yExtent[0]); + g.selectAll(".extent,.e>rect,.w>rect").attr("height", yExtent[1] - yExtent[0]); + } + function brushstart() { + var target = this, eventTarget = d3.select(d3.event.target), event_ = event.of(target, arguments), g = d3.select(target), resizing = eventTarget.datum(), resizingX = !/^(n|s)$/.test(resizing) && x, resizingY = !/^(e|w)$/.test(resizing) && y, dragging = eventTarget.classed("extent"), dragRestore = d3_event_dragSuppress(target), center, origin = d3.mouse(target), offset; + var w = d3.select(d3_window(target)).on("keydown.brush", keydown).on("keyup.brush", keyup); + if (d3.event.changedTouches) { + w.on("touchmove.brush", brushmove).on("touchend.brush", brushend); + } else { + w.on("mousemove.brush", brushmove).on("mouseup.brush", brushend); + } + g.interrupt().selectAll("*").interrupt(); + if (dragging) { + origin[0] = xExtent[0] - origin[0]; + origin[1] = yExtent[0] - origin[1]; + } else if (resizing) { + var ex = +/w$/.test(resizing), ey = +/^n/.test(resizing); + offset = [ xExtent[1 - ex] - origin[0], yExtent[1 - ey] - origin[1] ]; + origin[0] = xExtent[ex]; + origin[1] = yExtent[ey]; + } else if (d3.event.altKey) center = origin.slice(); + g.style("pointer-events", "none").selectAll(".resize").style("display", null); + d3.select("body").style("cursor", eventTarget.style("cursor")); + event_({ + type: "brushstart" + }); + brushmove(); + function keydown() { + if (d3.event.keyCode == 32) { + if (!dragging) { + center = null; + origin[0] -= xExtent[1]; + origin[1] -= yExtent[1]; + dragging = 2; + } + d3_eventPreventDefault(); } - return this; } - - // emit removeListener for all listeners on all events - if (arguments.length === 0) { - var keys = Object.keys(events); - var key; - for (i = 0; i < keys.length; ++i) { - key = keys[i]; - if (key === 'removeListener') continue; - this.removeAllListeners(key); + function keyup() { + if (d3.event.keyCode == 32 && dragging == 2) { + origin[0] += xExtent[1]; + origin[1] += yExtent[1]; + dragging = 0; + d3_eventPreventDefault(); } - this.removeAllListeners('removeListener'); - this._events = Object.create(null); - this._eventsCount = 0; - return this; } - - listeners = events[type]; - - if (typeof listeners === 'function') { - this.removeListener(type, listeners); - } else if (listeners !== undefined) { - // LIFO order - for (i = listeners.length - 1; i >= 0; i--) { - this.removeListener(type, listeners[i]); + function brushmove() { + var point = d3.mouse(target), moved = false; + if (offset) { + point[0] += offset[0]; + point[1] += offset[1]; + } + if (!dragging) { + if (d3.event.altKey) { + if (!center) center = [ (xExtent[0] + xExtent[1]) / 2, (yExtent[0] + yExtent[1]) / 2 ]; + origin[0] = xExtent[+(point[0] < center[0])]; + origin[1] = yExtent[+(point[1] < center[1])]; + } else center = null; + } + if (resizingX && move1(point, x, 0)) { + redrawX(g); + moved = true; + } + if (resizingY && move1(point, y, 1)) { + redrawY(g); + moved = true; + } + if (moved) { + redraw(g); + event_({ + type: "brush", + mode: dragging ? "move" : "resize" + }); } } - - return this; - }; - -function _listeners(target, type, unwrap) { - var events = target._events; - - if (events === undefined) - return []; - - var evlistener = events[type]; - if (evlistener === undefined) - return []; - - if (typeof evlistener === 'function') - return unwrap ? [evlistener.listener || evlistener] : [evlistener]; - - return unwrap ? - unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length); -} - -EventEmitter.prototype.listeners = function listeners(type) { - return _listeners(this, type, true); -}; - -EventEmitter.prototype.rawListeners = function rawListeners(type) { - return _listeners(this, type, false); -}; - -EventEmitter.listenerCount = function(emitter, type) { - if (typeof emitter.listenerCount === 'function') { - return emitter.listenerCount(type); - } else { - return listenerCount.call(emitter, type); - } -}; - -EventEmitter.prototype.listenerCount = listenerCount; -function listenerCount(type) { - var events = this._events; - - if (events !== undefined) { - var evlistener = events[type]; - - if (typeof evlistener === 'function') { - return 1; - } else if (evlistener !== undefined) { - return evlistener.length; + function move1(point, scale, i) { + var range = d3_scaleRange(scale), r0 = range[0], r1 = range[1], position = origin[i], extent = i ? yExtent : xExtent, size = extent[1] - extent[0], min, max; + if (dragging) { + r0 -= position; + r1 -= size + position; + } + min = (i ? yClamp : xClamp) ? Math.max(r0, Math.min(r1, point[i])) : point[i]; + if (dragging) { + max = (min += position) + size; + } else { + if (center) position = Math.max(r0, Math.min(r1, 2 * center[i] - min)); + if (position < min) { + max = min; + min = position; + } else { + max = position; + } + } + if (extent[0] != min || extent[1] != max) { + if (i) yExtentDomain = null; else xExtentDomain = null; + extent[0] = min; + extent[1] = max; + return true; + } + } + function brushend() { + brushmove(); + g.style("pointer-events", "all").selectAll(".resize").style("display", brush.empty() ? "none" : null); + d3.select("body").style("cursor", null); + w.on("mousemove.brush", null).on("mouseup.brush", null).on("touchmove.brush", null).on("touchend.brush", null).on("keydown.brush", null).on("keyup.brush", null); + dragRestore(); + event_({ + type: "brushend" + }); + } } - } - - return 0; -} - -EventEmitter.prototype.eventNames = function eventNames() { - return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : []; -}; - -function arrayClone(arr, n) { - var copy = new Array(n); - for (var i = 0; i < n; ++i) - copy[i] = arr[i]; - return copy; -} - -function spliceOne(list, index) { - for (; index + 1 < list.length; index++) - list[index] = list[index + 1]; - list.pop(); -} - -function unwrapListeners(arr) { - var ret = new Array(arr.length); - for (var i = 0; i < ret.length; ++i) { - ret[i] = arr[i].listener || arr[i]; - } - return ret; -} - -function once(emitter, name) { - return new Promise(function (resolve, reject) { - function eventListener() { - if (errorListener !== undefined) { - emitter.removeListener('error', errorListener); + brush.x = function(z) { + if (!arguments.length) return x; + x = z; + resizes = d3_svg_brushResizes[!x << 1 | !y]; + return brush; + }; + brush.y = function(z) { + if (!arguments.length) return y; + y = z; + resizes = d3_svg_brushResizes[!x << 1 | !y]; + return brush; + }; + brush.clamp = function(z) { + if (!arguments.length) return x && y ? [ xClamp, yClamp ] : x ? xClamp : y ? yClamp : null; + if (x && y) xClamp = !!z[0], yClamp = !!z[1]; else if (x) xClamp = !!z; else if (y) yClamp = !!z; + return brush; + }; + brush.extent = function(z) { + var x0, x1, y0, y1, t; + if (!arguments.length) { + if (x) { + if (xExtentDomain) { + x0 = xExtentDomain[0], x1 = xExtentDomain[1]; + } else { + x0 = xExtent[0], x1 = xExtent[1]; + if (x.invert) x0 = x.invert(x0), x1 = x.invert(x1); + if (x1 < x0) t = x0, x0 = x1, x1 = t; + } + } + if (y) { + if (yExtentDomain) { + y0 = yExtentDomain[0], y1 = yExtentDomain[1]; + } else { + y0 = yExtent[0], y1 = yExtent[1]; + if (y.invert) y0 = y.invert(y0), y1 = y.invert(y1); + if (y1 < y0) t = y0, y0 = y1, y1 = t; + } + } + return x && y ? [ [ x0, y0 ], [ x1, y1 ] ] : x ? [ x0, x1 ] : y && [ y0, y1 ]; } - resolve([].slice.call(arguments)); + if (x) { + x0 = z[0], x1 = z[1]; + if (y) x0 = x0[0], x1 = x1[0]; + xExtentDomain = [ x0, x1 ]; + if (x.invert) x0 = x(x0), x1 = x(x1); + if (x1 < x0) t = x0, x0 = x1, x1 = t; + if (x0 != xExtent[0] || x1 != xExtent[1]) xExtent = [ x0, x1 ]; + } + if (y) { + y0 = z[0], y1 = z[1]; + if (x) y0 = y0[1], y1 = y1[1]; + yExtentDomain = [ y0, y1 ]; + if (y.invert) y0 = y(y0), y1 = y(y1); + if (y1 < y0) t = y0, y0 = y1, y1 = t; + if (y0 != yExtent[0] || y1 != yExtent[1]) yExtent = [ y0, y1 ]; + } + return brush; }; - var errorListener; - - // Adding an error listener is not optional because - // if an error is thrown on an event emitter we cannot - // guarantee that the actual event we are waiting will - // be fired. The result could be a silent way to create - // memory or file descriptor leaks, which is something - // we should avoid. - if (name !== 'error') { - errorListener = function errorListener(err) { - emitter.removeListener(name, eventListener); - reject(err); - }; - - emitter.once('error', errorListener); + brush.clear = function() { + if (!brush.empty()) { + xExtent = [ 0, 0 ], yExtent = [ 0, 0 ]; + xExtentDomain = yExtentDomain = null; + } + return brush; + }; + brush.empty = function() { + return !!x && xExtent[0] == xExtent[1] || !!y && yExtent[0] == yExtent[1]; + }; + return d3.rebind(brush, event, "on"); + }; + var d3_svg_brushCursor = { + n: "ns-resize", + e: "ew-resize", + s: "ns-resize", + w: "ew-resize", + nw: "nwse-resize", + ne: "nesw-resize", + se: "nwse-resize", + sw: "nesw-resize" + }; + var d3_svg_brushResizes = [ [ "n", "e", "s", "w", "nw", "ne", "se", "sw" ], [ "e", "w" ], [ "n", "s" ], [] ]; + var d3_time_format = d3_time.format = d3_locale_enUS.timeFormat; + var d3_time_formatUtc = d3_time_format.utc; + var d3_time_formatIso = d3_time_formatUtc("%Y-%m-%dT%H:%M:%S.%LZ"); + d3_time_format.iso = Date.prototype.toISOString && +new Date("2000-01-01T00:00:00.000Z") ? d3_time_formatIsoNative : d3_time_formatIso; + function d3_time_formatIsoNative(date) { + return date.toISOString(); + } + d3_time_formatIsoNative.parse = function(string) { + var date = new Date(string); + return isNaN(date) ? null : date; + }; + d3_time_formatIsoNative.toString = d3_time_formatIso.toString; + d3_time.second = d3_time_interval(function(date) { + return new d3_date(Math.floor(date / 1e3) * 1e3); + }, function(date, offset) { + date.setTime(date.getTime() + Math.floor(offset) * 1e3); + }, function(date) { + return date.getSeconds(); + }); + d3_time.seconds = d3_time.second.range; + d3_time.seconds.utc = d3_time.second.utc.range; + d3_time.minute = d3_time_interval(function(date) { + return new d3_date(Math.floor(date / 6e4) * 6e4); + }, function(date, offset) { + date.setTime(date.getTime() + Math.floor(offset) * 6e4); + }, function(date) { + return date.getMinutes(); + }); + d3_time.minutes = d3_time.minute.range; + d3_time.minutes.utc = d3_time.minute.utc.range; + d3_time.hour = d3_time_interval(function(date) { + var timezone = date.getTimezoneOffset() / 60; + return new d3_date((Math.floor(date / 36e5 - timezone) + timezone) * 36e5); + }, function(date, offset) { + date.setTime(date.getTime() + Math.floor(offset) * 36e5); + }, function(date) { + return date.getHours(); + }); + d3_time.hours = d3_time.hour.range; + d3_time.hours.utc = d3_time.hour.utc.range; + d3_time.month = d3_time_interval(function(date) { + date = d3_time.day(date); + date.setDate(1); + return date; + }, function(date, offset) { + date.setMonth(date.getMonth() + offset); + }, function(date) { + return date.getMonth(); + }); + d3_time.months = d3_time.month.range; + d3_time.months.utc = d3_time.month.utc.range; + function d3_time_scale(linear, methods, format) { + function scale(x) { + return linear(x); } - - emitter.once(name, eventListener); + scale.invert = function(x) { + return d3_time_scaleDate(linear.invert(x)); + }; + scale.domain = function(x) { + if (!arguments.length) return linear.domain().map(d3_time_scaleDate); + linear.domain(x); + return scale; + }; + function tickMethod(extent, count) { + var span = extent[1] - extent[0], target = span / count, i = d3.bisect(d3_time_scaleSteps, target); + return i == d3_time_scaleSteps.length ? [ methods.year, d3_scale_linearTickRange(extent.map(function(d) { + return d / 31536e6; + }), count)[2] ] : !i ? [ d3_time_scaleMilliseconds, d3_scale_linearTickRange(extent, count)[2] ] : methods[target / d3_time_scaleSteps[i - 1] < d3_time_scaleSteps[i] / target ? i - 1 : i]; + } + scale.nice = function(interval, skip) { + var domain = scale.domain(), extent = d3_scaleExtent(domain), method = interval == null ? tickMethod(extent, 10) : typeof interval === "number" && tickMethod(extent, interval); + if (method) interval = method[0], skip = method[1]; + function skipped(date) { + return !isNaN(date) && !interval.range(date, d3_time_scaleDate(+date + 1), skip).length; + } + return scale.domain(d3_scale_nice(domain, skip > 1 ? { + floor: function(date) { + while (skipped(date = interval.floor(date))) date = d3_time_scaleDate(date - 1); + return date; + }, + ceil: function(date) { + while (skipped(date = interval.ceil(date))) date = d3_time_scaleDate(+date + 1); + return date; + } + } : interval)); + }; + scale.ticks = function(interval, skip) { + var extent = d3_scaleExtent(scale.domain()), method = interval == null ? tickMethod(extent, 10) : typeof interval === "number" ? tickMethod(extent, interval) : !interval.range && [ { + range: interval + }, skip ]; + if (method) interval = method[0], skip = method[1]; + return interval.range(extent[0], d3_time_scaleDate(+extent[1] + 1), skip < 1 ? 1 : skip); + }; + scale.tickFormat = function() { + return format; + }; + scale.copy = function() { + return d3_time_scale(linear.copy(), methods, format); + }; + return d3_scale_linearRebind(scale, linear); + } + function d3_time_scaleDate(t) { + return new Date(t); + } + var d3_time_scaleSteps = [ 1e3, 5e3, 15e3, 3e4, 6e4, 3e5, 9e5, 18e5, 36e5, 108e5, 216e5, 432e5, 864e5, 1728e5, 6048e5, 2592e6, 7776e6, 31536e6 ]; + var d3_time_scaleLocalMethods = [ [ d3_time.second, 1 ], [ d3_time.second, 5 ], [ d3_time.second, 15 ], [ d3_time.second, 30 ], [ d3_time.minute, 1 ], [ d3_time.minute, 5 ], [ d3_time.minute, 15 ], [ d3_time.minute, 30 ], [ d3_time.hour, 1 ], [ d3_time.hour, 3 ], [ d3_time.hour, 6 ], [ d3_time.hour, 12 ], [ d3_time.day, 1 ], [ d3_time.day, 2 ], [ d3_time.week, 1 ], [ d3_time.month, 1 ], [ d3_time.month, 3 ], [ d3_time.year, 1 ] ]; + var d3_time_scaleLocalFormat = d3_time_format.multi([ [ ".%L", function(d) { + return d.getMilliseconds(); + } ], [ ":%S", function(d) { + return d.getSeconds(); + } ], [ "%I:%M", function(d) { + return d.getMinutes(); + } ], [ "%I %p", function(d) { + return d.getHours(); + } ], [ "%a %d", function(d) { + return d.getDay() && d.getDate() != 1; + } ], [ "%b %d", function(d) { + return d.getDate() != 1; + } ], [ "%B", function(d) { + return d.getMonth(); + } ], [ "%Y", d3_true ] ]); + var d3_time_scaleMilliseconds = { + range: function(start, stop, step) { + return d3.range(Math.ceil(start / step) * step, +stop, step).map(d3_time_scaleDate); + }, + floor: d3_identity, + ceil: d3_identity + }; + d3_time_scaleLocalMethods.year = d3_time.year; + d3_time.scale = function() { + return d3_time_scale(d3.scale.linear(), d3_time_scaleLocalMethods, d3_time_scaleLocalFormat); + }; + var d3_time_scaleUtcMethods = d3_time_scaleLocalMethods.map(function(m) { + return [ m[0].utc, m[1] ]; }); -} + var d3_time_scaleUtcFormat = d3_time_formatUtc.multi([ [ ".%L", function(d) { + return d.getUTCMilliseconds(); + } ], [ ":%S", function(d) { + return d.getUTCSeconds(); + } ], [ "%I:%M", function(d) { + return d.getUTCMinutes(); + } ], [ "%I %p", function(d) { + return d.getUTCHours(); + } ], [ "%a %d", function(d) { + return d.getUTCDay() && d.getUTCDate() != 1; + } ], [ "%b %d", function(d) { + return d.getUTCDate() != 1; + } ], [ "%B", function(d) { + return d.getUTCMonth(); + } ], [ "%Y", d3_true ] ]); + d3_time_scaleUtcMethods.year = d3_time.year.utc; + d3_time.scale.utc = function() { + return d3_time_scale(d3.scale.linear(), d3_time_scaleUtcMethods, d3_time_scaleUtcFormat); + }; + d3.text = d3_xhrType(function(request) { + return request.responseText; + }); + d3.json = function(url, callback) { + return d3_xhr(url, "application/json", d3_json, callback); + }; + function d3_json(request) { + return JSON.parse(request.responseText); + } + d3.html = function(url, callback) { + return d3_xhr(url, "text/html", d3_html, callback); + }; + function d3_html(request) { + var range = d3_document.createRange(); + range.selectNode(d3_document.body); + return range.createContextualFragment(request.responseText); + } + d3.xml = d3_xhrType(function(request) { + return request.responseXML; + }); + if (typeof define === "function" && define.amd) this.d3 = d3, define(d3); else if (typeof module === "object" && module.exports) module.exports = d3; else this.d3 = d3; +}(); +},{}],59:[function(_dereq_,module,exports){ +'use strict' -},{}],111:[function(_dereq_,module,exports){ -(function (Buffer){(function (){ -/*! - * The buffer module from node.js, for the browser. +module.exports = _dereq_('./quad') + +},{"./quad":60}],60:[function(_dereq_,module,exports){ +/** + * @module point-cluster/quad * - * @author Feross Aboukhadijeh - * @license MIT + * Bucket based quad tree clustering */ -/* eslint-disable no-proto */ 'use strict' -var base64 = _dereq_('base64-js') -var ieee754 = _dereq_('ieee754') - -exports.Buffer = Buffer -exports.SlowBuffer = SlowBuffer -exports.INSPECT_MAX_BYTES = 50 +var search = _dereq_('binary-search-bounds') +var clamp = _dereq_('clamp') +var rect = _dereq_('parse-rect') +var getBounds = _dereq_('array-bounds') +var pick = _dereq_('pick-by-alias') +var defined = _dereq_('defined') +var flatten = _dereq_('flatten-vertex-data') +var isObj = _dereq_('is-obj') +var dtype = _dereq_('dtype') +var log2 = _dereq_('math-log2') -var K_MAX_LENGTH = 0x7fffffff -exports.kMaxLength = K_MAX_LENGTH +var MAX_GROUP_ID = 1073741824 -/** - * If `Buffer.TYPED_ARRAY_SUPPORT`: - * === true Use Uint8Array implementation (fastest) - * === false Print warning and recommend using `buffer` v4.x which has an Object - * implementation (most compatible, even IE6) - * - * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, - * Opera 11.6+, iOS 4.2+. - * - * We report that the browser does not support typed arrays if the are not subclassable - * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array` - * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support - * for __proto__ and has a buggy typed array implementation. - */ -Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport() +module.exports = function cluster (srcPoints, options) { + if (!options) { options = {} } -if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' && - typeof console.error === 'function') { - console.error( - 'This browser lacks typed array (Uint8Array) support which is required by ' + - '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.' - ) -} + srcPoints = flatten(srcPoints, 'float64') -function typedArraySupport () { - // Can typed array instances can be augmented? - try { - var arr = new Uint8Array(1) - arr.__proto__ = { __proto__: Uint8Array.prototype, foo: function () { return 42 } } - return arr.foo() === 42 - } catch (e) { - return false - } -} + options = pick(options, { + bounds: 'range bounds dataBox databox', + maxDepth: 'depth maxDepth maxdepth level maxLevel maxlevel levels', + dtype: 'type dtype format out dst output destination' + // sort: 'sortBy sortby sort', + // pick: 'pick levelPoint', + // nodeSize: 'node nodeSize minNodeSize minSize size' + }) -Object.defineProperty(Buffer.prototype, 'parent', { - enumerable: true, - get: function () { - if (!Buffer.isBuffer(this)) return undefined - return this.buffer - } -}) + // let nodeSize = defined(options.nodeSize, 1) + var maxDepth = defined(options.maxDepth, 255) + var bounds = defined(options.bounds, getBounds(srcPoints, 2)) + if (bounds[0] === bounds[2]) { bounds[2]++ } + if (bounds[1] === bounds[3]) { bounds[3]++ } -Object.defineProperty(Buffer.prototype, 'offset', { - enumerable: true, - get: function () { - if (!Buffer.isBuffer(this)) return undefined - return this.byteOffset - } -}) + var points = normalize(srcPoints, bounds) -function createBuffer (length) { - if (length > K_MAX_LENGTH) { - throw new RangeError('The value "' + length + '" is invalid for option "size"') - } - // Return an augmented `Uint8Array` instance - var buf = new Uint8Array(length) - buf.__proto__ = Buffer.prototype - return buf -} + // init variables + var n = srcPoints.length >>> 1 + var ids + if (!options.dtype) { options.dtype = 'array' } -/** - * The Buffer constructor returns instances of `Uint8Array` that have their - * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of - * `Uint8Array`, so the returned instances will have all the node `Buffer` methods - * and the `Uint8Array` methods. Square bracket notation works as expected -- it - * returns a single octet. - * - * The `Uint8Array` prototype remains unmodified. - */ + if (typeof options.dtype === 'string') { + ids = new (dtype(options.dtype))(n) + } + else if (options.dtype) { + ids = options.dtype + if (Array.isArray(ids)) { ids.length = n } + } + for (var i = 0; i < n; ++i) { + ids[i] = i + } -function Buffer (arg, encodingOrOffset, length) { - // Common case. - if (typeof arg === 'number') { - if (typeof encodingOrOffset === 'string') { - throw new TypeError( - 'The "string" argument must be of type string. Received type number' - ) - } - return allocUnsafe(arg) - } - return from(arg, encodingOrOffset, length) -} + // representative point indexes for levels + var levels = [] -// Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97 -if (typeof Symbol !== 'undefined' && Symbol.species != null && - Buffer[Symbol.species] === Buffer) { - Object.defineProperty(Buffer, Symbol.species, { - value: null, - configurable: true, - enumerable: false, - writable: false - }) -} + // starting indexes of subranges in sub levels, levels.length * 4 + var sublevels = [] -Buffer.poolSize = 8192 // not used by this implementation + // unique group ids, sorted in z-curve fashion within levels by shifting bits + var groups = [] -function from (value, encodingOrOffset, length) { - if (typeof value === 'string') { - return fromString(value, encodingOrOffset) - } + // level offsets in `ids` + var offsets = [] - if (ArrayBuffer.isView(value)) { - return fromArrayLike(value) - } - if (value == null) { - throw TypeError( - 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' + - 'or Array-like Object. Received type ' + (typeof value) - ) - } + // sort points + sort(0, 0, 1, ids, 0, 1) - if (isInstance(value, ArrayBuffer) || - (value && isInstance(value.buffer, ArrayBuffer))) { - return fromArrayBuffer(value, encodingOrOffset, length) - } - if (typeof value === 'number') { - throw new TypeError( - 'The "value" argument must not be of type number. Received type number' - ) - } + // return reordered ids with provided methods + // save level offsets in output buffer + var offset = 0 + for (var level = 0; level < levels.length; level++) { + var levelItems = levels[level] + if (ids.set) { ids.set(levelItems, offset) } + else { + for (var i$1 = 0, l = levelItems.length; i$1 < l; i$1++) { + ids[i$1 + offset] = levelItems[i$1] + } + } + var nextOffset = offset + levels[level].length + offsets[level] = [offset, nextOffset] + offset = nextOffset + } - var valueOf = value.valueOf && value.valueOf() - if (valueOf != null && valueOf !== value) { - return Buffer.from(valueOf, encodingOrOffset, length) - } + ids.range = range - var b = fromObject(value) - if (b) return b + return ids - if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null && - typeof value[Symbol.toPrimitive] === 'function') { - return Buffer.from( - value[Symbol.toPrimitive]('string'), encodingOrOffset, length - ) - } - throw new TypeError( - 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' + - 'or Array-like Object. Received type ' + (typeof value) - ) -} -/** - * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError - * if value is a number. - * Buffer.from(str[, encoding]) - * Buffer.from(array) - * Buffer.from(buffer) - * Buffer.from(arrayBuffer[, byteOffset[, length]]) - **/ -Buffer.from = function (value, encodingOrOffset, length) { - return from(value, encodingOrOffset, length) -} + // FIXME: it is possible to create one typed array heap and reuse that to avoid memory blow + function sort (x, y, diam, ids, level, group) { + if (!ids.length) { return null } -// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug: -// https://github.com/feross/buffer/pull/148 -Buffer.prototype.__proto__ = Uint8Array.prototype -Buffer.__proto__ = Uint8Array + // save first point as level representative + var levelItems = levels[level] || (levels[level] = []) + var levelGroups = groups[level] || (groups[level] = []) + var sublevel = sublevels[level] || (sublevels[level] = []) + var offset = levelItems.length -function assertSize (size) { - if (typeof size !== 'number') { - throw new TypeError('"size" argument must be of type number') - } else if (size < 0) { - throw new RangeError('The value "' + size + '" is invalid for option "size"') - } -} + level++ -function alloc (size, fill, encoding) { - assertSize(size) - if (size <= 0) { - return createBuffer(size) - } - if (fill !== undefined) { - // Only pay attention to encoding if it's a string. This - // prevents accidentally sending in a number that would - // be interpretted as a start offset. - return typeof encoding === 'string' - ? createBuffer(size).fill(fill, encoding) - : createBuffer(size).fill(fill) - } - return createBuffer(size) -} + // max depth reached - put all items into a first group + // alternatively - if group id overflow - avoid proceeding + if (level > maxDepth || group > MAX_GROUP_ID) { + for (var i = 0; i < ids.length; i++) { + levelItems.push(ids[i]) + levelGroups.push(group) + sublevel.push(null, null, null, null) + } -/** - * Creates a new filled Buffer instance. - * alloc(size[, fill[, encoding]]) - **/ -Buffer.alloc = function (size, fill, encoding) { - return alloc(size, fill, encoding) -} + return offset + } -function allocUnsafe (size) { - assertSize(size) - return createBuffer(size < 0 ? 0 : checked(size) | 0) -} + levelItems.push(ids[0]) + levelGroups.push(group) -/** - * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. - * */ -Buffer.allocUnsafe = function (size) { - return allocUnsafe(size) -} -/** - * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. - */ -Buffer.allocUnsafeSlow = function (size) { - return allocUnsafe(size) -} + if (ids.length <= 1) { + sublevel.push(null, null, null, null) + return offset + } -function fromString (string, encoding) { - if (typeof encoding !== 'string' || encoding === '') { - encoding = 'utf8' - } - if (!Buffer.isEncoding(encoding)) { - throw new TypeError('Unknown encoding: ' + encoding) - } + var d2 = diam * .5 + var cx = x + d2, cy = y + d2 - var length = byteLength(string, encoding) | 0 - var buf = createBuffer(length) + // distribute points by 4 buckets + var lolo = [], lohi = [], hilo = [], hihi = [] - var actual = buf.write(string, encoding) + for (var i$1 = 1, l = ids.length; i$1 < l; i$1++) { + var idx = ids[i$1], + x$1 = points[idx * 2], + y$1 = points[idx * 2 + 1] + x$1 < cx ? (y$1 < cy ? lolo.push(idx) : lohi.push(idx)) : (y$1 < cy ? hilo.push(idx) : hihi.push(idx)) + } - if (actual !== length) { - // Writing a hex string, for example, that contains invalid characters will - // cause everything after the first invalid character to be ignored. (e.g. - // 'abxxcd' will be treated as 'ab') - buf = buf.slice(0, actual) - } + group <<= 2 - return buf -} + sublevel.push( + sort(x, y, d2, lolo, level, group), + sort(x, cy, d2, lohi, level, group + 1), + sort(cx, y, d2, hilo, level, group + 2), + sort(cx, cy, d2, hihi, level, group + 3) + ) -function fromArrayLike (array) { - var length = array.length < 0 ? 0 : checked(array.length) | 0 - var buf = createBuffer(length) - for (var i = 0; i < length; i += 1) { - buf[i] = array[i] & 255 - } - return buf -} + return offset + } -function fromArrayBuffer (array, byteOffset, length) { - if (byteOffset < 0 || array.byteLength < byteOffset) { - throw new RangeError('"offset" is outside of buffer bounds') - } + // get all points within the passed range + function range () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; - if (array.byteLength < byteOffset + (length || 0)) { - throw new RangeError('"length" is outside of buffer bounds') - } + var options - var buf - if (byteOffset === undefined && length === undefined) { - buf = new Uint8Array(array) - } else if (length === undefined) { - buf = new Uint8Array(array, byteOffset) - } else { - buf = new Uint8Array(array, byteOffset, length) - } + if (isObj(args[args.length - 1])) { + var arg = args.pop() - // Return an augmented `Uint8Array` instance - buf.__proto__ = Buffer.prototype - return buf -} + // detect if that was a rect object + if (!args.length && (arg.x != null || arg.l != null || arg.left != null)) { + args = [arg] + options = {} + } -function fromObject (obj) { - if (Buffer.isBuffer(obj)) { - var len = checked(obj.length) | 0 - var buf = createBuffer(len) + options = pick(arg, { + level: 'level maxLevel', + d: 'd diam diameter r radius px pxSize pixel pixelSize maxD size minSize', + lod: 'lod details ranges offsets' + }) + } + else { + options = {} + } - if (buf.length === 0) { - return buf - } + if (!args.length) { args = bounds } - obj.copy(buf, 0, 0, len) - return buf - } + var box = rect.apply( void 0, args ) - if (obj.length !== undefined) { - if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) { - return createBuffer(0) - } - return fromArrayLike(obj) - } + var ref = [ + Math.min(box.x, box.x + box.width), + Math.min(box.y, box.y + box.height), + Math.max(box.x, box.x + box.width), + Math.max(box.y, box.y + box.height) + ]; + var minX = ref[0]; + var minY = ref[1]; + var maxX = ref[2]; + var maxY = ref[3]; - if (obj.type === 'Buffer' && Array.isArray(obj.data)) { - return fromArrayLike(obj.data) - } -} + var ref$1 = normalize([minX, minY, maxX, maxY], bounds ); + var nminX = ref$1[0]; + var nminY = ref$1[1]; + var nmaxX = ref$1[2]; + var nmaxY = ref$1[3]; -function checked (length) { - // Note: cannot use `length < K_MAX_LENGTH` here because that fails when - // length is NaN (which is otherwise coerced to zero.) - if (length >= K_MAX_LENGTH) { - throw new RangeError('Attempt to allocate Buffer larger than maximum ' + - 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes') - } - return length | 0 -} + var maxLevel = defined(options.level, levels.length) -function SlowBuffer (length) { - if (+length != length) { // eslint-disable-line eqeqeq - length = 0 - } - return Buffer.alloc(+length) -} + // limit maxLevel by px size + if (options.d != null) { + var d + if (typeof options.d === 'number') { d = [options.d, options.d] } + else if (options.d.length) { d = options.d } -Buffer.isBuffer = function isBuffer (b) { - return b != null && b._isBuffer === true && - b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false -} + maxLevel = Math.min( + Math.max( + Math.ceil(-log2(Math.abs(d[0]) / (bounds[2] - bounds[0]))), + Math.ceil(-log2(Math.abs(d[1]) / (bounds[3] - bounds[1]))) + ), + maxLevel + ) + } + maxLevel = Math.min(maxLevel, levels.length) -Buffer.compare = function compare (a, b) { - if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength) - if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength) - if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { - throw new TypeError( - 'The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array' - ) - } + // return levels of details + if (options.lod) { + return lod(nminX, nminY, nmaxX, nmaxY, maxLevel) + } - if (a === b) return 0 - var x = a.length - var y = b.length - for (var i = 0, len = Math.min(x, y); i < len; ++i) { - if (a[i] !== b[i]) { - x = a[i] - y = b[i] - break - } - } + // do selection ids + var selection = [] - if (x < y) return -1 - if (y < x) return 1 - return 0 -} + // FIXME: probably we can do LOD here beforehead + select( 0, 0, 1, 0, 0, 1) -Buffer.isEncoding = function isEncoding (encoding) { - switch (String(encoding).toLowerCase()) { - case 'hex': - case 'utf8': - case 'utf-8': - case 'ascii': - case 'latin1': - case 'binary': - case 'base64': - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return true - default: - return false - } -} + function select ( lox, loy, d, level, from, to ) { + if (from === null || to === null) { return } -Buffer.concat = function concat (list, length) { - if (!Array.isArray(list)) { - throw new TypeError('"list" argument must be an Array of Buffers') - } + var hix = lox + d + var hiy = loy + d - if (list.length === 0) { - return Buffer.alloc(0) - } + // if box does not intersect level - ignore + if ( nminX > hix || nminY > hiy || nmaxX < lox || nmaxY < loy ) { return } + if ( level >= maxLevel ) { return } + if ( from === to ) { return } - var i - if (length === undefined) { - length = 0 - for (i = 0; i < list.length; ++i) { - length += list[i].length - } - } + // if points fall into box range - take it + var levelItems = levels[level] - var buffer = Buffer.allocUnsafe(length) - var pos = 0 - for (i = 0; i < list.length; ++i) { - var buf = list[i] - if (isInstance(buf, Uint8Array)) { - buf = Buffer.from(buf) - } - if (!Buffer.isBuffer(buf)) { - throw new TypeError('"list" argument must be an Array of Buffers') - } - buf.copy(buffer, pos) - pos += buf.length - } - return buffer -} + if (to === undefined) { to = levelItems.length } -function byteLength (string, encoding) { - if (Buffer.isBuffer(string)) { - return string.length - } - if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) { - return string.byteLength - } - if (typeof string !== 'string') { - throw new TypeError( - 'The "string" argument must be one of type string, Buffer, or ArrayBuffer. ' + - 'Received type ' + typeof string - ) - } + for (var i = from; i < to; i++) { + var id = levelItems[i] - var len = string.length - var mustMatch = (arguments.length > 2 && arguments[2] === true) - if (!mustMatch && len === 0) return 0 + var px = srcPoints[ id * 2 ] + var py = srcPoints[ id * 2 + 1 ] - // Use a for loop to avoid recursion - var loweredCase = false - for (;;) { - switch (encoding) { - case 'ascii': - case 'latin1': - case 'binary': - return len - case 'utf8': - case 'utf-8': - return utf8ToBytes(string).length - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return len * 2 - case 'hex': - return len >>> 1 - case 'base64': - return base64ToBytes(string).length - default: - if (loweredCase) { - return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8 - } - encoding = ('' + encoding).toLowerCase() - loweredCase = true - } - } -} -Buffer.byteLength = byteLength + if ( px >= minX && px <= maxX && py >= minY && py <= maxY ) {selection.push(id) + } + } -function slowToString (encoding, start, end) { - var loweredCase = false + // for every subsection do select + var offsets = sublevels[ level ] + var off0 = offsets[ from * 4 + 0 ] + var off1 = offsets[ from * 4 + 1 ] + var off2 = offsets[ from * 4 + 2 ] + var off3 = offsets[ from * 4 + 3 ] + var end = nextOffset(offsets, from + 1) - // No need to verify that "this.length <= MAX_UINT32" since it's a read-only - // property of a typed array. + var d2 = d * .5 + var nextLevel = level + 1 + select( lox, loy, d2, nextLevel, off0, off1 || off2 || off3 || end) + select( lox, loy + d2, d2, nextLevel, off1, off2 || off3 || end) + select( lox + d2, loy, d2, nextLevel, off2, off3 || end) + select( lox + d2, loy + d2, d2, nextLevel, off3, end) + } - // This behaves neither like String nor Uint8Array in that we set start/end - // to their upper/lower bounds if the value passed is out of range. - // undefined is handled specially as per ECMA-262 6th Edition, - // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. - if (start === undefined || start < 0) { - start = 0 - } - // Return early if start > this.length. Done here to prevent potential uint32 - // coercion fail below. - if (start > this.length) { - return '' - } + function nextOffset(offsets, from) { + var offset = null, i = 0 + while(offset === null) { + offset = offsets[ from * 4 + i ] + i++ + if (i > offsets.length) { return null } + } + return offset + } - if (end === undefined || end > this.length) { - end = this.length - } + return selection + } - if (end <= 0) { - return '' - } + // get range offsets within levels to render lods appropriate for zoom level + // TODO: it is possible to store minSize of a point to optimize neede level calc + function lod (lox, loy, hix, hiy, maxLevel) { + var ranges = [] - // Force coersion to uint32. This will also coerce falsey/NaN values to 0. - end >>>= 0 - start >>>= 0 + for (var level = 0; level < maxLevel; level++) { + var levelGroups = groups[level] + var from = offsets[level][0] - if (end <= start) { - return '' - } + var levelGroupStart = group(lox, loy, level) + var levelGroupEnd = group(hix, hiy, level) - if (!encoding) encoding = 'utf8' + // FIXME: utilize sublevels to speed up search range here + var startOffset = search.ge(levelGroups, levelGroupStart) + var endOffset = search.gt(levelGroups, levelGroupEnd, startOffset, levelGroups.length - 1) - while (true) { - switch (encoding) { - case 'hex': - return hexSlice(this, start, end) + ranges[level] = [startOffset + from, endOffset + from] + } - case 'utf8': - case 'utf-8': - return utf8Slice(this, start, end) + return ranges + } - case 'ascii': - return asciiSlice(this, start, end) + // get group id closest to the x,y coordinate, corresponding to a level + function group (x, y, level) { + var group = 1 - case 'latin1': - case 'binary': - return latin1Slice(this, start, end) + var cx = .5, cy = .5 + var diam = .5 - case 'base64': - return base64Slice(this, start, end) + for (var i = 0; i < level; i++) { + group <<= 2 - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return utf16leSlice(this, start, end) + group += x < cx ? (y < cy ? 0 : 1) : (y < cy ? 2 : 3) - default: - if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) - encoding = (encoding + '').toLowerCase() - loweredCase = true - } - } -} + diam *= .5 -// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package) -// to detect a Buffer instance. It's not possible to use `instanceof Buffer` -// reliably in a browserify context because there could be multiple different -// copies of the 'buffer' package in use. This method works even for Buffer -// instances that were created from another copy of the `buffer` package. -// See: https://github.com/feross/buffer/issues/154 -Buffer.prototype._isBuffer = true + cx += x < cx ? -diam : diam + cy += y < cy ? -diam : diam + } -function swap (b, n, m) { - var i = b[n] - b[n] = b[m] - b[m] = i + return group + } } -Buffer.prototype.swap16 = function swap16 () { - var len = this.length - if (len % 2 !== 0) { - throw new RangeError('Buffer size must be a multiple of 16-bits') - } - for (var i = 0; i < len; i += 2) { - swap(this, i, i + 1) - } - return this -} - -Buffer.prototype.swap32 = function swap32 () { - var len = this.length - if (len % 4 !== 0) { - throw new RangeError('Buffer size must be a multiple of 32-bits') - } - for (var i = 0; i < len; i += 4) { - swap(this, i, i + 3) - swap(this, i + 1, i + 2) - } - return this -} - -Buffer.prototype.swap64 = function swap64 () { - var len = this.length - if (len % 8 !== 0) { - throw new RangeError('Buffer size must be a multiple of 64-bits') - } - for (var i = 0; i < len; i += 8) { - swap(this, i, i + 7) - swap(this, i + 1, i + 6) - swap(this, i + 2, i + 5) - swap(this, i + 3, i + 4) - } - return this -} -Buffer.prototype.toString = function toString () { - var length = this.length - if (length === 0) return '' - if (arguments.length === 0) return utf8Slice(this, 0, length) - return slowToString.apply(this, arguments) -} +// normalize points by bounds +function normalize (pts, bounds) { + var lox = bounds[0]; + var loy = bounds[1]; + var hix = bounds[2]; + var hiy = bounds[3]; + var scaleX = 1.0 / (hix - lox) + var scaleY = 1.0 / (hiy - loy) + var result = new Array(pts.length) -Buffer.prototype.toLocaleString = Buffer.prototype.toString + for (var i = 0, n = pts.length / 2; i < n; i++) { + result[2*i] = clamp((pts[2*i] - lox) * scaleX, 0, 1) + result[2*i+1] = clamp((pts[2*i+1] - loy) * scaleY, 0, 1) + } -Buffer.prototype.equals = function equals (b) { - if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') - if (this === b) return true - return Buffer.compare(this, b) === 0 + return result } -Buffer.prototype.inspect = function inspect () { - var str = '' - var max = exports.INSPECT_MAX_BYTES - str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim() - if (this.length > max) str += ' ... ' - return '' +},{"array-bounds":72,"binary-search-bounds":99,"clamp":122,"defined":171,"dtype":176,"flatten-vertex-data":244,"is-obj":452,"math-log2":463,"parse-rect":489,"pick-by-alias":495}],61:[function(_dereq_,module,exports){ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var meta_1 = _dereq_("@turf/meta"); +// Note: change RADIUS => earthRadius +var RADIUS = 6378137; +/** + * Takes one or more features and returns their area in square meters. + * + * @name area + * @param {GeoJSON} geojson input GeoJSON feature(s) + * @returns {number} area in square meters + * @example + * var polygon = turf.polygon([[[125, -15], [113, -22], [154, -27], [144, -15], [125, -15]]]); + * + * var area = turf.area(polygon); + * + * //addToMap + * var addToMap = [polygon] + * polygon.properties.area = area + */ +function area(geojson) { + return meta_1.geomReduce(geojson, function (value, geom) { + return value + calculateArea(geom); + }, 0); } - -Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) { - if (isInstance(target, Uint8Array)) { - target = Buffer.from(target, target.offset, target.byteLength) - } - if (!Buffer.isBuffer(target)) { - throw new TypeError( - 'The "target" argument must be one of type Buffer or Uint8Array. ' + - 'Received type ' + (typeof target) - ) - } - - if (start === undefined) { - start = 0 - } - if (end === undefined) { - end = target ? target.length : 0 - } - if (thisStart === undefined) { - thisStart = 0 - } - if (thisEnd === undefined) { - thisEnd = this.length - } - - if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { - throw new RangeError('out of range index') - } - - if (thisStart >= thisEnd && start >= end) { - return 0 - } - if (thisStart >= thisEnd) { - return -1 - } - if (start >= end) { - return 1 - } - - start >>>= 0 - end >>>= 0 - thisStart >>>= 0 - thisEnd >>>= 0 - - if (this === target) return 0 - - var x = thisEnd - thisStart - var y = end - start - var len = Math.min(x, y) - - var thisCopy = this.slice(thisStart, thisEnd) - var targetCopy = target.slice(start, end) - - for (var i = 0; i < len; ++i) { - if (thisCopy[i] !== targetCopy[i]) { - x = thisCopy[i] - y = targetCopy[i] - break +exports.default = area; +/** + * Calculate Area + * + * @private + * @param {Geometry} geom GeoJSON Geometries + * @returns {number} area + */ +function calculateArea(geom) { + var total = 0; + var i; + switch (geom.type) { + case "Polygon": + return polygonArea(geom.coordinates); + case "MultiPolygon": + for (i = 0; i < geom.coordinates.length; i++) { + total += polygonArea(geom.coordinates[i]); + } + return total; + case "Point": + case "MultiPoint": + case "LineString": + case "MultiLineString": + return 0; } - } - - if (x < y) return -1 - if (y < x) return 1 - return 0 + return 0; } - -// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, -// OR the last index of `val` in `buffer` at offset <= `byteOffset`. -// -// Arguments: -// - buffer - a Buffer to search -// - val - a string, Buffer, or number -// - byteOffset - an index into `buffer`; will be clamped to an int32 -// - encoding - an optional encoding, relevant is val is a string -// - dir - true for indexOf, false for lastIndexOf -function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) { - // Empty buffer means no match - if (buffer.length === 0) return -1 - - // Normalize byteOffset - if (typeof byteOffset === 'string') { - encoding = byteOffset - byteOffset = 0 - } else if (byteOffset > 0x7fffffff) { - byteOffset = 0x7fffffff - } else if (byteOffset < -0x80000000) { - byteOffset = -0x80000000 - } - byteOffset = +byteOffset // Coerce to Number. - if (numberIsNaN(byteOffset)) { - // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer - byteOffset = dir ? 0 : (buffer.length - 1) - } - - // Normalize byteOffset: negative offsets start from the end of the buffer - if (byteOffset < 0) byteOffset = buffer.length + byteOffset - if (byteOffset >= buffer.length) { - if (dir) return -1 - else byteOffset = buffer.length - 1 - } else if (byteOffset < 0) { - if (dir) byteOffset = 0 - else return -1 - } - - // Normalize val - if (typeof val === 'string') { - val = Buffer.from(val, encoding) - } - - // Finally, search either indexOf (if dir is true) or lastIndexOf - if (Buffer.isBuffer(val)) { - // Special case: looking for empty string/buffer always fails - if (val.length === 0) { - return -1 - } - return arrayIndexOf(buffer, val, byteOffset, encoding, dir) - } else if (typeof val === 'number') { - val = val & 0xFF // Search for a byte value [0-255] - if (typeof Uint8Array.prototype.indexOf === 'function') { - if (dir) { - return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) - } else { - return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) - } +function polygonArea(coords) { + var total = 0; + if (coords && coords.length > 0) { + total += Math.abs(ringArea(coords[0])); + for (var i = 1; i < coords.length; i++) { + total -= Math.abs(ringArea(coords[i])); + } } - return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir) - } - - throw new TypeError('val must be string, number or Buffer') + return total; } - -function arrayIndexOf (arr, val, byteOffset, encoding, dir) { - var indexSize = 1 - var arrLength = arr.length - var valLength = val.length - - if (encoding !== undefined) { - encoding = String(encoding).toLowerCase() - if (encoding === 'ucs2' || encoding === 'ucs-2' || - encoding === 'utf16le' || encoding === 'utf-16le') { - if (arr.length < 2 || val.length < 2) { - return -1 - } - indexSize = 2 - arrLength /= 2 - valLength /= 2 - byteOffset /= 2 - } - } - - function read (buf, i) { - if (indexSize === 1) { - return buf[i] - } else { - return buf.readUInt16BE(i * indexSize) - } - } - - var i - if (dir) { - var foundIndex = -1 - for (i = byteOffset; i < arrLength; i++) { - if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { - if (foundIndex === -1) foundIndex = i - if (i - foundIndex + 1 === valLength) return foundIndex * indexSize - } else { - if (foundIndex !== -1) i -= i - foundIndex - foundIndex = -1 - } - } - } else { - if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength - for (i = byteOffset; i >= 0; i--) { - var found = true - for (var j = 0; j < valLength; j++) { - if (read(arr, i + j) !== read(val, j)) { - found = false - break +/** + * @private + * Calculate the approximate area of the polygon were it projected onto the earth. + * Note that this area will be positive if ring is oriented clockwise, otherwise it will be negative. + * + * Reference: + * Robert. G. Chamberlain and William H. Duquette, "Some Algorithms for Polygons on a Sphere", + * JPL Publication 07-03, Jet Propulsion + * Laboratory, Pasadena, CA, June 2007 http://trs-new.jpl.nasa.gov/dspace/handle/2014/40409 + * + * @param {Array>} coords Ring Coordinates + * @returns {number} The approximate signed geodesic area of the polygon in square meters. + */ +function ringArea(coords) { + var p1; + var p2; + var p3; + var lowerIndex; + var middleIndex; + var upperIndex; + var i; + var total = 0; + var coordsLength = coords.length; + if (coordsLength > 2) { + for (i = 0; i < coordsLength; i++) { + if (i === coordsLength - 2) { + lowerIndex = coordsLength - 2; + middleIndex = coordsLength - 1; + upperIndex = 0; + } + else if (i === coordsLength - 1) { + lowerIndex = coordsLength - 1; + middleIndex = 0; + upperIndex = 1; + } + else { + lowerIndex = i; + middleIndex = i + 1; + upperIndex = i + 2; + } + p1 = coords[lowerIndex]; + p2 = coords[middleIndex]; + p3 = coords[upperIndex]; + total += (rad(p3[0]) - rad(p1[0])) * Math.sin(rad(p2[1])); } - } - if (found) return i + total = total * RADIUS * RADIUS / 2; } - } - - return -1 + return total; } - -Buffer.prototype.includes = function includes (val, byteOffset, encoding) { - return this.indexOf(val, byteOffset, encoding) !== -1 +function rad(num) { + return num * Math.PI / 180; } -Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) { - return bidirectionalIndexOf(this, val, byteOffset, encoding, true) +},{"@turf/meta":65}],62:[function(_dereq_,module,exports){ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var meta_1 = _dereq_("@turf/meta"); +/** + * Takes a set of features, calculates the bbox of all input features, and returns a bounding box. + * + * @name bbox + * @param {GeoJSON} geojson any GeoJSON object + * @returns {BBox} bbox extent in [minX, minY, maxX, maxY] order + * @example + * var line = turf.lineString([[-74, 40], [-78, 42], [-82, 35]]); + * var bbox = turf.bbox(line); + * var bboxPolygon = turf.bboxPolygon(bbox); + * + * //addToMap + * var addToMap = [line, bboxPolygon] + */ +function bbox(geojson) { + var result = [Infinity, Infinity, -Infinity, -Infinity]; + meta_1.coordEach(geojson, function (coord) { + if (result[0] > coord[0]) { + result[0] = coord[0]; + } + if (result[1] > coord[1]) { + result[1] = coord[1]; + } + if (result[2] < coord[0]) { + result[2] = coord[0]; + } + if (result[3] < coord[1]) { + result[3] = coord[1]; + } + }); + return result; } +exports.default = bbox; -Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) { - return bidirectionalIndexOf(this, val, byteOffset, encoding, false) +},{"@turf/meta":65}],63:[function(_dereq_,module,exports){ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var meta_1 = _dereq_("@turf/meta"); +var helpers_1 = _dereq_("@turf/helpers"); +/** + * Takes one or more features and calculates the centroid using the mean of all vertices. + * This lessens the effect of small islands and artifacts when calculating the centroid of a set of polygons. + * + * @name centroid + * @param {GeoJSON} geojson GeoJSON to be centered + * @param {Object} [options={}] Optional Parameters + * @param {Object} [options.properties={}] an Object that is used as the {@link Feature}'s properties + * @returns {Feature} the centroid of the input features + * @example + * var polygon = turf.polygon([[[-81, 41], [-88, 36], [-84, 31], [-80, 33], [-77, 39], [-81, 41]]]); + * + * var centroid = turf.centroid(polygon); + * + * //addToMap + * var addToMap = [polygon, centroid] + */ +function centroid(geojson, options) { + if (options === void 0) { options = {}; } + var xSum = 0; + var ySum = 0; + var len = 0; + meta_1.coordEach(geojson, function (coord) { + xSum += coord[0]; + ySum += coord[1]; + len++; + }); + return helpers_1.point([xSum / len, ySum / len], options.properties); } +exports.default = centroid; -function hexWrite (buf, string, offset, length) { - offset = Number(offset) || 0 - var remaining = buf.length - offset - if (!length) { - length = remaining - } else { - length = Number(length) - if (length > remaining) { - length = remaining +},{"@turf/helpers":64,"@turf/meta":65}],64:[function(_dereq_,module,exports){ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * @module helpers + */ +/** + * Earth Radius used with the Harvesine formula and approximates using a spherical (non-ellipsoid) Earth. + * + * @memberof helpers + * @type {number} + */ +exports.earthRadius = 6371008.8; +/** + * Unit of measurement factors using a spherical (non-ellipsoid) earth radius. + * + * @memberof helpers + * @type {Object} + */ +exports.factors = { + centimeters: exports.earthRadius * 100, + centimetres: exports.earthRadius * 100, + degrees: exports.earthRadius / 111325, + feet: exports.earthRadius * 3.28084, + inches: exports.earthRadius * 39.370, + kilometers: exports.earthRadius / 1000, + kilometres: exports.earthRadius / 1000, + meters: exports.earthRadius, + metres: exports.earthRadius, + miles: exports.earthRadius / 1609.344, + millimeters: exports.earthRadius * 1000, + millimetres: exports.earthRadius * 1000, + nauticalmiles: exports.earthRadius / 1852, + radians: 1, + yards: exports.earthRadius / 1.0936, +}; +/** + * Units of measurement factors based on 1 meter. + * + * @memberof helpers + * @type {Object} + */ +exports.unitsFactors = { + centimeters: 100, + centimetres: 100, + degrees: 1 / 111325, + feet: 3.28084, + inches: 39.370, + kilometers: 1 / 1000, + kilometres: 1 / 1000, + meters: 1, + metres: 1, + miles: 1 / 1609.344, + millimeters: 1000, + millimetres: 1000, + nauticalmiles: 1 / 1852, + radians: 1 / exports.earthRadius, + yards: 1 / 1.0936, +}; +/** + * Area of measurement factors based on 1 square meter. + * + * @memberof helpers + * @type {Object} + */ +exports.areaFactors = { + acres: 0.000247105, + centimeters: 10000, + centimetres: 10000, + feet: 10.763910417, + inches: 1550.003100006, + kilometers: 0.000001, + kilometres: 0.000001, + meters: 1, + metres: 1, + miles: 3.86e-7, + millimeters: 1000000, + millimetres: 1000000, + yards: 1.195990046, +}; +/** + * Wraps a GeoJSON {@link Geometry} in a GeoJSON {@link Feature}. + * + * @name feature + * @param {Geometry} geometry input geometry + * @param {Object} [properties={}] an Object of key-value pairs to add as properties + * @param {Object} [options={}] Optional Parameters + * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature + * @param {string|number} [options.id] Identifier associated with the Feature + * @returns {Feature} a GeoJSON Feature + * @example + * var geometry = { + * "type": "Point", + * "coordinates": [110, 50] + * }; + * + * var feature = turf.feature(geometry); + * + * //=feature + */ +function feature(geom, properties, options) { + if (options === void 0) { options = {}; } + var feat = { type: "Feature" }; + if (options.id === 0 || options.id) { + feat.id = options.id; } - } - - var strLen = string.length - - if (length > strLen / 2) { - length = strLen / 2 - } - for (var i = 0; i < length; ++i) { - var parsed = parseInt(string.substr(i * 2, 2), 16) - if (numberIsNaN(parsed)) return i - buf[offset + i] = parsed - } - return i + if (options.bbox) { + feat.bbox = options.bbox; + } + feat.properties = properties || {}; + feat.geometry = geom; + return feat; } - -function utf8Write (buf, string, offset, length) { - return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) +exports.feature = feature; +/** + * Creates a GeoJSON {@link Geometry} from a Geometry string type & coordinates. + * For GeometryCollection type use `helpers.geometryCollection` + * + * @name geometry + * @param {string} type Geometry Type + * @param {Array} coordinates Coordinates + * @param {Object} [options={}] Optional Parameters + * @returns {Geometry} a GeoJSON Geometry + * @example + * var type = "Point"; + * var coordinates = [110, 50]; + * var geometry = turf.geometry(type, coordinates); + * // => geometry + */ +function geometry(type, coordinates, options) { + if (options === void 0) { options = {}; } + switch (type) { + case "Point": return point(coordinates).geometry; + case "LineString": return lineString(coordinates).geometry; + case "Polygon": return polygon(coordinates).geometry; + case "MultiPoint": return multiPoint(coordinates).geometry; + case "MultiLineString": return multiLineString(coordinates).geometry; + case "MultiPolygon": return multiPolygon(coordinates).geometry; + default: throw new Error(type + " is invalid"); + } } - -function asciiWrite (buf, string, offset, length) { - return blitBuffer(asciiToBytes(string), buf, offset, length) +exports.geometry = geometry; +/** + * Creates a {@link Point} {@link Feature} from a Position. + * + * @name point + * @param {Array} coordinates longitude, latitude position (each in decimal degrees) + * @param {Object} [properties={}] an Object of key-value pairs to add as properties + * @param {Object} [options={}] Optional Parameters + * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature + * @param {string|number} [options.id] Identifier associated with the Feature + * @returns {Feature} a Point feature + * @example + * var point = turf.point([-75.343, 39.984]); + * + * //=point + */ +function point(coordinates, properties, options) { + if (options === void 0) { options = {}; } + var geom = { + type: "Point", + coordinates: coordinates, + }; + return feature(geom, properties, options); } - -function latin1Write (buf, string, offset, length) { - return asciiWrite(buf, string, offset, length) +exports.point = point; +/** + * Creates a {@link Point} {@link FeatureCollection} from an Array of Point coordinates. + * + * @name points + * @param {Array>} coordinates an array of Points + * @param {Object} [properties={}] Translate these properties to each Feature + * @param {Object} [options={}] Optional Parameters + * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] + * associated with the FeatureCollection + * @param {string|number} [options.id] Identifier associated with the FeatureCollection + * @returns {FeatureCollection} Point Feature + * @example + * var points = turf.points([ + * [-75, 39], + * [-80, 45], + * [-78, 50] + * ]); + * + * //=points + */ +function points(coordinates, properties, options) { + if (options === void 0) { options = {}; } + return featureCollection(coordinates.map(function (coords) { + return point(coords, properties); + }), options); } - -function base64Write (buf, string, offset, length) { - return blitBuffer(base64ToBytes(string), buf, offset, length) +exports.points = points; +/** + * Creates a {@link Polygon} {@link Feature} from an Array of LinearRings. + * + * @name polygon + * @param {Array>>} coordinates an array of LinearRings + * @param {Object} [properties={}] an Object of key-value pairs to add as properties + * @param {Object} [options={}] Optional Parameters + * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature + * @param {string|number} [options.id] Identifier associated with the Feature + * @returns {Feature} Polygon Feature + * @example + * var polygon = turf.polygon([[[-5, 52], [-4, 56], [-2, 51], [-7, 54], [-5, 52]]], { name: 'poly1' }); + * + * //=polygon + */ +function polygon(coordinates, properties, options) { + if (options === void 0) { options = {}; } + for (var _i = 0, coordinates_1 = coordinates; _i < coordinates_1.length; _i++) { + var ring = coordinates_1[_i]; + if (ring.length < 4) { + throw new Error("Each LinearRing of a Polygon must have 4 or more Positions."); + } + for (var j = 0; j < ring[ring.length - 1].length; j++) { + // Check if first point of Polygon contains two numbers + if (ring[ring.length - 1][j] !== ring[0][j]) { + throw new Error("First and last Position are not equivalent."); + } + } + } + var geom = { + type: "Polygon", + coordinates: coordinates, + }; + return feature(geom, properties, options); } - -function ucs2Write (buf, string, offset, length) { - return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) +exports.polygon = polygon; +/** + * Creates a {@link Polygon} {@link FeatureCollection} from an Array of Polygon coordinates. + * + * @name polygons + * @param {Array>>>} coordinates an array of Polygon coordinates + * @param {Object} [properties={}] an Object of key-value pairs to add as properties + * @param {Object} [options={}] Optional Parameters + * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature + * @param {string|number} [options.id] Identifier associated with the FeatureCollection + * @returns {FeatureCollection} Polygon FeatureCollection + * @example + * var polygons = turf.polygons([ + * [[[-5, 52], [-4, 56], [-2, 51], [-7, 54], [-5, 52]]], + * [[[-15, 42], [-14, 46], [-12, 41], [-17, 44], [-15, 42]]], + * ]); + * + * //=polygons + */ +function polygons(coordinates, properties, options) { + if (options === void 0) { options = {}; } + return featureCollection(coordinates.map(function (coords) { + return polygon(coords, properties); + }), options); } - -Buffer.prototype.write = function write (string, offset, length, encoding) { - // Buffer#write(string) - if (offset === undefined) { - encoding = 'utf8' - length = this.length - offset = 0 - // Buffer#write(string, encoding) - } else if (length === undefined && typeof offset === 'string') { - encoding = offset - length = this.length - offset = 0 - // Buffer#write(string, offset[, length][, encoding]) - } else if (isFinite(offset)) { - offset = offset >>> 0 - if (isFinite(length)) { - length = length >>> 0 - if (encoding === undefined) encoding = 'utf8' - } else { - encoding = length - length = undefined - } - } else { - throw new Error( - 'Buffer.write(string, encoding, offset[, length]) is no longer supported' - ) - } - - var remaining = this.length - offset - if (length === undefined || length > remaining) length = remaining - - if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { - throw new RangeError('Attempt to write outside buffer bounds') - } - - if (!encoding) encoding = 'utf8' - - var loweredCase = false - for (;;) { - switch (encoding) { - case 'hex': - return hexWrite(this, string, offset, length) - - case 'utf8': - case 'utf-8': - return utf8Write(this, string, offset, length) - - case 'ascii': - return asciiWrite(this, string, offset, length) - - case 'latin1': - case 'binary': - return latin1Write(this, string, offset, length) - - case 'base64': - // Warning: maxLength not taken into account in base64Write - return base64Write(this, string, offset, length) - - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return ucs2Write(this, string, offset, length) - - default: - if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) - encoding = ('' + encoding).toLowerCase() - loweredCase = true +exports.polygons = polygons; +/** + * Creates a {@link LineString} {@link Feature} from an Array of Positions. + * + * @name lineString + * @param {Array>} coordinates an array of Positions + * @param {Object} [properties={}] an Object of key-value pairs to add as properties + * @param {Object} [options={}] Optional Parameters + * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature + * @param {string|number} [options.id] Identifier associated with the Feature + * @returns {Feature} LineString Feature + * @example + * var linestring1 = turf.lineString([[-24, 63], [-23, 60], [-25, 65], [-20, 69]], {name: 'line 1'}); + * var linestring2 = turf.lineString([[-14, 43], [-13, 40], [-15, 45], [-10, 49]], {name: 'line 2'}); + * + * //=linestring1 + * //=linestring2 + */ +function lineString(coordinates, properties, options) { + if (options === void 0) { options = {}; } + if (coordinates.length < 2) { + throw new Error("coordinates must be an array of two or more positions"); } - } -} - -Buffer.prototype.toJSON = function toJSON () { - return { - type: 'Buffer', - data: Array.prototype.slice.call(this._arr || this, 0) - } + var geom = { + type: "LineString", + coordinates: coordinates, + }; + return feature(geom, properties, options); } - -function base64Slice (buf, start, end) { - if (start === 0 && end === buf.length) { - return base64.fromByteArray(buf) - } else { - return base64.fromByteArray(buf.slice(start, end)) - } +exports.lineString = lineString; +/** + * Creates a {@link LineString} {@link FeatureCollection} from an Array of LineString coordinates. + * + * @name lineStrings + * @param {Array>>} coordinates an array of LinearRings + * @param {Object} [properties={}] an Object of key-value pairs to add as properties + * @param {Object} [options={}] Optional Parameters + * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] + * associated with the FeatureCollection + * @param {string|number} [options.id] Identifier associated with the FeatureCollection + * @returns {FeatureCollection} LineString FeatureCollection + * @example + * var linestrings = turf.lineStrings([ + * [[-24, 63], [-23, 60], [-25, 65], [-20, 69]], + * [[-14, 43], [-13, 40], [-15, 45], [-10, 49]] + * ]); + * + * //=linestrings + */ +function lineStrings(coordinates, properties, options) { + if (options === void 0) { options = {}; } + return featureCollection(coordinates.map(function (coords) { + return lineString(coords, properties); + }), options); } - -function utf8Slice (buf, start, end) { - end = Math.min(buf.length, end) - var res = [] - - var i = start - while (i < end) { - var firstByte = buf[i] - var codePoint = null - var bytesPerSequence = (firstByte > 0xEF) ? 4 - : (firstByte > 0xDF) ? 3 - : (firstByte > 0xBF) ? 2 - : 1 - - if (i + bytesPerSequence <= end) { - var secondByte, thirdByte, fourthByte, tempCodePoint - - switch (bytesPerSequence) { - case 1: - if (firstByte < 0x80) { - codePoint = firstByte - } - break - case 2: - secondByte = buf[i + 1] - if ((secondByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F) - if (tempCodePoint > 0x7F) { - codePoint = tempCodePoint - } - } - break - case 3: - secondByte = buf[i + 1] - thirdByte = buf[i + 2] - if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F) - if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { - codePoint = tempCodePoint - } - } - break - case 4: - secondByte = buf[i + 1] - thirdByte = buf[i + 2] - fourthByte = buf[i + 3] - if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F) - if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { - codePoint = tempCodePoint - } - } - } +exports.lineStrings = lineStrings; +/** + * Takes one or more {@link Feature|Features} and creates a {@link FeatureCollection}. + * + * @name featureCollection + * @param {Feature[]} features input features + * @param {Object} [options={}] Optional Parameters + * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature + * @param {string|number} [options.id] Identifier associated with the Feature + * @returns {FeatureCollection} FeatureCollection of Features + * @example + * var locationA = turf.point([-75.343, 39.984], {name: 'Location A'}); + * var locationB = turf.point([-75.833, 39.284], {name: 'Location B'}); + * var locationC = turf.point([-75.534, 39.123], {name: 'Location C'}); + * + * var collection = turf.featureCollection([ + * locationA, + * locationB, + * locationC + * ]); + * + * //=collection + */ +function featureCollection(features, options) { + if (options === void 0) { options = {}; } + var fc = { type: "FeatureCollection" }; + if (options.id) { + fc.id = options.id; } - - if (codePoint === null) { - // we did not generate a valid codePoint so insert a - // replacement char (U+FFFD) and advance only 1 byte - codePoint = 0xFFFD - bytesPerSequence = 1 - } else if (codePoint > 0xFFFF) { - // encode to utf16 (surrogate pair dance) - codePoint -= 0x10000 - res.push(codePoint >>> 10 & 0x3FF | 0xD800) - codePoint = 0xDC00 | codePoint & 0x3FF + if (options.bbox) { + fc.bbox = options.bbox; } - - res.push(codePoint) - i += bytesPerSequence - } - - return decodeCodePointsArray(res) -} - -// Based on http://stackoverflow.com/a/22747272/680742, the browser with -// the lowest limit is Chrome, with 0x10000 args. -// We go 1 magnitude less, for safety -var MAX_ARGUMENTS_LENGTH = 0x1000 - -function decodeCodePointsArray (codePoints) { - var len = codePoints.length - if (len <= MAX_ARGUMENTS_LENGTH) { - return String.fromCharCode.apply(String, codePoints) // avoid extra slice() - } - - // Decode in chunks to avoid "call stack size exceeded". - var res = '' - var i = 0 - while (i < len) { - res += String.fromCharCode.apply( - String, - codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) - ) - } - return res -} - -function asciiSlice (buf, start, end) { - var ret = '' - end = Math.min(buf.length, end) - - for (var i = start; i < end; ++i) { - ret += String.fromCharCode(buf[i] & 0x7F) - } - return ret + fc.features = features; + return fc; } - -function latin1Slice (buf, start, end) { - var ret = '' - end = Math.min(buf.length, end) - - for (var i = start; i < end; ++i) { - ret += String.fromCharCode(buf[i]) - } - return ret +exports.featureCollection = featureCollection; +/** + * Creates a {@link Feature} based on a + * coordinate array. Properties can be added optionally. + * + * @name multiLineString + * @param {Array>>} coordinates an array of LineStrings + * @param {Object} [properties={}] an Object of key-value pairs to add as properties + * @param {Object} [options={}] Optional Parameters + * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature + * @param {string|number} [options.id] Identifier associated with the Feature + * @returns {Feature} a MultiLineString feature + * @throws {Error} if no coordinates are passed + * @example + * var multiLine = turf.multiLineString([[[0,0],[10,10]]]); + * + * //=multiLine + */ +function multiLineString(coordinates, properties, options) { + if (options === void 0) { options = {}; } + var geom = { + type: "MultiLineString", + coordinates: coordinates, + }; + return feature(geom, properties, options); } - -function hexSlice (buf, start, end) { - var len = buf.length - - if (!start || start < 0) start = 0 - if (!end || end < 0 || end > len) end = len - - var out = '' - for (var i = start; i < end; ++i) { - out += toHex(buf[i]) - } - return out +exports.multiLineString = multiLineString; +/** + * Creates a {@link Feature} based on a + * coordinate array. Properties can be added optionally. + * + * @name multiPoint + * @param {Array>} coordinates an array of Positions + * @param {Object} [properties={}] an Object of key-value pairs to add as properties + * @param {Object} [options={}] Optional Parameters + * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature + * @param {string|number} [options.id] Identifier associated with the Feature + * @returns {Feature} a MultiPoint feature + * @throws {Error} if no coordinates are passed + * @example + * var multiPt = turf.multiPoint([[0,0],[10,10]]); + * + * //=multiPt + */ +function multiPoint(coordinates, properties, options) { + if (options === void 0) { options = {}; } + var geom = { + type: "MultiPoint", + coordinates: coordinates, + }; + return feature(geom, properties, options); } - -function utf16leSlice (buf, start, end) { - var bytes = buf.slice(start, end) - var res = '' - for (var i = 0; i < bytes.length; i += 2) { - res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256)) - } - return res +exports.multiPoint = multiPoint; +/** + * Creates a {@link Feature} based on a + * coordinate array. Properties can be added optionally. + * + * @name multiPolygon + * @param {Array>>>} coordinates an array of Polygons + * @param {Object} [properties={}] an Object of key-value pairs to add as properties + * @param {Object} [options={}] Optional Parameters + * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature + * @param {string|number} [options.id] Identifier associated with the Feature + * @returns {Feature} a multipolygon feature + * @throws {Error} if no coordinates are passed + * @example + * var multiPoly = turf.multiPolygon([[[[0,0],[0,10],[10,10],[10,0],[0,0]]]]); + * + * //=multiPoly + * + */ +function multiPolygon(coordinates, properties, options) { + if (options === void 0) { options = {}; } + var geom = { + type: "MultiPolygon", + coordinates: coordinates, + }; + return feature(geom, properties, options); } - -Buffer.prototype.slice = function slice (start, end) { - var len = this.length - start = ~~start - end = end === undefined ? len : ~~end - - if (start < 0) { - start += len - if (start < 0) start = 0 - } else if (start > len) { - start = len - } - - if (end < 0) { - end += len - if (end < 0) end = 0 - } else if (end > len) { - end = len - } - - if (end < start) end = start - - var newBuf = this.subarray(start, end) - // Return an augmented `Uint8Array` instance - newBuf.__proto__ = Buffer.prototype - return newBuf +exports.multiPolygon = multiPolygon; +/** + * Creates a {@link Feature} based on a + * coordinate array. Properties can be added optionally. + * + * @name geometryCollection + * @param {Array} geometries an array of GeoJSON Geometries + * @param {Object} [properties={}] an Object of key-value pairs to add as properties + * @param {Object} [options={}] Optional Parameters + * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature + * @param {string|number} [options.id] Identifier associated with the Feature + * @returns {Feature} a GeoJSON GeometryCollection Feature + * @example + * var pt = turf.geometry("Point", [100, 0]); + * var line = turf.geometry("LineString", [[101, 0], [102, 1]]); + * var collection = turf.geometryCollection([pt, line]); + * + * // => collection + */ +function geometryCollection(geometries, properties, options) { + if (options === void 0) { options = {}; } + var geom = { + type: "GeometryCollection", + geometries: geometries, + }; + return feature(geom, properties, options); } - -/* - * Need to make sure that buffer isn't trying to write out of bounds. +exports.geometryCollection = geometryCollection; +/** + * Round number to precision + * + * @param {number} num Number + * @param {number} [precision=0] Precision + * @returns {number} rounded number + * @example + * turf.round(120.4321) + * //=120 + * + * turf.round(120.4321, 2) + * //=120.43 */ -function checkOffset (offset, ext, length) { - if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') - if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') +function round(num, precision) { + if (precision === void 0) { precision = 0; } + if (precision && !(precision >= 0)) { + throw new Error("precision must be a positive number"); + } + var multiplier = Math.pow(10, precision || 0); + return Math.round(num * multiplier) / multiplier; } - -Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - var val = this[offset] - var mul = 1 - var i = 0 - while (++i < byteLength && (mul *= 0x100)) { - val += this[offset + i] * mul - } - - return val +exports.round = round; +/** + * Convert a distance measurement (assuming a spherical Earth) from radians to a more friendly unit. + * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet + * + * @name radiansToLength + * @param {number} radians in radians across the sphere + * @param {string} [units="kilometers"] can be degrees, radians, miles, or kilometers inches, yards, metres, + * meters, kilometres, kilometers. + * @returns {number} distance + */ +function radiansToLength(radians, units) { + if (units === void 0) { units = "kilometers"; } + var factor = exports.factors[units]; + if (!factor) { + throw new Error(units + " units is invalid"); + } + return radians * factor; } - -Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) { - checkOffset(offset, byteLength, this.length) - } - - var val = this[offset + --byteLength] - var mul = 1 - while (byteLength > 0 && (mul *= 0x100)) { - val += this[offset + --byteLength] * mul - } - - return val +exports.radiansToLength = radiansToLength; +/** + * Convert a distance measurement (assuming a spherical Earth) from a real-world unit into radians + * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet + * + * @name lengthToRadians + * @param {number} distance in real units + * @param {string} [units="kilometers"] can be degrees, radians, miles, or kilometers inches, yards, metres, + * meters, kilometres, kilometers. + * @returns {number} radians + */ +function lengthToRadians(distance, units) { + if (units === void 0) { units = "kilometers"; } + var factor = exports.factors[units]; + if (!factor) { + throw new Error(units + " units is invalid"); + } + return distance / factor; } - -Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 1, this.length) - return this[offset] +exports.lengthToRadians = lengthToRadians; +/** + * Convert a distance measurement (assuming a spherical Earth) from a real-world unit into degrees + * Valid units: miles, nauticalmiles, inches, yards, meters, metres, centimeters, kilometres, feet + * + * @name lengthToDegrees + * @param {number} distance in real units + * @param {string} [units="kilometers"] can be degrees, radians, miles, or kilometers inches, yards, metres, + * meters, kilometres, kilometers. + * @returns {number} degrees + */ +function lengthToDegrees(distance, units) { + return radiansToDegrees(lengthToRadians(distance, units)); } - -Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 2, this.length) - return this[offset] | (this[offset + 1] << 8) +exports.lengthToDegrees = lengthToDegrees; +/** + * Converts any bearing angle from the north line direction (positive clockwise) + * and returns an angle between 0-360 degrees (positive clockwise), 0 being the north line + * + * @name bearingToAzimuth + * @param {number} bearing angle, between -180 and +180 degrees + * @returns {number} angle between 0 and 360 degrees + */ +function bearingToAzimuth(bearing) { + var angle = bearing % 360; + if (angle < 0) { + angle += 360; + } + return angle; } - -Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 2, this.length) - return (this[offset] << 8) | this[offset + 1] +exports.bearingToAzimuth = bearingToAzimuth; +/** + * Converts an angle in radians to degrees + * + * @name radiansToDegrees + * @param {number} radians angle in radians + * @returns {number} degrees between 0 and 360 degrees + */ +function radiansToDegrees(radians) { + var degrees = radians % (2 * Math.PI); + return degrees * 180 / Math.PI; } - -Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - - return ((this[offset]) | - (this[offset + 1] << 8) | - (this[offset + 2] << 16)) + - (this[offset + 3] * 0x1000000) +exports.radiansToDegrees = radiansToDegrees; +/** + * Converts an angle in degrees to radians + * + * @name degreesToRadians + * @param {number} degrees angle between 0 and 360 degrees + * @returns {number} angle in radians + */ +function degreesToRadians(degrees) { + var radians = degrees % 360; + return radians * Math.PI / 180; } - -Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset] * 0x1000000) + - ((this[offset + 1] << 16) | - (this[offset + 2] << 8) | - this[offset + 3]) +exports.degreesToRadians = degreesToRadians; +/** + * Converts a length to the requested unit. + * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet + * + * @param {number} length to be converted + * @param {Units} [originalUnit="kilometers"] of the length + * @param {Units} [finalUnit="kilometers"] returned unit + * @returns {number} the converted length + */ +function convertLength(length, originalUnit, finalUnit) { + if (originalUnit === void 0) { originalUnit = "kilometers"; } + if (finalUnit === void 0) { finalUnit = "kilometers"; } + if (!(length >= 0)) { + throw new Error("length must be a positive number"); + } + return radiansToLength(lengthToRadians(length, originalUnit), finalUnit); } - -Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - var val = this[offset] - var mul = 1 - var i = 0 - while (++i < byteLength && (mul *= 0x100)) { - val += this[offset + i] * mul - } - mul *= 0x80 - - if (val >= mul) val -= Math.pow(2, 8 * byteLength) - - return val +exports.convertLength = convertLength; +/** + * Converts a area to the requested unit. + * Valid units: kilometers, kilometres, meters, metres, centimetres, millimeters, acres, miles, yards, feet, inches + * @param {number} area to be converted + * @param {Units} [originalUnit="meters"] of the distance + * @param {Units} [finalUnit="kilometers"] returned unit + * @returns {number} the converted distance + */ +function convertArea(area, originalUnit, finalUnit) { + if (originalUnit === void 0) { originalUnit = "meters"; } + if (finalUnit === void 0) { finalUnit = "kilometers"; } + if (!(area >= 0)) { + throw new Error("area must be a positive number"); + } + var startFactor = exports.areaFactors[originalUnit]; + if (!startFactor) { + throw new Error("invalid original units"); + } + var finalFactor = exports.areaFactors[finalUnit]; + if (!finalFactor) { + throw new Error("invalid final units"); + } + return (area / startFactor) * finalFactor; } - -Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - var i = byteLength - var mul = 1 - var val = this[offset + --i] - while (i > 0 && (mul *= 0x100)) { - val += this[offset + --i] * mul - } - mul *= 0x80 - - if (val >= mul) val -= Math.pow(2, 8 * byteLength) - - return val +exports.convertArea = convertArea; +/** + * isNumber + * + * @param {*} num Number to validate + * @returns {boolean} true/false + * @example + * turf.isNumber(123) + * //=true + * turf.isNumber('foo') + * //=false + */ +function isNumber(num) { + return !isNaN(num) && num !== null && !Array.isArray(num) && !/^\s*$/.test(num); } - -Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 1, this.length) - if (!(this[offset] & 0x80)) return (this[offset]) - return ((0xff - this[offset] + 1) * -1) +exports.isNumber = isNumber; +/** + * isObject + * + * @param {*} input variable to validate + * @returns {boolean} true/false + * @example + * turf.isObject({elevation: 10}) + * //=true + * turf.isObject('foo') + * //=false + */ +function isObject(input) { + return (!!input) && (input.constructor === Object); } - -Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 2, this.length) - var val = this[offset] | (this[offset + 1] << 8) - return (val & 0x8000) ? val | 0xFFFF0000 : val +exports.isObject = isObject; +/** + * Validate BBox + * + * @private + * @param {Array} bbox BBox to validate + * @returns {void} + * @throws Error if BBox is not valid + * @example + * validateBBox([-180, -40, 110, 50]) + * //=OK + * validateBBox([-180, -40]) + * //=Error + * validateBBox('Foo') + * //=Error + * validateBBox(5) + * //=Error + * validateBBox(null) + * //=Error + * validateBBox(undefined) + * //=Error + */ +function validateBBox(bbox) { + if (!bbox) { + throw new Error("bbox is required"); + } + if (!Array.isArray(bbox)) { + throw new Error("bbox must be an Array"); + } + if (bbox.length !== 4 && bbox.length !== 6) { + throw new Error("bbox must be an Array of 4 or 6 numbers"); + } + bbox.forEach(function (num) { + if (!isNumber(num)) { + throw new Error("bbox must only contain numbers"); + } + }); } - -Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 2, this.length) - var val = this[offset + 1] | (this[offset] << 8) - return (val & 0x8000) ? val | 0xFFFF0000 : val +exports.validateBBox = validateBBox; +/** + * Validate Id + * + * @private + * @param {string|number} id Id to validate + * @returns {void} + * @throws Error if Id is not valid + * @example + * validateId([-180, -40, 110, 50]) + * //=Error + * validateId([-180, -40]) + * //=Error + * validateId('Foo') + * //=OK + * validateId(5) + * //=OK + * validateId(null) + * //=Error + * validateId(undefined) + * //=Error + */ +function validateId(id) { + if (!id) { + throw new Error("id is required"); + } + if (["string", "number"].indexOf(typeof id) === -1) { + throw new Error("id must be a number or a string"); + } } - -Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset]) | - (this[offset + 1] << 8) | - (this[offset + 2] << 16) | - (this[offset + 3] << 24) +exports.validateId = validateId; +// Deprecated methods +function radians2degrees() { + throw new Error("method has been renamed to `radiansToDegrees`"); } - -Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset] << 24) | - (this[offset + 1] << 16) | - (this[offset + 2] << 8) | - (this[offset + 3]) +exports.radians2degrees = radians2degrees; +function degrees2radians() { + throw new Error("method has been renamed to `degreesToRadians`"); } - -Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - return ieee754.read(this, offset, true, 23, 4) +exports.degrees2radians = degrees2radians; +function distanceToDegrees() { + throw new Error("method has been renamed to `lengthToDegrees`"); } - -Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - return ieee754.read(this, offset, false, 23, 4) +exports.distanceToDegrees = distanceToDegrees; +function distanceToRadians() { + throw new Error("method has been renamed to `lengthToRadians`"); } - -Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 8, this.length) - return ieee754.read(this, offset, true, 52, 8) +exports.distanceToRadians = distanceToRadians; +function radiansToDistance() { + throw new Error("method has been renamed to `radiansToLength`"); } - -Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 8, this.length) - return ieee754.read(this, offset, false, 52, 8) +exports.radiansToDistance = radiansToDistance; +function bearingToAngle() { + throw new Error("method has been renamed to `bearingToAzimuth`"); } - -function checkInt (buf, value, offset, ext, max, min) { - if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance') - if (value > max || value < min) throw new RangeError('"value" argument is out of bounds') - if (offset + ext > buf.length) throw new RangeError('Index out of range') +exports.bearingToAngle = bearingToAngle; +function convertDistance() { + throw new Error("method has been renamed to `convertLength`"); } +exports.convertDistance = convertDistance; -Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { - value = +value - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) { - var maxBytes = Math.pow(2, 8 * byteLength) - 1 - checkInt(this, value, offset, byteLength, maxBytes, 0) - } - - var mul = 1 - var i = 0 - this[offset] = value & 0xFF - while (++i < byteLength && (mul *= 0x100)) { - this[offset + i] = (value / mul) & 0xFF - } +},{}],65:[function(_dereq_,module,exports){ +'use strict'; - return offset + byteLength -} +Object.defineProperty(exports, '__esModule', { value: true }); -Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { - value = +value - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) { - var maxBytes = Math.pow(2, 8 * byteLength) - 1 - checkInt(this, value, offset, byteLength, maxBytes, 0) - } +var helpers = _dereq_('@turf/helpers'); - var i = byteLength - 1 - var mul = 1 - this[offset + i] = value & 0xFF - while (--i >= 0 && (mul *= 0x100)) { - this[offset + i] = (value / mul) & 0xFF - } +/** + * Callback for coordEach + * + * @callback coordEachCallback + * @param {Array} currentCoord The current coordinate being processed. + * @param {number} coordIndex The current index of the coordinate being processed. + * @param {number} featureIndex The current index of the Feature being processed. + * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed. + * @param {number} geometryIndex The current index of the Geometry being processed. + */ - return offset + byteLength -} +/** + * Iterate over coordinates in any GeoJSON object, similar to Array.forEach() + * + * @name coordEach + * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object + * @param {Function} callback a method that takes (currentCoord, coordIndex, featureIndex, multiFeatureIndex) + * @param {boolean} [excludeWrapCoord=false] whether or not to include the final coordinate of LinearRings that wraps the ring in its iteration. + * @returns {void} + * @example + * var features = turf.featureCollection([ + * turf.point([26, 37], {"foo": "bar"}), + * turf.point([36, 53], {"hello": "world"}) + * ]); + * + * turf.coordEach(features, function (currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) { + * //=currentCoord + * //=coordIndex + * //=featureIndex + * //=multiFeatureIndex + * //=geometryIndex + * }); + */ +function coordEach(geojson, callback, excludeWrapCoord) { + // Handles null Geometry -- Skips this GeoJSON + if (geojson === null) return; + var j, k, l, geometry, stopG, coords, + geometryMaybeCollection, + wrapShrink = 0, + coordIndex = 0, + isGeometryCollection, + type = geojson.type, + isFeatureCollection = type === 'FeatureCollection', + isFeature = type === 'Feature', + stop = isFeatureCollection ? geojson.features.length : 1; -Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0) - this[offset] = (value & 0xff) - return offset + 1 -} + // This logic may look a little weird. The reason why it is that way + // is because it's trying to be fast. GeoJSON supports multiple kinds + // of objects at its root: FeatureCollection, Features, Geometries. + // This function has the responsibility of handling all of them, and that + // means that some of the `for` loops you see below actually just don't apply + // to certain inputs. For instance, if you give this just a + // Point geometry, then both loops are short-circuited and all we do + // is gradually rename the input until it's called 'geometry'. + // + // This also aims to allocate as few resources as possible: just a + // few numbers and booleans, rather than any temporary arrays as would + // be required with the normalization approach. + for (var featureIndex = 0; featureIndex < stop; featureIndex++) { + geometryMaybeCollection = (isFeatureCollection ? geojson.features[featureIndex].geometry : + (isFeature ? geojson.geometry : geojson)); + isGeometryCollection = (geometryMaybeCollection) ? geometryMaybeCollection.type === 'GeometryCollection' : false; + stopG = isGeometryCollection ? geometryMaybeCollection.geometries.length : 1; -Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) - this[offset] = (value & 0xff) - this[offset + 1] = (value >>> 8) - return offset + 2 -} + for (var geomIndex = 0; geomIndex < stopG; geomIndex++) { + var multiFeatureIndex = 0; + var geometryIndex = 0; + geometry = isGeometryCollection ? + geometryMaybeCollection.geometries[geomIndex] : geometryMaybeCollection; -Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) - this[offset] = (value >>> 8) - this[offset + 1] = (value & 0xff) - return offset + 2 -} + // Handles null Geometry -- Skips this geometry + if (geometry === null) continue; + coords = geometry.coordinates; + var geomType = geometry.type; -Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) - this[offset + 3] = (value >>> 24) - this[offset + 2] = (value >>> 16) - this[offset + 1] = (value >>> 8) - this[offset] = (value & 0xff) - return offset + 4 -} + wrapShrink = (excludeWrapCoord && (geomType === 'Polygon' || geomType === 'MultiPolygon')) ? 1 : 0; -Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) - this[offset] = (value >>> 24) - this[offset + 1] = (value >>> 16) - this[offset + 2] = (value >>> 8) - this[offset + 3] = (value & 0xff) - return offset + 4 + switch (geomType) { + case null: + break; + case 'Point': + if (callback(coords, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) === false) return false; + coordIndex++; + multiFeatureIndex++; + break; + case 'LineString': + case 'MultiPoint': + for (j = 0; j < coords.length; j++) { + if (callback(coords[j], coordIndex, featureIndex, multiFeatureIndex, geometryIndex) === false) return false; + coordIndex++; + if (geomType === 'MultiPoint') multiFeatureIndex++; + } + if (geomType === 'LineString') multiFeatureIndex++; + break; + case 'Polygon': + case 'MultiLineString': + for (j = 0; j < coords.length; j++) { + for (k = 0; k < coords[j].length - wrapShrink; k++) { + if (callback(coords[j][k], coordIndex, featureIndex, multiFeatureIndex, geometryIndex) === false) return false; + coordIndex++; + } + if (geomType === 'MultiLineString') multiFeatureIndex++; + if (geomType === 'Polygon') geometryIndex++; + } + if (geomType === 'Polygon') multiFeatureIndex++; + break; + case 'MultiPolygon': + for (j = 0; j < coords.length; j++) { + geometryIndex = 0; + for (k = 0; k < coords[j].length; k++) { + for (l = 0; l < coords[j][k].length - wrapShrink; l++) { + if (callback(coords[j][k][l], coordIndex, featureIndex, multiFeatureIndex, geometryIndex) === false) return false; + coordIndex++; + } + geometryIndex++; + } + multiFeatureIndex++; + } + break; + case 'GeometryCollection': + for (j = 0; j < geometry.geometries.length; j++) + if (coordEach(geometry.geometries[j], callback, excludeWrapCoord) === false) return false; + break; + default: + throw new Error('Unknown Geometry Type'); + } + } + } } -Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) { - var limit = Math.pow(2, (8 * byteLength) - 1) - - checkInt(this, value, offset, byteLength, limit - 1, -limit) - } - - var i = 0 - var mul = 1 - var sub = 0 - this[offset] = value & 0xFF - while (++i < byteLength && (mul *= 0x100)) { - if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { - sub = 1 - } - this[offset + i] = ((value / mul) >> 0) - sub & 0xFF - } +/** + * Callback for coordReduce + * + * The first time the callback function is called, the values provided as arguments depend + * on whether the reduce method has an initialValue argument. + * + * If an initialValue is provided to the reduce method: + * - The previousValue argument is initialValue. + * - The currentValue argument is the value of the first element present in the array. + * + * If an initialValue is not provided: + * - The previousValue argument is the value of the first element present in the array. + * - The currentValue argument is the value of the second element present in the array. + * + * @callback coordReduceCallback + * @param {*} previousValue The accumulated value previously returned in the last invocation + * of the callback, or initialValue, if supplied. + * @param {Array} currentCoord The current coordinate being processed. + * @param {number} coordIndex The current index of the coordinate being processed. + * Starts at index 0, if an initialValue is provided, and at index 1 otherwise. + * @param {number} featureIndex The current index of the Feature being processed. + * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed. + * @param {number} geometryIndex The current index of the Geometry being processed. + */ - return offset + byteLength +/** + * Reduce coordinates in any GeoJSON object, similar to Array.reduce() + * + * @name coordReduce + * @param {FeatureCollection|Geometry|Feature} geojson any GeoJSON object + * @param {Function} callback a method that takes (previousValue, currentCoord, coordIndex) + * @param {*} [initialValue] Value to use as the first argument to the first call of the callback. + * @param {boolean} [excludeWrapCoord=false] whether or not to include the final coordinate of LinearRings that wraps the ring in its iteration. + * @returns {*} The value that results from the reduction. + * @example + * var features = turf.featureCollection([ + * turf.point([26, 37], {"foo": "bar"}), + * turf.point([36, 53], {"hello": "world"}) + * ]); + * + * turf.coordReduce(features, function (previousValue, currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) { + * //=previousValue + * //=currentCoord + * //=coordIndex + * //=featureIndex + * //=multiFeatureIndex + * //=geometryIndex + * return currentCoord; + * }); + */ +function coordReduce(geojson, callback, initialValue, excludeWrapCoord) { + var previousValue = initialValue; + coordEach(geojson, function (currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) { + if (coordIndex === 0 && initialValue === undefined) previousValue = currentCoord; + else previousValue = callback(previousValue, currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex); + }, excludeWrapCoord); + return previousValue; } -Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) { - var limit = Math.pow(2, (8 * byteLength) - 1) - - checkInt(this, value, offset, byteLength, limit - 1, -limit) - } +/** + * Callback for propEach + * + * @callback propEachCallback + * @param {Object} currentProperties The current Properties being processed. + * @param {number} featureIndex The current index of the Feature being processed. + */ - var i = byteLength - 1 - var mul = 1 - var sub = 0 - this[offset + i] = value & 0xFF - while (--i >= 0 && (mul *= 0x100)) { - if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { - sub = 1 +/** + * Iterate over properties in any GeoJSON object, similar to Array.forEach() + * + * @name propEach + * @param {FeatureCollection|Feature} geojson any GeoJSON object + * @param {Function} callback a method that takes (currentProperties, featureIndex) + * @returns {void} + * @example + * var features = turf.featureCollection([ + * turf.point([26, 37], {foo: 'bar'}), + * turf.point([36, 53], {hello: 'world'}) + * ]); + * + * turf.propEach(features, function (currentProperties, featureIndex) { + * //=currentProperties + * //=featureIndex + * }); + */ +function propEach(geojson, callback) { + var i; + switch (geojson.type) { + case 'FeatureCollection': + for (i = 0; i < geojson.features.length; i++) { + if (callback(geojson.features[i].properties, i) === false) break; + } + break; + case 'Feature': + callback(geojson.properties, 0); + break; } - this[offset + i] = ((value / mul) >> 0) - sub & 0xFF - } - - return offset + byteLength } -Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80) - if (value < 0) value = 0xff + value + 1 - this[offset] = (value & 0xff) - return offset + 1 -} -Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) - this[offset] = (value & 0xff) - this[offset + 1] = (value >>> 8) - return offset + 2 -} +/** + * Callback for propReduce + * + * The first time the callback function is called, the values provided as arguments depend + * on whether the reduce method has an initialValue argument. + * + * If an initialValue is provided to the reduce method: + * - The previousValue argument is initialValue. + * - The currentValue argument is the value of the first element present in the array. + * + * If an initialValue is not provided: + * - The previousValue argument is the value of the first element present in the array. + * - The currentValue argument is the value of the second element present in the array. + * + * @callback propReduceCallback + * @param {*} previousValue The accumulated value previously returned in the last invocation + * of the callback, or initialValue, if supplied. + * @param {*} currentProperties The current Properties being processed. + * @param {number} featureIndex The current index of the Feature being processed. + */ -Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) - this[offset] = (value >>> 8) - this[offset + 1] = (value & 0xff) - return offset + 2 +/** + * Reduce properties in any GeoJSON object into a single value, + * similar to how Array.reduce works. However, in this case we lazily run + * the reduction, so an array of all properties is unnecessary. + * + * @name propReduce + * @param {FeatureCollection|Feature} geojson any GeoJSON object + * @param {Function} callback a method that takes (previousValue, currentProperties, featureIndex) + * @param {*} [initialValue] Value to use as the first argument to the first call of the callback. + * @returns {*} The value that results from the reduction. + * @example + * var features = turf.featureCollection([ + * turf.point([26, 37], {foo: 'bar'}), + * turf.point([36, 53], {hello: 'world'}) + * ]); + * + * turf.propReduce(features, function (previousValue, currentProperties, featureIndex) { + * //=previousValue + * //=currentProperties + * //=featureIndex + * return currentProperties + * }); + */ +function propReduce(geojson, callback, initialValue) { + var previousValue = initialValue; + propEach(geojson, function (currentProperties, featureIndex) { + if (featureIndex === 0 && initialValue === undefined) previousValue = currentProperties; + else previousValue = callback(previousValue, currentProperties, featureIndex); + }); + return previousValue; } -Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) - this[offset] = (value & 0xff) - this[offset + 1] = (value >>> 8) - this[offset + 2] = (value >>> 16) - this[offset + 3] = (value >>> 24) - return offset + 4 -} +/** + * Callback for featureEach + * + * @callback featureEachCallback + * @param {Feature} currentFeature The current Feature being processed. + * @param {number} featureIndex The current index of the Feature being processed. + */ -Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) - if (value < 0) value = 0xffffffff + value + 1 - this[offset] = (value >>> 24) - this[offset + 1] = (value >>> 16) - this[offset + 2] = (value >>> 8) - this[offset + 3] = (value & 0xff) - return offset + 4 +/** + * Iterate over features in any GeoJSON object, similar to + * Array.forEach. + * + * @name featureEach + * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object + * @param {Function} callback a method that takes (currentFeature, featureIndex) + * @returns {void} + * @example + * var features = turf.featureCollection([ + * turf.point([26, 37], {foo: 'bar'}), + * turf.point([36, 53], {hello: 'world'}) + * ]); + * + * turf.featureEach(features, function (currentFeature, featureIndex) { + * //=currentFeature + * //=featureIndex + * }); + */ +function featureEach(geojson, callback) { + if (geojson.type === 'Feature') { + callback(geojson, 0); + } else if (geojson.type === 'FeatureCollection') { + for (var i = 0; i < geojson.features.length; i++) { + if (callback(geojson.features[i], i) === false) break; + } + } } -function checkIEEE754 (buf, value, offset, ext, max, min) { - if (offset + ext > buf.length) throw new RangeError('Index out of range') - if (offset < 0) throw new RangeError('Index out of range') -} +/** + * Callback for featureReduce + * + * The first time the callback function is called, the values provided as arguments depend + * on whether the reduce method has an initialValue argument. + * + * If an initialValue is provided to the reduce method: + * - The previousValue argument is initialValue. + * - The currentValue argument is the value of the first element present in the array. + * + * If an initialValue is not provided: + * - The previousValue argument is the value of the first element present in the array. + * - The currentValue argument is the value of the second element present in the array. + * + * @callback featureReduceCallback + * @param {*} previousValue The accumulated value previously returned in the last invocation + * of the callback, or initialValue, if supplied. + * @param {Feature} currentFeature The current Feature being processed. + * @param {number} featureIndex The current index of the Feature being processed. + */ -function writeFloat (buf, value, offset, littleEndian, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) { - checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38) - } - ieee754.write(buf, value, offset, littleEndian, 23, 4) - return offset + 4 +/** + * Reduce features in any GeoJSON object, similar to Array.reduce(). + * + * @name featureReduce + * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object + * @param {Function} callback a method that takes (previousValue, currentFeature, featureIndex) + * @param {*} [initialValue] Value to use as the first argument to the first call of the callback. + * @returns {*} The value that results from the reduction. + * @example + * var features = turf.featureCollection([ + * turf.point([26, 37], {"foo": "bar"}), + * turf.point([36, 53], {"hello": "world"}) + * ]); + * + * turf.featureReduce(features, function (previousValue, currentFeature, featureIndex) { + * //=previousValue + * //=currentFeature + * //=featureIndex + * return currentFeature + * }); + */ +function featureReduce(geojson, callback, initialValue) { + var previousValue = initialValue; + featureEach(geojson, function (currentFeature, featureIndex) { + if (featureIndex === 0 && initialValue === undefined) previousValue = currentFeature; + else previousValue = callback(previousValue, currentFeature, featureIndex); + }); + return previousValue; } -Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { - return writeFloat(this, value, offset, true, noAssert) +/** + * Get all coordinates from any GeoJSON object. + * + * @name coordAll + * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object + * @returns {Array>} coordinate position array + * @example + * var features = turf.featureCollection([ + * turf.point([26, 37], {foo: 'bar'}), + * turf.point([36, 53], {hello: 'world'}) + * ]); + * + * var coords = turf.coordAll(features); + * //= [[26, 37], [36, 53]] + */ +function coordAll(geojson) { + var coords = []; + coordEach(geojson, function (coord) { + coords.push(coord); + }); + return coords; } -Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { - return writeFloat(this, value, offset, false, noAssert) -} +/** + * Callback for geomEach + * + * @callback geomEachCallback + * @param {Geometry} currentGeometry The current Geometry being processed. + * @param {number} featureIndex The current index of the Feature being processed. + * @param {Object} featureProperties The current Feature Properties being processed. + * @param {Array} featureBBox The current Feature BBox being processed. + * @param {number|string} featureId The current Feature Id being processed. + */ -function writeDouble (buf, value, offset, littleEndian, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) { - checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308) - } - ieee754.write(buf, value, offset, littleEndian, 52, 8) - return offset + 8 -} +/** + * Iterate over each geometry in any GeoJSON object, similar to Array.forEach() + * + * @name geomEach + * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object + * @param {Function} callback a method that takes (currentGeometry, featureIndex, featureProperties, featureBBox, featureId) + * @returns {void} + * @example + * var features = turf.featureCollection([ + * turf.point([26, 37], {foo: 'bar'}), + * turf.point([36, 53], {hello: 'world'}) + * ]); + * + * turf.geomEach(features, function (currentGeometry, featureIndex, featureProperties, featureBBox, featureId) { + * //=currentGeometry + * //=featureIndex + * //=featureProperties + * //=featureBBox + * //=featureId + * }); + */ +function geomEach(geojson, callback) { + var i, j, g, geometry, stopG, + geometryMaybeCollection, + isGeometryCollection, + featureProperties, + featureBBox, + featureId, + featureIndex = 0, + isFeatureCollection = geojson.type === 'FeatureCollection', + isFeature = geojson.type === 'Feature', + stop = isFeatureCollection ? geojson.features.length : 1; -Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { - return writeDouble(this, value, offset, true, noAssert) -} + // This logic may look a little weird. The reason why it is that way + // is because it's trying to be fast. GeoJSON supports multiple kinds + // of objects at its root: FeatureCollection, Features, Geometries. + // This function has the responsibility of handling all of them, and that + // means that some of the `for` loops you see below actually just don't apply + // to certain inputs. For instance, if you give this just a + // Point geometry, then both loops are short-circuited and all we do + // is gradually rename the input until it's called 'geometry'. + // + // This also aims to allocate as few resources as possible: just a + // few numbers and booleans, rather than any temporary arrays as would + // be required with the normalization approach. + for (i = 0; i < stop; i++) { -Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { - return writeDouble(this, value, offset, false, noAssert) + geometryMaybeCollection = (isFeatureCollection ? geojson.features[i].geometry : + (isFeature ? geojson.geometry : geojson)); + featureProperties = (isFeatureCollection ? geojson.features[i].properties : + (isFeature ? geojson.properties : {})); + featureBBox = (isFeatureCollection ? geojson.features[i].bbox : + (isFeature ? geojson.bbox : undefined)); + featureId = (isFeatureCollection ? geojson.features[i].id : + (isFeature ? geojson.id : undefined)); + isGeometryCollection = (geometryMaybeCollection) ? geometryMaybeCollection.type === 'GeometryCollection' : false; + stopG = isGeometryCollection ? geometryMaybeCollection.geometries.length : 1; + + for (g = 0; g < stopG; g++) { + geometry = isGeometryCollection ? + geometryMaybeCollection.geometries[g] : geometryMaybeCollection; + + // Handle null Geometry + if (geometry === null) { + if (callback(null, featureIndex, featureProperties, featureBBox, featureId) === false) return false; + continue; + } + switch (geometry.type) { + case 'Point': + case 'LineString': + case 'MultiPoint': + case 'Polygon': + case 'MultiLineString': + case 'MultiPolygon': { + if (callback(geometry, featureIndex, featureProperties, featureBBox, featureId) === false) return false; + break; + } + case 'GeometryCollection': { + for (j = 0; j < geometry.geometries.length; j++) { + if (callback(geometry.geometries[j], featureIndex, featureProperties, featureBBox, featureId) === false) return false; + } + break; + } + default: + throw new Error('Unknown Geometry Type'); + } + } + // Only increase `featureIndex` per each feature + featureIndex++; + } } -// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) -Buffer.prototype.copy = function copy (target, targetStart, start, end) { - if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer') - if (!start) start = 0 - if (!end && end !== 0) end = this.length - if (targetStart >= target.length) targetStart = target.length - if (!targetStart) targetStart = 0 - if (end > 0 && end < start) end = start +/** + * Callback for geomReduce + * + * The first time the callback function is called, the values provided as arguments depend + * on whether the reduce method has an initialValue argument. + * + * If an initialValue is provided to the reduce method: + * - The previousValue argument is initialValue. + * - The currentValue argument is the value of the first element present in the array. + * + * If an initialValue is not provided: + * - The previousValue argument is the value of the first element present in the array. + * - The currentValue argument is the value of the second element present in the array. + * + * @callback geomReduceCallback + * @param {*} previousValue The accumulated value previously returned in the last invocation + * of the callback, or initialValue, if supplied. + * @param {Geometry} currentGeometry The current Geometry being processed. + * @param {number} featureIndex The current index of the Feature being processed. + * @param {Object} featureProperties The current Feature Properties being processed. + * @param {Array} featureBBox The current Feature BBox being processed. + * @param {number|string} featureId The current Feature Id being processed. + */ - // Copy 0 bytes; we're done - if (end === start) return 0 - if (target.length === 0 || this.length === 0) return 0 +/** + * Reduce geometry in any GeoJSON object, similar to Array.reduce(). + * + * @name geomReduce + * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object + * @param {Function} callback a method that takes (previousValue, currentGeometry, featureIndex, featureProperties, featureBBox, featureId) + * @param {*} [initialValue] Value to use as the first argument to the first call of the callback. + * @returns {*} The value that results from the reduction. + * @example + * var features = turf.featureCollection([ + * turf.point([26, 37], {foo: 'bar'}), + * turf.point([36, 53], {hello: 'world'}) + * ]); + * + * turf.geomReduce(features, function (previousValue, currentGeometry, featureIndex, featureProperties, featureBBox, featureId) { + * //=previousValue + * //=currentGeometry + * //=featureIndex + * //=featureProperties + * //=featureBBox + * //=featureId + * return currentGeometry + * }); + */ +function geomReduce(geojson, callback, initialValue) { + var previousValue = initialValue; + geomEach(geojson, function (currentGeometry, featureIndex, featureProperties, featureBBox, featureId) { + if (featureIndex === 0 && initialValue === undefined) previousValue = currentGeometry; + else previousValue = callback(previousValue, currentGeometry, featureIndex, featureProperties, featureBBox, featureId); + }); + return previousValue; +} - // Fatal error conditions - if (targetStart < 0) { - throw new RangeError('targetStart out of bounds') - } - if (start < 0 || start >= this.length) throw new RangeError('Index out of range') - if (end < 0) throw new RangeError('sourceEnd out of bounds') +/** + * Callback for flattenEach + * + * @callback flattenEachCallback + * @param {Feature} currentFeature The current flattened feature being processed. + * @param {number} featureIndex The current index of the Feature being processed. + * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed. + */ - // Are we oob? - if (end > this.length) end = this.length - if (target.length - targetStart < end - start) { - end = target.length - targetStart + start - } +/** + * Iterate over flattened features in any GeoJSON object, similar to + * Array.forEach. + * + * @name flattenEach + * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object + * @param {Function} callback a method that takes (currentFeature, featureIndex, multiFeatureIndex) + * @example + * var features = turf.featureCollection([ + * turf.point([26, 37], {foo: 'bar'}), + * turf.multiPoint([[40, 30], [36, 53]], {hello: 'world'}) + * ]); + * + * turf.flattenEach(features, function (currentFeature, featureIndex, multiFeatureIndex) { + * //=currentFeature + * //=featureIndex + * //=multiFeatureIndex + * }); + */ +function flattenEach(geojson, callback) { + geomEach(geojson, function (geometry, featureIndex, properties, bbox, id) { + // Callback for single geometry + var type = (geometry === null) ? null : geometry.type; + switch (type) { + case null: + case 'Point': + case 'LineString': + case 'Polygon': + if (callback(helpers.feature(geometry, properties, {bbox: bbox, id: id}), featureIndex, 0) === false) return false; + return; + } - var len = end - start + var geomType; - if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') { - // Use built-in when available, missing from IE11 - this.copyWithin(targetStart, start, end) - } else if (this === target && start < targetStart && targetStart < end) { - // descending copy from end - for (var i = len - 1; i >= 0; --i) { - target[i + targetStart] = this[i + start] - } - } else { - Uint8Array.prototype.set.call( - target, - this.subarray(start, end), - targetStart - ) - } + // Callback for multi-geometry + switch (type) { + case 'MultiPoint': + geomType = 'Point'; + break; + case 'MultiLineString': + geomType = 'LineString'; + break; + case 'MultiPolygon': + geomType = 'Polygon'; + break; + } - return len + for (var multiFeatureIndex = 0; multiFeatureIndex < geometry.coordinates.length; multiFeatureIndex++) { + var coordinate = geometry.coordinates[multiFeatureIndex]; + var geom = { + type: geomType, + coordinates: coordinate + }; + if (callback(helpers.feature(geom, properties), featureIndex, multiFeatureIndex) === false) return false; + } + }); } -// Usage: -// buffer.fill(number[, offset[, end]]) -// buffer.fill(buffer[, offset[, end]]) -// buffer.fill(string[, offset[, end]][, encoding]) -Buffer.prototype.fill = function fill (val, start, end, encoding) { - // Handle string cases: - if (typeof val === 'string') { - if (typeof start === 'string') { - encoding = start - start = 0 - end = this.length - } else if (typeof end === 'string') { - encoding = end - end = this.length - } - if (encoding !== undefined && typeof encoding !== 'string') { - throw new TypeError('encoding must be a string') - } - if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { - throw new TypeError('Unknown encoding: ' + encoding) - } - if (val.length === 1) { - var code = val.charCodeAt(0) - if ((encoding === 'utf8' && code < 128) || - encoding === 'latin1') { - // Fast path: If `val` fits into a single byte, use that numeric value. - val = code - } - } - } else if (typeof val === 'number') { - val = val & 255 - } +/** + * Callback for flattenReduce + * + * The first time the callback function is called, the values provided as arguments depend + * on whether the reduce method has an initialValue argument. + * + * If an initialValue is provided to the reduce method: + * - The previousValue argument is initialValue. + * - The currentValue argument is the value of the first element present in the array. + * + * If an initialValue is not provided: + * - The previousValue argument is the value of the first element present in the array. + * - The currentValue argument is the value of the second element present in the array. + * + * @callback flattenReduceCallback + * @param {*} previousValue The accumulated value previously returned in the last invocation + * of the callback, or initialValue, if supplied. + * @param {Feature} currentFeature The current Feature being processed. + * @param {number} featureIndex The current index of the Feature being processed. + * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed. + */ - // Invalid ranges are not set to a default, so can range check early. - if (start < 0 || this.length < start || this.length < end) { - throw new RangeError('Out of range index') - } +/** + * Reduce flattened features in any GeoJSON object, similar to Array.reduce(). + * + * @name flattenReduce + * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object + * @param {Function} callback a method that takes (previousValue, currentFeature, featureIndex, multiFeatureIndex) + * @param {*} [initialValue] Value to use as the first argument to the first call of the callback. + * @returns {*} The value that results from the reduction. + * @example + * var features = turf.featureCollection([ + * turf.point([26, 37], {foo: 'bar'}), + * turf.multiPoint([[40, 30], [36, 53]], {hello: 'world'}) + * ]); + * + * turf.flattenReduce(features, function (previousValue, currentFeature, featureIndex, multiFeatureIndex) { + * //=previousValue + * //=currentFeature + * //=featureIndex + * //=multiFeatureIndex + * return currentFeature + * }); + */ +function flattenReduce(geojson, callback, initialValue) { + var previousValue = initialValue; + flattenEach(geojson, function (currentFeature, featureIndex, multiFeatureIndex) { + if (featureIndex === 0 && multiFeatureIndex === 0 && initialValue === undefined) previousValue = currentFeature; + else previousValue = callback(previousValue, currentFeature, featureIndex, multiFeatureIndex); + }); + return previousValue; +} - if (end <= start) { - return this - } +/** + * Callback for segmentEach + * + * @callback segmentEachCallback + * @param {Feature} currentSegment The current Segment being processed. + * @param {number} featureIndex The current index of the Feature being processed. + * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed. + * @param {number} geometryIndex The current index of the Geometry being processed. + * @param {number} segmentIndex The current index of the Segment being processed. + * @returns {void} + */ - start = start >>> 0 - end = end === undefined ? this.length : end >>> 0 +/** + * Iterate over 2-vertex line segment in any GeoJSON object, similar to Array.forEach() + * (Multi)Point geometries do not contain segments therefore they are ignored during this operation. + * + * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON + * @param {Function} callback a method that takes (currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) + * @returns {void} + * @example + * var polygon = turf.polygon([[[-50, 5], [-40, -10], [-50, -10], [-40, 5], [-50, 5]]]); + * + * // Iterate over GeoJSON by 2-vertex segments + * turf.segmentEach(polygon, function (currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) { + * //=currentSegment + * //=featureIndex + * //=multiFeatureIndex + * //=geometryIndex + * //=segmentIndex + * }); + * + * // Calculate the total number of segments + * var total = 0; + * turf.segmentEach(polygon, function () { + * total++; + * }); + */ +function segmentEach(geojson, callback) { + flattenEach(geojson, function (feature, featureIndex, multiFeatureIndex) { + var segmentIndex = 0; - if (!val) val = 0 + // Exclude null Geometries + if (!feature.geometry) return; + // (Multi)Point geometries do not contain segments therefore they are ignored during this operation. + var type = feature.geometry.type; + if (type === 'Point' || type === 'MultiPoint') return; - var i - if (typeof val === 'number') { - for (i = start; i < end; ++i) { - this[i] = val - } - } else { - var bytes = Buffer.isBuffer(val) - ? val - : Buffer.from(val, encoding) - var len = bytes.length - if (len === 0) { - throw new TypeError('The value "' + val + - '" is invalid for argument "value"') - } - for (i = 0; i < end - start; ++i) { - this[i + start] = bytes[i % len] - } - } + // Generate 2-vertex line segments + var previousCoords; + var previousFeatureIndex = 0; + var previousMultiIndex = 0; + var prevGeomIndex = 0; + if (coordEach(feature, function (currentCoord, coordIndex, featureIndexCoord, multiPartIndexCoord, geometryIndex) { + // Simulating a meta.coordReduce() since `reduce` operations cannot be stopped by returning `false` + if (previousCoords === undefined || featureIndex > previousFeatureIndex || multiPartIndexCoord > previousMultiIndex || geometryIndex > prevGeomIndex) { + previousCoords = currentCoord; + previousFeatureIndex = featureIndex; + previousMultiIndex = multiPartIndexCoord; + prevGeomIndex = geometryIndex; + segmentIndex = 0; + return; + } + var currentSegment = helpers.lineString([previousCoords, currentCoord], feature.properties); + if (callback(currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) === false) return false; + segmentIndex++; + previousCoords = currentCoord; + }) === false) return false; + }); +} - return this +/** + * Callback for segmentReduce + * + * The first time the callback function is called, the values provided as arguments depend + * on whether the reduce method has an initialValue argument. + * + * If an initialValue is provided to the reduce method: + * - The previousValue argument is initialValue. + * - The currentValue argument is the value of the first element present in the array. + * + * If an initialValue is not provided: + * - The previousValue argument is the value of the first element present in the array. + * - The currentValue argument is the value of the second element present in the array. + * + * @callback segmentReduceCallback + * @param {*} previousValue The accumulated value previously returned in the last invocation + * of the callback, or initialValue, if supplied. + * @param {Feature} currentSegment The current Segment being processed. + * @param {number} featureIndex The current index of the Feature being processed. + * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed. + * @param {number} geometryIndex The current index of the Geometry being processed. + * @param {number} segmentIndex The current index of the Segment being processed. + */ + +/** + * Reduce 2-vertex line segment in any GeoJSON object, similar to Array.reduce() + * (Multi)Point geometries do not contain segments therefore they are ignored during this operation. + * + * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON + * @param {Function} callback a method that takes (previousValue, currentSegment, currentIndex) + * @param {*} [initialValue] Value to use as the first argument to the first call of the callback. + * @returns {void} + * @example + * var polygon = turf.polygon([[[-50, 5], [-40, -10], [-50, -10], [-40, 5], [-50, 5]]]); + * + * // Iterate over GeoJSON by 2-vertex segments + * turf.segmentReduce(polygon, function (previousSegment, currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) { + * //= previousSegment + * //= currentSegment + * //= featureIndex + * //= multiFeatureIndex + * //= geometryIndex + * //= segmentInex + * return currentSegment + * }); + * + * // Calculate the total number of segments + * var initialValue = 0 + * var total = turf.segmentReduce(polygon, function (previousValue) { + * previousValue++; + * return previousValue; + * }, initialValue); + */ +function segmentReduce(geojson, callback, initialValue) { + var previousValue = initialValue; + var started = false; + segmentEach(geojson, function (currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) { + if (started === false && initialValue === undefined) previousValue = currentSegment; + else previousValue = callback(previousValue, currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex); + started = true; + }); + return previousValue; } -// HELPER FUNCTIONS -// ================ +/** + * Callback for lineEach + * + * @callback lineEachCallback + * @param {Feature} currentLine The current LineString|LinearRing being processed + * @param {number} featureIndex The current index of the Feature being processed + * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed + * @param {number} geometryIndex The current index of the Geometry being processed + */ -var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g +/** + * Iterate over line or ring coordinates in LineString, Polygon, MultiLineString, MultiPolygon Features or Geometries, + * similar to Array.forEach. + * + * @name lineEach + * @param {Geometry|Feature} geojson object + * @param {Function} callback a method that takes (currentLine, featureIndex, multiFeatureIndex, geometryIndex) + * @example + * var multiLine = turf.multiLineString([ + * [[26, 37], [35, 45]], + * [[36, 53], [38, 50], [41, 55]] + * ]); + * + * turf.lineEach(multiLine, function (currentLine, featureIndex, multiFeatureIndex, geometryIndex) { + * //=currentLine + * //=featureIndex + * //=multiFeatureIndex + * //=geometryIndex + * }); + */ +function lineEach(geojson, callback) { + // validation + if (!geojson) throw new Error('geojson is required'); -function base64clean (str) { - // Node takes equal signs as end of the Base64 encoding - str = str.split('=')[0] - // Node strips out invalid characters like \n and \t from the string, base64-js does not - str = str.trim().replace(INVALID_BASE64_RE, '') - // Node converts strings with length < 2 to '' - if (str.length < 2) return '' - // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not - while (str.length % 4 !== 0) { - str = str + '=' - } - return str + flattenEach(geojson, function (feature, featureIndex, multiFeatureIndex) { + if (feature.geometry === null) return; + var type = feature.geometry.type; + var coords = feature.geometry.coordinates; + switch (type) { + case 'LineString': + if (callback(feature, featureIndex, multiFeatureIndex, 0, 0) === false) return false; + break; + case 'Polygon': + for (var geometryIndex = 0; geometryIndex < coords.length; geometryIndex++) { + if (callback(helpers.lineString(coords[geometryIndex], feature.properties), featureIndex, multiFeatureIndex, geometryIndex) === false) return false; + } + break; + } + }); } -function toHex (n) { - if (n < 16) return '0' + n.toString(16) - return n.toString(16) +/** + * Callback for lineReduce + * + * The first time the callback function is called, the values provided as arguments depend + * on whether the reduce method has an initialValue argument. + * + * If an initialValue is provided to the reduce method: + * - The previousValue argument is initialValue. + * - The currentValue argument is the value of the first element present in the array. + * + * If an initialValue is not provided: + * - The previousValue argument is the value of the first element present in the array. + * - The currentValue argument is the value of the second element present in the array. + * + * @callback lineReduceCallback + * @param {*} previousValue The accumulated value previously returned in the last invocation + * of the callback, or initialValue, if supplied. + * @param {Feature} currentLine The current LineString|LinearRing being processed. + * @param {number} featureIndex The current index of the Feature being processed + * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed + * @param {number} geometryIndex The current index of the Geometry being processed + */ + +/** + * Reduce features in any GeoJSON object, similar to Array.reduce(). + * + * @name lineReduce + * @param {Geometry|Feature} geojson object + * @param {Function} callback a method that takes (previousValue, currentLine, featureIndex, multiFeatureIndex, geometryIndex) + * @param {*} [initialValue] Value to use as the first argument to the first call of the callback. + * @returns {*} The value that results from the reduction. + * @example + * var multiPoly = turf.multiPolygon([ + * turf.polygon([[[12,48],[2,41],[24,38],[12,48]], [[9,44],[13,41],[13,45],[9,44]]]), + * turf.polygon([[[5, 5], [0, 0], [2, 2], [4, 4], [5, 5]]]) + * ]); + * + * turf.lineReduce(multiPoly, function (previousValue, currentLine, featureIndex, multiFeatureIndex, geometryIndex) { + * //=previousValue + * //=currentLine + * //=featureIndex + * //=multiFeatureIndex + * //=geometryIndex + * return currentLine + * }); + */ +function lineReduce(geojson, callback, initialValue) { + var previousValue = initialValue; + lineEach(geojson, function (currentLine, featureIndex, multiFeatureIndex, geometryIndex) { + if (featureIndex === 0 && initialValue === undefined) previousValue = currentLine; + else previousValue = callback(previousValue, currentLine, featureIndex, multiFeatureIndex, geometryIndex); + }); + return previousValue; } -function utf8ToBytes (string, units) { - units = units || Infinity - var codePoint - var length = string.length - var leadSurrogate = null - var bytes = [] +/** + * Finds a particular 2-vertex LineString Segment from a GeoJSON using `@turf/meta` indexes. + * + * Negative indexes are permitted. + * Point & MultiPoint will always return null. + * + * @param {FeatureCollection|Feature|Geometry} geojson Any GeoJSON Feature or Geometry + * @param {Object} [options={}] Optional parameters + * @param {number} [options.featureIndex=0] Feature Index + * @param {number} [options.multiFeatureIndex=0] Multi-Feature Index + * @param {number} [options.geometryIndex=0] Geometry Index + * @param {number} [options.segmentIndex=0] Segment Index + * @param {Object} [options.properties={}] Translate Properties to output LineString + * @param {BBox} [options.bbox={}] Translate BBox to output LineString + * @param {number|string} [options.id={}] Translate Id to output LineString + * @returns {Feature} 2-vertex GeoJSON Feature LineString + * @example + * var multiLine = turf.multiLineString([ + * [[10, 10], [50, 30], [30, 40]], + * [[-10, -10], [-50, -30], [-30, -40]] + * ]); + * + * // First Segment (defaults are 0) + * turf.findSegment(multiLine); + * // => Feature> + * + * // First Segment of 2nd Multi Feature + * turf.findSegment(multiLine, {multiFeatureIndex: 1}); + * // => Feature> + * + * // Last Segment of Last Multi Feature + * turf.findSegment(multiLine, {multiFeatureIndex: -1, segmentIndex: -1}); + * // => Feature> + */ +function findSegment(geojson, options) { + // Optional Parameters + options = options || {}; + if (!helpers.isObject(options)) throw new Error('options is invalid'); + var featureIndex = options.featureIndex || 0; + var multiFeatureIndex = options.multiFeatureIndex || 0; + var geometryIndex = options.geometryIndex || 0; + var segmentIndex = options.segmentIndex || 0; - for (var i = 0; i < length; ++i) { - codePoint = string.charCodeAt(i) + // Find FeatureIndex + var properties = options.properties; + var geometry; - // is surrogate component - if (codePoint > 0xD7FF && codePoint < 0xE000) { - // last char was a lead - if (!leadSurrogate) { - // no lead yet - if (codePoint > 0xDBFF) { - // unexpected trail - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - continue - } else if (i + 1 === length) { - // unpaired lead - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - continue - } + switch (geojson.type) { + case 'FeatureCollection': + if (featureIndex < 0) featureIndex = geojson.features.length + featureIndex; + properties = properties || geojson.features[featureIndex].properties; + geometry = geojson.features[featureIndex].geometry; + break; + case 'Feature': + properties = properties || geojson.properties; + geometry = geojson.geometry; + break; + case 'Point': + case 'MultiPoint': + return null; + case 'LineString': + case 'Polygon': + case 'MultiLineString': + case 'MultiPolygon': + geometry = geojson; + break; + default: + throw new Error('geojson is invalid'); + } - // valid lead - leadSurrogate = codePoint + // Find SegmentIndex + if (geometry === null) return null; + var coords = geometry.coordinates; + switch (geometry.type) { + case 'Point': + case 'MultiPoint': + return null; + case 'LineString': + if (segmentIndex < 0) segmentIndex = coords.length + segmentIndex - 1; + return helpers.lineString([coords[segmentIndex], coords[segmentIndex + 1]], properties, options); + case 'Polygon': + if (geometryIndex < 0) geometryIndex = coords.length + geometryIndex; + if (segmentIndex < 0) segmentIndex = coords[geometryIndex].length + segmentIndex - 1; + return helpers.lineString([coords[geometryIndex][segmentIndex], coords[geometryIndex][segmentIndex + 1]], properties, options); + case 'MultiLineString': + if (multiFeatureIndex < 0) multiFeatureIndex = coords.length + multiFeatureIndex; + if (segmentIndex < 0) segmentIndex = coords[multiFeatureIndex].length + segmentIndex - 1; + return helpers.lineString([coords[multiFeatureIndex][segmentIndex], coords[multiFeatureIndex][segmentIndex + 1]], properties, options); + case 'MultiPolygon': + if (multiFeatureIndex < 0) multiFeatureIndex = coords.length + multiFeatureIndex; + if (geometryIndex < 0) geometryIndex = coords[multiFeatureIndex].length + geometryIndex; + if (segmentIndex < 0) segmentIndex = coords[multiFeatureIndex][geometryIndex].length - segmentIndex - 1; + return helpers.lineString([coords[multiFeatureIndex][geometryIndex][segmentIndex], coords[multiFeatureIndex][geometryIndex][segmentIndex + 1]], properties, options); + } + throw new Error('geojson is invalid'); +} - continue - } +/** + * Finds a particular Point from a GeoJSON using `@turf/meta` indexes. + * + * Negative indexes are permitted. + * + * @param {FeatureCollection|Feature|Geometry} geojson Any GeoJSON Feature or Geometry + * @param {Object} [options={}] Optional parameters + * @param {number} [options.featureIndex=0] Feature Index + * @param {number} [options.multiFeatureIndex=0] Multi-Feature Index + * @param {number} [options.geometryIndex=0] Geometry Index + * @param {number} [options.coordIndex=0] Coord Index + * @param {Object} [options.properties={}] Translate Properties to output Point + * @param {BBox} [options.bbox={}] Translate BBox to output Point + * @param {number|string} [options.id={}] Translate Id to output Point + * @returns {Feature} 2-vertex GeoJSON Feature Point + * @example + * var multiLine = turf.multiLineString([ + * [[10, 10], [50, 30], [30, 40]], + * [[-10, -10], [-50, -30], [-30, -40]] + * ]); + * + * // First Segment (defaults are 0) + * turf.findPoint(multiLine); + * // => Feature> + * + * // First Segment of the 2nd Multi-Feature + * turf.findPoint(multiLine, {multiFeatureIndex: 1}); + * // => Feature> + * + * // Last Segment of last Multi-Feature + * turf.findPoint(multiLine, {multiFeatureIndex: -1, coordIndex: -1}); + * // => Feature> + */ +function findPoint(geojson, options) { + // Optional Parameters + options = options || {}; + if (!helpers.isObject(options)) throw new Error('options is invalid'); + var featureIndex = options.featureIndex || 0; + var multiFeatureIndex = options.multiFeatureIndex || 0; + var geometryIndex = options.geometryIndex || 0; + var coordIndex = options.coordIndex || 0; - // 2 leads in a row - if (codePoint < 0xDC00) { - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - leadSurrogate = codePoint - continue - } + // Find FeatureIndex + var properties = options.properties; + var geometry; - // valid surrogate pair - codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000 - } else if (leadSurrogate) { - // valid bmp char, but last char was a lead - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + switch (geojson.type) { + case 'FeatureCollection': + if (featureIndex < 0) featureIndex = geojson.features.length + featureIndex; + properties = properties || geojson.features[featureIndex].properties; + geometry = geojson.features[featureIndex].geometry; + break; + case 'Feature': + properties = properties || geojson.properties; + geometry = geojson.geometry; + break; + case 'Point': + case 'MultiPoint': + return null; + case 'LineString': + case 'Polygon': + case 'MultiLineString': + case 'MultiPolygon': + geometry = geojson; + break; + default: + throw new Error('geojson is invalid'); } - leadSurrogate = null - - // encode utf8 - if (codePoint < 0x80) { - if ((units -= 1) < 0) break - bytes.push(codePoint) - } else if (codePoint < 0x800) { - if ((units -= 2) < 0) break - bytes.push( - codePoint >> 0x6 | 0xC0, - codePoint & 0x3F | 0x80 - ) - } else if (codePoint < 0x10000) { - if ((units -= 3) < 0) break - bytes.push( - codePoint >> 0xC | 0xE0, - codePoint >> 0x6 & 0x3F | 0x80, - codePoint & 0x3F | 0x80 - ) - } else if (codePoint < 0x110000) { - if ((units -= 4) < 0) break - bytes.push( - codePoint >> 0x12 | 0xF0, - codePoint >> 0xC & 0x3F | 0x80, - codePoint >> 0x6 & 0x3F | 0x80, - codePoint & 0x3F | 0x80 - ) - } else { - throw new Error('Invalid code point') + // Find Coord Index + if (geometry === null) return null; + var coords = geometry.coordinates; + switch (geometry.type) { + case 'Point': + return helpers.point(coords, properties, options); + case 'MultiPoint': + if (multiFeatureIndex < 0) multiFeatureIndex = coords.length + multiFeatureIndex; + return helpers.point(coords[multiFeatureIndex], properties, options); + case 'LineString': + if (coordIndex < 0) coordIndex = coords.length + coordIndex; + return helpers.point(coords[coordIndex], properties, options); + case 'Polygon': + if (geometryIndex < 0) geometryIndex = coords.length + geometryIndex; + if (coordIndex < 0) coordIndex = coords[geometryIndex].length + coordIndex; + return helpers.point(coords[geometryIndex][coordIndex], properties, options); + case 'MultiLineString': + if (multiFeatureIndex < 0) multiFeatureIndex = coords.length + multiFeatureIndex; + if (coordIndex < 0) coordIndex = coords[multiFeatureIndex].length + coordIndex; + return helpers.point(coords[multiFeatureIndex][coordIndex], properties, options); + case 'MultiPolygon': + if (multiFeatureIndex < 0) multiFeatureIndex = coords.length + multiFeatureIndex; + if (geometryIndex < 0) geometryIndex = coords[multiFeatureIndex].length + geometryIndex; + if (coordIndex < 0) coordIndex = coords[multiFeatureIndex][geometryIndex].length - coordIndex; + return helpers.point(coords[multiFeatureIndex][geometryIndex][coordIndex], properties, options); } - } - - return bytes + throw new Error('geojson is invalid'); } -function asciiToBytes (str) { - var byteArray = [] - for (var i = 0; i < str.length; ++i) { - // Node's code seems to be doing this and not & 0x7F.. - byteArray.push(str.charCodeAt(i) & 0xFF) - } - return byteArray -} +exports.coordEach = coordEach; +exports.coordReduce = coordReduce; +exports.propEach = propEach; +exports.propReduce = propReduce; +exports.featureEach = featureEach; +exports.featureReduce = featureReduce; +exports.coordAll = coordAll; +exports.geomEach = geomEach; +exports.geomReduce = geomReduce; +exports.flattenEach = flattenEach; +exports.flattenReduce = flattenReduce; +exports.segmentEach = segmentEach; +exports.segmentReduce = segmentReduce; +exports.lineEach = lineEach; +exports.lineReduce = lineReduce; +exports.findSegment = findSegment; +exports.findPoint = findPoint; -function utf16leToBytes (str, units) { - var c, hi, lo - var byteArray = [] - for (var i = 0; i < str.length; ++i) { - if ((units -= 2) < 0) break +},{"@turf/helpers":64}],66:[function(_dereq_,module,exports){ +'use strict' - c = str.charCodeAt(i) - hi = c >> 8 - lo = c % 256 - byteArray.push(lo) - byteArray.push(hi) - } +var weakMap = typeof WeakMap === 'undefined' ? _dereq_('weak-map') : WeakMap +var createBuffer = _dereq_('gl-buffer') +var createVAO = _dereq_('gl-vao') - return byteArray -} +var TriangleCache = new weakMap() -function base64ToBytes (str) { - return base64.toByteArray(base64clean(str)) -} +function createABigTriangle(gl) { -function blitBuffer (src, dst, offset, length) { - for (var i = 0; i < length; ++i) { - if ((i + offset >= dst.length) || (i >= src.length)) break - dst[i + offset] = src[i] + var triangleVAO = TriangleCache.get(gl) + var handle = triangleVAO && (triangleVAO._triangleBuffer.handle || triangleVAO._triangleBuffer.buffer) + if(!handle || !gl.isBuffer(handle)) { + var buf = createBuffer(gl, new Float32Array([-1, -1, -1, 4, 4, -1])) + triangleVAO = createVAO(gl, [ + { buffer: buf, + type: gl.FLOAT, + size: 2 + } + ]) + triangleVAO._triangleBuffer = buf + TriangleCache.set(gl, triangleVAO) } - return i + triangleVAO.bind() + gl.drawArrays(gl.TRIANGLES, 0, 3) + triangleVAO.unbind() } -// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass -// the `instanceof` check but they should be treated as of that type. -// See: https://github.com/feross/buffer/issues/166 -function isInstance (obj, type) { - return obj instanceof type || - (obj != null && obj.constructor != null && obj.constructor.name != null && - obj.constructor.name === type.name) -} -function numberIsNaN (obj) { - // For IE11 support - return obj !== obj // eslint-disable-line no-self-compare -} +module.exports = createABigTriangle -}).call(this)}).call(this,_dereq_("buffer").Buffer) -},{"base64-js":79,"buffer":111,"ieee754":442}],112:[function(_dereq_,module,exports){ -'use strict' +},{"gl-buffer":259,"gl-vao":357,"weak-map":619}],67:[function(_dereq_,module,exports){ -var monotoneTriangulate = _dereq_('./lib/monotone') -var makeIndex = _dereq_('./lib/triangulation') -var delaunayFlip = _dereq_('./lib/delaunay') -var filterTriangulation = _dereq_('./lib/filter') +module.exports = absolutize -module.exports = cdt2d +/** + * redefine `path` with absolute coordinates + * + * @param {Array} path + * @return {Array} + */ -function canonicalizeEdge(e) { - return [Math.min(e[0], e[1]), Math.max(e[0], e[1])] -} +function absolutize(path){ + var startX = 0 + var startY = 0 + var x = 0 + var y = 0 -function compareEdge(a, b) { - return a[0]-b[0] || a[1]-b[1] -} + return path.map(function(seg){ + seg = seg.slice() + var type = seg[0] + var command = type.toUpperCase() -function canonicalizeEdges(edges) { - return edges.map(canonicalizeEdge).sort(compareEdge) -} + // is relative + if (type != command) { + seg[0] = command + switch (type) { + case 'a': + seg[6] += x + seg[7] += y + break + case 'v': + seg[1] += y + break + case 'h': + seg[1] += x + break + default: + for (var i = 1; i < seg.length;) { + seg[i++] += x + seg[i++] += y + } + } + } -function getDefault(options, property, dflt) { - if(property in options) { - return options[property] - } - return dflt -} + // update cursor state + switch (command) { + case 'Z': + x = startX + y = startY + break + case 'H': + x = seg[1] + break + case 'V': + y = seg[1] + break + case 'M': + x = startX = seg[1] + y = startY = seg[2] + break + default: + x = seg[seg.length - 2] + y = seg[seg.length - 1] + } -function cdt2d(points, edges, options) { + return seg + }) +} - if(!Array.isArray(edges)) { - options = edges || {} - edges = [] - } else { - options = options || {} - edges = edges || [] - } +},{}],68:[function(_dereq_,module,exports){ +var padLeft = _dereq_('pad-left') - //Parse out options - var delaunay = !!getDefault(options, 'delaunay', true) - var interior = !!getDefault(options, 'interior', true) - var exterior = !!getDefault(options, 'exterior', true) - var infinity = !!getDefault(options, 'infinity', false) +module.exports = addLineNumbers +function addLineNumbers (string, start, delim) { + start = typeof start === 'number' ? start : 1 + delim = delim || ': ' - //Handle trivial case - if((!interior && !exterior) || points.length === 0) { - return [] - } + var lines = string.split(/\r?\n/) + var totalDigits = String(lines.length + start - 1).length + return lines.map(function (line, i) { + var c = i + start + var digits = String(c).length + var prefix = padLeft(c, totalDigits - digits) + return prefix + delim + line + }).join('\n') +} - //Construct initial triangulation - var cells = monotoneTriangulate(points, edges) +},{"pad-left":487}],69:[function(_dereq_,module,exports){ +'use strict' - //If delaunay refinement needed, then improve quality by edge flipping - if(delaunay || interior !== exterior || infinity) { +module.exports = affineHull - //Index all of the cells to support fast neighborhood queries - var triangulation = makeIndex(points.length, canonicalizeEdges(edges)) - for(var i=0; i max) max = arr[i]; + if (arr[i] < min) min = arr[i]; + } + + bounds[offset] = min + bounds[dim + offset] = max + } + + return bounds; +} - //If edge is in circle, flip it - if(inCircle(points[a], points[b], points[x], points[y]) < 0) { - stack.push(a, b) - } - } - } +},{}],73:[function(_dereq_,module,exports){ +'use strict'; +module.exports = function (arr, predicate, ctx) { + if (typeof Array.prototype.findIndex === 'function') { + return arr.findIndex(predicate, ctx); + } - while(stack.length > 0) { - var b = stack.pop() - var a = stack.pop() + if (typeof predicate !== 'function') { + throw new TypeError('predicate must be a function'); + } - //Find opposite pairs - var x = -1, y = -1 - var star = stars[a] - for(var i=1; i= 0) { - continue - } + for (var i = 0; i < len; i++) { + if (predicate.call(ctx, list[i], i, list)) { + return i; + } + } - //Flip the edge - triangulation.flip(a, b) + return -1; +}; - //Test flipping neighboring edges - testFlip(points, triangulation, stack, x, a, y) - testFlip(points, triangulation, stack, a, y, x) - testFlip(points, triangulation, stack, y, b, x) - testFlip(points, triangulation, stack, b, x, y) - } -} +},{}],74:[function(_dereq_,module,exports){ +'use strict' + +var getBounds = _dereq_('array-bounds') + +module.exports = normalize; + +function normalize (arr, dim, bounds) { + if (!arr || arr.length == null) throw Error('Argument should be an array') + + if (dim == null) dim = 1 + if (bounds == null) bounds = getBounds(arr, dim) + + for (var offset = 0; offset < dim; offset++) { + var max = bounds[dim + offset], min = bounds[offset], i = offset, l = arr.length; + + if (max === Infinity && min === -Infinity) { + for (i = offset; i < l; i+=dim) { + arr[i] = arr[i] === max ? 1 : arr[i] === min ? 0 : .5 + } + } + else if (max === Infinity) { + for (i = offset; i < l; i+=dim) { + arr[i] = arr[i] === max ? 1 : 0 + } + } + else if (min === -Infinity) { + for (i = offset; i < l; i+=dim) { + arr[i] = arr[i] === min ? 0 : 1 + } + } + else { + var range = max - min + for (i = offset; i < l; i+=dim) { + if (!isNaN(arr[i])) { + arr[i] = range === 0 ? .5 : (arr[i] - min) / range + } + } + } + } + + return arr; +} -},{"binary-search-bounds":96,"robust-in-sphere":546}],114:[function(_dereq_,module,exports){ -'use strict' +},{"array-bounds":72}],75:[function(_dereq_,module,exports){ -var bsearch = _dereq_('binary-search-bounds') +module.exports = function newArray(start, end) { + var n0 = typeof start === 'number', + n1 = typeof end === 'number' -module.exports = classifyFaces + if (n0 && !n1) { + end = start + start = 0 + } else if (!n0 && !n1) { + start = 0 + end = 0 + } -function FaceIndex(cells, neighbor, constraint, flags, active, next, boundary) { - this.cells = cells - this.neighbor = neighbor - this.flags = flags - this.constraint = constraint - this.active = active - this.next = next - this.boundary = boundary + start = start|0 + end = end|0 + var len = end-start + if (len<0) + throw new Error('array length must be positive') + + var a = new Array(len) + for (var i=0, c=start; i + * @license MIT + */ +function compare(a, b) { + if (a === b) { + return 0; } -})() -function indexCells(triangulation, infinity) { - //First get cells and canonicalize - var cells = triangulation.cells() - var nc = cells.length - for(var i=0; i 0 || next.length > 0) { - while(active.length > 0) { - var t = active.pop() - if(flags[t] === -side) { - continue - } - flags[t] = side - var c = cells[t] - for(var j=0; j<3; ++j) { - var f = neighbor[3*t+j] - if(f >= 0 && flags[f] === 0) { - if(constraint[3*t+j]) { - next.push(f) - } else { - active.push(f) - flags[f] = side - } - } - } - } +// http://wiki.commonjs.org/wiki/Unit_Testing/1.0 +// +// THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8! +// +// Originally from narwhal.js (http://narwhaljs.org) +// Copyright (c) 2009 Thomas Robinson <280north.com> +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the 'Software'), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +// sell copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - //Swap arrays and loop - var tmp = next - next = active - active = tmp - next.length = 0 - side = -side +var util = _dereq_('util/'); +var hasOwn = Object.prototype.hasOwnProperty; +var pSlice = Array.prototype.slice; +var functionsHaveNames = (function () { + return function foo() {}.name === 'foo'; +}()); +function pToString (obj) { + return Object.prototype.toString.call(obj); +} +function isView(arrbuf) { + if (isBuffer(arrbuf)) { + return false; } - - var result = filterCells(cells, flags, target) - if(infinity) { - return result.concat(index.boundary) + if (typeof global.ArrayBuffer !== 'function') { + return false; } - return result + if (typeof ArrayBuffer.isView === 'function') { + return ArrayBuffer.isView(arrbuf); + } + if (!arrbuf) { + return false; + } + if (arrbuf instanceof DataView) { + return true; + } + if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) { + return true; + } + return false; } +// 1. The assert module provides functions that throw +// AssertionError's when particular conditions are not met. The +// assert module must conform to the following interface. -},{"binary-search-bounds":96}],115:[function(_dereq_,module,exports){ -'use strict' - -var bsearch = _dereq_('binary-search-bounds') -var orient = _dereq_('robust-orientation')[3] - -var EVENT_POINT = 0 -var EVENT_END = 1 -var EVENT_START = 2 - -module.exports = monotoneTriangulate - -//A partial convex hull fragment, made of two unimonotone polygons -function PartialHull(a, b, idx, lowerIds, upperIds) { - this.a = a - this.b = b - this.idx = idx - this.lowerIds = lowerIds - this.upperIds = upperIds -} +var assert = module.exports = ok; -//An event in the sweep line procedure -function Event(a, b, type, idx) { - this.a = a - this.b = b - this.type = type - this.idx = idx -} +// 2. The AssertionError is defined in assert. +// new assert.AssertionError({ message: message, +// actual: actual, +// expected: expected }) -//This is used to compare events for the sweep line procedure -// Points are: -// 1. sorted lexicographically -// 2. sorted by type (point < end < start) -// 3. segments sorted by winding order -// 4. sorted by index -function compareEvent(a, b) { - var d = - (a.a[0] - b.a[0]) || - (a.a[1] - b.a[1]) || - (a.type - b.type) - if(d) { return d } - if(a.type !== EVENT_POINT) { - d = orient(a.a, a.b, b.b) - if(d) { return d } +var regex = /\s*function\s+([^\(\s]*)\s*/; +// based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js +function getName(func) { + if (!util.isFunction(func)) { + return; } - return a.idx - b.idx -} - -function testPoint(hull, p) { - return orient(hull.a, hull.b, p) + if (functionsHaveNames) { + return func.name; + } + var str = func.toString(); + var match = str.match(regex); + return match && match[1]; } +assert.AssertionError = function AssertionError(options) { + this.name = 'AssertionError'; + this.actual = options.actual; + this.expected = options.expected; + this.operator = options.operator; + if (options.message) { + this.message = options.message; + this.generatedMessage = false; + } else { + this.message = getMessage(this); + this.generatedMessage = true; + } + var stackStartFunction = options.stackStartFunction || fail; + if (Error.captureStackTrace) { + Error.captureStackTrace(this, stackStartFunction); + } else { + // non v8 browsers so we can have a stacktrace + var err = new Error(); + if (err.stack) { + var out = err.stack; -function addPoint(cells, hulls, points, p, idx) { - var lo = bsearch.lt(hulls, p, testPoint) - var hi = bsearch.gt(hulls, p, testPoint) - for(var i=lo; i 1 && orient( - points[lowerIds[m-2]], - points[lowerIds[m-1]], - p) > 0) { - cells.push( - [lowerIds[m-1], - lowerIds[m-2], - idx]) - m -= 1 - } - lowerIds.length = m - lowerIds.push(idx) + // try to strip useless frames + var fn_name = getName(stackStartFunction); + var idx = out.indexOf('\n' + fn_name); + if (idx >= 0) { + // once we have located the function frame + // we need to strip out everything before it (and its line) + var next_line = out.indexOf('\n', idx + 1); + out = out.substring(next_line + 1); + } - //Insert p into upper hull - var upperIds = hull.upperIds - var m = upperIds.length - while(m > 1 && orient( - points[upperIds[m-2]], - points[upperIds[m-1]], - p) < 0) { - cells.push( - [upperIds[m-2], - upperIds[m-1], - idx]) - m -= 1 + this.stack = out; } - upperIds.length = m - upperIds.push(idx) } -} +}; -function findSplit(hull, edge) { - var d - if(hull.a[0] < edge.a[0]) { - d = orient(hull.a, hull.b, edge.a) +// assert.AssertionError instanceof Error +util.inherits(assert.AssertionError, Error); + +function truncate(s, n) { + if (typeof s === 'string') { + return s.length < n ? s : s.slice(0, n); } else { - d = orient(edge.b, edge.a, hull.a) + return s; } - if(d) { return d } - if(edge.b[0] < hull.b[0]) { - d = orient(hull.a, hull.b, edge.b) - } else { - d = orient(edge.b, edge.a, hull.b) +} +function inspect(something) { + if (functionsHaveNames || !util.isFunction(something)) { + return util.inspect(something); } - return d || hull.idx - edge.idx + var rawname = getName(something); + var name = rawname ? ': ' + rawname : ''; + return '[Function' + name + ']'; } - -function splitHulls(hulls, points, event) { - var splitIdx = bsearch.le(hulls, event, findSplit) - var hull = hulls[splitIdx] - var upperIds = hull.upperIds - var x = upperIds[upperIds.length-1] - hull.upperIds = [x] - hulls.splice(splitIdx+1, 0, - new PartialHull(event.a, event.b, event.idx, [x], upperIds)) +function getMessage(self) { + return truncate(inspect(self.actual), 128) + ' ' + + self.operator + ' ' + + truncate(inspect(self.expected), 128); } +// At present only the three keys mentioned above are used and +// understood by the spec. Implementations or sub modules can pass +// other keys to the AssertionError's constructor - they will be +// ignored. + +// 3. All of the following functions must throw an AssertionError +// when a corresponding condition is not met, with a message that +// may be undefined if not provided. All assertion methods provide +// both the actual and expected values to the assertion error for +// display purposes. -function mergeHulls(hulls, points, event) { - //Swap pointers for merge search - var tmp = event.a - event.a = event.b - event.b = tmp - var mergeIdx = bsearch.eq(hulls, event, findSplit) - var upper = hulls[mergeIdx] - var lower = hulls[mergeIdx-1] - lower.upperIds = upper.upperIds - hulls.splice(mergeIdx, 1) +function fail(actual, expected, message, operator, stackStartFunction) { + throw new assert.AssertionError({ + message: message, + actual: actual, + expected: expected, + operator: operator, + stackStartFunction: stackStartFunction + }); } +// EXTENSION! allows for well behaved errors defined elsewhere. +assert.fail = fail; -function monotoneTriangulate(points, edges) { +// 4. Pure assertion tests whether a value is truthy, as determined +// by !!guard. +// assert.ok(guard, message_opt); +// This statement is equivalent to assert.equal(true, !!guard, +// message_opt);. To test strictly for the value true, use +// assert.strictEqual(true, guard, message_opt);. - var numPoints = points.length - var numEdges = edges.length +function ok(value, message) { + if (!value) fail(value, true, message, '==', assert.ok); +} +assert.ok = ok; - var events = [] +// 5. The equality assertion tests shallow, coercive equality with +// ==. +// assert.equal(actual, expected, message_opt); - //Create point events - for(var i=0; i b[0]) { - events.push( - new Event(b, a, EVENT_START, i), - new Event(a, b, EVENT_END, i)) - } +// 6. The non-equality assertion tests for whether two objects are not equal +// with != assert.notEqual(actual, expected, message_opt); + +assert.notEqual = function notEqual(actual, expected, message) { + if (actual == expected) { + fail(actual, expected, message, '!=', assert.notEqual); } +}; - //Sort events - events.sort(compareEvent) +// 7. The equivalence assertion tests a deep equality relation. +// assert.deepEqual(actual, expected, message_opt); - //Initialize hull - var minX = events[0].a[0] - (1 + Math.abs(events[0].a[0])) * Math.pow(2, -52) - var hull = [ new PartialHull([minX, 1], [minX, 0], -1, [], [], [], []) ] +assert.deepEqual = function deepEqual(actual, expected, message) { + if (!_deepEqual(actual, expected, false)) { + fail(actual, expected, message, 'deepEqual', assert.deepEqual); + } +}; - //Process events in order - var cells = [] - for(var i=0, numEvents=events.length; i= 0 - } -})() - -proto.removeTriangle = function(i, j, k) { - var stars = this.stars - removePair(stars[i], j, k) - removePair(stars[j], k, i) - removePair(stars[k], i, j) -} -proto.addTriangle = function(i, j, k) { - var stars = this.stars - stars[i].push(j, k) - stars[j].push(k, i) - stars[k].push(i, j) -} + memos.actual.push(actual); + memos.expected.push(expected); -proto.opposite = function(j, i) { - var list = this.stars[i] - for(var k=1, n=list.length; k= 0; i--) { + if (ka[i] !== kb[i]) + return false; + } + //equivalent values for every corresponding key, and + //~~~possibly expensive deep test + for (i = ka.length - 1; i >= 0; i--) { + key = ka[i]; + if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects)) + return false; + } + return true; } -proto.cells = function() { - var stars = this.stars - var result = [] - for(var i=0, n=stars.length; i max ? max : value) - : (value < max ? max : value > min ? min : value) + var userProvidedMessage = typeof message === 'string'; + var isUnwantedException = !shouldThrow && util.isError(actual); + var isUnexpectedException = !shouldThrow && actual && !expected; + + if ((isUnwantedException && + userProvidedMessage && + expectedException(actual, expected)) || + isUnexpectedException) { + fail(actual, expected, 'Got unwanted exception' + message); + } + + if ((shouldThrow && actual && expected && + !expectedException(actual, expected)) || (!shouldThrow && actual)) { + throw actual; + } } -},{}],121:[function(_dereq_,module,exports){ -'use strict' +// 11. Expected to throw an error: +// assert.throws(block, Error_opt, message_opt); -module.exports = cleanPSLG +assert.throws = function(block, /*optional*/error, /*optional*/message) { + _throws(true, block, error, message); +}; -var UnionFind = _dereq_('union-find') -var boxIntersect = _dereq_('box-intersect') -var segseg = _dereq_('robust-segment-intersect') -var rat = _dereq_('big-rat') -var ratCmp = _dereq_('big-rat/cmp') -var ratToFloat = _dereq_('big-rat/to-float') -var ratVec = _dereq_('rat-vec') -var nextafter = _dereq_('nextafter') +// EXTENSION! This is annoying to write outside this module. +assert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) { + _throws(false, block, error, message); +}; -var solveIntersection = _dereq_('./lib/rat-seg-intersect') +assert.ifError = function(err) { if (err) throw err; }; -// Bounds on a rational number when rounded to a float -function boundRat (r) { - var f = ratToFloat(r) - return [ - nextafter(f, -Infinity), - nextafter(f, Infinity) - ] +// Expose a strict only variant of assert +function strict(value, message) { + if (!value) fail(value, true, message, '==', strict); } +assert.strict = objectAssign(strict, assert, { + equal: assert.strictEqual, + deepEqual: assert.deepStrictEqual, + notEqual: assert.notStrictEqual, + notDeepEqual: assert.notDeepStrictEqual +}); +assert.strict.strict = assert.strict; -// Convert a list of edges in a pslg to bounding boxes -function boundEdges (points, edges) { - var bounds = new Array(edges.length) - for (var i = 0; i < edges.length; ++i) { - var e = edges[i] - var a = points[e[0]] - var b = points[e[1]] - bounds[i] = [ - nextafter(Math.min(a[0], b[0]), -Infinity), - nextafter(Math.min(a[1], b[1]), -Infinity), - nextafter(Math.max(a[0], b[0]), Infinity), - nextafter(Math.max(a[1], b[1]), Infinity) - ] +var objectKeys = Object.keys || function (obj) { + var keys = []; + for (var key in obj) { + if (hasOwn.call(obj, key)) keys.push(key); } - return bounds -} + return keys; +}; -// Convert a list of points into bounding boxes by duplicating coords -function boundPoints (points) { - var bounds = new Array(points.length) - for (var i = 0; i < points.length; ++i) { - var p = points[i] - bounds[i] = [ - nextafter(p[0], -Infinity), - nextafter(p[1], -Infinity), - nextafter(p[0], Infinity), - nextafter(p[1], Infinity) - ] +}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{"object-assign":484,"util/":79}],77:[function(_dereq_,module,exports){ +if (typeof Object.create === 'function') { + // implementation from standard node.js 'util' module + module.exports = function inherits(ctor, superCtor) { + ctor.super_ = superCtor + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); + }; +} else { + // old school shim for old browsers + module.exports = function inherits(ctor, superCtor) { + ctor.super_ = superCtor + var TempCtor = function () {} + TempCtor.prototype = superCtor.prototype + ctor.prototype = new TempCtor() + ctor.prototype.constructor = ctor } - return bounds -} - -// Find all pairs of crossing edges in a pslg (given edge bounds) -function getCrossings (points, edges, edgeBounds) { - var result = [] - boxIntersect(edgeBounds, function (i, j) { - var e = edges[i] - var f = edges[j] - if (e[0] === f[0] || e[0] === f[1] || - e[1] === f[0] || e[1] === f[1]) { - return - } - var a = points[e[0]] - var b = points[e[1]] - var c = points[f[0]] - var d = points[f[1]] - if (segseg(a, b, c, d)) { - result.push([i, j]) - } - }) - return result } -// Find all pairs of crossing vertices in a pslg (given edge/vert bounds) -function getTJunctions (points, edges, edgeBounds, vertBounds) { - var result = [] - boxIntersect(edgeBounds, vertBounds, function (i, v) { - var e = edges[i] - if (e[0] === v || e[1] === v) { - return - } - var p = points[v] - var a = points[e[0]] - var b = points[e[1]] - if (segseg(a, b, p, p)) { - result.push([i, v]) - } - }) - return result +},{}],78:[function(_dereq_,module,exports){ +module.exports = function isBuffer(arg) { + return arg && typeof arg === 'object' + && typeof arg.copy === 'function' + && typeof arg.fill === 'function' + && typeof arg.readUInt8 === 'function'; } +},{}],79:[function(_dereq_,module,exports){ +(function (process,global){(function (){ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. -// Cut edges along crossings/tjunctions -function cutEdges (floatPoints, edges, crossings, junctions, useColor) { - var i, e - - // Convert crossings into tjunctions by constructing rational points - var ratPoints = floatPoints.map(function(p) { - return [ - rat(p[0]), - rat(p[1]) - ] - }) - for (i = 0; i < crossings.length; ++i) { - var crossing = crossings[i] - e = crossing[0] - var f = crossing[1] - var ee = edges[e] - var ef = edges[f] - var x = solveIntersection( - ratVec(floatPoints[ee[0]]), - ratVec(floatPoints[ee[1]]), - ratVec(floatPoints[ef[0]]), - ratVec(floatPoints[ef[1]])) - if (!x) { - // Segments are parallel, should already be handled by t-junctions - continue +var formatRegExp = /%[sdj%]/g; +exports.format = function(f) { + if (!isString(f)) { + var objects = []; + for (var i = 0; i < arguments.length; i++) { + objects.push(inspect(arguments[i])); } - var idx = floatPoints.length - floatPoints.push([ratToFloat(x[0]), ratToFloat(x[1])]) - ratPoints.push(x) - junctions.push([e, idx], [f, idx]) + return objects.join(' '); } - // Sort tjunctions - junctions.sort(function (a, b) { - if (a[0] !== b[0]) { - return a[0] - b[0] + var i = 1; + var args = arguments; + var len = args.length; + var str = String(f).replace(formatRegExp, function(x) { + if (x === '%%') return '%'; + if (i >= len) return x; + switch (x) { + case '%s': return String(args[i++]); + case '%d': return Number(args[i++]); + case '%j': + try { + return JSON.stringify(args[i++]); + } catch (_) { + return '[Circular]'; + } + default: + return x; } - var u = ratPoints[a[1]] - var v = ratPoints[b[1]] - return ratCmp(u[0], v[0]) || ratCmp(u[1], v[1]) - }) - - // Split edges along junctions - for (i = junctions.length - 1; i >= 0; --i) { - var junction = junctions[i] - e = junction[0] - - var edge = edges[e] - var s = edge[0] - var t = edge[1] - - // Check if edge is not lexicographically sorted - var a = floatPoints[s] - var b = floatPoints[t] - if (((a[0] - b[0]) || (a[1] - b[1])) < 0) { - var tmp = s - s = t - t = tmp + }); + for (var x = args[i]; i < len; x = args[++i]) { + if (isNull(x) || !isObject(x)) { + str += ' ' + x; + } else { + str += ' ' + inspect(x); } + } + return str; +}; - // Split leading edge - edge[0] = s - var last = edge[1] = junction[1] - // If we are grouping edges by color, remember to track data - var color - if (useColor) { - color = edge[2] - } +// Mark that a method should not be used. +// Returns a modified function which warns once by default. +// If --no-deprecation is set, then it is a no-op. +exports.deprecate = function(fn, msg) { + // Allow for deprecating things in the process of starting up. + if (isUndefined(global.process)) { + return function() { + return exports.deprecate(fn, msg).apply(this, arguments); + }; + } - // Split other edges - while (i > 0 && junctions[i - 1][0] === e) { - var junction = junctions[--i] - var next = junction[1] - if (useColor) { - edges.push([last, next, color]) + if (process.noDeprecation === true) { + return fn; + } + + var warned = false; + function deprecated() { + if (!warned) { + if (process.throwDeprecation) { + throw new Error(msg); + } else if (process.traceDeprecation) { + console.trace(msg); } else { - edges.push([last, next]) + console.error(msg); } - last = next + warned = true; } + return fn.apply(this, arguments); + } - // Add final edge - if (useColor) { - edges.push([last, t, color]) + return deprecated; +}; + + +var debugs = {}; +var debugEnviron; +exports.debuglog = function(set) { + if (isUndefined(debugEnviron)) + debugEnviron = process.env.NODE_DEBUG || ''; + set = set.toUpperCase(); + if (!debugs[set]) { + if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) { + var pid = process.pid; + debugs[set] = function() { + var msg = exports.format.apply(exports, arguments); + console.error('%s %d: %s', set, pid, msg); + }; } else { - edges.push([last, t]) + debugs[set] = function() {}; } } + return debugs[set]; +}; - // Return constructed rational points - return ratPoints + +/** + * Echos the value of a value. Trys to print the value out + * in the best way possible given the different types. + * + * @param {Object} obj The object to print out. + * @param {Object} opts Optional options object that alters the output. + */ +/* legacy: obj, showHidden, depth, colors*/ +function inspect(obj, opts) { + // default options + var ctx = { + seen: [], + stylize: stylizeNoColor + }; + // legacy... + if (arguments.length >= 3) ctx.depth = arguments[2]; + if (arguments.length >= 4) ctx.colors = arguments[3]; + if (isBoolean(opts)) { + // legacy... + ctx.showHidden = opts; + } else if (opts) { + // got an "options" object + exports._extend(ctx, opts); + } + // set default options + if (isUndefined(ctx.showHidden)) ctx.showHidden = false; + if (isUndefined(ctx.depth)) ctx.depth = 2; + if (isUndefined(ctx.colors)) ctx.colors = false; + if (isUndefined(ctx.customInspect)) ctx.customInspect = true; + if (ctx.colors) ctx.stylize = stylizeWithColor; + return formatValue(ctx, obj, ctx.depth); } +exports.inspect = inspect; -// Merge overlapping points -function dedupPoints (floatPoints, ratPoints, floatBounds) { - var numPoints = ratPoints.length - var uf = new UnionFind(numPoints) - // Compute rational bounds - var bounds = [] - for (var i = 0; i < ratPoints.length; ++i) { - var p = ratPoints[i] - var xb = boundRat(p[0]) - var yb = boundRat(p[1]) - bounds.push([ - nextafter(xb[0], -Infinity), - nextafter(yb[0], -Infinity), - nextafter(xb[1], Infinity), - nextafter(yb[1], Infinity) - ]) +// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics +inspect.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] +}; + +// Don't use 'blue' not visible on cmd.exe +inspect.styles = { + 'special': 'cyan', + 'number': 'yellow', + 'boolean': 'yellow', + 'undefined': 'grey', + 'null': 'bold', + 'string': 'green', + 'date': 'magenta', + // "name": intentionally not styling + 'regexp': 'red' +}; + + +function stylizeWithColor(str, styleType) { + var style = inspect.styles[styleType]; + + if (style) { + return '\u001b[' + inspect.colors[style][0] + 'm' + str + + '\u001b[' + inspect.colors[style][1] + 'm'; + } else { + return str; } +} - // Link all points with over lapping boxes - boxIntersect(bounds, function (i, j) { - uf.link(i, j) - }) - // Do 1 pass over points to combine points in label sets - var noDupes = true - var labels = new Array(numPoints) - for (var i = 0; i < numPoints; ++i) { - var j = uf.find(i) - if (j !== i) { - // Clear no-dupes flag, zero out label - noDupes = false - // Make each point the top-left point from its cell - floatPoints[j] = [ - Math.min(floatPoints[i][0], floatPoints[j][0]), - Math.min(floatPoints[i][1], floatPoints[j][1]) - ] +function stylizeNoColor(str, styleType) { + return str; +} + + +function arrayToHash(array) { + var hash = {}; + + array.forEach(function(val, idx) { + hash[val] = true; + }); + + return hash; +} + + +function formatValue(ctx, value, recurseTimes) { + // Provide a hook for user-specified inspect functions. + // Check that value is an object with an inspect function on it + if (ctx.customInspect && + value && + isFunction(value.inspect) && + // Filter out the util module, it's inspect function is special + value.inspect !== exports.inspect && + // Also filter out any prototype objects using the circular check. + !(value.constructor && value.constructor.prototype === value)) { + var ret = value.inspect(recurseTimes, ctx); + if (!isString(ret)) { + ret = formatValue(ctx, ret, recurseTimes); } + return ret; } - // If no duplicates, return null to signal termination - if (noDupes) { - return null + // Primitive types cannot have properties + var primitive = formatPrimitive(ctx, value); + if (primitive) { + return primitive; } - var ptr = 0 - for (var i = 0; i < numPoints; ++i) { - var j = uf.find(i) - if (j === i) { - labels[i] = ptr - floatPoints[ptr++] = floatPoints[i] - } else { - labels[i] = -1 - } + // Look up the keys of the object. + var keys = Object.keys(value); + var visibleKeys = arrayToHash(keys); + + if (ctx.showHidden) { + keys = Object.getOwnPropertyNames(value); } - floatPoints.length = ptr + // IE doesn't make error fields non-enumerable + // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx + if (isError(value) + && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) { + return formatError(value); + } - // Do a second pass to fix up missing labels - for (var i = 0; i < numPoints; ++i) { - if (labels[i] < 0) { - labels[i] = labels[uf.find(i)] + // Some type of object without properties can be shortcutted. + if (keys.length === 0) { + if (isFunction(value)) { + var name = value.name ? ': ' + value.name : ''; + return ctx.stylize('[Function' + name + ']', 'special'); + } + if (isRegExp(value)) { + return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); + } + if (isDate(value)) { + return ctx.stylize(Date.prototype.toString.call(value), 'date'); + } + if (isError(value)) { + return formatError(value); } } - // Return resulting union-find data structure - return labels -} + var base = '', array = false, braces = ['{', '}']; -function compareLex2 (a, b) { return (a[0] - b[0]) || (a[1] - b[1]) } -function compareLex3 (a, b) { - var d = (a[0] - b[0]) || (a[1] - b[1]) - if (d) { - return d + // Make Array say that they are Array + if (isArray(value)) { + array = true; + braces = ['[', ']']; } - if (a[2] < b[2]) { - return -1 - } else if (a[2] > b[2]) { - return 1 + + // Make functions say that they are functions + if (isFunction(value)) { + var n = value.name ? ': ' + value.name : ''; + base = ' [Function' + n + ']'; } - return 0 -} -// Remove duplicate edge labels -function dedupEdges (edges, labels, useColor) { - if (edges.length === 0) { - return + // Make RegExps say that they are RegExps + if (isRegExp(value)) { + base = ' ' + RegExp.prototype.toString.call(value); } - if (labels) { - for (var i = 0; i < edges.length; ++i) { - var e = edges[i] - var a = labels[e[0]] - var b = labels[e[1]] - e[0] = Math.min(a, b) - e[1] = Math.max(a, b) - } - } else { - for (var i = 0; i < edges.length; ++i) { - var e = edges[i] - var a = e[0] - var b = e[1] - e[0] = Math.min(a, b) - e[1] = Math.max(a, b) - } + + // Make dates with properties first say the date + if (isDate(value)) { + base = ' ' + Date.prototype.toUTCString.call(value); } - if (useColor) { - edges.sort(compareLex3) - } else { - edges.sort(compareLex2) + + // Make error with message first say the error + if (isError(value)) { + base = ' ' + formatError(value); } - var ptr = 1 - for (var i = 1; i < edges.length; ++i) { - var prev = edges[i - 1] - var next = edges[i] - if (next[0] === prev[0] && next[1] === prev[1] && - (!useColor || next[2] === prev[2])) { - continue - } - edges[ptr++] = next + + if (keys.length === 0 && (!array || value.length == 0)) { + return braces[0] + base + braces[1]; } - edges.length = ptr -} -function preRound (points, edges, useColor) { - var labels = dedupPoints(points, [], boundPoints(points)) - dedupEdges(edges, labels, useColor) - return !!labels -} + if (recurseTimes < 0) { + if (isRegExp(value)) { + return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); + } else { + return ctx.stylize('[Object]', 'special'); + } + } -// Repeat until convergence -function snapRound (points, edges, useColor) { - // 1. find edge crossings - var edgeBounds = boundEdges(points, edges) - var crossings = getCrossings(points, edges, edgeBounds) + ctx.seen.push(value); - // 2. find t-junctions - var vertBounds = boundPoints(points) - var tjunctions = getTJunctions(points, edges, edgeBounds, vertBounds) + var output; + if (array) { + output = formatArray(ctx, value, recurseTimes, visibleKeys, keys); + } else { + output = keys.map(function(key) { + return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array); + }); + } - // 3. cut edges, construct rational points - var ratPoints = cutEdges(points, edges, crossings, tjunctions, useColor) + ctx.seen.pop(); - // 4. dedupe verts - var labels = dedupPoints(points, ratPoints, vertBounds) + return reduceToSingleString(output, base, braces); +} - // 5. dedupe edges - dedupEdges(edges, labels, useColor) - // 6. check termination - if (!labels) { - return (crossings.length > 0 || tjunctions.length > 0) +function formatPrimitive(ctx, value) { + if (isUndefined(value)) + return ctx.stylize('undefined', 'undefined'); + if (isString(value)) { + var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '') + .replace(/'/g, "\\'") + .replace(/\\"/g, '"') + '\''; + return ctx.stylize(simple, 'string'); } + if (isNumber(value)) + return ctx.stylize('' + value, 'number'); + if (isBoolean(value)) + return ctx.stylize('' + value, 'boolean'); + // For some reason typeof null is "object", so special case here. + if (isNull(value)) + return ctx.stylize('null', 'null'); +} - // More iterations necessary - return true + +function formatError(value) { + return '[' + Error.prototype.toString.call(value) + ']'; } -// Main loop, runs PSLG clean up until completion -function cleanPSLG (points, edges, colors) { - // If using colors, augment edges with color data - var prevEdges - if (colors) { - prevEdges = edges - var augEdges = new Array(edges.length) - for (var i = 0; i < edges.length; ++i) { - var e = edges[i] - augEdges[i] = [e[0], e[1], colors[i]] + +function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { + var output = []; + for (var i = 0, l = value.length; i < l; ++i) { + if (hasOwnProperty(value, String(i))) { + output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, + String(i), true)); + } else { + output.push(''); } - edges = augEdges } + keys.forEach(function(key) { + if (!key.match(/^\d+$/)) { + output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, + key, true)); + } + }); + return output; +} - // First round: remove duplicate edges and points - var modified = preRound(points, edges, !!colors) - // Run snap rounding until convergence - while (snapRound(points, edges, !!colors)) { - modified = true +function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { + var name, str, desc; + desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] }; + if (desc.get) { + if (desc.set) { + str = ctx.stylize('[Getter/Setter]', 'special'); + } else { + str = ctx.stylize('[Getter]', 'special'); + } + } else { + if (desc.set) { + str = ctx.stylize('[Setter]', 'special'); + } } - - // Strip color tags - if (!!colors && modified) { - prevEdges.length = 0 - colors.length = 0 - for (var i = 0; i < edges.length; ++i) { - var e = edges[i] - prevEdges.push([e[0], e[1]]) - colors.push(e[2]) + if (!hasOwnProperty(visibleKeys, key)) { + name = '[' + key + ']'; + } + if (!str) { + if (ctx.seen.indexOf(desc.value) < 0) { + if (isNull(recurseTimes)) { + str = formatValue(ctx, desc.value, null); + } else { + str = formatValue(ctx, desc.value, recurseTimes - 1); + } + if (str.indexOf('\n') > -1) { + if (array) { + str = str.split('\n').map(function(line) { + return ' ' + line; + }).join('\n').substr(2); + } else { + str = '\n' + str.split('\n').map(function(line) { + return ' ' + line; + }).join('\n'); + } + } + } else { + str = ctx.stylize('[Circular]', 'special'); + } + } + if (isUndefined(name)) { + if (array && key.match(/^\d+$/)) { + return str; + } + name = JSON.stringify('' + key); + if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { + name = name.substr(1, name.length - 2); + name = ctx.stylize(name, 'name'); + } else { + name = name.replace(/'/g, "\\'") + .replace(/\\"/g, '"') + .replace(/(^"|"$)/g, "'"); + name = ctx.stylize(name, 'string'); } } - return modified + return name + ': ' + str; } -},{"./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(_dereq_,module,exports){ -'use strict' -module.exports = solveIntersection +function reduceToSingleString(output, base, braces) { + var numLinesEst = 0; + var length = output.reduce(function(prev, cur) { + numLinesEst++; + if (cur.indexOf('\n') >= 0) numLinesEst++; + return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1; + }, 0); -var ratMul = _dereq_('big-rat/mul') -var ratDiv = _dereq_('big-rat/div') -var ratSub = _dereq_('big-rat/sub') -var ratSign = _dereq_('big-rat/sign') -var rvSub = _dereq_('rat-vec/sub') -var rvAdd = _dereq_('rat-vec/add') -var rvMuls = _dereq_('rat-vec/muls') + if (length > 60) { + return braces[0] + + (base === '' ? '' : base + '\n ') + + ' ' + + output.join(',\n ') + + ' ' + + braces[1]; + } -function ratPerp (a, b) { - return ratSub(ratMul(a[0], b[1]), ratMul(a[1], b[0])) + return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; } -// Solve for intersection -// x = a + t (b-a) -// (x - c) ^ (d-c) = 0 -// (t * (b-a) + (a-c) ) ^ (d-c) = 0 -// t * (b-a)^(d-c) = (d-c)^(a-c) -// t = (d-c)^(a-c) / (b-a)^(d-c) -function solveIntersection (a, b, c, d) { - var ba = rvSub(b, a) - var dc = rvSub(d, c) +// NOTE: These type checking functions intentionally don't use `instanceof` +// because it is fragile and can be easily faked with `Object.create()`. +function isArray(ar) { + return Array.isArray(ar); +} +exports.isArray = isArray; - var baXdc = ratPerp(ba, dc) +function isBoolean(arg) { + return typeof arg === 'boolean'; +} +exports.isBoolean = isBoolean; - if (ratSign(baXdc) === 0) { - return null - } +function isNull(arg) { + return arg === null; +} +exports.isNull = isNull; - var ac = rvSub(a, c) - var dcXac = ratPerp(dc, ac) +function isNullOrUndefined(arg) { + return arg == null; +} +exports.isNullOrUndefined = isNullOrUndefined; - var t = ratDiv(dcXac, baXdc) - var s = rvMuls(ba, t) - var r = rvAdd(a, s) +function isNumber(arg) { + return typeof arg === 'number'; +} +exports.isNumber = isNumber; - return r +function isString(arg) { + return typeof arg === 'string'; } +exports.isString = isString; -},{"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(_dereq_,module,exports){ -/** @module color-id */ - -'use strict' - -var clamp = _dereq_('clamp') - -module.exports = toNumber -module.exports.to = toNumber -module.exports.from = fromNumber - -function toNumber (rgba, normalized) { - if(normalized == null) normalized = true - - var r = rgba[0], g = rgba[1], b = rgba[2], a = rgba[3] - - if (a == null) a = normalized ? 1 : 255 - - if (normalized) { - r *= 255 - g *= 255 - b *= 255 - a *= 255 - } - - r = clamp(r, 0, 255) & 0xFF - g = clamp(g, 0, 255) & 0xFF - b = clamp(b, 0, 255) & 0xFF - a = clamp(a, 0, 255) & 0xFF - - //hi-order shift converts to -1, so we can't use <<24 - var n = (r * 0x01000000) + (g << 16) + (b << 8) + (a) - - return n -} - -function fromNumber (n, normalized) { - n = +n - - var r = n >>> 24 - var g = (n & 0x00ff0000) >>> 16 - var b = (n & 0x0000ff00) >>> 8 - var a = n & 0x000000ff - - if (normalized === false) return [r, g, b, a] - - return [r/255, g/255, b/255, a/255] -} +function isSymbol(arg) { + return typeof arg === 'symbol'; +} +exports.isSymbol = isSymbol; -},{"clamp":120}],124:[function(_dereq_,module,exports){ -'use strict' - -module.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] -}; +function isUndefined(arg) { + return arg === void 0; +} +exports.isUndefined = isUndefined; -},{}],125:[function(_dereq_,module,exports){ -/** @module color-normalize */ - -'use strict' - -var rgba = _dereq_('color-rgba') -var clamp = _dereq_('clamp') -var dtype = _dereq_('dtype') - -module.exports = function normalize (color, type) { - if (type === 'float' || !type) type = 'array' - if (type === 'uint') type = 'uint8' - if (type === 'uint_clamped') type = 'uint8_clamped' - var Ctor = dtype(type) - var output = new Ctor(4) - - var normalize = type !== 'uint8' && type !== 'uint8_clamped' - - // attempt to parse non-array arguments - if (!color.length || typeof color === 'string') { - color = rgba(color) - color[0] /= 255 - color[1] /= 255 - color[2] /= 255 - } - - // 0, 1 are possible contradictory values for Arrays: - // [1,1,1] input gives [1,1,1] output instead of [1/255,1/255,1/255], which may be collision if input is meant to be uint. - // converting [1,1,1] to [1/255,1/255,1/255] in case of float input gives larger mistake since [1,1,1] float is frequent edge value, whereas [0,1,1], [1,1,1] etc. uint inputs are relatively rare - if (isInt(color)) { - output[0] = color[0] - output[1] = color[1] - output[2] = color[2] - output[3] = color[3] != null ? color[3] : 255 - - if (normalize) { - output[0] /= 255 - output[1] /= 255 - output[2] /= 255 - output[3] /= 255 - } - - return output - } - - if (!normalize) { - output[0] = clamp(Math.floor(color[0] * 255), 0, 255) - output[1] = clamp(Math.floor(color[1] * 255), 0, 255) - output[2] = clamp(Math.floor(color[2] * 255), 0, 255) - output[3] = color[3] == null ? 255 : clamp(Math.floor(color[3] * 255), 0, 255) - } else { - output[0] = color[0] - output[1] = color[1] - output[2] = color[2] - output[3] = color[3] != null ? color[3] : 1 - } - - return output -} - -function isInt(color) { - if (color instanceof Uint8Array || color instanceof Uint8ClampedArray) return true - - if (Array.isArray(color) && - (color[0] > 1 || color[0] === 0) && - (color[1] > 1 || color[1] === 0) && - (color[2] > 1 || color[2] === 0) && - (!color[3] || color[3] > 1) - ) return true - - return false -} +function isRegExp(re) { + return isObject(re) && objectToString(re) === '[object RegExp]'; +} +exports.isRegExp = isRegExp; -},{"clamp":120,"color-rgba":127,"dtype":175}],126:[function(_dereq_,module,exports){ -(function (global){(function (){ -/** - * @module color-parse - */ +function isObject(arg) { + return typeof arg === 'object' && arg !== null; +} +exports.isObject = isObject; -'use strict' +function isDate(d) { + return isObject(d) && objectToString(d) === '[object Date]'; +} +exports.isDate = isDate; -var names = _dereq_('color-name') -var isObject = _dereq_('is-plain-obj') -var defined = _dereq_('defined') +function isError(e) { + return isObject(e) && + (objectToString(e) === '[object Error]' || e instanceof Error); +} +exports.isError = isError; -module.exports = parse +function isFunction(arg) { + return typeof arg === 'function'; +} +exports.isFunction = isFunction; -/** - * Base hues - * http://dev.w3.org/csswg/css-color/#typedef-named-hue - */ -//FIXME: use external hue detector -var baseHues = { - red: 0, - orange: 60, - yellow: 120, - green: 180, - blue: 240, - purple: 300 +function isPrimitive(arg) { + return arg === null || + typeof arg === 'boolean' || + typeof arg === 'number' || + typeof arg === 'string' || + typeof arg === 'symbol' || // ES6 symbol + typeof arg === 'undefined'; } +exports.isPrimitive = isPrimitive; -/** - * Parse color from the string passed - * - * @return {Object} A space indicator `space`, an array `values` and `alpha` - */ -function parse (cstr) { - var m, parts = [], alpha = 1, space +exports.isBuffer = _dereq_('./support/isBuffer'); - if (typeof cstr === 'string') { - //keyword - if (names[cstr]) { - parts = names[cstr].slice() - space = 'rgb' - } +function objectToString(o) { + return Object.prototype.toString.call(o); +} - //reserved words - else if (cstr === 'transparent') { - alpha = 0 - space = 'rgb' - parts = [0,0,0] - } - //hex - else if (/^#[A-Fa-f0-9]+$/.test(cstr)) { - var base = cstr.slice(1) - var size = base.length - var isShort = size <= 4 - alpha = 1 +function pad(n) { + return n < 10 ? '0' + n.toString(10) : n.toString(10); +} - if (isShort) { - parts = [ - parseInt(base[0] + base[0], 16), - parseInt(base[1] + base[1], 16), - parseInt(base[2] + base[2], 16) - ] - if (size === 4) { - alpha = parseInt(base[3] + base[3], 16) / 255 - } - } - else { - parts = [ - parseInt(base[0] + base[1], 16), - parseInt(base[2] + base[3], 16), - parseInt(base[4] + base[5], 16) - ] - if (size === 8) { - alpha = parseInt(base[6] + base[7], 16) / 255 - } - } - if (!parts[0]) parts[0] = 0 - if (!parts[1]) parts[1] = 0 - if (!parts[2]) parts[2] = 0 +var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec']; - space = 'rgb' - } +// 26 Feb 16:19:34 +function timestamp() { + var d = new Date(); + var time = [pad(d.getHours()), + pad(d.getMinutes()), + pad(d.getSeconds())].join(':'); + return [d.getDate(), months[d.getMonth()], time].join(' '); +} - //color space - else if (m = /^((?:rgb|hs[lvb]|hwb|cmyk?|xy[zy]|gray|lab|lchu?v?|[ly]uv|lms)a?)\s*\(([^\)]*)\)/.exec(cstr)) { - var name = m[1] - var isRGB = name === 'rgb' - var base = name.replace(/a$/, '') - space = base - var size = base === 'cmyk' ? 4 : base === 'gray' ? 1 : 3 - parts = m[2].trim() - .split(/\s*,\s*/) - .map(function (x, i) { - // - if (/%$/.test(x)) { - //alpha - if (i === size) return parseFloat(x) / 100 - //rgb - if (base === 'rgb') return parseFloat(x) * 255 / 100 - return parseFloat(x) - } - //hue - else if (base[i] === 'h') { - // - if (/deg$/.test(x)) { - return parseFloat(x) - } - // - else if (baseHues[x] !== undefined) { - return baseHues[x] - } - } - return parseFloat(x) - }) - if (name === base) parts.push(1) - alpha = (isRGB) ? 1 : (parts[size] === undefined) ? 1 : parts[size] - parts = parts.slice(0, size) - } +// log is just a thin wrapper to console.log that prepends a timestamp +exports.log = function() { + console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments)); +}; - //named channels case - else if (cstr.length > 10 && /[0-9](?:\s|\/)/.test(cstr)) { - parts = cstr.match(/([0-9]+)/g).map(function (value) { - return parseFloat(value) - }) - space = cstr.match(/([a-z])/ig).join('').toLowerCase() - } - } +/** + * Inherit the prototype methods from one constructor into another. + * + * The Function.prototype.inherits from lang.js rewritten as a standalone + * function (not on Function.prototype). NOTE: If this file is to be loaded + * during bootstrapping this function needs to be rewritten using some native + * functions as prototype setup using normal JavaScript does not work as + * expected during bootstrapping (see mirror.js in r114903). + * + * @param {function} ctor Constructor function which needs to inherit the + * prototype. + * @param {function} superCtor Constructor function to inherit prototype from. + */ +exports.inherits = _dereq_('inherits'); - //numeric case - else if (!isNaN(cstr)) { - space = 'rgb' - parts = [cstr >>> 16, (cstr & 0x00ff00) >>> 8, cstr & 0x0000ff] - } +exports._extend = function(origin, add) { + // Don't do anything if add isn't an object + if (!add || !isObject(add)) return origin; - //object case - detects css cases of rgb and hsl - else if (isObject(cstr)) { - var r = defined(cstr.r, cstr.red, cstr.R, null) + var keys = Object.keys(add); + var i = keys.length; + while (i--) { + origin[keys[i]] = add[keys[i]]; + } + return origin; +}; - if (r !== null) { - space = 'rgb' - parts = [ - r, - defined(cstr.g, cstr.green, cstr.G), - defined(cstr.b, cstr.blue, cstr.B) - ] - } - else { - space = 'hsl' - parts = [ - defined(cstr.h, cstr.hue, cstr.H), - defined(cstr.s, cstr.saturation, cstr.S), - defined(cstr.l, cstr.lightness, cstr.L, cstr.b, cstr.brightness) - ] - } +function hasOwnProperty(obj, prop) { + return Object.prototype.hasOwnProperty.call(obj, prop); +} - alpha = defined(cstr.a, cstr.alpha, cstr.opacity, 1) +}).call(this)}).call(this,_dereq_('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{"./support/isBuffer":78,"_process":522,"inherits":77}],80:[function(_dereq_,module,exports){ +module.exports = function _atob(str) { + return atob(str) +} - if (cstr.opacity != null) alpha /= 100 - } +},{}],81:[function(_dereq_,module,exports){ +'use strict' - //array - else if (Array.isArray(cstr) || global.ArrayBuffer && ArrayBuffer.isView && ArrayBuffer.isView(cstr)) { - parts = [cstr[0], cstr[1], cstr[2]] - space = 'rgb' - alpha = cstr.length === 4 ? cstr[3] : 1 - } +module.exports = barycentric - return { - space: space, - values: parts, - alpha: alpha - } +var solve = _dereq_('robust-linear-solve') + +function reduce(x) { + var r = 0 + for(var i=0; i 0) { + throw new Error('Invalid string. Length must be a multiple of 4') + } - return values -} + // Trim off extra bytes after placeholder bytes are found + // See: https://github.com/beatgammit/base64-js/issues/42 + var validLen = b64.indexOf('=') + if (validLen === -1) validLen = len -},{"clamp":120,"color-parse":126,"color-space/hsl":128}],128:[function(_dereq_,module,exports){ -/** - * @module color-space/hsl - */ -'use strict' + var placeHoldersLen = validLen === len + ? 0 + : 4 - (validLen % 4) -var rgb = _dereq_('./rgb'); + return [validLen, placeHoldersLen] +} -module.exports = { - name: 'hsl', - min: [0,0,0], - max: [360,100,100], - channel: ['hue', 'saturation', 'lightness'], - alias: ['HSL'], +// base64 is 4/3 + up to two characters of the original data +function byteLength (b64) { + var lens = getLens(b64) + var validLen = lens[0] + var placeHoldersLen = lens[1] + return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen +} - rgb: function(hsl) { - var h = hsl[0] / 360, - s = hsl[1] / 100, - l = hsl[2] / 100, - t1, t2, t3, rgb, val; +function _byteLength (b64, validLen, placeHoldersLen) { + return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen +} - if (s === 0) { - val = l * 255; - return [val, val, val]; - } +function toByteArray (b64) { + var tmp + var lens = getLens(b64) + var validLen = lens[0] + var placeHoldersLen = lens[1] - if (l < 0.5) { - t2 = l * (1 + s); - } - else { - t2 = l + s - l * s; - } - t1 = 2 * l - t2; + var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen)) - rgb = [0, 0, 0]; - for (var i = 0; i < 3; i++) { - t3 = h + 1 / 3 * - (i - 1); - if (t3 < 0) { - t3++; - } - else if (t3 > 1) { - t3--; - } + var curByte = 0 - if (6 * t3 < 1) { - val = t1 + (t2 - t1) * 6 * t3; - } - else if (2 * t3 < 1) { - val = t2; - } - else if (3 * t3 < 2) { - val = t1 + (t2 - t1) * (2 / 3 - t3) * 6; - } - else { - val = t1; - } + // if there are placeholders, only get up to the last complete 4 chars + var len = placeHoldersLen > 0 + ? validLen - 4 + : validLen - rgb[i] = val * 255; - } + var i + for (i = 0; i < len; i += 4) { + tmp = + (revLookup[b64.charCodeAt(i)] << 18) | + (revLookup[b64.charCodeAt(i + 1)] << 12) | + (revLookup[b64.charCodeAt(i + 2)] << 6) | + revLookup[b64.charCodeAt(i + 3)] + arr[curByte++] = (tmp >> 16) & 0xFF + arr[curByte++] = (tmp >> 8) & 0xFF + arr[curByte++] = tmp & 0xFF + } - return rgb; - } -}; + if (placeHoldersLen === 2) { + tmp = + (revLookup[b64.charCodeAt(i)] << 2) | + (revLookup[b64.charCodeAt(i + 1)] >> 4) + arr[curByte++] = tmp & 0xFF + } + if (placeHoldersLen === 1) { + tmp = + (revLookup[b64.charCodeAt(i)] << 10) | + (revLookup[b64.charCodeAt(i + 1)] << 4) | + (revLookup[b64.charCodeAt(i + 2)] >> 2) + arr[curByte++] = (tmp >> 8) & 0xFF + arr[curByte++] = tmp & 0xFF + } -//extend rgb -rgb.hsl = function(rgb) { - var r = rgb[0]/255, - g = rgb[1]/255, - b = rgb[2]/255, - min = Math.min(r, g, b), - max = Math.max(r, g, b), - delta = max - min, - h, s, l; + return arr +} - if (max === min) { - h = 0; - } - else if (r === max) { - h = (g - b) / delta; - } - else if (g === max) { - h = 2 + (b - r) / delta; - } - else if (b === max) { - h = 4 + (r - g)/ delta; - } +function tripletToBase64 (num) { + return lookup[num >> 18 & 0x3F] + + lookup[num >> 12 & 0x3F] + + lookup[num >> 6 & 0x3F] + + lookup[num & 0x3F] +} - h = Math.min(h * 60, 360); +function encodeChunk (uint8, start, end) { + var tmp + var output = [] + for (var i = start; i < end; i += 3) { + tmp = + ((uint8[i] << 16) & 0xFF0000) + + ((uint8[i + 1] << 8) & 0xFF00) + + (uint8[i + 2] & 0xFF) + output.push(tripletToBase64(tmp)) + } + return output.join('') +} - if (h < 0) { - h += 360; - } +function fromByteArray (uint8) { + var tmp + var len = uint8.length + var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes + var parts = [] + var maxChunkLength = 16383 // must be multiple of 3 - l = (min + max) / 2; + // go through the array every three bytes, we'll deal with trailing stuff later + for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { + parts.push(encodeChunk( + uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength) + )) + } - if (max === min) { - s = 0; - } - else if (l <= 0.5) { - s = delta / (max + min); - } - else { - s = delta / (2 - max - min); - } + // pad the end with zeros, but make sure to not forget the extra bytes + if (extraBytes === 1) { + tmp = uint8[len - 1] + parts.push( + lookup[tmp >> 2] + + lookup[(tmp << 4) & 0x3F] + + '==' + ) + } else if (extraBytes === 2) { + tmp = (uint8[len - 2] << 8) + uint8[len - 1] + parts.push( + lookup[tmp >> 10] + + lookup[(tmp >> 4) & 0x3F] + + lookup[(tmp << 2) & 0x3F] + + '=' + ) + } - return [h, s * 100, l * 100]; -}; + return parts.join('') +} -},{"./rgb":129}],129:[function(_dereq_,module,exports){ -/** - * RGB space. - * - * @module color-space/rgb - */ +},{}],83:[function(_dereq_,module,exports){ 'use strict' -module.exports = { - name: 'rgb', - min: [0,0,0], - max: [255,255,255], - channel: ['red', 'green', 'blue'], - alias: ['RGB'] -}; +var rationalize = _dereq_('./lib/rationalize') -},{}],130:[function(_dereq_,module,exports){ -module.exports={ - "jet":[{"index":0,"rgb":[0,0,131]},{"index":0.125,"rgb":[0,60,170]},{"index":0.375,"rgb":[5,255,255]},{"index":0.625,"rgb":[255,255,0]},{"index":0.875,"rgb":[250,0,0]},{"index":1,"rgb":[128,0,0]}], +module.exports = add - "hsv":[{"index":0,"rgb":[255,0,0]},{"index":0.169,"rgb":[253,255,2]},{"index":0.173,"rgb":[247,255,2]},{"index":0.337,"rgb":[0,252,4]},{"index":0.341,"rgb":[0,252,10]},{"index":0.506,"rgb":[1,249,255]},{"index":0.671,"rgb":[2,0,253]},{"index":0.675,"rgb":[8,0,253]},{"index":0.839,"rgb":[255,0,251]},{"index":0.843,"rgb":[255,0,245]},{"index":1,"rgb":[255,0,6]}], +function add(a, b) { + return rationalize( + a[0].mul(b[1]).add(b[0].mul(a[1])), + a[1].mul(b[1])) +} - "hot":[{"index":0,"rgb":[0,0,0]},{"index":0.3,"rgb":[230,0,0]},{"index":0.6,"rgb":[255,210,0]},{"index":1,"rgb":[255,255,255]}], +},{"./lib/rationalize":93}],84:[function(_dereq_,module,exports){ +'use strict' - "cool":[{"index":0,"rgb":[0,255,255]},{"index":1,"rgb":[255,0,255]}], +module.exports = cmp - "spring":[{"index":0,"rgb":[255,0,255]},{"index":1,"rgb":[255,255,0]}], +function cmp(a, b) { + return a[0].mul(b[1]).cmp(b[0].mul(a[1])) +} - "summer":[{"index":0,"rgb":[0,128,102]},{"index":1,"rgb":[255,255,102]}], +},{}],85:[function(_dereq_,module,exports){ +'use strict' - "autumn":[{"index":0,"rgb":[255,0,0]},{"index":1,"rgb":[255,255,0]}], +var rationalize = _dereq_('./lib/rationalize') - "winter":[{"index":0,"rgb":[0,0,255]},{"index":1,"rgb":[0,255,128]}], +module.exports = div - "bone":[{"index":0,"rgb":[0,0,0]},{"index":0.376,"rgb":[84,84,116]},{"index":0.753,"rgb":[169,200,200]},{"index":1,"rgb":[255,255,255]}], +function div(a, b) { + return rationalize(a[0].mul(b[1]), a[1].mul(b[0])) +} - "copper":[{"index":0,"rgb":[0,0,0]},{"index":0.804,"rgb":[255,160,102]},{"index":1,"rgb":[255,199,127]}], +},{"./lib/rationalize":93}],86:[function(_dereq_,module,exports){ +'use strict' - "greys":[{"index":0,"rgb":[0,0,0]},{"index":1,"rgb":[255,255,255]}], +var isRat = _dereq_('./is-rat') +var isBN = _dereq_('./lib/is-bn') +var num2bn = _dereq_('./lib/num-to-bn') +var str2bn = _dereq_('./lib/str-to-bn') +var rationalize = _dereq_('./lib/rationalize') +var div = _dereq_('./div') - "yignbu":[{"index":0,"rgb":[8,29,88]},{"index":0.125,"rgb":[37,52,148]},{"index":0.25,"rgb":[34,94,168]},{"index":0.375,"rgb":[29,145,192]},{"index":0.5,"rgb":[65,182,196]},{"index":0.625,"rgb":[127,205,187]},{"index":0.75,"rgb":[199,233,180]},{"index":0.875,"rgb":[237,248,217]},{"index":1,"rgb":[255,255,217]}], +module.exports = makeRational - "greens":[{"index":0,"rgb":[0,68,27]},{"index":0.125,"rgb":[0,109,44]},{"index":0.25,"rgb":[35,139,69]},{"index":0.375,"rgb":[65,171,93]},{"index":0.5,"rgb":[116,196,118]},{"index":0.625,"rgb":[161,217,155]},{"index":0.75,"rgb":[199,233,192]},{"index":0.875,"rgb":[229,245,224]},{"index":1,"rgb":[247,252,245]}], +function makeRational(numer, denom) { + if(isRat(numer)) { + if(denom) { + return div(numer, makeRational(denom)) + } + return [numer[0].clone(), numer[1].clone()] + } + var shift = 0 + var a, b + if(isBN(numer)) { + a = numer.clone() + } else if(typeof numer === 'string') { + a = str2bn(numer) + } else if(numer === 0) { + return [num2bn(0), num2bn(1)] + } else if(numer === Math.floor(numer)) { + a = num2bn(numer) + } else { + while(numer !== Math.floor(numer)) { + numer = numer * Math.pow(2, 256) + shift -= 256 + } + a = num2bn(numer) + } + if(isRat(denom)) { + a.mul(denom[1]) + b = denom[0].clone() + } else if(isBN(denom)) { + b = denom.clone() + } else if(typeof denom === 'string') { + b = str2bn(denom) + } else if(!denom) { + b = num2bn(1) + } else if(denom === Math.floor(denom)) { + b = num2bn(denom) + } else { + while(denom !== Math.floor(denom)) { + denom = denom * Math.pow(2, 256) + shift += 256 + } + b = num2bn(denom) + } + if(shift > 0) { + a = a.ushln(shift) + } else if(shift < 0) { + b = b.ushln(-shift) + } + return rationalize(a, b) +} - "yiorrd":[{"index":0,"rgb":[128,0,38]},{"index":0.125,"rgb":[189,0,38]},{"index":0.25,"rgb":[227,26,28]},{"index":0.375,"rgb":[252,78,42]},{"index":0.5,"rgb":[253,141,60]},{"index":0.625,"rgb":[254,178,76]},{"index":0.75,"rgb":[254,217,118]},{"index":0.875,"rgb":[255,237,160]},{"index":1,"rgb":[255,255,204]}], +},{"./div":85,"./is-rat":87,"./lib/is-bn":91,"./lib/num-to-bn":92,"./lib/rationalize":93,"./lib/str-to-bn":94}],87:[function(_dereq_,module,exports){ +'use strict' - "bluered":[{"index":0,"rgb":[0,0,255]},{"index":1,"rgb":[255,0,0]}], +var isBN = _dereq_('./lib/is-bn') - "rdbu":[{"index":0,"rgb":[5,10,172]},{"index":0.35,"rgb":[106,137,247]},{"index":0.5,"rgb":[190,190,190]},{"index":0.6,"rgb":[220,170,132]},{"index":0.7,"rgb":[230,145,90]},{"index":1,"rgb":[178,10,28]}], +module.exports = isRat - "picnic":[{"index":0,"rgb":[0,0,255]},{"index":0.1,"rgb":[51,153,255]},{"index":0.2,"rgb":[102,204,255]},{"index":0.3,"rgb":[153,204,255]},{"index":0.4,"rgb":[204,204,255]},{"index":0.5,"rgb":[255,255,255]},{"index":0.6,"rgb":[255,204,255]},{"index":0.7,"rgb":[255,153,255]},{"index":0.8,"rgb":[255,102,204]},{"index":0.9,"rgb":[255,102,102]},{"index":1,"rgb":[255,0,0]}], +function isRat(x) { + return Array.isArray(x) && x.length === 2 && isBN(x[0]) && isBN(x[1]) +} - "rainbow":[{"index":0,"rgb":[150,0,90]},{"index":0.125,"rgb":[0,0,200]},{"index":0.25,"rgb":[0,25,255]},{"index":0.375,"rgb":[0,152,255]},{"index":0.5,"rgb":[44,255,150]},{"index":0.625,"rgb":[151,255,0]},{"index":0.75,"rgb":[255,234,0]},{"index":0.875,"rgb":[255,111,0]},{"index":1,"rgb":[255,0,0]}], +},{"./lib/is-bn":91}],88:[function(_dereq_,module,exports){ +'use strict' - "portland":[{"index":0,"rgb":[12,51,131]},{"index":0.25,"rgb":[10,136,186]},{"index":0.5,"rgb":[242,211,56]},{"index":0.75,"rgb":[242,143,56]},{"index":1,"rgb":[217,30,30]}], +var BN = _dereq_('bn.js') - "blackbody":[{"index":0,"rgb":[0,0,0]},{"index":0.2,"rgb":[230,0,0]},{"index":0.4,"rgb":[230,210,0]},{"index":0.7,"rgb":[255,255,255]},{"index":1,"rgb":[160,200,255]}], +module.exports = sign - "earth":[{"index":0,"rgb":[0,0,130]},{"index":0.1,"rgb":[0,180,180]},{"index":0.2,"rgb":[40,210,40]},{"index":0.4,"rgb":[230,230,50]},{"index":0.6,"rgb":[120,70,20]},{"index":1,"rgb":[255,255,255]}], +function sign (x) { + return x.cmp(new BN(0)) +} - "electric":[{"index":0,"rgb":[0,0,0]},{"index":0.15,"rgb":[30,0,100]},{"index":0.4,"rgb":[120,0,100]},{"index":0.6,"rgb":[160,90,0]},{"index":0.8,"rgb":[230,200,0]},{"index":1,"rgb":[255,250,220]}], +},{"bn.js":102}],89:[function(_dereq_,module,exports){ +'use strict' - "alpha": [{"index":0, "rgb": [255,255,255,0]},{"index":1, "rgb": [255,255,255,1]}], +var sign = _dereq_('./bn-sign') - "viridis": [{"index":0,"rgb":[68,1,84]},{"index":0.13,"rgb":[71,44,122]},{"index":0.25,"rgb":[59,81,139]},{"index":0.38,"rgb":[44,113,142]},{"index":0.5,"rgb":[33,144,141]},{"index":0.63,"rgb":[39,173,129]},{"index":0.75,"rgb":[92,200,99]},{"index":0.88,"rgb":[170,220,50]},{"index":1,"rgb":[253,231,37]}], +module.exports = bn2num - "inferno": [{"index":0,"rgb":[0,0,4]},{"index":0.13,"rgb":[31,12,72]},{"index":0.25,"rgb":[85,15,109]},{"index":0.38,"rgb":[136,34,106]},{"index":0.5,"rgb":[186,54,85]},{"index":0.63,"rgb":[227,89,51]},{"index":0.75,"rgb":[249,140,10]},{"index":0.88,"rgb":[249,201,50]},{"index":1,"rgb":[252,255,164]}], +//TODO: Make this better +function bn2num(b) { + var l = b.length + var words = b.words + var out = 0 + if (l === 1) { + out = words[0] + } else if (l === 2) { + out = words[0] + (words[1] * 0x4000000) + } else { + for (var i = 0; i < l; i++) { + var w = words[i] + out += w * Math.pow(0x4000000, i) + } + } + return sign(b) * out +} - "magma": [{"index":0,"rgb":[0,0,4]},{"index":0.13,"rgb":[28,16,68]},{"index":0.25,"rgb":[79,18,123]},{"index":0.38,"rgb":[129,37,129]},{"index":0.5,"rgb":[181,54,122]},{"index":0.63,"rgb":[229,80,100]},{"index":0.75,"rgb":[251,135,97]},{"index":0.88,"rgb":[254,194,135]},{"index":1,"rgb":[252,253,191]}], +},{"./bn-sign":88}],90:[function(_dereq_,module,exports){ +'use strict' - "plasma": [{"index":0,"rgb":[13,8,135]},{"index":0.13,"rgb":[75,3,161]},{"index":0.25,"rgb":[125,3,168]},{"index":0.38,"rgb":[168,34,150]},{"index":0.5,"rgb":[203,70,121]},{"index":0.63,"rgb":[229,107,93]},{"index":0.75,"rgb":[248,148,65]},{"index":0.88,"rgb":[253,195,40]},{"index":1,"rgb":[240,249,33]}], +var db = _dereq_('double-bits') +var ctz = _dereq_('bit-twiddle').countTrailingZeros - "warm": [{"index":0,"rgb":[125,0,179]},{"index":0.13,"rgb":[172,0,187]},{"index":0.25,"rgb":[219,0,170]},{"index":0.38,"rgb":[255,0,130]},{"index":0.5,"rgb":[255,63,74]},{"index":0.63,"rgb":[255,123,0]},{"index":0.75,"rgb":[234,176,0]},{"index":0.88,"rgb":[190,228,0]},{"index":1,"rgb":[147,255,0]}], +module.exports = ctzNumber - "cool": [{"index":0,"rgb":[125,0,179]},{"index":0.13,"rgb":[116,0,218]},{"index":0.25,"rgb":[98,74,237]},{"index":0.38,"rgb":[68,146,231]},{"index":0.5,"rgb":[0,204,197]},{"index":0.63,"rgb":[0,247,146]},{"index":0.75,"rgb":[0,255,88]},{"index":0.88,"rgb":[40,255,8]},{"index":1,"rgb":[147,255,0]}], +//Counts the number of trailing zeros +function ctzNumber(x) { + var l = ctz(db.lo(x)) + if(l < 32) { + return l + } + var h = ctz(db.hi(x)) + if(h > 20) { + return 52 + } + return h + 32 +} - "rainbow-soft": [{"index":0,"rgb":[125,0,179]},{"index":0.1,"rgb":[199,0,180]},{"index":0.2,"rgb":[255,0,121]},{"index":0.3,"rgb":[255,108,0]},{"index":0.4,"rgb":[222,194,0]},{"index":0.5,"rgb":[150,255,0]},{"index":0.6,"rgb":[0,255,55]},{"index":0.7,"rgb":[0,246,150]},{"index":0.8,"rgb":[50,167,222]},{"index":0.9,"rgb":[103,51,235]},{"index":1,"rgb":[124,0,186]}], +},{"bit-twiddle":100,"double-bits":174}],91:[function(_dereq_,module,exports){ +'use strict' - "bathymetry": [{"index":0,"rgb":[40,26,44]},{"index":0.13,"rgb":[59,49,90]},{"index":0.25,"rgb":[64,76,139]},{"index":0.38,"rgb":[63,110,151]},{"index":0.5,"rgb":[72,142,158]},{"index":0.63,"rgb":[85,174,163]},{"index":0.75,"rgb":[120,206,163]},{"index":0.88,"rgb":[187,230,172]},{"index":1,"rgb":[253,254,204]}], +var BN = _dereq_('bn.js') - "cdom": [{"index":0,"rgb":[47,15,62]},{"index":0.13,"rgb":[87,23,86]},{"index":0.25,"rgb":[130,28,99]},{"index":0.38,"rgb":[171,41,96]},{"index":0.5,"rgb":[206,67,86]},{"index":0.63,"rgb":[230,106,84]},{"index":0.75,"rgb":[242,149,103]},{"index":0.88,"rgb":[249,193,135]},{"index":1,"rgb":[254,237,176]}], +module.exports = isBN - "chlorophyll": [{"index":0,"rgb":[18,36,20]},{"index":0.13,"rgb":[25,63,41]},{"index":0.25,"rgb":[24,91,59]},{"index":0.38,"rgb":[13,119,72]},{"index":0.5,"rgb":[18,148,80]},{"index":0.63,"rgb":[80,173,89]},{"index":0.75,"rgb":[132,196,122]},{"index":0.88,"rgb":[175,221,162]},{"index":1,"rgb":[215,249,208]}], +//Test if x is a bignumber +//FIXME: obviously this is the wrong way to do it +function isBN(x) { + return x && typeof x === 'object' && Boolean(x.words) +} - "density": [{"index":0,"rgb":[54,14,36]},{"index":0.13,"rgb":[89,23,80]},{"index":0.25,"rgb":[110,45,132]},{"index":0.38,"rgb":[120,77,178]},{"index":0.5,"rgb":[120,113,213]},{"index":0.63,"rgb":[115,151,228]},{"index":0.75,"rgb":[134,185,227]},{"index":0.88,"rgb":[177,214,227]},{"index":1,"rgb":[230,241,241]}], +},{"bn.js":102}],92:[function(_dereq_,module,exports){ +'use strict' - "freesurface-blue": [{"index":0,"rgb":[30,4,110]},{"index":0.13,"rgb":[47,14,176]},{"index":0.25,"rgb":[41,45,236]},{"index":0.38,"rgb":[25,99,212]},{"index":0.5,"rgb":[68,131,200]},{"index":0.63,"rgb":[114,156,197]},{"index":0.75,"rgb":[157,181,203]},{"index":0.88,"rgb":[200,208,216]},{"index":1,"rgb":[241,237,236]}], +var BN = _dereq_('bn.js') +var db = _dereq_('double-bits') - "freesurface-red": [{"index":0,"rgb":[60,9,18]},{"index":0.13,"rgb":[100,17,27]},{"index":0.25,"rgb":[142,20,29]},{"index":0.38,"rgb":[177,43,27]},{"index":0.5,"rgb":[192,87,63]},{"index":0.63,"rgb":[205,125,105]},{"index":0.75,"rgb":[216,162,148]},{"index":0.88,"rgb":[227,199,193]},{"index":1,"rgb":[241,237,236]}], +module.exports = num2bn - "oxygen": [{"index":0,"rgb":[64,5,5]},{"index":0.13,"rgb":[106,6,15]},{"index":0.25,"rgb":[144,26,7]},{"index":0.38,"rgb":[168,64,3]},{"index":0.5,"rgb":[188,100,4]},{"index":0.63,"rgb":[206,136,11]},{"index":0.75,"rgb":[220,174,25]},{"index":0.88,"rgb":[231,215,44]},{"index":1,"rgb":[248,254,105]}], +function num2bn(x) { + var e = db.exponent(x) + if(e < 52) { + return new BN(x) + } else { + return (new BN(x * Math.pow(2, 52-e))).ushln(e-52) + } +} - "par": [{"index":0,"rgb":[51,20,24]},{"index":0.13,"rgb":[90,32,35]},{"index":0.25,"rgb":[129,44,34]},{"index":0.38,"rgb":[159,68,25]},{"index":0.5,"rgb":[182,99,19]},{"index":0.63,"rgb":[199,134,22]},{"index":0.75,"rgb":[212,171,35]},{"index":0.88,"rgb":[221,210,54]},{"index":1,"rgb":[225,253,75]}], +},{"bn.js":102,"double-bits":174}],93:[function(_dereq_,module,exports){ +'use strict' - "phase": [{"index":0,"rgb":[145,105,18]},{"index":0.13,"rgb":[184,71,38]},{"index":0.25,"rgb":[186,58,115]},{"index":0.38,"rgb":[160,71,185]},{"index":0.5,"rgb":[110,97,218]},{"index":0.63,"rgb":[50,123,164]},{"index":0.75,"rgb":[31,131,110]},{"index":0.88,"rgb":[77,129,34]},{"index":1,"rgb":[145,105,18]}], +var num2bn = _dereq_('./num-to-bn') +var sign = _dereq_('./bn-sign') - "salinity": [{"index":0,"rgb":[42,24,108]},{"index":0.13,"rgb":[33,50,162]},{"index":0.25,"rgb":[15,90,145]},{"index":0.38,"rgb":[40,118,137]},{"index":0.5,"rgb":[59,146,135]},{"index":0.63,"rgb":[79,175,126]},{"index":0.75,"rgb":[120,203,104]},{"index":0.88,"rgb":[193,221,100]},{"index":1,"rgb":[253,239,154]}], +module.exports = rationalize - "temperature": [{"index":0,"rgb":[4,35,51]},{"index":0.13,"rgb":[23,51,122]},{"index":0.25,"rgb":[85,59,157]},{"index":0.38,"rgb":[129,79,143]},{"index":0.5,"rgb":[175,95,130]},{"index":0.63,"rgb":[222,112,101]},{"index":0.75,"rgb":[249,146,66]},{"index":0.88,"rgb":[249,196,65]},{"index":1,"rgb":[232,250,91]}], +function rationalize(numer, denom) { + var snumer = sign(numer) + var sdenom = sign(denom) + if(snumer === 0) { + return [num2bn(0), num2bn(1)] + } + if(sdenom === 0) { + return [num2bn(0), num2bn(0)] + } + if(sdenom < 0) { + numer = numer.neg() + denom = denom.neg() + } + var d = numer.gcd(denom) + if(d.cmpn(1)) { + return [ numer.div(d), denom.div(d) ] + } + return [ numer, denom ] +} - "turbidity": [{"index":0,"rgb":[34,31,27]},{"index":0.13,"rgb":[65,50,41]},{"index":0.25,"rgb":[98,69,52]},{"index":0.38,"rgb":[131,89,57]},{"index":0.5,"rgb":[161,112,59]},{"index":0.63,"rgb":[185,140,66]},{"index":0.75,"rgb":[202,174,88]},{"index":0.88,"rgb":[216,209,126]},{"index":1,"rgb":[233,246,171]}], +},{"./bn-sign":88,"./num-to-bn":92}],94:[function(_dereq_,module,exports){ +'use strict' - "velocity-blue": [{"index":0,"rgb":[17,32,64]},{"index":0.13,"rgb":[35,52,116]},{"index":0.25,"rgb":[29,81,156]},{"index":0.38,"rgb":[31,113,162]},{"index":0.5,"rgb":[50,144,169]},{"index":0.63,"rgb":[87,173,176]},{"index":0.75,"rgb":[149,196,189]},{"index":0.88,"rgb":[203,221,211]},{"index":1,"rgb":[254,251,230]}], +var BN = _dereq_('bn.js') - "velocity-green": [{"index":0,"rgb":[23,35,19]},{"index":0.13,"rgb":[24,64,38]},{"index":0.25,"rgb":[11,95,45]},{"index":0.38,"rgb":[39,123,35]},{"index":0.5,"rgb":[95,146,12]},{"index":0.63,"rgb":[152,165,18]},{"index":0.75,"rgb":[201,186,69]},{"index":0.88,"rgb":[233,216,137]},{"index":1,"rgb":[255,253,205]}], +module.exports = str2BN - "cubehelix": [{"index":0,"rgb":[0,0,0]},{"index":0.07,"rgb":[22,5,59]},{"index":0.13,"rgb":[60,4,105]},{"index":0.2,"rgb":[109,1,135]},{"index":0.27,"rgb":[161,0,147]},{"index":0.33,"rgb":[210,2,142]},{"index":0.4,"rgb":[251,11,123]},{"index":0.47,"rgb":[255,29,97]},{"index":0.53,"rgb":[255,54,69]},{"index":0.6,"rgb":[255,85,46]},{"index":0.67,"rgb":[255,120,34]},{"index":0.73,"rgb":[255,157,37]},{"index":0.8,"rgb":[241,191,57]},{"index":0.87,"rgb":[224,220,93]},{"index":0.93,"rgb":[218,241,142]},{"index":1,"rgb":[227,253,198]}] -}; +function str2BN(x) { + return new BN(x) +} -},{}],131:[function(_dereq_,module,exports){ -/* - * Ben Postlethwaite - * January 2013 - * License MIT - */ -'use strict'; +},{"bn.js":102}],95:[function(_dereq_,module,exports){ +'use strict' -var colorScale = _dereq_('./colorScale'); -var lerp = _dereq_('lerp') +var rationalize = _dereq_('./lib/rationalize') -module.exports = createColormap; - -function createColormap (spec) { - /* - * Default Options - */ - var indicies, fromrgba, torgba, - nsteps, cmap, colormap, format, - nshades, colors, alpha, i; - - if ( !spec ) spec = {}; +module.exports = mul - nshades = (spec.nshades || 72) - 1; - format = spec.format || 'hex'; +function mul(a, b) { + return rationalize(a[0].mul(b[0]), a[1].mul(b[1])) +} - colormap = spec.colormap; - if (!colormap) colormap = 'jet'; +},{"./lib/rationalize":93}],96:[function(_dereq_,module,exports){ +'use strict' - if (typeof colormap === 'string') { - colormap = colormap.toLowerCase(); +var bnsign = _dereq_('./lib/bn-sign') - if (!colorScale[colormap]) { - throw Error(colormap + ' not a supported colorscale'); - } +module.exports = sign - cmap = colorScale[colormap]; +function sign(x) { + return bnsign(x[0]) * bnsign(x[1]) +} - } else if (Array.isArray(colormap)) { - cmap = colormap.slice(); +},{"./lib/bn-sign":88}],97:[function(_dereq_,module,exports){ +'use strict' - } else { - throw Error('unsupported colormap option', colormap); - } +var rationalize = _dereq_('./lib/rationalize') - if (cmap.length > nshades + 1) { - throw new Error( - colormap+' map requires nshades to be at least size '+cmap.length - ); - } +module.exports = sub - if (!Array.isArray(spec.alpha)) { +function sub(a, b) { + return rationalize(a[0].mul(b[1]).sub(a[1].mul(b[0])), a[1].mul(b[1])) +} - if (typeof spec.alpha === 'number') { - alpha = [spec.alpha, spec.alpha]; +},{"./lib/rationalize":93}],98:[function(_dereq_,module,exports){ +'use strict' - } else { - alpha = [1, 1]; - } +var bn2num = _dereq_('./lib/bn-to-num') +var ctz = _dereq_('./lib/ctz') - } else if (spec.alpha.length !== 2) { - alpha = [1, 1]; +module.exports = roundRat - } else { - alpha = spec.alpha.slice(); +// Round a rational to the closest float +function roundRat (f) { + var a = f[0] + var b = f[1] + if (a.cmpn(0) === 0) { + return 0 + } + var h = a.abs().divmod(b.abs()) + var iv = h.div + var x = bn2num(iv) + var ir = h.mod + var sgn = (a.negative !== b.negative) ? -1 : 1 + if (ir.cmpn(0) === 0) { + return sgn * x + } + if (x) { + var s = ctz(x) + 4 + var y = bn2num(ir.ushln(s).divRound(b)) + return sgn * (x + y * Math.pow(2, -s)) + } else { + var ybits = b.bitLength() - ir.bitLength() + 53 + var y = bn2num(ir.ushln(ybits).divRound(b)) + if (ybits < 1023) { + return sgn * y * Math.pow(2, -ybits) } + y *= Math.pow(2, -1023) + return sgn * y * Math.pow(2, 1023 - ybits) + } +} - // map index points from 0..1 to 0..n-1 - indicies = cmap.map(function(c) { - return Math.round(c.index * nshades); - }); - - // Add alpha channel to the map - alpha[0] = Math.min(Math.max(alpha[0], 0), 1); - alpha[1] = Math.min(Math.max(alpha[1], 0), 1); - - var steps = cmap.map(function(c, i) { - var index = cmap[i].index - - var rgba = cmap[i].rgb.slice(); - - // if user supplies their own map use it - if (rgba.length === 4 && rgba[3] >= 0 && rgba[3] <= 1) { - return rgba - } - rgba[3] = alpha[0] + (alpha[1] - alpha[0])*index; - - return rgba - }) - +},{"./lib/bn-to-num":89,"./lib/ctz":90}],99:[function(_dereq_,module,exports){ +"use strict" - /* - * map increasing linear values between indicies to - * linear steps in colorvalues - */ - var colors = [] - for (i = 0; i < indicies.length-1; ++i) { - nsteps = indicies[i+1] - indicies[i]; - fromrgba = steps[i]; - torgba = steps[i+1]; +// (a, y, c, l, h) = (array, y[, cmp, lo, hi]) - for (var j = 0; j < nsteps; j++) { - var amt = j / nsteps - colors.push([ - Math.round(lerp(fromrgba[0], torgba[0], amt)), - Math.round(lerp(fromrgba[1], torgba[1], amt)), - Math.round(lerp(fromrgba[2], torgba[2], amt)), - lerp(fromrgba[3], torgba[3], amt) - ]) - } - } +function ge(a, y, c, l, h) { + var i = h + 1; + while (l <= h) { + var m = (l + h) >>> 1, x = a[m]; + var p = (c !== undefined) ? c(x, y) : (x - y); + if (p >= 0) { i = m; h = m - 1 } else { l = m + 1 } + } + return i; +}; - //add 1 step as last value - colors.push(cmap[cmap.length - 1].rgb.concat(alpha[1])) +function gt(a, y, c, l, h) { + var i = h + 1; + while (l <= h) { + var m = (l + h) >>> 1, x = a[m]; + var p = (c !== undefined) ? c(x, y) : (x - y); + if (p > 0) { i = m; h = m - 1 } else { l = m + 1 } + } + return i; +}; - if (format === 'hex') colors = colors.map( rgb2hex ); - else if (format === 'rgbaString') colors = colors.map( rgbaStr ); - else if (format === 'float') colors = colors.map( rgb2float ); +function lt(a, y, c, l, h) { + var i = l - 1; + while (l <= h) { + var m = (l + h) >>> 1, x = a[m]; + var p = (c !== undefined) ? c(x, y) : (x - y); + if (p < 0) { i = m; l = m + 1 } else { h = m - 1 } + } + return i; +}; - return colors; +function le(a, y, c, l, h) { + var i = l - 1; + while (l <= h) { + var m = (l + h) >>> 1, x = a[m]; + var p = (c !== undefined) ? c(x, y) : (x - y); + if (p <= 0) { i = m; l = m + 1 } else { h = m - 1 } + } + return i; }; -function rgb2float (rgba) { - return [ - rgba[0] / 255, - rgba[1] / 255, - rgba[2] / 255, - rgba[3] - ] -} +function eq(a, y, c, l, h) { + while (l <= h) { + var m = (l + h) >>> 1, x = a[m]; + var p = (c !== undefined) ? c(x, y) : (x - y); + if (p === 0) { return m } + if (p <= 0) { l = m + 1 } else { h = m - 1 } + } + return -1; +}; -function rgb2hex (rgba) { - var dig, hex = '#'; - for (var i = 0; i < 3; ++i) { - dig = rgba[i]; - dig = dig.toString(16); - hex += ('00' + dig).substr( dig.length ); - } - return hex; +function norm(a, y, c, l, h, f) { + if (typeof c === 'function') { + return f(a, y, c, (l === undefined) ? 0 : l | 0, (h === undefined) ? a.length - 1 : h | 0); + } + return f(a, y, undefined, (c === undefined) ? 0 : c | 0, (l === undefined) ? a.length - 1 : l | 0); } -function rgbaStr (rgba) { - return 'rgba(' + rgba.join(',') + ')'; +module.exports = { + ge: function(a, y, c, l, h) { return norm(a, y, c, l, h, ge)}, + gt: function(a, y, c, l, h) { return norm(a, y, c, l, h, gt)}, + lt: function(a, y, c, l, h) { return norm(a, y, c, l, h, lt)}, + le: function(a, y, c, l, h) { return norm(a, y, c, l, h, le)}, + eq: function(a, y, c, l, h) { return norm(a, y, c, l, h, eq)} } -},{"./colorScale":130,"lerp":472}],132:[function(_dereq_,module,exports){ -"use strict" - -module.exports = compareAngle +},{}],100:[function(_dereq_,module,exports){ +/** + * Bit twiddling hacks for JavaScript. + * + * Author: Mikola Lysenko + * + * Ported from Stanford bit twiddling hack library: + * http://graphics.stanford.edu/~seander/bithacks.html + */ -var orient = _dereq_("robust-orientation") -var sgn = _dereq_("signum") -var twoSum = _dereq_("two-sum") -var robustProduct = _dereq_("robust-product") -var robustSum = _dereq_("robust-sum") +"use strict"; "use restrict"; -function testInterior(a, b, c) { - var x0 = twoSum(a[0], -b[0]) - var y0 = twoSum(a[1], -b[1]) - var x1 = twoSum(c[0], -b[0]) - var y1 = twoSum(c[1], -b[1]) +//Number of bits in an integer +var INT_BITS = 32; - var d = robustSum( - robustProduct(x0, x1), - robustProduct(y0, y1)) +//Constants +exports.INT_BITS = INT_BITS; +exports.INT_MAX = 0x7fffffff; +exports.INT_MIN = -1<<(INT_BITS-1); - return d[d.length-1] >= 0 +//Returns -1, 0, +1 depending on sign of x +exports.sign = function(v) { + return (v > 0) - (v < 0); } -function compareAngle(a, b, c, d) { - var bcd = orient(b, c, d) - if(bcd === 0) { - //Handle degenerate cases - var sabc = sgn(orient(a, b, c)) - var sabd = sgn(orient(a, b, d)) - if(sabc === sabd) { - if(sabc === 0) { - var ic = testInterior(a, b, c) - var id = testInterior(a, b, d) - if(ic === id) { - return 0 - } else if(ic) { - return 1 - } else { - return -1 - } - } - return 0 - } else if(sabd === 0) { - if(sabc > 0) { - return -1 - } else if(testInterior(a, b, d)) { - return -1 - } else { - return 1 - } - } else if(sabc === 0) { - if(sabd > 0) { - return 1 - } else if(testInterior(a, b, c)) { - return 1 - } else { - return -1 - } - } - return sgn(sabd - sabc) - } - var abc = orient(a, b, c) - if(abc > 0) { - if(bcd > 0 && orient(a, b, d) > 0) { - return 1 - } - return -1 - } else if(abc < 0) { - if(bcd > 0 || orient(a, b, d) > 0) { - return 1 - } - return -1 - } else { - var abd = orient(a, b, d) - if(abd > 0) { - return 1 - } else { - if(testInterior(a, b, c)) { - return 1 - } else { - return -1 - } - } - } +//Computes absolute value of integer +exports.abs = function(v) { + var mask = v >> (INT_BITS-1); + return (v ^ mask) - mask; } -},{"robust-orientation":548,"robust-product":549,"robust-sum":553,"signum":554,"two-sum":583}],133:[function(_dereq_,module,exports){ -module.exports = compareCells - -var min = Math.min -function compareInt(a, b) { - return a - b +//Computes minimum of integers x and y +exports.min = function(x, y) { + return y ^ ((x ^ y) & -(x < y)); } -function compareCells(a, b) { - var n = a.length - , t = a.length - b.length - if(t) { - return t - } - switch(n) { - case 0: - return 0 - case 1: - return a[0] - b[0] - case 2: - return (a[0]+a[1]-b[0]-b[1]) || - min(a[0],a[1]) - min(b[0],b[1]) - case 3: - var l1 = a[0]+a[1] - , m1 = b[0]+b[1] - t = l1+a[2] - (m1+b[2]) - if(t) { - return t - } - var l0 = min(a[0], a[1]) - , m0 = min(b[0], b[1]) - return min(l0, a[2]) - min(m0, b[2]) || - min(l0+a[2], l1) - min(m0+b[2], m1) - case 4: - var aw=a[0], ax=a[1], ay=a[2], az=a[3] - , bw=b[0], bx=b[1], by=b[2], bz=b[3] - return (aw+ax+ay+az)-(bw+bx+by+bz) || - min(aw,ax,ay,az)-min(bw,bx,by,bz,bw) || - min(aw+ax,aw+ay,aw+az,ax+ay,ax+az,ay+az) - - min(bw+bx,bw+by,bw+bz,bx+by,bx+bz,by+bz) || - min(aw+ax+ay,aw+ax+az,aw+ay+az,ax+ay+az) - - min(bw+bx+by,bw+bx+bz,bw+by+bz,bx+by+bz) - default: - var as = a.slice().sort(compareInt) - var bs = b.slice().sort(compareInt) - for(var i=0; i 0xFFFF) << 4; v >>>= r; + shift = (v > 0xFF ) << 3; v >>>= shift; r |= shift; + shift = (v > 0xF ) << 2; v >>>= shift; r |= shift; + shift = (v > 0x3 ) << 1; v >>>= shift; r |= shift; + return r | (v >> 1); +} -module.exports = compareOrientedCells +//Computes log base 10 of v +exports.log10 = function(v) { + return (v >= 1000000000) ? 9 : (v >= 100000000) ? 8 : (v >= 10000000) ? 7 : + (v >= 1000000) ? 6 : (v >= 100000) ? 5 : (v >= 10000) ? 4 : + (v >= 1000) ? 3 : (v >= 100) ? 2 : (v >= 10) ? 1 : 0; +} -function compareOrientedCells(a, b) { - return compareCells(a, b) || parity(a) - parity(b) +//Counts number of bits +exports.popCount = function(v) { + v = v - ((v >>> 1) & 0x55555555); + v = (v & 0x33333333) + ((v >>> 2) & 0x33333333); + return ((v + (v >>> 4) & 0xF0F0F0F) * 0x1010101) >>> 24; } -},{"cell-orientation":117,"compare-cell":133}],135:[function(_dereq_,module,exports){ -"use strict" +//Counts number of trailing zeros +function countTrailingZeros(v) { + var c = 32; + v &= -v; + if (v) c--; + if (v & 0x0000FFFF) c -= 16; + if (v & 0x00FF00FF) c -= 8; + if (v & 0x0F0F0F0F) c -= 4; + if (v & 0x33333333) c -= 2; + if (v & 0x55555555) c -= 1; + return c; +} +exports.countTrailingZeros = countTrailingZeros; -var convexHull1d = _dereq_('./lib/ch1d') -var convexHull2d = _dereq_('./lib/ch2d') -var convexHullnd = _dereq_('./lib/chnd') +//Rounds to next power of 2 +exports.nextPow2 = function(v) { + v += v === 0; + --v; + v |= v >>> 1; + v |= v >>> 2; + v |= v >>> 4; + v |= v >>> 8; + v |= v >>> 16; + return v + 1; +} -module.exports = convexHull +//Rounds down to previous power of 2 +exports.prevPow2 = function(v) { + v |= v >>> 1; + v |= v >>> 2; + v |= v >>> 4; + v |= v >>> 8; + v |= v >>> 16; + return v - (v>>>1); +} -function convexHull(points) { - var n = points.length - if(n === 0) { - return [] - } else if(n === 1) { - return [[0]] - } - var d = points[0].length - if(d === 0) { - return [] - } else if(d === 1) { - return convexHull1d(points) - } else if(d === 2) { - return convexHull2d(points) - } - return convexHullnd(points, d) +//Computes parity of word +exports.parity = function(v) { + v ^= v >>> 16; + v ^= v >>> 8; + v ^= v >>> 4; + v &= 0xf; + return (0x6996 >>> v) & 1; } -},{"./lib/ch1d":136,"./lib/ch2d":137,"./lib/chnd":138}],136:[function(_dereq_,module,exports){ -"use strict" -module.exports = convexHull1d +var REVERSE_TABLE = new Array(256); -function convexHull1d(points) { - var lo = 0 - var hi = 0 - for(var i=1; i points[hi][0]) { - hi = i +(function(tab) { + for(var i=0; i<256; ++i) { + var v = i, r = i, s = 7; + for (v >>>= 1; v; v >>>= 1) { + r <<= 1; + r |= v & 1; + --s; } + tab[i] = (r << s) & 0xff; } - if(lo < hi) { - return [[lo], [hi]] - } else if(lo > hi) { - return [[hi], [lo]] - } else { - return [[lo]] - } +})(REVERSE_TABLE); + +//Reverse bits in a 32 bit word +exports.reverse = function(v) { + return (REVERSE_TABLE[ v & 0xff] << 24) | + (REVERSE_TABLE[(v >>> 8) & 0xff] << 16) | + (REVERSE_TABLE[(v >>> 16) & 0xff] << 8) | + REVERSE_TABLE[(v >>> 24) & 0xff]; } -},{}],137:[function(_dereq_,module,exports){ -'use strict' -module.exports = convexHull2D +//Interleave bits of 2 coordinates with 16 bits. Useful for fast quadtree codes +exports.interleave2 = function(x, y) { + x &= 0xFFFF; + x = (x | (x << 8)) & 0x00FF00FF; + x = (x | (x << 4)) & 0x0F0F0F0F; + x = (x | (x << 2)) & 0x33333333; + x = (x | (x << 1)) & 0x55555555; -var monotoneHull = _dereq_('monotone-convex-hull-2d') + y &= 0xFFFF; + y = (y | (y << 8)) & 0x00FF00FF; + y = (y | (y << 4)) & 0x0F0F0F0F; + y = (y | (y << 2)) & 0x33333333; + y = (y | (y << 1)) & 0x55555555; -function convexHull2D(points) { - var hull = monotoneHull(points) - var h = hull.length - if(h <= 2) { - return [] - } - var edges = new Array(h) - var a = hull[h-1] - for(var i=0; i>> n) & 0x55555555; + v = (v | (v >>> 1)) & 0x33333333; + v = (v | (v >>> 2)) & 0x0F0F0F0F; + v = (v | (v >>> 4)) & 0x00FF00FF; + v = (v | (v >>> 16)) & 0x000FFFF; + return (v << 16) >> 16; +} -module.exports = convexHullnD -var ich = _dereq_('incremental-convex-hull') -var aff = _dereq_('affine-hull') +//Interleave bits of 3 coordinates, each with 10 bits. Useful for fast octree codes +exports.interleave3 = function(x, y, z) { + x &= 0x3FF; + x = (x | (x<<16)) & 4278190335; + x = (x | (x<<8)) & 251719695; + x = (x | (x<<4)) & 3272356035; + x = (x | (x<<2)) & 1227133513; -function permute(points, front) { - var n = points.length - var npoints = new Array(n) - for(var i=0; i= front[k]) { - x += 1 - } - } - c[j] = x - } - } - } - return cells +//Extracts nth interleaved component of a 3-tuple +exports.deinterleave3 = function(v, n) { + v = (v >>> n) & 1227133513; + v = (v | (v>>>2)) & 3272356035; + v = (v | (v>>>4)) & 251719695; + v = (v | (v>>>8)) & 4278190335; + v = (v | (v>>>16)) & 0x3FF; + return (v<<22)>>22; } -function convexHullnD(points, d) { - try { - return ich(points, true) - } catch(e) { - //If point set is degenerate, try to find a basis and rerun it - var ah = aff(points) - if(ah.length <= d) { - //No basis, no try - return [] - } - var npoints = permute(points, ah) - var nhull = ich(npoints, true) - return invPermute(nhull, ah) - } -} -},{"affine-hull":67,"incremental-convex-hull":459}],139:[function(_dereq_,module,exports){ -module.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|ç)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|é)union', - ROU: 'r(o|u|ou)mania', - RUS: '\\brussia|soviet.?union|u\\.?s\\.?s\\.?r|socialist.?republics', - RWA: 'rwanda', - BLM: 'barth(e|é)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|ã)o.?tom(e|é)', - 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' +//Computes next combination in colexicographic order (this is mistakenly called nextPermutation on the bit twiddling hacks page) +exports.nextCombination = function(v) { + var t = v | (v - 1); + return (t + 1) | (((~t & -~t) - 1) >>> (countTrailingZeros(v) + 1)); } -},{}],140:[function(_dereq_,module,exports){ -module.exports=[ - "xx-small", - "x-small", - "small", - "medium", - "large", - "x-large", - "xx-large", - "larger", - "smaller" -] - -},{}],141:[function(_dereq_,module,exports){ -module.exports=[ - "normal", - "condensed", - "semi-condensed", - "extra-condensed", - "ultra-condensed", - "expanded", - "semi-expanded", - "extra-expanded", - "ultra-expanded" -] - -},{}],142:[function(_dereq_,module,exports){ -module.exports=[ - "normal", - "italic", - "oblique" -] - -},{}],143:[function(_dereq_,module,exports){ -module.exports=[ - "normal", - "bold", - "bolder", - "lighter", - "100", - "200", - "300", - "400", - "500", - "600", - "700", - "800", - "900" -] - -},{}],144:[function(_dereq_,module,exports){ -'use strict' - -module.exports = { - parse: _dereq_('./parse'), - stringify: _dereq_('./stringify') -} - -},{"./parse":146,"./stringify":147}],145:[function(_dereq_,module,exports){ -'use strict' - -var sizes = _dereq_('css-font-size-keywords') - -module.exports = { - isSize: function isSize(value) { - return /^[\d\.]/.test(value) - || value.indexOf('/') !== -1 - || sizes.indexOf(value) !== -1 - } -} -},{"css-font-size-keywords":140}],146:[function(_dereq_,module,exports){ +},{}],101:[function(_dereq_,module,exports){ 'use strict' -var unquote = _dereq_('unquote') -var globalKeywords = _dereq_('css-global-keywords') -var systemFontKeywords = _dereq_('css-system-font-keywords') -var fontWeightKeywords = _dereq_('css-font-weight-keywords') -var fontStyleKeywords = _dereq_('css-font-style-keywords') -var fontStretchKeywords = _dereq_('css-font-stretch-keywords') -var splitBy = _dereq_('string-split-by') -var isSize = _dereq_('./lib/util').isSize - +var clamp = _dereq_('clamp') -module.exports = parseFont +module.exports = calcSDF +var INF = 1e20; -var cache = parseFont.cache = {} +function calcSDF(src, options) { + if (!options) options = {} + var cutoff = options.cutoff == null ? 0.25 : options.cutoff + var radius = options.radius == null ? 8 : options.radius + var channel = options.channel || 0 + var w, h, size, data, intData, stride, ctx, canvas, imgData, i, l -function parseFont (value) { - if (typeof value !== 'string') throw new Error('Font argument must be a string.') + // handle image container + if (ArrayBuffer.isView(src) || Array.isArray(src)) { + if (!options.width || !options.height) throw Error('For raw data width and height should be provided by options') + w = options.width, h = options.height + data = src - if (cache[value]) return cache[value] + if (!options.stride) stride = Math.floor(src.length / w / h) + else stride = options.stride + } + else { + if (window.HTMLCanvasElement && src instanceof window.HTMLCanvasElement) { + canvas = src + ctx = canvas.getContext('2d') + w = canvas.width, h = canvas.height + imgData = ctx.getImageData(0, 0, w, h) + data = imgData.data + stride = 4 + } + else if (window.CanvasRenderingContext2D && src instanceof window.CanvasRenderingContext2D) { + canvas = src.canvas + ctx = src + w = canvas.width, h = canvas.height + imgData = ctx.getImageData(0, 0, w, h) + data = imgData.data + stride = 4 + } + else if (window.ImageData && src instanceof window.ImageData) { + imgData = src + w = src.width, h = src.height + data = imgData.data + stride = 4 + } + } - if (value === '') { - throw new Error('Cannot parse an empty string.') - } + size = Math.max(w, h) - if (systemFontKeywords.indexOf(value) !== -1) { - return cache[value] = {system: value} - } + //convert int data to floats + if ((window.Uint8ClampedArray && data instanceof window.Uint8ClampedArray) || (window.Uint8Array && data instanceof window.Uint8Array)) { + intData = data + data = Array(w*h) - var font = { - style: 'normal', - variant: 'normal', - weight: 'normal', - stretch: 'normal', - lineHeight: 'normal', - size: '1rem', - family: ['serif'] - } + for (i = 0, l = intData.length; i < l; i++) { + data[i] = intData[i*stride + channel] / 255 + } + } + else { + if (stride !== 1) throw Error('Raw data can have only 1 value per pixel') + } - var tokens = splitBy(value, /\s+/) - var token + // temporary arrays for the distance transform + var gridOuter = Array(w * h) + var gridInner = Array(w * h) + var f = Array(size) + var d = Array(size) + var z = Array(size + 1) + var v = Array(size) - while (token = tokens.shift()) { - if (globalKeywords.indexOf(token) !== -1) { - ['style', 'variant', 'weight', 'stretch'].forEach(function(prop) { - font[prop] = token - }) + for (i = 0, l = w * h; i < l; i++) { + var a = data[i] + gridOuter[i] = a === 1 ? 0 : a === 0 ? INF : Math.pow(Math.max(0, 0.5 - a), 2) + gridInner[i] = a === 1 ? INF : a === 0 ? 0 : Math.pow(Math.max(0, a - 0.5), 2) + } - return cache[value] = font - } + edt(gridOuter, w, h, f, d, v, z) + edt(gridInner, w, h, f, d, v, z) - if (fontStyleKeywords.indexOf(token) !== -1) { - font.style = token - continue - } + var dist = window.Float32Array ? new Float32Array(w * h) : new Array(w * h) - if (token === 'normal' || token === 'small-caps') { - font.variant = token - continue - } + for (i = 0, l = w*h; i < l; i++) { + dist[i] = clamp(1 - ( (gridOuter[i] - gridInner[i]) / radius + cutoff), 0, 1) + } - if (fontStretchKeywords.indexOf(token) !== -1) { - font.stretch = token - continue - } + return dist +} - if (fontWeightKeywords.indexOf(token) !== -1) { - font.weight = token - continue - } - - - if (isSize(token)) { - var parts = splitBy(token, '/') - font.size = parts[0] - if (parts[1] != null) { - font.lineHeight = parseLineHeight(parts[1]) - } - else if (tokens[0] === '/') { - tokens.shift() - font.lineHeight = parseLineHeight(tokens.shift()) - } - - if (!tokens.length) { - throw new Error('Missing required font-family.') - } - font.family = splitBy(tokens.join(' '), /\s*,\s*/).map(unquote) - - return cache[value] = font - } - - throw new Error('Unknown or unsupported font token: ' + token) - } - - throw new Error('Missing required font-size.') -} - - -function parseLineHeight(value) { - var parsed = parseFloat(value) - if (parsed.toString() === value) { - return parsed - } - return value -} - -},{"./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(_dereq_,module,exports){ -'use strict' - -var pick = _dereq_('pick-by-alias') -var isSize = _dereq_('./lib/util').isSize - -var globals = a2o(_dereq_('css-global-keywords')) -var systems = a2o(_dereq_('css-system-font-keywords')) -var weights = a2o(_dereq_('css-font-weight-keywords')) -var styles = a2o(_dereq_('css-font-style-keywords')) -var stretches = a2o(_dereq_('css-font-stretch-keywords')) - -var variants = {'normal': 1, 'small-caps': 1} -var fams = { - 'serif': 1, - 'sans-serif': 1, - 'monospace': 1, - 'cursive': 1, - 'fantasy': 1, - 'system-ui': 1 -} - -var defaults = { - style: 'normal', - variant: 'normal', - weight: 'normal', - stretch: 'normal', - size: '1rem', - lineHeight: 'normal', - family: 'serif' -} - -module.exports = function stringifyFont (o) { - o = pick(o, { - style: 'style fontstyle fontStyle font-style slope distinction', - variant: 'variant font-variant fontVariant fontvariant var capitalization', - weight: 'weight w font-weight fontWeight fontweight', - stretch: 'stretch font-stretch fontStretch fontstretch width', - size: 'size s font-size fontSize fontsize height em emSize', - lineHeight: 'lh line-height lineHeight lineheight leading', - family: 'font family fontFamily font-family fontfamily type typeface face', - system: 'system reserved default global', - }) - - if (o.system) { - if (o.system) verify(o.system, systems) - return o.system - } - - verify(o.style, styles) - verify(o.variant, variants) - verify(o.weight, weights) - verify(o.stretch, stretches) - - // default root value is medium, but by default it's inherited - if (o.size == null) o.size = defaults.size - if (typeof o.size === 'number') o.size += 'px' - - if (!isSize) throw Error('Bad size value `' + o.size + '`') - - // many user-agents use serif, we don't detect that for consistency - if (!o.family) o.family = defaults.family - if (Array.isArray(o.family)) { - if (!o.family.length) o.family = [defaults.family] - o.family = o.family.map(function (f) { - return fams[f] ? f : '"' + f + '"' - }).join(', ') - } - - // [ [ <'font-style'> || || <'font-weight'> || <'font-stretch'> ]? <'font-size'> [ / <'line-height'> ]? <'font-family'> ] - var result = [] - - result.push(o.style) - if (o.variant !== o.style) result.push(o.variant) - - if (o.weight !== o.variant && - o.weight !== o.style) result.push(o.weight) - - if (o.stretch !== o.weight && - o.stretch !== o.variant && - o.stretch !== o.style) result.push(o.stretch) - - result.push(o.size + (o.lineHeight == null || o.lineHeight === 'normal' || (o.lineHeight + '' === '1') ? '' : ('/' + o.lineHeight))) - result.push(o.family) - - return result.filter(Boolean).join(' ') +// 2D Euclidean distance transform by Felzenszwalb & Huttenlocher https://cs.brown.edu/~pff/dt/ +function edt(data, width, height, f, d, v, z) { + for (var x = 0; x < width; x++) { + for (var y = 0; y < height; y++) { + f[y] = data[y * width + x] + } + edt1d(f, d, v, z, height) + for (y = 0; y < height; y++) { + data[y * width + x] = d[y] + } + } + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + f[x] = data[y * width + x] + } + edt1d(f, d, v, z, width) + for (x = 0; x < width; x++) { + data[y * width + x] = Math.sqrt(d[x]) + } + } } -function verify (value, values) { - if (value && !values[value] && !globals[value]) throw Error('Unknown keyword `' + value +'`') - - return value -} +// 1D squared distance transform +function edt1d(f, d, v, z, n) { + v[0] = 0; + z[0] = -INF + z[1] = +INF + for (var q = 1, k = 0; q < n; q++) { + var s = ((f[q] + q * q) - (f[v[k]] + v[k] * v[k])) / (2 * q - 2 * v[k]) + while (s <= z[k]) { + k-- + s = ((f[q] + q * q) - (f[v[k]] + v[k] * v[k])) / (2 * q - 2 * v[k]) + } + k++ + v[k] = q + z[k] = s + z[k + 1] = +INF + } -// ['a', 'b'] -> {a: true, b: true} -function a2o (a) { - var o = {} - for (var i = 0; i < a.length; i++) { - o[a[i]] = 1 - } - return o + for (q = 0, k = 0; q < n; q++) { + while (z[k + 1] < q) k++ + d[q] = (q - v[k]) * (q - v[k]) + f[v[k]] + } } -},{"./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,"pick-by-alias":511}],148:[function(_dereq_,module,exports){ -module.exports=[ - "inherit", - "initial", - "unset" -] - -},{}],149:[function(_dereq_,module,exports){ -module.exports=[ - "caption", - "icon", - "menu", - "message-box", - "small-caption", - "status-bar" -] - -},{}],150:[function(_dereq_,module,exports){ -"use strict" +},{"clamp":122}],102:[function(_dereq_,module,exports){ +(function (module, exports) { + 'use strict'; -function dcubicHermite(p0, v0, p1, v1, t, f) { - var dh00 = 6*t*t-6*t, - dh10 = 3*t*t-4*t + 1, - dh01 = -6*t*t+6*t, - dh11 = 3*t*t-2*t - if(p0.length) { - if(!f) { - f = new Array(p0.length) - } - for(var i=p0.length-1; i>=0; --i) { - f[i] = dh00*p0[i] + dh10*v0[i] + dh01*p1[i] + dh11*v1[i] - } - return f + // Utils + function assert (val, msg) { + if (!val) throw new Error(msg || 'Assertion failed'); } - return dh00*p0 + dh10*v0 + dh01*p1[i] + dh11*v1 -} -function cubicHermite(p0, v0, p1, v1, t, f) { - var ti = (t-1), t2 = t*t, ti2 = ti*ti, - h00 = (1+2*t)*ti2, - h10 = t*ti2, - h01 = t2*(3-2*t), - h11 = t2*ti - if(p0.length) { - if(!f) { - f = new Array(p0.length) - } - for(var i=p0.length-1; i>=0; --i) { - f[i] = h00*p0[i] + h10*v0[i] + h01*p1[i] + h11*v1[i] - } - return f + // Could use `inherits` module, but don't want to move from single file + // architecture yet. + function inherits (ctor, superCtor) { + ctor.super_ = superCtor; + var TempCtor = function () {}; + TempCtor.prototype = superCtor.prototype; + ctor.prototype = new TempCtor(); + ctor.prototype.constructor = ctor; } - return h00*p0 + h10*v0 + h01*p1 + h11*v1 -} -module.exports = cubicHermite -module.exports.derivative = dcubicHermite -},{}],151:[function(_dereq_,module,exports){ -"use strict" + // BN -var createThunk = _dereq_("./lib/thunk.js") + function BN (number, base, endian) { + if (BN.isBN(number)) { + return number; + } -function Procedure() { - 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 = false -} + this.negative = 0; + this.words = null; + this.length = 0; -function compileCwise(user_args) { - //Create procedure - var proc = new Procedure() - - //Parse blocks - proc.pre = user_args.pre - proc.body = user_args.body - proc.post = user_args.post + // Reduction context + this.red = null; - //Parse arguments - var proc_args = user_args.args.slice(0) - proc.argTypes = proc_args - for(var i=0; i0) { - throw new Error("cwise: pre() block may not reference array args") - } - if(i < proc.post.args.length && proc.post.args[i].count>0) { - throw new Error("cwise: post() block may not reference array args") - } - } else if(arg_type === "scalar") { - proc.scalarArgs.push(i) - proc.shimArgs.push("scalar" + i) - } else if(arg_type === "index") { - proc.indexArgs.push(i) - if(i < proc.pre.args.length && proc.pre.args[i].count > 0) { - throw new Error("cwise: pre() block may not reference array index") - } - if(i < proc.body.args.length && proc.body.args[i].lvalue) { - throw new Error("cwise: body() block may not write to array index") - } - if(i < proc.post.args.length && proc.post.args[i].count > 0) { - throw new Error("cwise: post() block may not reference array index") - } - } else if(arg_type === "shape") { - proc.shapeArgs.push(i) - if(i < proc.pre.args.length && proc.pre.args[i].lvalue) { - throw new Error("cwise: pre() block may not write to array shape") - } - if(i < proc.body.args.length && proc.body.args[i].lvalue) { - throw new Error("cwise: body() block may not write to array shape") - } - if(i < proc.post.args.length && proc.post.args[i].lvalue) { - throw new Error("cwise: post() block may not write to array shape") + if (number !== null) { + if (base === 'le' || base === 'be') { + endian = base; + base = 10; } - } else if(typeof arg_type === "object" && arg_type.offset) { - proc.argTypes[i] = "offset" - proc.offsetArgs.push({ array: arg_type.array, offset:arg_type.offset }) - proc.offsetArgIndex.push(i) - } else { - throw new Error("cwise: Unknown argument type " + proc_args[i]) + + this._init(number || 0, base || 10, endian || 'be'); } } - - //Make sure at least one array argument was specified - if(proc.arrayArgs.length <= 0) { - throw new Error("cwise: No array arguments specified") - } - - //Make sure arguments are correct - if(proc.pre.args.length > proc_args.length) { - throw new Error("cwise: Too many arguments in pre() block") - } - if(proc.body.args.length > proc_args.length) { - throw new Error("cwise: Too many arguments in body() block") - } - if(proc.post.args.length > proc_args.length) { - throw new Error("cwise: Too many arguments in post() block") + if (typeof module === 'object') { + module.exports = BN; + } else { + exports.BN = BN; } - //Check debug flag - proc.debug = !!user_args.printCode || !!user_args.debug - - //Retrieve name - proc.funcName = user_args.funcName || "cwise" - - //Read in block size - proc.blockSize = user_args.blockSize || 64 + BN.BN = BN; + BN.wordSize = 26; - return createThunk(proc) -} + var Buffer; + try { + Buffer = _dereq_('buffer').Buffer; + } catch (e) { + } -module.exports = compileCwise + BN.isBN = function isBN (num) { + if (num instanceof BN) { + return true; + } -},{"./lib/thunk.js":153}],152:[function(_dereq_,module,exports){ -"use strict" + return num !== null && typeof num === 'object' && + num.constructor.wordSize === BN.wordSize && Array.isArray(num.words); + }; -var uniq = _dereq_("uniq") + BN.max = function max (left, right) { + if (left.cmp(right) > 0) return left; + return right; + }; -// This function generates very simple loops analogous to how you typically traverse arrays (the outermost loop corresponds to the slowest changing index, the innermost loop to the fastest changing index) -// TODO: If two arrays have the same strides (and offsets) there is potential for decreasing the number of "pointers" and related variables. The drawback is that the type signature would become more specific and that there would thus be less potential for caching, but it might still be worth it, especially when dealing with large numbers of arguments. -function innerFill(order, proc, body) { - var dimension = order.length - , nargs = proc.arrayArgs.length - , has_index = proc.indexArgs.length>0 - , code = [] - , vars = [] - , idx=0, pidx=0, i, j - for(i=0; i 0) { - code.push("var " + vars.join(",")) - } - //Scan loop - for(i=dimension-1; i>=0; --i) { // Start at largest stride and work your way inwards - idx = order[i] - code.push(["for(i",i,"=0;i",i," 0) { - code.push(["index[",pidx,"]-=s",pidx].join("")) - } - code.push(["++index[",idx,"]"].join("")) - } - code.push("}") - } - return code.join("\n") -} + BN.min = function min (left, right) { + if (left.cmp(right) < 0) return left; + return right; + }; -// Generate "outer" loops that loop over blocks of data, applying "inner" loops to the blocks by manipulating the local variables in such a way that the inner loop only "sees" the current block. -// TODO: If this is used, then the previous declaration (done by generateCwiseOp) of s* is essentially unnecessary. -// I believe the s* are not used elsewhere (in particular, I don't think they're used in the pre/post parts and "shape" is defined independently), so it would be possible to make defining the s* dependent on what loop method is being used. -function outerFill(matched, order, proc, body) { - var dimension = order.length - , nargs = proc.arrayArgs.length - , blockSize = proc.blockSize - , has_index = proc.indexArgs.length > 0 - , code = [] - for(var i=0; i0;){"].join("")) // Iterate back to front - code.push(["if(j",i,"<",blockSize,"){"].join("")) // Either decrease j by blockSize (s = blockSize), or set it to zero (after setting s = j). - code.push(["s",order[i],"=j",i].join("")) - code.push(["j",i,"=0"].join("")) - code.push(["}else{s",order[i],"=",blockSize].join("")) - code.push(["j",i,"-=",blockSize,"}"].join("")) - if(has_index) { - code.push(["index[",order[i],"]=j",i].join("")) - } - } - for(var i=0; i= 2 && base <= 36); -function typeSummary(dtypes) { - var summary = new Array(dtypes.length) - var allEqual = true - for(var i=0; i 0) { - allEqual = allEqual && summary[i] === summary[i-1] + + if (number[0] === '-') { + this.negative = 1; } - } - if(allEqual) { - return summary[0] - } - return summary.join("") -} -//Generates a cwise operator -function generateCWiseOp(proc, typesig) { + this.strip(); - //Compute dimension - // Arrays get put first in typesig, and there are two entries per array (dtype and order), so this gets the number of dimensions in the first array arg. - var dimension = (typesig[1].length - Math.abs(proc.arrayBlockIndices[0]))|0 - var orders = new Array(proc.arrayArgs.length) - var dtypes = new Array(proc.arrayArgs.length) - for(var i=0; i 0) { - vars.push("shape=SS.slice(0)") // Makes the shape over which we iterate available to the user defined functions (so you can use width/height for example) - } - if(proc.indexArgs.length > 0) { - // Prepare an array to keep track of the (logical) indices, initialized to dimension zeroes. - var zeros = new Array(dimension) - for(var i=0; i= 0; i -= 3) { + w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16); + this.words[j] |= (w << off) & 0x3ffffff; + this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff; + off += 24; + if (off >= 26) { + off -= 26; + j++; + } + } + } else if (endian === 'le') { + for (i = 0, j = 0; i < number.length; i += 3) { + w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16); + this.words[j] |= (w << off) & 0x3ffffff; + this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff; + off += 24; + if (off >= 26) { + off -= 26; + j++; + } + } } - vars.push(["index=[", zeros.join(","), "]"].join("")) - } - for(var i=0; i= 49 && c <= 54) { + r |= c - 49 + 0xa; + + // 'A' - 'F' + } else if (c >= 17 && c <= 22) { + r |= c - 17 + 0xa; + + // '0' - '9' } else { - init_string.push([off_arg.offset[j], "*t", off_arg.array, "p", j].join("")) + r |= c & 0xf; } } - if(init_string.length === 0) { - vars.push("q" + i + "=0") - } else { - vars.push(["q", i, "=", init_string.join("+")].join("")) - } + return r; } - //Prepare this variables - var thisVars = uniq([].concat(proc.pre.thisVars) - .concat(proc.body.thisVars) - .concat(proc.post.thisVars)) - vars = vars.concat(thisVars) - if (vars.length > 0) { - code.push("var " + vars.join(",")) - } - for(var i=0; i 3) { - code.push(processBlock(proc.pre, proc, dtypes)) - } + BN.prototype._parseHex = function _parseHex (number, start) { + // Create possibly bigger array to ensure that it fits the number + this.length = Math.ceil((number.length - start) / 6); + this.words = new Array(this.length); + for (var i = 0; i < this.length; i++) { + this.words[i] = 0; + } - //Process body - var body = processBlock(proc.body, proc, dtypes) - var matched = countMatches(loopOrders) - if(matched < dimension) { - code.push(outerFill(matched, loopOrders[0], proc, body)) // TODO: Rather than passing loopOrders[0], it might be interesting to look at passing an order that represents the majority of the arguments for example. - } else { - code.push(innerFill(loopOrders[0], proc, body)) - } + var j, w; + // Scan 24-bit chunks and add them to the number + var off = 0; + for (i = number.length - 6, j = 0; i >= start; i -= 6) { + w = parseHex(number, i, i + 6); + this.words[j] |= (w << off) & 0x3ffffff; + // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb + this.words[j + 1] |= w >>> (26 - off) & 0x3fffff; + off += 24; + if (off >= 26) { + off -= 26; + j++; + } + } + if (i + 6 !== start) { + w = parseHex(number, start, i + 6); + this.words[j] |= (w << off) & 0x3ffffff; + this.words[j + 1] |= w >>> (26 - off) & 0x3fffff; + } + this.strip(); + }; - //Inline epilog - if(proc.post.body.length > 3) { - code.push(processBlock(proc.post, proc, dtypes)) - } - - if(proc.debug) { - console.log("-----Generated cwise routine for ", typesig, ":\n" + code.join("\n") + "\n----------") - } - - var loopName = [(proc.funcName||"unnamed"), "_cwise_loop_", orders[0].join("s"),"m",matched,typeSummary(dtypes)].join("") - var f = new Function(["function ",loopName,"(", arglist.join(","),"){", code.join("\n"),"} return ", loopName].join("")) - return f() -} -module.exports = generateCWiseOp + function parseBase (str, start, end, mul) { + var r = 0; + var len = Math.min(str.length, end); + for (var i = start; i < len; i++) { + var c = str.charCodeAt(i) - 48; -},{"uniq":597}],153:[function(_dereq_,module,exports){ -"use strict" + r *= mul; -// The function below is called when constructing a cwise function object, and does the following: -// A function object is constructed which accepts as argument a compilation function and returns another function. -// It is this other function that is eventually returned by createThunk, and this function is the one that actually -// checks whether a certain pattern of arguments has already been used before and compiles new loops as needed. -// The compilation passed to the first function object is used for compiling new functions. -// Once this function object is created, it is called with compile as argument, where the first argument of compile -// is bound to "proc" (essentially containing a preprocessed version of the user arguments to cwise). -// So createThunk roughly works like this: -// function createThunk(proc) { -// var thunk = function(compileBound) { -// var CACHED = {} -// return function(arrays and scalars) { -// if (dtype and order of arrays in CACHED) { -// var func = CACHED[dtype and order of arrays] -// } else { -// var func = CACHED[dtype and order of arrays] = compileBound(dtype and order of arrays) -// } -// return func(arrays and scalars) -// } -// } -// return thunk(compile.bind1(proc)) -// } + // 'a' + if (c >= 49) { + r += c - 49 + 0xa; -var compile = _dereq_("./compile.js") + // 'A' + } else if (c >= 17) { + r += c - 17 + 0xa; -function createThunk(proc) { - var code = ["'use strict'", "var CACHED={}"] - var vars = [] - var thunkName = proc.funcName + "_cwise_thunk" - - //Build thunk - code.push(["return function ", thunkName, "(", proc.shimArgs.join(","), "){"].join("")) - var typesig = [] - var string_typesig = [] - var proc_args = [["array",proc.arrayArgs[0],".shape.slice(", // Slice shape so that we only retain the shape over which we iterate (which gets passed to the cwise operator as SS). - Math.max(0,proc.arrayBlockIndices[0]),proc.arrayBlockIndices[0]<0?(","+proc.arrayBlockIndices[0]+")"):")"].join("")] - var shapeLengthConditions = [], shapeConditions = [] - // Process array arguments - for(var i=0; i0) { // Gather conditions to check for shape equality (ignoring block indices) - shapeLengthConditions.push("array" + proc.arrayArgs[0] + ".shape.length===array" + j + ".shape.length+" + (Math.abs(proc.arrayBlockIndices[0])-Math.abs(proc.arrayBlockIndices[i]))) - shapeConditions.push("array" + proc.arrayArgs[0] + ".shape[shapeIndex+" + Math.max(0,proc.arrayBlockIndices[0]) + "]===array" + j + ".shape[shapeIndex+" + Math.max(0,proc.arrayBlockIndices[i]) + "]") + // '0' - '9' + } else { + r += c; + } } + return r; } - // Check for shape equality - if (proc.arrayArgs.length > 1) { - code.push("if (!(" + shapeLengthConditions.join(" && ") + ")) throw new Error('cwise: Arrays do not all have the same dimensionality!')") - code.push("for(var shapeIndex=array" + proc.arrayArgs[0] + ".shape.length-" + Math.abs(proc.arrayBlockIndices[0]) + "; shapeIndex-->0;) {") - code.push("if (!(" + shapeConditions.join(" && ") + ")) throw new Error('cwise: Arrays do not all have the same shape!')") - code.push("}") - } - // Process scalar arguments - for(var i=0; i b ? 1 : a >= b ? 0 : NaN; -} + BN.prototype.clone = function clone () { + var r = new BN(null); + this.copy(r); + return r; + }; -function bisector(compare) { - if (compare.length === 1) compare = ascendingComparator(compare); - return { - left: function(a, x, lo, hi) { - if (lo == null) lo = 0; - if (hi == null) hi = a.length; - while (lo < hi) { - var mid = lo + hi >>> 1; - if (compare(a[mid], x) < 0) lo = mid + 1; - else hi = mid; - } - return lo; - }, - right: function(a, x, lo, hi) { - if (lo == null) lo = 0; - if (hi == null) hi = a.length; - while (lo < hi) { - var mid = lo + hi >>> 1; - if (compare(a[mid], x) > 0) hi = mid; - else lo = mid + 1; - } - return lo; + BN.prototype._expand = function _expand (size) { + while (this.length < size) { + this.words[this.length++] = 0; } + return this; }; -} -function ascendingComparator(f) { - return function(d, x) { - return ascending(f(d), x); + // Remove leading `0` from `this` + BN.prototype.strip = function strip () { + while (this.length > 1 && this.words[this.length - 1] === 0) { + this.length--; + } + return this._normSign(); }; -} - -var ascendingBisect = bisector(ascending); -var bisectRight = ascendingBisect.right; -var bisectLeft = ascendingBisect.left; -function pairs(array, f) { - if (f == null) f = pair; - var i = 0, n = array.length - 1, p = array[0], pairs = new Array(n < 0 ? 0 : n); - while (i < n) pairs[i] = f(p, p = array[++i]); - return pairs; -} + BN.prototype._normSign = function _normSign () { + // -0 = 0 + if (this.length === 1 && this.words[0] === 0) { + this.negative = 0; + } + return this; + }; -function pair(a, b) { - return [a, b]; -} + BN.prototype.inspect = function inspect () { + return (this.red ? ''; + }; -function cross(values0, values1, reduce) { - var n0 = values0.length, - n1 = values1.length, - values = new Array(n0 * n1), - i0, - i1, - i, - value0; + /* - if (reduce == null) reduce = pair; + var zeros = []; + var groupSizes = []; + var groupBases = []; - for (i0 = i = 0; i0 < n0; ++i0) { - for (value0 = values0[i0], i1 = 0; i1 < n1; ++i1, ++i) { - values[i] = reduce(value0, values1[i1]); + var s = ''; + var i = -1; + while (++i < BN.wordSize) { + zeros[i] = s; + s += '0'; + } + groupSizes[0] = 0; + groupSizes[1] = 0; + groupBases[0] = 0; + groupBases[1] = 0; + var base = 2 - 1; + while (++base < 36 + 1) { + var groupSize = 0; + var groupBase = 1; + while (groupBase < (1 << BN.wordSize) / base) { + groupBase *= base; + groupSize += 1; } + groupSizes[base] = groupSize; + groupBases[base] = groupBase; } - return values; -} + */ -function descending(a, b) { - return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN; -} + var zeros = [ + '', + '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' + ]; -function number(x) { - return x === null ? NaN : +x; -} + var groupSizes = [ + 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 + ]; -function variance(values, valueof) { - var n = values.length, - m = 0, - i = -1, - mean = 0, - value, - delta, - sum = 0; + var groupBases = [ + 0, 0, + 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, + 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625, + 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632, + 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, + 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176 + ]; - if (valueof == null) { - while (++i < n) { - if (!isNaN(value = number(values[i]))) { - delta = value - mean; - mean += delta / ++m; - sum += delta * (value - mean); - } - } - } + BN.prototype.toString = function toString (base, padding) { + base = base || 10; + padding = padding | 0 || 1; - else { - while (++i < n) { - if (!isNaN(value = number(valueof(values[i], i, values)))) { - delta = value - mean; - mean += delta / ++m; - sum += delta * (value - mean); + var out; + if (base === 16 || base === 'hex') { + out = ''; + var off = 0; + var carry = 0; + for (var i = 0; i < this.length; i++) { + var w = this.words[i]; + var word = (((w << off) | carry) & 0xffffff).toString(16); + carry = (w >>> (24 - off)) & 0xffffff; + if (carry !== 0 || i !== this.length - 1) { + out = zeros[6 - word.length] + word + out; + } else { + out = word + out; + } + off += 2; + if (off >= 26) { + off -= 26; + i--; + } + } + if (carry !== 0) { + out = carry.toString(16) + out; + } + while (out.length % padding !== 0) { + out = '0' + out; + } + if (this.negative !== 0) { + out = '-' + out; } + return out; } - } - - if (m > 1) return sum / (m - 1); -} - -function deviation(array, f) { - var v = variance(array, f); - return v ? Math.sqrt(v) : v; -} -function extent(values, valueof) { - var n = values.length, - i = -1, - value, - min, - max; + if (base === (base | 0) && base >= 2 && base <= 36) { + // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base)); + var groupSize = groupSizes[base]; + // var groupBase = Math.pow(base, groupSize); + var groupBase = groupBases[base]; + out = ''; + var c = this.clone(); + c.negative = 0; + while (!c.isZero()) { + var r = c.modn(groupBase).toString(base); + c = c.idivn(groupBase); - if (valueof == null) { - while (++i < n) { // Find the first comparable value. - if ((value = values[i]) != null && value >= value) { - min = max = value; - while (++i < n) { // Compare the remaining values. - if ((value = values[i]) != null) { - if (min > value) min = value; - if (max < value) max = value; - } + if (!c.isZero()) { + out = zeros[groupSize - r.length] + r + out; + } else { + out = r + out; } } - } - } - - else { - while (++i < n) { // Find the first comparable value. - if ((value = valueof(values[i], i, values)) != null && value >= value) { - min = max = value; - while (++i < n) { // Compare the remaining values. - if ((value = valueof(values[i], i, values)) != null) { - if (min > value) min = value; - if (max < value) max = value; - } - } + if (this.isZero()) { + out = '0' + out; + } + while (out.length % padding !== 0) { + out = '0' + out; } + if (this.negative !== 0) { + out = '-' + out; + } + return out; } - } - return [min, max]; -} + assert(false, 'Base should be between 2 and 36'); + }; -var array = Array.prototype; + BN.prototype.toNumber = function toNumber () { + var ret = this.words[0]; + if (this.length === 2) { + ret += this.words[1] * 0x4000000; + } else if (this.length === 3 && this.words[2] === 0x01) { + // NOTE: at this stage it is known that the top bit is set + ret += 0x10000000000000 + (this.words[1] * 0x4000000); + } else if (this.length > 2) { + assert(false, 'Number can only safely store up to 53 bits'); + } + return (this.negative !== 0) ? -ret : ret; + }; -var slice = array.slice; -var map = array.map; + BN.prototype.toJSON = function toJSON () { + return this.toString(16); + }; -function constant(x) { - return function() { - return x; + BN.prototype.toBuffer = function toBuffer (endian, length) { + assert(typeof Buffer !== 'undefined'); + return this.toArrayLike(Buffer, endian, length); }; -} -function identity(x) { - return x; -} + BN.prototype.toArray = function toArray (endian, length) { + return this.toArrayLike(Array, endian, length); + }; -function range(start, stop, step) { - start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step; + BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) { + var byteLength = this.byteLength(); + var reqLength = length || Math.max(1, byteLength); + assert(byteLength <= reqLength, 'byte array longer than desired length'); + assert(reqLength > 0, 'Requested array length <= 0'); - var i = -1, - n = Math.max(0, Math.ceil((stop - start) / step)) | 0, - range = new Array(n); + this.strip(); + var littleEndian = endian === 'le'; + var res = new ArrayType(reqLength); - while (++i < n) { - range[i] = start + i * step; - } + var b, i; + var q = this.clone(); + if (!littleEndian) { + // Assume big-endian + for (i = 0; i < reqLength - byteLength; i++) { + res[i] = 0; + } - return range; -} + for (i = 0; !q.isZero(); i++) { + b = q.andln(0xff); + q.iushrn(8); -var e10 = Math.sqrt(50), - e5 = Math.sqrt(10), - e2 = Math.sqrt(2); + res[reqLength - i - 1] = b; + } + } else { + for (i = 0; !q.isZero(); i++) { + b = q.andln(0xff); + q.iushrn(8); -function ticks(start, stop, count) { - var reverse, - i = -1, - n, - ticks, - step; + res[i] = b; + } - stop = +stop, start = +start, count = +count; - if (start === stop && count > 0) return [start]; - if (reverse = stop < start) n = start, start = stop, stop = n; - if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return []; + for (; i < reqLength; i++) { + res[i] = 0; + } + } - if (step > 0) { - start = Math.ceil(start / step); - stop = Math.floor(stop / step); - ticks = new Array(n = Math.ceil(stop - start + 1)); - while (++i < n) ticks[i] = (start + i) * step; + return res; + }; + + if (Math.clz32) { + BN.prototype._countBits = function _countBits (w) { + return 32 - Math.clz32(w); + }; } else { - start = Math.floor(start * step); - stop = Math.ceil(stop * step); - ticks = new Array(n = Math.ceil(start - stop + 1)); - while (++i < n) ticks[i] = (start - i) / step; + BN.prototype._countBits = function _countBits (w) { + var t = w; + var r = 0; + if (t >= 0x1000) { + r += 13; + t >>>= 13; + } + if (t >= 0x40) { + r += 7; + t >>>= 7; + } + if (t >= 0x8) { + r += 4; + t >>>= 4; + } + if (t >= 0x02) { + r += 2; + t >>>= 2; + } + return r + t; + }; } - if (reverse) ticks.reverse(); - - return ticks; -} - -function tickIncrement(start, stop, count) { - var step = (stop - start) / Math.max(0, count), - power = Math.floor(Math.log(step) / Math.LN10), - error = step / Math.pow(10, power); - return power >= 0 - ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power) - : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1); -} + BN.prototype._zeroBits = function _zeroBits (w) { + // Short-cut + if (w === 0) return 26; -function tickStep(start, stop, count) { - var step0 = Math.abs(stop - start) / Math.max(0, count), - step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)), - error = step0 / step1; - if (error >= e10) step1 *= 10; - else if (error >= e5) step1 *= 5; - else if (error >= e2) step1 *= 2; - return stop < start ? -step1 : step1; -} + var t = w; + var r = 0; + if ((t & 0x1fff) === 0) { + r += 13; + t >>>= 13; + } + if ((t & 0x7f) === 0) { + r += 7; + t >>>= 7; + } + if ((t & 0xf) === 0) { + r += 4; + t >>>= 4; + } + if ((t & 0x3) === 0) { + r += 2; + t >>>= 2; + } + if ((t & 0x1) === 0) { + r++; + } + return r; + }; -function sturges(values) { - return Math.ceil(Math.log(values.length) / Math.LN2) + 1; -} + // Return number of used bits in a BN + BN.prototype.bitLength = function bitLength () { + var w = this.words[this.length - 1]; + var hi = this._countBits(w); + return (this.length - 1) * 26 + hi; + }; -function histogram() { - var value = identity, - domain = extent, - threshold = sturges; + function toBitArray (num) { + var w = new Array(num.bitLength()); - function histogram(data) { - var i, - n = data.length, - x, - values = new Array(n); + for (var bit = 0; bit < w.length; bit++) { + var off = (bit / 26) | 0; + var wbit = bit % 26; - for (i = 0; i < n; ++i) { - values[i] = value(data[i], i, data); + w[bit] = (num.words[off] & (1 << wbit)) >>> wbit; } - var xz = domain(values), - x0 = xz[0], - x1 = xz[1], - tz = threshold(values, x0, x1); + return w; + } - // Convert number of thresholds into uniform thresholds. - if (!Array.isArray(tz)) { - tz = tickStep(x0, x1, tz); - tz = range(Math.ceil(x0 / tz) * tz, x1, tz); // exclusive - } + // Number of trailing zero bits + BN.prototype.zeroBits = function zeroBits () { + if (this.isZero()) return 0; - // Remove any thresholds outside the domain. - var m = tz.length; - while (tz[0] <= x0) tz.shift(), --m; - while (tz[m - 1] > x1) tz.pop(), --m; + var r = 0; + for (var i = 0; i < this.length; i++) { + var b = this._zeroBits(this.words[i]); + r += b; + if (b !== 26) break; + } + return r; + }; - var bins = new Array(m + 1), - bin; + BN.prototype.byteLength = function byteLength () { + return Math.ceil(this.bitLength() / 8); + }; - // Initialize bins. - for (i = 0; i <= m; ++i) { - bin = bins[i] = []; - bin.x0 = i > 0 ? tz[i - 1] : x0; - bin.x1 = i < m ? tz[i] : x1; + BN.prototype.toTwos = function toTwos (width) { + if (this.negative !== 0) { + return this.abs().inotn(width).iaddn(1); } + return this.clone(); + }; - // Assign data to bins by value, ignoring any outside the domain. - for (i = 0; i < n; ++i) { - x = values[i]; - if (x0 <= x && x <= x1) { - bins[bisectRight(tz, x, 0, m)].push(data[i]); - } + BN.prototype.fromTwos = function fromTwos (width) { + if (this.testn(width - 1)) { + return this.notn(width).iaddn(1).ineg(); } + return this.clone(); + }; - return bins; - } - - histogram.value = function(_) { - return arguments.length ? (value = typeof _ === "function" ? _ : constant(_), histogram) : value; + BN.prototype.isNeg = function isNeg () { + return this.negative !== 0; }; - histogram.domain = function(_) { - return arguments.length ? (domain = typeof _ === "function" ? _ : constant([_[0], _[1]]), histogram) : domain; + // Return negative clone of `this` + BN.prototype.neg = function neg () { + return this.clone().ineg(); }; - histogram.thresholds = function(_) { - return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), histogram) : threshold; + BN.prototype.ineg = function ineg () { + if (!this.isZero()) { + this.negative ^= 1; + } + + return this; }; - return histogram; -} + // Or `num` with `this` in-place + BN.prototype.iuor = function iuor (num) { + while (this.length < num.length) { + this.words[this.length++] = 0; + } -function quantile(values, p, valueof) { - if (valueof == null) valueof = number; - if (!(n = values.length)) return; - if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values); - if (p >= 1) return +valueof(values[n - 1], n - 1, values); - var n, - i = (n - 1) * p, - i0 = Math.floor(i), - value0 = +valueof(values[i0], i0, values), - value1 = +valueof(values[i0 + 1], i0 + 1, values); - return value0 + (value1 - value0) * (i - i0); -} + for (var i = 0; i < num.length; i++) { + this.words[i] = this.words[i] | num.words[i]; + } -function freedmanDiaconis(values, min, max) { - values = map.call(values, number).sort(ascending); - return Math.ceil((max - min) / (2 * (quantile(values, 0.75) - quantile(values, 0.25)) * Math.pow(values.length, -1 / 3))); -} + return this.strip(); + }; -function scott(values, min, max) { - return Math.ceil((max - min) / (3.5 * deviation(values) * Math.pow(values.length, -1 / 3))); -} + BN.prototype.ior = function ior (num) { + assert((this.negative | num.negative) === 0); + return this.iuor(num); + }; -function max(values, valueof) { - var n = values.length, - i = -1, - value, - max; + // Or `num` with `this` + BN.prototype.or = function or (num) { + if (this.length > num.length) return this.clone().ior(num); + return num.clone().ior(this); + }; - if (valueof == null) { - while (++i < n) { // Find the first comparable value. - if ((value = values[i]) != null && value >= value) { - max = value; - while (++i < n) { // Compare the remaining values. - if ((value = values[i]) != null && value > max) { - max = value; - } - } - } + BN.prototype.uor = function uor (num) { + if (this.length > num.length) return this.clone().iuor(num); + return num.clone().iuor(this); + }; + + // And `num` with `this` in-place + BN.prototype.iuand = function iuand (num) { + // b = min-length(num, this) + var b; + if (this.length > num.length) { + b = num; + } else { + b = this; } - } - else { - while (++i < n) { // Find the first comparable value. - if ((value = valueof(values[i], i, values)) != null && value >= value) { - max = value; - while (++i < n) { // Compare the remaining values. - if ((value = valueof(values[i], i, values)) != null && value > max) { - max = value; - } - } - } + for (var i = 0; i < b.length; i++) { + this.words[i] = this.words[i] & num.words[i]; } - } - return max; -} + this.length = b.length; -function mean(values, valueof) { - var n = values.length, - m = n, - i = -1, - value, - sum = 0; + return this.strip(); + }; - if (valueof == null) { - while (++i < n) { - if (!isNaN(value = number(values[i]))) sum += value; - else --m; - } - } + BN.prototype.iand = function iand (num) { + assert((this.negative | num.negative) === 0); + return this.iuand(num); + }; - else { - while (++i < n) { - if (!isNaN(value = number(valueof(values[i], i, values)))) sum += value; - else --m; - } - } + // And `num` with `this` + BN.prototype.and = function and (num) { + if (this.length > num.length) return this.clone().iand(num); + return num.clone().iand(this); + }; - if (m) return sum / m; -} + BN.prototype.uand = function uand (num) { + if (this.length > num.length) return this.clone().iuand(num); + return num.clone().iuand(this); + }; -function median(values, valueof) { - var n = values.length, - i = -1, - value, - numbers = []; + // Xor `num` with `this` in-place + BN.prototype.iuxor = function iuxor (num) { + // a.length > b.length + var a; + var b; + if (this.length > num.length) { + a = this; + b = num; + } else { + a = num; + b = this; + } - if (valueof == null) { - while (++i < n) { - if (!isNaN(value = number(values[i]))) { - numbers.push(value); - } + for (var i = 0; i < b.length; i++) { + this.words[i] = a.words[i] ^ b.words[i]; } - } - else { - while (++i < n) { - if (!isNaN(value = number(valueof(values[i], i, values)))) { - numbers.push(value); + if (this !== a) { + for (; i < a.length; i++) { + this.words[i] = a.words[i]; } } - } - return quantile(numbers.sort(ascending), 0.5); -} + this.length = a.length; -function merge(arrays) { - var n = arrays.length, - m, - i = -1, - j = 0, - merged, - array; + return this.strip(); + }; - while (++i < n) j += arrays[i].length; - merged = new Array(j); + BN.prototype.ixor = function ixor (num) { + assert((this.negative | num.negative) === 0); + return this.iuxor(num); + }; - while (--n >= 0) { - array = arrays[n]; - m = array.length; - while (--m >= 0) { - merged[--j] = array[m]; - } - } + // Xor `num` with `this` + BN.prototype.xor = function xor (num) { + if (this.length > num.length) return this.clone().ixor(num); + return num.clone().ixor(this); + }; - return merged; -} + BN.prototype.uxor = function uxor (num) { + if (this.length > num.length) return this.clone().iuxor(num); + return num.clone().iuxor(this); + }; -function min(values, valueof) { - var n = values.length, - i = -1, - value, - min; + // Not ``this`` with ``width`` bitwidth + BN.prototype.inotn = function inotn (width) { + assert(typeof width === 'number' && width >= 0); - if (valueof == null) { - while (++i < n) { // Find the first comparable value. - if ((value = values[i]) != null && value >= value) { - min = value; - while (++i < n) { // Compare the remaining values. - if ((value = values[i]) != null && min > value) { - min = value; - } - } - } + var bytesNeeded = Math.ceil(width / 26) | 0; + var bitsLeft = width % 26; + + // Extend the buffer with leading zeroes + this._expand(bytesNeeded); + + if (bitsLeft > 0) { + bytesNeeded--; } - } - else { - while (++i < n) { // Find the first comparable value. - if ((value = valueof(values[i], i, values)) != null && value >= value) { - min = value; - while (++i < n) { // Compare the remaining values. - if ((value = valueof(values[i], i, values)) != null && min > value) { - min = value; - } - } - } + // Handle complete words + for (var i = 0; i < bytesNeeded; i++) { + this.words[i] = ~this.words[i] & 0x3ffffff; } - } - return min; -} + // Handle the residue + if (bitsLeft > 0) { + this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft)); + } -function permute(array, indexes) { - var i = indexes.length, permutes = new Array(i); - while (i--) permutes[i] = array[indexes[i]]; - return permutes; -} + // And remove leading zeroes + return this.strip(); + }; -function scan(values, compare) { - if (!(n = values.length)) return; - var n, - i = 0, - j = 0, - xi, - xj = values[j]; + BN.prototype.notn = function notn (width) { + return this.clone().inotn(width); + }; - if (compare == null) compare = ascending; + // Set `bit` of `this` + BN.prototype.setn = function setn (bit, val) { + assert(typeof bit === 'number' && bit >= 0); - while (++i < n) { - if (compare(xi = values[i], xj) < 0 || compare(xj, xj) !== 0) { - xj = xi, j = i; - } - } + var off = (bit / 26) | 0; + var wbit = bit % 26; - if (compare(xj, xj) === 0) return j; -} + this._expand(off + 1); -function shuffle(array, i0, i1) { - var m = (i1 == null ? array.length : i1) - (i0 = i0 == null ? 0 : +i0), - t, - i; + if (val) { + this.words[off] = this.words[off] | (1 << wbit); + } else { + this.words[off] = this.words[off] & ~(1 << wbit); + } - while (m) { - i = Math.random() * m-- | 0; - t = array[m + i0]; - array[m + i0] = array[i + i0]; - array[i + i0] = t; - } + return this.strip(); + }; - return array; -} + // Add `num` to `this` in-place + BN.prototype.iadd = function iadd (num) { + var r; -function sum(values, valueof) { - var n = values.length, - i = -1, - value, - sum = 0; + // negative + positive + if (this.negative !== 0 && num.negative === 0) { + this.negative = 0; + r = this.isub(num); + this.negative ^= 1; + return this._normSign(); - if (valueof == null) { - while (++i < n) { - if (value = +values[i]) sum += value; // Note: zero and null are equivalent. + // positive + negative + } else if (this.negative === 0 && num.negative !== 0) { + num.negative = 0; + r = this.isub(num); + num.negative = 1; + return r._normSign(); } - } - else { - while (++i < n) { - if (value = +valueof(values[i], i, values)) sum += value; + // a.length > b.length + var a, b; + if (this.length > num.length) { + a = this; + b = num; + } else { + a = num; + b = this; } - } - - return sum; -} -function transpose(matrix) { - if (!(n = matrix.length)) return []; - for (var i = -1, m = min(matrix, length), transpose = new Array(m); ++i < m;) { - for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) { - row[j] = matrix[j][i]; + var carry = 0; + for (var i = 0; i < b.length; i++) { + r = (a.words[i] | 0) + (b.words[i] | 0) + carry; + this.words[i] = r & 0x3ffffff; + carry = r >>> 26; + } + for (; carry !== 0 && i < a.length; i++) { + r = (a.words[i] | 0) + carry; + this.words[i] = r & 0x3ffffff; + carry = r >>> 26; } - } - return transpose; -} -function length(d) { - return d.length; -} + this.length = a.length; + if (carry !== 0) { + this.words[this.length] = carry; + this.length++; + // Copy the rest of the words + } else if (a !== this) { + for (; i < a.length; i++) { + this.words[i] = a.words[i]; + } + } -function zip() { - return transpose(arguments); -} + return this; + }; -exports.bisect = bisectRight; -exports.bisectRight = bisectRight; -exports.bisectLeft = bisectLeft; -exports.ascending = ascending; -exports.bisector = bisector; -exports.cross = cross; -exports.descending = descending; -exports.deviation = deviation; -exports.extent = extent; -exports.histogram = histogram; -exports.thresholdFreedmanDiaconis = freedmanDiaconis; -exports.thresholdScott = scott; -exports.thresholdSturges = sturges; -exports.max = max; -exports.mean = mean; -exports.median = median; -exports.merge = merge; -exports.min = min; -exports.pairs = pairs; -exports.permute = permute; -exports.quantile = quantile; -exports.range = range; -exports.scan = scan; -exports.shuffle = shuffle; -exports.sum = sum; -exports.ticks = ticks; -exports.tickIncrement = tickIncrement; -exports.tickStep = tickStep; -exports.transpose = transpose; -exports.variance = variance; -exports.zip = zip; + // Add `num` to `this` + BN.prototype.add = function add (num) { + var res; + if (num.negative !== 0 && this.negative === 0) { + num.negative = 0; + res = this.sub(num); + num.negative ^= 1; + return res; + } else if (num.negative === 0 && this.negative !== 0) { + this.negative = 0; + res = num.sub(this); + this.negative = 1; + return res; + } -Object.defineProperty(exports, '__esModule', { value: true }); + if (this.length > num.length) return this.clone().iadd(num); -}))); + return num.clone().iadd(this); + }; -},{}],157:[function(_dereq_,module,exports){ -// https://d3js.org/d3-collection/ v1.0.7 Copyright 2018 Mike Bostock -(function (global, factory) { -typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : -typeof define === 'function' && define.amd ? define(['exports'], factory) : -(factory((global.d3 = global.d3 || {}))); -}(this, (function (exports) { 'use strict'; + // Subtract `num` from `this` in-place + BN.prototype.isub = function isub (num) { + // this - (-num) = this + num + if (num.negative !== 0) { + num.negative = 0; + var r = this.iadd(num); + num.negative = 1; + return r._normSign(); -var prefix = "$"; + // -this - num = -(this + num) + } else if (this.negative !== 0) { + this.negative = 0; + this.iadd(num); + this.negative = 1; + return this._normSign(); + } -function Map() {} + // At this point both numbers are positive + var cmp = this.cmp(num); -Map.prototype = map.prototype = { - constructor: Map, - has: function(key) { - return (prefix + key) in this; - }, - get: function(key) { - return this[prefix + key]; - }, - set: function(key, value) { - this[prefix + key] = value; - return this; - }, - remove: function(key) { - var property = prefix + key; - return property in this && delete this[property]; - }, - clear: function() { - for (var property in this) if (property[0] === prefix) delete this[property]; - }, - keys: function() { - var keys = []; - for (var property in this) if (property[0] === prefix) keys.push(property.slice(1)); - return keys; - }, - values: function() { - var values = []; - for (var property in this) if (property[0] === prefix) values.push(this[property]); - return values; - }, - entries: function() { - var entries = []; - for (var property in this) if (property[0] === prefix) entries.push({key: property.slice(1), value: this[property]}); - return entries; - }, - size: function() { - var size = 0; - for (var property in this) if (property[0] === prefix) ++size; - return size; - }, - empty: function() { - for (var property in this) if (property[0] === prefix) return false; - return true; - }, - each: function(f) { - for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this); - } -}; + // Optimization - zeroify + if (cmp === 0) { + this.negative = 0; + this.length = 1; + this.words[0] = 0; + return this; + } -function map(object, f) { - var map = new Map; + // a > b + var a, b; + if (cmp > 0) { + a = this; + b = num; + } else { + a = num; + b = this; + } - // Copy constructor. - if (object instanceof Map) object.each(function(value, key) { map.set(key, value); }); + var carry = 0; + for (var i = 0; i < b.length; i++) { + r = (a.words[i] | 0) - (b.words[i] | 0) + carry; + carry = r >> 26; + this.words[i] = r & 0x3ffffff; + } + for (; carry !== 0 && i < a.length; i++) { + r = (a.words[i] | 0) + carry; + carry = r >> 26; + this.words[i] = r & 0x3ffffff; + } - // Index array by numeric index or specified key function. - else if (Array.isArray(object)) { - var i = -1, - n = object.length, - o; + // Copy rest of the words + if (carry === 0 && i < a.length && a !== this) { + for (; i < a.length; i++) { + this.words[i] = a.words[i]; + } + } - if (f == null) while (++i < n) map.set(i, object[i]); - else while (++i < n) map.set(f(o = object[i], i, object), o); - } + this.length = Math.max(this.length, i); - // Convert object to map. - else if (object) for (var key in object) map.set(key, object[key]); + if (a !== this) { + this.negative = 1; + } - return map; -} + return this.strip(); + }; -function nest() { - var keys = [], - sortKeys = [], - sortValues, - rollup, - nest; + // Subtract `num` from `this` + BN.prototype.sub = function sub (num) { + return this.clone().isub(num); + }; - function apply(array, depth, createResult, setResult) { - if (depth >= keys.length) { - if (sortValues != null) array.sort(sortValues); - return rollup != null ? rollup(array) : array; + function smallMulTo (self, num, out) { + out.negative = num.negative ^ self.negative; + var len = (self.length + num.length) | 0; + out.length = len; + len = (len - 1) | 0; + + // Peel one iteration (compiler can't do it, because of code complexity) + var a = self.words[0] | 0; + var b = num.words[0] | 0; + var r = a * b; + + var lo = r & 0x3ffffff; + var carry = (r / 0x4000000) | 0; + out.words[0] = lo; + + for (var k = 1; k < len; k++) { + // Sum all words with the same `i + j = k` and accumulate `ncarry`, + // note that ncarry could be >= 0x3ffffff + var ncarry = carry >>> 26; + var rword = carry & 0x3ffffff; + var maxJ = Math.min(k, num.length - 1); + for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) { + var i = (k - j) | 0; + a = self.words[i] | 0; + b = num.words[j] | 0; + r = a * b + rword; + ncarry += (r / 0x4000000) | 0; + rword = r & 0x3ffffff; + } + out.words[k] = rword | 0; + carry = ncarry | 0; + } + if (carry !== 0) { + out.words[k] = carry | 0; + } else { + out.length--; } - var i = -1, - n = array.length, - key = keys[depth++], - keyValue, - value, - valuesByKey = map(), - values, - result = createResult(); + return out.strip(); + } - while (++i < n) { - if (values = valuesByKey.get(keyValue = key(value = array[i]) + "")) { - values.push(value); - } else { - valuesByKey.set(keyValue, [value]); + // TODO(indutny): it may be reasonable to omit it for users who don't need + // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit + // multiplication (like elliptic secp256k1). + var comb10MulTo = function comb10MulTo (self, num, out) { + var a = self.words; + var b = num.words; + var o = out.words; + var c = 0; + var lo; + var mid; + var hi; + var a0 = a[0] | 0; + var al0 = a0 & 0x1fff; + var ah0 = a0 >>> 13; + var a1 = a[1] | 0; + var al1 = a1 & 0x1fff; + var ah1 = a1 >>> 13; + var a2 = a[2] | 0; + var al2 = a2 & 0x1fff; + var ah2 = a2 >>> 13; + var a3 = a[3] | 0; + var al3 = a3 & 0x1fff; + var ah3 = a3 >>> 13; + var a4 = a[4] | 0; + var al4 = a4 & 0x1fff; + var ah4 = a4 >>> 13; + var a5 = a[5] | 0; + var al5 = a5 & 0x1fff; + var ah5 = a5 >>> 13; + var a6 = a[6] | 0; + var al6 = a6 & 0x1fff; + var ah6 = a6 >>> 13; + var a7 = a[7] | 0; + var al7 = a7 & 0x1fff; + var ah7 = a7 >>> 13; + var a8 = a[8] | 0; + var al8 = a8 & 0x1fff; + var ah8 = a8 >>> 13; + var a9 = a[9] | 0; + var al9 = a9 & 0x1fff; + var ah9 = a9 >>> 13; + var b0 = b[0] | 0; + var bl0 = b0 & 0x1fff; + var bh0 = b0 >>> 13; + var b1 = b[1] | 0; + var bl1 = b1 & 0x1fff; + var bh1 = b1 >>> 13; + var b2 = b[2] | 0; + var bl2 = b2 & 0x1fff; + var bh2 = b2 >>> 13; + var b3 = b[3] | 0; + var bl3 = b3 & 0x1fff; + var bh3 = b3 >>> 13; + var b4 = b[4] | 0; + var bl4 = b4 & 0x1fff; + var bh4 = b4 >>> 13; + var b5 = b[5] | 0; + var bl5 = b5 & 0x1fff; + var bh5 = b5 >>> 13; + var b6 = b[6] | 0; + var bl6 = b6 & 0x1fff; + var bh6 = b6 >>> 13; + var b7 = b[7] | 0; + var bl7 = b7 & 0x1fff; + var bh7 = b7 >>> 13; + var b8 = b[8] | 0; + var bl8 = b8 & 0x1fff; + var bh8 = b8 >>> 13; + var b9 = b[9] | 0; + var bl9 = b9 & 0x1fff; + var bh9 = b9 >>> 13; + + out.negative = self.negative ^ num.negative; + out.length = 19; + /* k = 0 */ + lo = Math.imul(al0, bl0); + mid = Math.imul(al0, bh0); + mid = (mid + Math.imul(ah0, bl0)) | 0; + hi = Math.imul(ah0, bh0); + var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0; + w0 &= 0x3ffffff; + /* k = 1 */ + lo = Math.imul(al1, bl0); + mid = Math.imul(al1, bh0); + mid = (mid + Math.imul(ah1, bl0)) | 0; + hi = Math.imul(ah1, bh0); + lo = (lo + Math.imul(al0, bl1)) | 0; + mid = (mid + Math.imul(al0, bh1)) | 0; + mid = (mid + Math.imul(ah0, bl1)) | 0; + hi = (hi + Math.imul(ah0, bh1)) | 0; + var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0; + w1 &= 0x3ffffff; + /* k = 2 */ + lo = Math.imul(al2, bl0); + mid = Math.imul(al2, bh0); + mid = (mid + Math.imul(ah2, bl0)) | 0; + hi = Math.imul(ah2, bh0); + lo = (lo + Math.imul(al1, bl1)) | 0; + mid = (mid + Math.imul(al1, bh1)) | 0; + mid = (mid + Math.imul(ah1, bl1)) | 0; + hi = (hi + Math.imul(ah1, bh1)) | 0; + lo = (lo + Math.imul(al0, bl2)) | 0; + mid = (mid + Math.imul(al0, bh2)) | 0; + mid = (mid + Math.imul(ah0, bl2)) | 0; + hi = (hi + Math.imul(ah0, bh2)) | 0; + var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0; + w2 &= 0x3ffffff; + /* k = 3 */ + lo = Math.imul(al3, bl0); + mid = Math.imul(al3, bh0); + mid = (mid + Math.imul(ah3, bl0)) | 0; + hi = Math.imul(ah3, bh0); + lo = (lo + Math.imul(al2, bl1)) | 0; + mid = (mid + Math.imul(al2, bh1)) | 0; + mid = (mid + Math.imul(ah2, bl1)) | 0; + hi = (hi + Math.imul(ah2, bh1)) | 0; + lo = (lo + Math.imul(al1, bl2)) | 0; + mid = (mid + Math.imul(al1, bh2)) | 0; + mid = (mid + Math.imul(ah1, bl2)) | 0; + hi = (hi + Math.imul(ah1, bh2)) | 0; + lo = (lo + Math.imul(al0, bl3)) | 0; + mid = (mid + Math.imul(al0, bh3)) | 0; + mid = (mid + Math.imul(ah0, bl3)) | 0; + hi = (hi + Math.imul(ah0, bh3)) | 0; + var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0; + w3 &= 0x3ffffff; + /* k = 4 */ + lo = Math.imul(al4, bl0); + mid = Math.imul(al4, bh0); + mid = (mid + Math.imul(ah4, bl0)) | 0; + hi = Math.imul(ah4, bh0); + lo = (lo + Math.imul(al3, bl1)) | 0; + mid = (mid + Math.imul(al3, bh1)) | 0; + mid = (mid + Math.imul(ah3, bl1)) | 0; + hi = (hi + Math.imul(ah3, bh1)) | 0; + lo = (lo + Math.imul(al2, bl2)) | 0; + mid = (mid + Math.imul(al2, bh2)) | 0; + mid = (mid + Math.imul(ah2, bl2)) | 0; + hi = (hi + Math.imul(ah2, bh2)) | 0; + lo = (lo + Math.imul(al1, bl3)) | 0; + mid = (mid + Math.imul(al1, bh3)) | 0; + mid = (mid + Math.imul(ah1, bl3)) | 0; + hi = (hi + Math.imul(ah1, bh3)) | 0; + lo = (lo + Math.imul(al0, bl4)) | 0; + mid = (mid + Math.imul(al0, bh4)) | 0; + mid = (mid + Math.imul(ah0, bl4)) | 0; + hi = (hi + Math.imul(ah0, bh4)) | 0; + var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0; + w4 &= 0x3ffffff; + /* k = 5 */ + lo = Math.imul(al5, bl0); + mid = Math.imul(al5, bh0); + mid = (mid + Math.imul(ah5, bl0)) | 0; + hi = Math.imul(ah5, bh0); + lo = (lo + Math.imul(al4, bl1)) | 0; + mid = (mid + Math.imul(al4, bh1)) | 0; + mid = (mid + Math.imul(ah4, bl1)) | 0; + hi = (hi + Math.imul(ah4, bh1)) | 0; + lo = (lo + Math.imul(al3, bl2)) | 0; + mid = (mid + Math.imul(al3, bh2)) | 0; + mid = (mid + Math.imul(ah3, bl2)) | 0; + hi = (hi + Math.imul(ah3, bh2)) | 0; + lo = (lo + Math.imul(al2, bl3)) | 0; + mid = (mid + Math.imul(al2, bh3)) | 0; + mid = (mid + Math.imul(ah2, bl3)) | 0; + hi = (hi + Math.imul(ah2, bh3)) | 0; + lo = (lo + Math.imul(al1, bl4)) | 0; + mid = (mid + Math.imul(al1, bh4)) | 0; + mid = (mid + Math.imul(ah1, bl4)) | 0; + hi = (hi + Math.imul(ah1, bh4)) | 0; + lo = (lo + Math.imul(al0, bl5)) | 0; + mid = (mid + Math.imul(al0, bh5)) | 0; + mid = (mid + Math.imul(ah0, bl5)) | 0; + hi = (hi + Math.imul(ah0, bh5)) | 0; + var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0; + w5 &= 0x3ffffff; + /* k = 6 */ + lo = Math.imul(al6, bl0); + mid = Math.imul(al6, bh0); + mid = (mid + Math.imul(ah6, bl0)) | 0; + hi = Math.imul(ah6, bh0); + lo = (lo + Math.imul(al5, bl1)) | 0; + mid = (mid + Math.imul(al5, bh1)) | 0; + mid = (mid + Math.imul(ah5, bl1)) | 0; + hi = (hi + Math.imul(ah5, bh1)) | 0; + lo = (lo + Math.imul(al4, bl2)) | 0; + mid = (mid + Math.imul(al4, bh2)) | 0; + mid = (mid + Math.imul(ah4, bl2)) | 0; + hi = (hi + Math.imul(ah4, bh2)) | 0; + lo = (lo + Math.imul(al3, bl3)) | 0; + mid = (mid + Math.imul(al3, bh3)) | 0; + mid = (mid + Math.imul(ah3, bl3)) | 0; + hi = (hi + Math.imul(ah3, bh3)) | 0; + lo = (lo + Math.imul(al2, bl4)) | 0; + mid = (mid + Math.imul(al2, bh4)) | 0; + mid = (mid + Math.imul(ah2, bl4)) | 0; + hi = (hi + Math.imul(ah2, bh4)) | 0; + lo = (lo + Math.imul(al1, bl5)) | 0; + mid = (mid + Math.imul(al1, bh5)) | 0; + mid = (mid + Math.imul(ah1, bl5)) | 0; + hi = (hi + Math.imul(ah1, bh5)) | 0; + lo = (lo + Math.imul(al0, bl6)) | 0; + mid = (mid + Math.imul(al0, bh6)) | 0; + mid = (mid + Math.imul(ah0, bl6)) | 0; + hi = (hi + Math.imul(ah0, bh6)) | 0; + var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0; + w6 &= 0x3ffffff; + /* k = 7 */ + lo = Math.imul(al7, bl0); + mid = Math.imul(al7, bh0); + mid = (mid + Math.imul(ah7, bl0)) | 0; + hi = Math.imul(ah7, bh0); + lo = (lo + Math.imul(al6, bl1)) | 0; + mid = (mid + Math.imul(al6, bh1)) | 0; + mid = (mid + Math.imul(ah6, bl1)) | 0; + hi = (hi + Math.imul(ah6, bh1)) | 0; + lo = (lo + Math.imul(al5, bl2)) | 0; + mid = (mid + Math.imul(al5, bh2)) | 0; + mid = (mid + Math.imul(ah5, bl2)) | 0; + hi = (hi + Math.imul(ah5, bh2)) | 0; + lo = (lo + Math.imul(al4, bl3)) | 0; + mid = (mid + Math.imul(al4, bh3)) | 0; + mid = (mid + Math.imul(ah4, bl3)) | 0; + hi = (hi + Math.imul(ah4, bh3)) | 0; + lo = (lo + Math.imul(al3, bl4)) | 0; + mid = (mid + Math.imul(al3, bh4)) | 0; + mid = (mid + Math.imul(ah3, bl4)) | 0; + hi = (hi + Math.imul(ah3, bh4)) | 0; + lo = (lo + Math.imul(al2, bl5)) | 0; + mid = (mid + Math.imul(al2, bh5)) | 0; + mid = (mid + Math.imul(ah2, bl5)) | 0; + hi = (hi + Math.imul(ah2, bh5)) | 0; + lo = (lo + Math.imul(al1, bl6)) | 0; + mid = (mid + Math.imul(al1, bh6)) | 0; + mid = (mid + Math.imul(ah1, bl6)) | 0; + hi = (hi + Math.imul(ah1, bh6)) | 0; + lo = (lo + Math.imul(al0, bl7)) | 0; + mid = (mid + Math.imul(al0, bh7)) | 0; + mid = (mid + Math.imul(ah0, bl7)) | 0; + hi = (hi + Math.imul(ah0, bh7)) | 0; + var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0; + w7 &= 0x3ffffff; + /* k = 8 */ + lo = Math.imul(al8, bl0); + mid = Math.imul(al8, bh0); + mid = (mid + Math.imul(ah8, bl0)) | 0; + hi = Math.imul(ah8, bh0); + lo = (lo + Math.imul(al7, bl1)) | 0; + mid = (mid + Math.imul(al7, bh1)) | 0; + mid = (mid + Math.imul(ah7, bl1)) | 0; + hi = (hi + Math.imul(ah7, bh1)) | 0; + lo = (lo + Math.imul(al6, bl2)) | 0; + mid = (mid + Math.imul(al6, bh2)) | 0; + mid = (mid + Math.imul(ah6, bl2)) | 0; + hi = (hi + Math.imul(ah6, bh2)) | 0; + lo = (lo + Math.imul(al5, bl3)) | 0; + mid = (mid + Math.imul(al5, bh3)) | 0; + mid = (mid + Math.imul(ah5, bl3)) | 0; + hi = (hi + Math.imul(ah5, bh3)) | 0; + lo = (lo + Math.imul(al4, bl4)) | 0; + mid = (mid + Math.imul(al4, bh4)) | 0; + mid = (mid + Math.imul(ah4, bl4)) | 0; + hi = (hi + Math.imul(ah4, bh4)) | 0; + lo = (lo + Math.imul(al3, bl5)) | 0; + mid = (mid + Math.imul(al3, bh5)) | 0; + mid = (mid + Math.imul(ah3, bl5)) | 0; + hi = (hi + Math.imul(ah3, bh5)) | 0; + lo = (lo + Math.imul(al2, bl6)) | 0; + mid = (mid + Math.imul(al2, bh6)) | 0; + mid = (mid + Math.imul(ah2, bl6)) | 0; + hi = (hi + Math.imul(ah2, bh6)) | 0; + lo = (lo + Math.imul(al1, bl7)) | 0; + mid = (mid + Math.imul(al1, bh7)) | 0; + mid = (mid + Math.imul(ah1, bl7)) | 0; + hi = (hi + Math.imul(ah1, bh7)) | 0; + lo = (lo + Math.imul(al0, bl8)) | 0; + mid = (mid + Math.imul(al0, bh8)) | 0; + mid = (mid + Math.imul(ah0, bl8)) | 0; + hi = (hi + Math.imul(ah0, bh8)) | 0; + var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0; + w8 &= 0x3ffffff; + /* k = 9 */ + lo = Math.imul(al9, bl0); + mid = Math.imul(al9, bh0); + mid = (mid + Math.imul(ah9, bl0)) | 0; + hi = Math.imul(ah9, bh0); + lo = (lo + Math.imul(al8, bl1)) | 0; + mid = (mid + Math.imul(al8, bh1)) | 0; + mid = (mid + Math.imul(ah8, bl1)) | 0; + hi = (hi + Math.imul(ah8, bh1)) | 0; + lo = (lo + Math.imul(al7, bl2)) | 0; + mid = (mid + Math.imul(al7, bh2)) | 0; + mid = (mid + Math.imul(ah7, bl2)) | 0; + hi = (hi + Math.imul(ah7, bh2)) | 0; + lo = (lo + Math.imul(al6, bl3)) | 0; + mid = (mid + Math.imul(al6, bh3)) | 0; + mid = (mid + Math.imul(ah6, bl3)) | 0; + hi = (hi + Math.imul(ah6, bh3)) | 0; + lo = (lo + Math.imul(al5, bl4)) | 0; + mid = (mid + Math.imul(al5, bh4)) | 0; + mid = (mid + Math.imul(ah5, bl4)) | 0; + hi = (hi + Math.imul(ah5, bh4)) | 0; + lo = (lo + Math.imul(al4, bl5)) | 0; + mid = (mid + Math.imul(al4, bh5)) | 0; + mid = (mid + Math.imul(ah4, bl5)) | 0; + hi = (hi + Math.imul(ah4, bh5)) | 0; + lo = (lo + Math.imul(al3, bl6)) | 0; + mid = (mid + Math.imul(al3, bh6)) | 0; + mid = (mid + Math.imul(ah3, bl6)) | 0; + hi = (hi + Math.imul(ah3, bh6)) | 0; + lo = (lo + Math.imul(al2, bl7)) | 0; + mid = (mid + Math.imul(al2, bh7)) | 0; + mid = (mid + Math.imul(ah2, bl7)) | 0; + hi = (hi + Math.imul(ah2, bh7)) | 0; + lo = (lo + Math.imul(al1, bl8)) | 0; + mid = (mid + Math.imul(al1, bh8)) | 0; + mid = (mid + Math.imul(ah1, bl8)) | 0; + hi = (hi + Math.imul(ah1, bh8)) | 0; + lo = (lo + Math.imul(al0, bl9)) | 0; + mid = (mid + Math.imul(al0, bh9)) | 0; + mid = (mid + Math.imul(ah0, bl9)) | 0; + hi = (hi + Math.imul(ah0, bh9)) | 0; + var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0; + w9 &= 0x3ffffff; + /* k = 10 */ + lo = Math.imul(al9, bl1); + mid = Math.imul(al9, bh1); + mid = (mid + Math.imul(ah9, bl1)) | 0; + hi = Math.imul(ah9, bh1); + lo = (lo + Math.imul(al8, bl2)) | 0; + mid = (mid + Math.imul(al8, bh2)) | 0; + mid = (mid + Math.imul(ah8, bl2)) | 0; + hi = (hi + Math.imul(ah8, bh2)) | 0; + lo = (lo + Math.imul(al7, bl3)) | 0; + mid = (mid + Math.imul(al7, bh3)) | 0; + mid = (mid + Math.imul(ah7, bl3)) | 0; + hi = (hi + Math.imul(ah7, bh3)) | 0; + lo = (lo + Math.imul(al6, bl4)) | 0; + mid = (mid + Math.imul(al6, bh4)) | 0; + mid = (mid + Math.imul(ah6, bl4)) | 0; + hi = (hi + Math.imul(ah6, bh4)) | 0; + lo = (lo + Math.imul(al5, bl5)) | 0; + mid = (mid + Math.imul(al5, bh5)) | 0; + mid = (mid + Math.imul(ah5, bl5)) | 0; + hi = (hi + Math.imul(ah5, bh5)) | 0; + lo = (lo + Math.imul(al4, bl6)) | 0; + mid = (mid + Math.imul(al4, bh6)) | 0; + mid = (mid + Math.imul(ah4, bl6)) | 0; + hi = (hi + Math.imul(ah4, bh6)) | 0; + lo = (lo + Math.imul(al3, bl7)) | 0; + mid = (mid + Math.imul(al3, bh7)) | 0; + mid = (mid + Math.imul(ah3, bl7)) | 0; + hi = (hi + Math.imul(ah3, bh7)) | 0; + lo = (lo + Math.imul(al2, bl8)) | 0; + mid = (mid + Math.imul(al2, bh8)) | 0; + mid = (mid + Math.imul(ah2, bl8)) | 0; + hi = (hi + Math.imul(ah2, bh8)) | 0; + lo = (lo + Math.imul(al1, bl9)) | 0; + mid = (mid + Math.imul(al1, bh9)) | 0; + mid = (mid + Math.imul(ah1, bl9)) | 0; + hi = (hi + Math.imul(ah1, bh9)) | 0; + var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0; + w10 &= 0x3ffffff; + /* k = 11 */ + lo = Math.imul(al9, bl2); + mid = Math.imul(al9, bh2); + mid = (mid + Math.imul(ah9, bl2)) | 0; + hi = Math.imul(ah9, bh2); + lo = (lo + Math.imul(al8, bl3)) | 0; + mid = (mid + Math.imul(al8, bh3)) | 0; + mid = (mid + Math.imul(ah8, bl3)) | 0; + hi = (hi + Math.imul(ah8, bh3)) | 0; + lo = (lo + Math.imul(al7, bl4)) | 0; + mid = (mid + Math.imul(al7, bh4)) | 0; + mid = (mid + Math.imul(ah7, bl4)) | 0; + hi = (hi + Math.imul(ah7, bh4)) | 0; + lo = (lo + Math.imul(al6, bl5)) | 0; + mid = (mid + Math.imul(al6, bh5)) | 0; + mid = (mid + Math.imul(ah6, bl5)) | 0; + hi = (hi + Math.imul(ah6, bh5)) | 0; + lo = (lo + Math.imul(al5, bl6)) | 0; + mid = (mid + Math.imul(al5, bh6)) | 0; + mid = (mid + Math.imul(ah5, bl6)) | 0; + hi = (hi + Math.imul(ah5, bh6)) | 0; + lo = (lo + Math.imul(al4, bl7)) | 0; + mid = (mid + Math.imul(al4, bh7)) | 0; + mid = (mid + Math.imul(ah4, bl7)) | 0; + hi = (hi + Math.imul(ah4, bh7)) | 0; + lo = (lo + Math.imul(al3, bl8)) | 0; + mid = (mid + Math.imul(al3, bh8)) | 0; + mid = (mid + Math.imul(ah3, bl8)) | 0; + hi = (hi + Math.imul(ah3, bh8)) | 0; + lo = (lo + Math.imul(al2, bl9)) | 0; + mid = (mid + Math.imul(al2, bh9)) | 0; + mid = (mid + Math.imul(ah2, bl9)) | 0; + hi = (hi + Math.imul(ah2, bh9)) | 0; + var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0; + w11 &= 0x3ffffff; + /* k = 12 */ + lo = Math.imul(al9, bl3); + mid = Math.imul(al9, bh3); + mid = (mid + Math.imul(ah9, bl3)) | 0; + hi = Math.imul(ah9, bh3); + lo = (lo + Math.imul(al8, bl4)) | 0; + mid = (mid + Math.imul(al8, bh4)) | 0; + mid = (mid + Math.imul(ah8, bl4)) | 0; + hi = (hi + Math.imul(ah8, bh4)) | 0; + lo = (lo + Math.imul(al7, bl5)) | 0; + mid = (mid + Math.imul(al7, bh5)) | 0; + mid = (mid + Math.imul(ah7, bl5)) | 0; + hi = (hi + Math.imul(ah7, bh5)) | 0; + lo = (lo + Math.imul(al6, bl6)) | 0; + mid = (mid + Math.imul(al6, bh6)) | 0; + mid = (mid + Math.imul(ah6, bl6)) | 0; + hi = (hi + Math.imul(ah6, bh6)) | 0; + lo = (lo + Math.imul(al5, bl7)) | 0; + mid = (mid + Math.imul(al5, bh7)) | 0; + mid = (mid + Math.imul(ah5, bl7)) | 0; + hi = (hi + Math.imul(ah5, bh7)) | 0; + lo = (lo + Math.imul(al4, bl8)) | 0; + mid = (mid + Math.imul(al4, bh8)) | 0; + mid = (mid + Math.imul(ah4, bl8)) | 0; + hi = (hi + Math.imul(ah4, bh8)) | 0; + lo = (lo + Math.imul(al3, bl9)) | 0; + mid = (mid + Math.imul(al3, bh9)) | 0; + mid = (mid + Math.imul(ah3, bl9)) | 0; + hi = (hi + Math.imul(ah3, bh9)) | 0; + var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0; + w12 &= 0x3ffffff; + /* k = 13 */ + lo = Math.imul(al9, bl4); + mid = Math.imul(al9, bh4); + mid = (mid + Math.imul(ah9, bl4)) | 0; + hi = Math.imul(ah9, bh4); + lo = (lo + Math.imul(al8, bl5)) | 0; + mid = (mid + Math.imul(al8, bh5)) | 0; + mid = (mid + Math.imul(ah8, bl5)) | 0; + hi = (hi + Math.imul(ah8, bh5)) | 0; + lo = (lo + Math.imul(al7, bl6)) | 0; + mid = (mid + Math.imul(al7, bh6)) | 0; + mid = (mid + Math.imul(ah7, bl6)) | 0; + hi = (hi + Math.imul(ah7, bh6)) | 0; + lo = (lo + Math.imul(al6, bl7)) | 0; + mid = (mid + Math.imul(al6, bh7)) | 0; + mid = (mid + Math.imul(ah6, bl7)) | 0; + hi = (hi + Math.imul(ah6, bh7)) | 0; + lo = (lo + Math.imul(al5, bl8)) | 0; + mid = (mid + Math.imul(al5, bh8)) | 0; + mid = (mid + Math.imul(ah5, bl8)) | 0; + hi = (hi + Math.imul(ah5, bh8)) | 0; + lo = (lo + Math.imul(al4, bl9)) | 0; + mid = (mid + Math.imul(al4, bh9)) | 0; + mid = (mid + Math.imul(ah4, bl9)) | 0; + hi = (hi + Math.imul(ah4, bh9)) | 0; + var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0; + w13 &= 0x3ffffff; + /* k = 14 */ + lo = Math.imul(al9, bl5); + mid = Math.imul(al9, bh5); + mid = (mid + Math.imul(ah9, bl5)) | 0; + hi = Math.imul(ah9, bh5); + lo = (lo + Math.imul(al8, bl6)) | 0; + mid = (mid + Math.imul(al8, bh6)) | 0; + mid = (mid + Math.imul(ah8, bl6)) | 0; + hi = (hi + Math.imul(ah8, bh6)) | 0; + lo = (lo + Math.imul(al7, bl7)) | 0; + mid = (mid + Math.imul(al7, bh7)) | 0; + mid = (mid + Math.imul(ah7, bl7)) | 0; + hi = (hi + Math.imul(ah7, bh7)) | 0; + lo = (lo + Math.imul(al6, bl8)) | 0; + mid = (mid + Math.imul(al6, bh8)) | 0; + mid = (mid + Math.imul(ah6, bl8)) | 0; + hi = (hi + Math.imul(ah6, bh8)) | 0; + lo = (lo + Math.imul(al5, bl9)) | 0; + mid = (mid + Math.imul(al5, bh9)) | 0; + mid = (mid + Math.imul(ah5, bl9)) | 0; + hi = (hi + Math.imul(ah5, bh9)) | 0; + var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0; + w14 &= 0x3ffffff; + /* k = 15 */ + lo = Math.imul(al9, bl6); + mid = Math.imul(al9, bh6); + mid = (mid + Math.imul(ah9, bl6)) | 0; + hi = Math.imul(ah9, bh6); + lo = (lo + Math.imul(al8, bl7)) | 0; + mid = (mid + Math.imul(al8, bh7)) | 0; + mid = (mid + Math.imul(ah8, bl7)) | 0; + hi = (hi + Math.imul(ah8, bh7)) | 0; + lo = (lo + Math.imul(al7, bl8)) | 0; + mid = (mid + Math.imul(al7, bh8)) | 0; + mid = (mid + Math.imul(ah7, bl8)) | 0; + hi = (hi + Math.imul(ah7, bh8)) | 0; + lo = (lo + Math.imul(al6, bl9)) | 0; + mid = (mid + Math.imul(al6, bh9)) | 0; + mid = (mid + Math.imul(ah6, bl9)) | 0; + hi = (hi + Math.imul(ah6, bh9)) | 0; + var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0; + w15 &= 0x3ffffff; + /* k = 16 */ + lo = Math.imul(al9, bl7); + mid = Math.imul(al9, bh7); + mid = (mid + Math.imul(ah9, bl7)) | 0; + hi = Math.imul(ah9, bh7); + lo = (lo + Math.imul(al8, bl8)) | 0; + mid = (mid + Math.imul(al8, bh8)) | 0; + mid = (mid + Math.imul(ah8, bl8)) | 0; + hi = (hi + Math.imul(ah8, bh8)) | 0; + lo = (lo + Math.imul(al7, bl9)) | 0; + mid = (mid + Math.imul(al7, bh9)) | 0; + mid = (mid + Math.imul(ah7, bl9)) | 0; + hi = (hi + Math.imul(ah7, bh9)) | 0; + var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0; + w16 &= 0x3ffffff; + /* k = 17 */ + lo = Math.imul(al9, bl8); + mid = Math.imul(al9, bh8); + mid = (mid + Math.imul(ah9, bl8)) | 0; + hi = Math.imul(ah9, bh8); + lo = (lo + Math.imul(al8, bl9)) | 0; + mid = (mid + Math.imul(al8, bh9)) | 0; + mid = (mid + Math.imul(ah8, bl9)) | 0; + hi = (hi + Math.imul(ah8, bh9)) | 0; + var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0; + w17 &= 0x3ffffff; + /* k = 18 */ + lo = Math.imul(al9, bl9); + mid = Math.imul(al9, bh9); + mid = (mid + Math.imul(ah9, bl9)) | 0; + hi = Math.imul(ah9, bh9); + var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0; + w18 &= 0x3ffffff; + o[0] = w0; + o[1] = w1; + o[2] = w2; + o[3] = w3; + o[4] = w4; + o[5] = w5; + o[6] = w6; + o[7] = w7; + o[8] = w8; + o[9] = w9; + o[10] = w10; + o[11] = w11; + o[12] = w12; + o[13] = w13; + o[14] = w14; + o[15] = w15; + o[16] = w16; + o[17] = w17; + o[18] = w18; + if (c !== 0) { + o[19] = c; + out.length++; + } + return out; + }; + + // Polyfill comb + if (!Math.imul) { + comb10MulTo = smallMulTo; + } + + function bigMulTo (self, num, out) { + out.negative = num.negative ^ self.negative; + out.length = self.length + num.length; + + var carry = 0; + var hncarry = 0; + for (var k = 0; k < out.length - 1; k++) { + // Sum all words with the same `i + j = k` and accumulate `ncarry`, + // note that ncarry could be >= 0x3ffffff + var ncarry = hncarry; + hncarry = 0; + var rword = carry & 0x3ffffff; + var maxJ = Math.min(k, num.length - 1); + for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) { + var i = k - j; + var a = self.words[i] | 0; + var b = num.words[j] | 0; + var r = a * b; + + var lo = r & 0x3ffffff; + ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0; + lo = (lo + rword) | 0; + rword = lo & 0x3ffffff; + ncarry = (ncarry + (lo >>> 26)) | 0; + + hncarry += ncarry >>> 26; + ncarry &= 0x3ffffff; } + out.words[k] = rword; + carry = ncarry; + ncarry = hncarry; + } + if (carry !== 0) { + out.words[k] = carry; + } else { + out.length--; } - valuesByKey.each(function(values, key) { - setResult(result, key, apply(values, depth, createResult, setResult)); - }); + return out.strip(); + } - return result; + function jumboMulTo (self, num, out) { + var fftm = new FFTM(); + return fftm.mulp(self, num, out); } - function entries(map$$1, depth) { - if (++depth > keys.length) return map$$1; - var array, sortKey = sortKeys[depth - 1]; - if (rollup != null && depth >= keys.length) array = map$$1.entries(); - else array = [], map$$1.each(function(v, k) { array.push({key: k, values: entries(v, depth)}); }); - return sortKey != null ? array.sort(function(a, b) { return sortKey(a.key, b.key); }) : array; + BN.prototype.mulTo = function mulTo (num, out) { + var res; + var len = this.length + num.length; + if (this.length === 10 && num.length === 10) { + res = comb10MulTo(this, num, out); + } else if (len < 63) { + res = smallMulTo(this, num, out); + } else if (len < 1024) { + res = bigMulTo(this, num, out); + } else { + res = jumboMulTo(this, num, out); + } + + return res; + }; + + // Cooley-Tukey algorithm for FFT + // slightly revisited to rely on looping instead of recursion + + function FFTM (x, y) { + this.x = x; + this.y = y; } - return nest = { - object: function(array) { return apply(array, 0, createObject, setObject); }, - map: function(array) { return apply(array, 0, createMap, setMap); }, - entries: function(array) { return entries(apply(array, 0, createMap, setMap), 0); }, - key: function(d) { keys.push(d); return nest; }, - sortKeys: function(order) { sortKeys[keys.length - 1] = order; return nest; }, - sortValues: function(order) { sortValues = order; return nest; }, - rollup: function(f) { rollup = f; return nest; } + FFTM.prototype.makeRBT = function makeRBT (N) { + var t = new Array(N); + var l = BN.prototype._countBits(N) - 1; + for (var i = 0; i < N; i++) { + t[i] = this.revBin(i, l, N); + } + + return t; }; -} -function createObject() { - return {}; -} + // Returns binary-reversed representation of `x` + FFTM.prototype.revBin = function revBin (x, l, N) { + if (x === 0 || x === N - 1) return x; -function setObject(object, key, value) { - object[key] = value; -} + var rb = 0; + for (var i = 0; i < l; i++) { + rb |= (x & 1) << (l - i - 1); + x >>= 1; + } -function createMap() { - return map(); -} + return rb; + }; -function setMap(map$$1, key, value) { - map$$1.set(key, value); -} + // Performs "tweedling" phase, therefore 'emulating' + // behaviour of the recursive algorithm + FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) { + for (var i = 0; i < N; i++) { + rtws[i] = rws[rbt[i]]; + itws[i] = iws[rbt[i]]; + } + }; -function Set() {} + FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) { + this.permute(rbt, rws, iws, rtws, itws, N); -var proto = map.prototype; + for (var s = 1; s < N; s <<= 1) { + var l = s << 1; -Set.prototype = set.prototype = { - constructor: Set, - has: proto.has, - add: function(value) { - value += ""; - this[prefix + value] = value; - return this; - }, - remove: proto.remove, - clear: proto.clear, - values: proto.keys, - size: proto.size, - empty: proto.empty, - each: proto.each -}; + var rtwdf = Math.cos(2 * Math.PI / l); + var itwdf = Math.sin(2 * Math.PI / l); -function set(object, f) { - var set = new Set; + for (var p = 0; p < N; p += l) { + var rtwdf_ = rtwdf; + var itwdf_ = itwdf; - // Copy constructor. - if (object instanceof Set) object.each(function(value) { set.add(value); }); + for (var j = 0; j < s; j++) { + var re = rtws[p + j]; + var ie = itws[p + j]; - // Otherwise, assume it’s an array. - else if (object) { - var i = -1, n = object.length; - if (f == null) while (++i < n) set.add(object[i]); - else while (++i < n) set.add(f(object[i], i, object)); - } + var ro = rtws[p + j + s]; + var io = itws[p + j + s]; - return set; -} + var rx = rtwdf_ * ro - itwdf_ * io; -function keys(map) { - var keys = []; - for (var key in map) keys.push(key); - return keys; -} + io = rtwdf_ * io + itwdf_ * ro; + ro = rx; -function values(map) { - var values = []; - for (var key in map) values.push(map[key]); - return values; -} + rtws[p + j] = re + ro; + itws[p + j] = ie + io; -function entries(map) { - var entries = []; - for (var key in map) entries.push({key: key, value: map[key]}); - return entries; -} + rtws[p + j + s] = re - ro; + itws[p + j + s] = ie - io; -exports.nest = nest; -exports.set = set; -exports.map = map; -exports.keys = keys; -exports.values = values; -exports.entries = entries; + /* jshint maxdepth : false */ + if (j !== l) { + rx = rtwdf * rtwdf_ - itwdf * itwdf_; -Object.defineProperty(exports, '__esModule', { value: true }); + itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_; + rtwdf_ = rx; + } + } + } + } + }; -}))); + FFTM.prototype.guessLen13b = function guessLen13b (n, m) { + var N = Math.max(m, n) | 1; + var odd = N & 1; + var i = 0; + for (N = N / 2 | 0; N; N = N >>> 1) { + i++; + } -},{}],158:[function(_dereq_,module,exports){ -// https://d3js.org/d3-color/ v1.4.1 Copyright 2020 Mike Bostock -(function (global, factory) { -typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : -typeof define === 'function' && define.amd ? define(['exports'], factory) : -(global = global || self, factory(global.d3 = global.d3 || {})); -}(this, function (exports) { 'use strict'; + return 1 << i + 1 + odd; + }; -function define(constructor, factory, prototype) { - constructor.prototype = factory.prototype = prototype; - prototype.constructor = constructor; -} + FFTM.prototype.conjugate = function conjugate (rws, iws, N) { + if (N <= 1) return; -function extend(parent, definition) { - var prototype = Object.create(parent.prototype); - for (var key in definition) prototype[key] = definition[key]; - return prototype; -} + for (var i = 0; i < N / 2; i++) { + var t = rws[i]; -function Color() {} + rws[i] = rws[N - i - 1]; + rws[N - i - 1] = t; -var darker = 0.7; -var brighter = 1 / darker; + t = iws[i]; -var reI = "\\s*([+-]?\\d+)\\s*", - reN = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*", - reP = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*", - reHex = /^#([0-9a-f]{3,8})$/, - reRgbInteger = new RegExp("^rgb\\(" + [reI, reI, reI] + "\\)$"), - reRgbPercent = new RegExp("^rgb\\(" + [reP, reP, reP] + "\\)$"), - reRgbaInteger = new RegExp("^rgba\\(" + [reI, reI, reI, reN] + "\\)$"), - reRgbaPercent = new RegExp("^rgba\\(" + [reP, reP, reP, reN] + "\\)$"), - reHslPercent = new RegExp("^hsl\\(" + [reN, reP, reP] + "\\)$"), - reHslaPercent = new RegExp("^hsla\\(" + [reN, reP, reP, reN] + "\\)$"); + iws[i] = -iws[N - i - 1]; + iws[N - i - 1] = -t; + } + }; -var named = { - aliceblue: 0xf0f8ff, - antiquewhite: 0xfaebd7, - aqua: 0x00ffff, - aquamarine: 0x7fffd4, - azure: 0xf0ffff, - beige: 0xf5f5dc, - bisque: 0xffe4c4, - black: 0x000000, - blanchedalmond: 0xffebcd, - blue: 0x0000ff, - blueviolet: 0x8a2be2, - brown: 0xa52a2a, - burlywood: 0xdeb887, - cadetblue: 0x5f9ea0, - chartreuse: 0x7fff00, - chocolate: 0xd2691e, - coral: 0xff7f50, - cornflowerblue: 0x6495ed, - cornsilk: 0xfff8dc, - crimson: 0xdc143c, - cyan: 0x00ffff, - darkblue: 0x00008b, - darkcyan: 0x008b8b, - darkgoldenrod: 0xb8860b, - darkgray: 0xa9a9a9, - darkgreen: 0x006400, - darkgrey: 0xa9a9a9, - darkkhaki: 0xbdb76b, - darkmagenta: 0x8b008b, - darkolivegreen: 0x556b2f, - darkorange: 0xff8c00, - darkorchid: 0x9932cc, - darkred: 0x8b0000, - darksalmon: 0xe9967a, - darkseagreen: 0x8fbc8f, - darkslateblue: 0x483d8b, - darkslategray: 0x2f4f4f, - darkslategrey: 0x2f4f4f, - darkturquoise: 0x00ced1, - darkviolet: 0x9400d3, - deeppink: 0xff1493, - deepskyblue: 0x00bfff, - dimgray: 0x696969, - dimgrey: 0x696969, - dodgerblue: 0x1e90ff, - firebrick: 0xb22222, - floralwhite: 0xfffaf0, - forestgreen: 0x228b22, - fuchsia: 0xff00ff, - gainsboro: 0xdcdcdc, - ghostwhite: 0xf8f8ff, - gold: 0xffd700, - goldenrod: 0xdaa520, - gray: 0x808080, - green: 0x008000, - greenyellow: 0xadff2f, - grey: 0x808080, - honeydew: 0xf0fff0, - hotpink: 0xff69b4, - indianred: 0xcd5c5c, - indigo: 0x4b0082, - ivory: 0xfffff0, - khaki: 0xf0e68c, - lavender: 0xe6e6fa, - lavenderblush: 0xfff0f5, - lawngreen: 0x7cfc00, - lemonchiffon: 0xfffacd, - lightblue: 0xadd8e6, - lightcoral: 0xf08080, - lightcyan: 0xe0ffff, - lightgoldenrodyellow: 0xfafad2, - lightgray: 0xd3d3d3, - lightgreen: 0x90ee90, - lightgrey: 0xd3d3d3, - lightpink: 0xffb6c1, - lightsalmon: 0xffa07a, - lightseagreen: 0x20b2aa, - lightskyblue: 0x87cefa, - lightslategray: 0x778899, - lightslategrey: 0x778899, - lightsteelblue: 0xb0c4de, - lightyellow: 0xffffe0, - lime: 0x00ff00, - limegreen: 0x32cd32, - linen: 0xfaf0e6, - magenta: 0xff00ff, - maroon: 0x800000, - mediumaquamarine: 0x66cdaa, - mediumblue: 0x0000cd, - mediumorchid: 0xba55d3, - mediumpurple: 0x9370db, - mediumseagreen: 0x3cb371, - mediumslateblue: 0x7b68ee, - mediumspringgreen: 0x00fa9a, - mediumturquoise: 0x48d1cc, - mediumvioletred: 0xc71585, - midnightblue: 0x191970, - mintcream: 0xf5fffa, - mistyrose: 0xffe4e1, - moccasin: 0xffe4b5, - navajowhite: 0xffdead, - navy: 0x000080, - oldlace: 0xfdf5e6, - olive: 0x808000, - olivedrab: 0x6b8e23, - orange: 0xffa500, - orangered: 0xff4500, - orchid: 0xda70d6, - palegoldenrod: 0xeee8aa, - palegreen: 0x98fb98, - paleturquoise: 0xafeeee, - palevioletred: 0xdb7093, - papayawhip: 0xffefd5, - peachpuff: 0xffdab9, - peru: 0xcd853f, - pink: 0xffc0cb, - plum: 0xdda0dd, - powderblue: 0xb0e0e6, - purple: 0x800080, - rebeccapurple: 0x663399, - red: 0xff0000, - rosybrown: 0xbc8f8f, - royalblue: 0x4169e1, - saddlebrown: 0x8b4513, - salmon: 0xfa8072, - sandybrown: 0xf4a460, - seagreen: 0x2e8b57, - seashell: 0xfff5ee, - sienna: 0xa0522d, - silver: 0xc0c0c0, - skyblue: 0x87ceeb, - slateblue: 0x6a5acd, - slategray: 0x708090, - slategrey: 0x708090, - snow: 0xfffafa, - springgreen: 0x00ff7f, - steelblue: 0x4682b4, - tan: 0xd2b48c, - teal: 0x008080, - thistle: 0xd8bfd8, - tomato: 0xff6347, - turquoise: 0x40e0d0, - violet: 0xee82ee, - wheat: 0xf5deb3, - white: 0xffffff, - whitesmoke: 0xf5f5f5, - yellow: 0xffff00, - yellowgreen: 0x9acd32 -}; - -define(Color, color, { - copy: function(channels) { - return Object.assign(new this.constructor, this, channels); - }, - displayable: function() { - return this.rgb().displayable(); - }, - hex: color_formatHex, // Deprecated! Use color.formatHex. - formatHex: color_formatHex, - formatHsl: color_formatHsl, - formatRgb: color_formatRgb, - toString: color_formatRgb -}); + FFTM.prototype.normalize13b = function normalize13b (ws, N) { + var carry = 0; + for (var i = 0; i < N / 2; i++) { + var w = Math.round(ws[2 * i + 1] / N) * 0x2000 + + Math.round(ws[2 * i] / N) + + carry; -function color_formatHex() { - return this.rgb().formatHex(); -} + ws[i] = w & 0x3ffffff; -function color_formatHsl() { - return hslConvert(this).formatHsl(); -} + if (w < 0x4000000) { + carry = 0; + } else { + carry = w / 0x4000000 | 0; + } + } -function color_formatRgb() { - return this.rgb().formatRgb(); -} + return ws; + }; -function color(format) { - var m, l; - format = (format + "").trim().toLowerCase(); - return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000 - : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00 - : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000 - : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000 - : null) // invalid hex - : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0) - : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%) - : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1) - : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1) - : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%) - : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1) - : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins - : format === "transparent" ? new Rgb(NaN, NaN, NaN, 0) - : null; -} + FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) { + var carry = 0; + for (var i = 0; i < len; i++) { + carry = carry + (ws[i] | 0); -function rgbn(n) { - return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1); -} + rws[2 * i] = carry & 0x1fff; carry = carry >>> 13; + rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13; + } -function rgba(r, g, b, a) { - if (a <= 0) r = g = b = NaN; - return new Rgb(r, g, b, a); -} + // Pad with zeroes + for (i = 2 * len; i < N; ++i) { + rws[i] = 0; + } -function rgbConvert(o) { - if (!(o instanceof Color)) o = color(o); - if (!o) return new Rgb; - o = o.rgb(); - return new Rgb(o.r, o.g, o.b, o.opacity); -} + assert(carry === 0); + assert((carry & ~0x1fff) === 0); + }; -function rgb(r, g, b, opacity) { - return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity); -} + FFTM.prototype.stub = function stub (N) { + var ph = new Array(N); + for (var i = 0; i < N; i++) { + ph[i] = 0; + } -function Rgb(r, g, b, opacity) { - this.r = +r; - this.g = +g; - this.b = +b; - this.opacity = +opacity; -} + return ph; + }; -define(Rgb, rgb, extend(Color, { - brighter: function(k) { - k = k == null ? brighter : Math.pow(brighter, k); - return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity); - }, - darker: function(k) { - k = k == null ? darker : Math.pow(darker, k); - return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity); - }, - rgb: function() { - return this; - }, - displayable: function() { - return (-0.5 <= this.r && this.r < 255.5) - && (-0.5 <= this.g && this.g < 255.5) - && (-0.5 <= this.b && this.b < 255.5) - && (0 <= this.opacity && this.opacity <= 1); - }, - hex: rgb_formatHex, // Deprecated! Use color.formatHex. - formatHex: rgb_formatHex, - formatRgb: rgb_formatRgb, - toString: rgb_formatRgb -})); + FFTM.prototype.mulp = function mulp (x, y, out) { + var N = 2 * this.guessLen13b(x.length, y.length); -function rgb_formatHex() { - return "#" + hex(this.r) + hex(this.g) + hex(this.b); -} + var rbt = this.makeRBT(N); -function rgb_formatRgb() { - var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a)); - return (a === 1 ? "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)) - + (a === 1 ? ")" : ", " + a + ")"); -} + var _ = this.stub(N); -function hex(value) { - value = Math.max(0, Math.min(255, Math.round(value) || 0)); - return (value < 16 ? "0" : "") + value.toString(16); -} + var rws = new Array(N); + var rwst = new Array(N); + var iwst = new Array(N); -function hsla(h, s, l, a) { - if (a <= 0) h = s = l = NaN; - else if (l <= 0 || l >= 1) h = s = NaN; - else if (s <= 0) h = NaN; - return new Hsl(h, s, l, a); -} + var nrws = new Array(N); + var nrwst = new Array(N); + var niwst = new Array(N); -function hslConvert(o) { - if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity); - if (!(o instanceof Color)) o = color(o); - if (!o) return new Hsl; - if (o instanceof Hsl) return o; - o = o.rgb(); - var r = o.r / 255, - g = o.g / 255, - b = o.b / 255, - min = Math.min(r, g, b), - max = Math.max(r, g, b), - h = NaN, - s = max - min, - l = (max + min) / 2; - if (s) { - if (r === max) h = (g - b) / s + (g < b) * 6; - else if (g === max) h = (b - r) / s + 2; - else h = (r - g) / s + 4; - s /= l < 0.5 ? max + min : 2 - max - min; - h *= 60; - } else { - s = l > 0 && l < 1 ? 0 : h; - } - return new Hsl(h, s, l, o.opacity); -} + var rmws = out.words; + rmws.length = N; -function hsl(h, s, l, opacity) { - return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity); -} + this.convert13b(x.words, x.length, rws, N); + this.convert13b(y.words, y.length, nrws, N); -function Hsl(h, s, l, opacity) { - this.h = +h; - this.s = +s; - this.l = +l; - this.opacity = +opacity; -} + this.transform(rws, _, rwst, iwst, N, rbt); + this.transform(nrws, _, nrwst, niwst, N, rbt); -define(Hsl, hsl, extend(Color, { - brighter: function(k) { - k = k == null ? brighter : Math.pow(brighter, k); - return new Hsl(this.h, this.s, this.l * k, this.opacity); - }, - darker: function(k) { - k = k == null ? darker : Math.pow(darker, k); - return new Hsl(this.h, this.s, this.l * k, this.opacity); - }, - rgb: function() { - var h = this.h % 360 + (this.h < 0) * 360, - s = isNaN(h) || isNaN(this.s) ? 0 : this.s, - l = this.l, - m2 = l + (l < 0.5 ? l : 1 - l) * s, - m1 = 2 * l - m2; - return new Rgb( - hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2), - hsl2rgb(h, m1, m2), - hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2), - 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 a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a)); - return (a === 1 ? "hsl(" : "hsla(") - + (this.h || 0) + ", " - + (this.s || 0) * 100 + "%, " - + (this.l || 0) * 100 + "%" - + (a === 1 ? ")" : ", " + a + ")"); - } -})); + for (var i = 0; i < N; i++) { + var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i]; + iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i]; + rwst[i] = rx; + } -/* From FvD 13.37, CSS Color Module Level 3 */ -function hsl2rgb(h, m1, m2) { - return (h < 60 ? m1 + (m2 - m1) * h / 60 - : h < 180 ? m2 - : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 - : m1) * 255; -} + this.conjugate(rwst, iwst, N); + this.transform(rwst, iwst, rmws, _, N, rbt); + this.conjugate(rmws, _, N); + this.normalize13b(rmws, N); -var deg2rad = Math.PI / 180; -var rad2deg = 180 / Math.PI; + out.negative = x.negative ^ y.negative; + out.length = x.length + y.length; + return out.strip(); + }; -// https://observablehq.com/@mbostock/lab-and-rgb -var K = 18, - Xn = 0.96422, - Yn = 1, - Zn = 0.82521, - t0 = 4 / 29, - t1 = 6 / 29, - t2 = 3 * t1 * t1, - t3 = t1 * t1 * t1; + // Multiply `this` by `num` + BN.prototype.mul = function mul (num) { + var out = new BN(null); + out.words = new Array(this.length + num.length); + return this.mulTo(num, out); + }; -function labConvert(o) { - if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity); - if (o instanceof Hcl) return hcl2lab(o); - if (!(o instanceof Rgb)) o = rgbConvert(o); - var r = rgb2lrgb(o.r), - g = rgb2lrgb(o.g), - b = rgb2lrgb(o.b), - y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z; - if (r === g && g === b) x = z = y; else { - x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn); - z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn); - } - return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity); -} + // Multiply employing FFT + BN.prototype.mulf = function mulf (num) { + var out = new BN(null); + out.words = new Array(this.length + num.length); + return jumboMulTo(this, num, out); + }; -function gray(l, opacity) { - return new Lab(l, 0, 0, opacity == null ? 1 : opacity); -} + // In-place Multiplication + BN.prototype.imul = function imul (num) { + return this.clone().mulTo(num, this); + }; -function lab(l, a, b, opacity) { - return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity); -} + BN.prototype.imuln = function imuln (num) { + assert(typeof num === 'number'); + assert(num < 0x4000000); -function Lab(l, a, b, opacity) { - this.l = +l; - this.a = +a; - this.b = +b; - this.opacity = +opacity; -} + // Carry + var carry = 0; + for (var i = 0; i < this.length; i++) { + var w = (this.words[i] | 0) * num; + var lo = (w & 0x3ffffff) + (carry & 0x3ffffff); + carry >>= 26; + carry += (w / 0x4000000) | 0; + // NOTE: lo is 27bit maximum + carry += lo >>> 26; + this.words[i] = lo & 0x3ffffff; + } -define(Lab, lab, extend(Color, { - brighter: function(k) { - return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity); - }, - darker: function(k) { - return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity); - }, - rgb: function() { - var y = (this.l + 16) / 116, - x = isNaN(this.a) ? y : y + this.a / 500, - z = isNaN(this.b) ? y : y - this.b / 200; - x = Xn * lab2xyz(x); - y = Yn * lab2xyz(y); - z = Zn * lab2xyz(z); - return new Rgb( - lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z), - lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z), - lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z), - this.opacity - ); - } -})); + if (carry !== 0) { + this.words[i] = carry; + this.length++; + } -function xyz2lab(t) { - return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0; -} + return this; + }; -function lab2xyz(t) { - return t > t1 ? t * t * t : t2 * (t - t0); -} + BN.prototype.muln = function muln (num) { + return this.clone().imuln(num); + }; -function lrgb2rgb(x) { - return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055); -} + // `this` * `this` + BN.prototype.sqr = function sqr () { + return this.mul(this); + }; -function rgb2lrgb(x) { - return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4); -} + // `this` * `this` in-place + BN.prototype.isqr = function isqr () { + return this.imul(this.clone()); + }; -function hclConvert(o) { - if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity); - if (!(o instanceof Lab)) o = labConvert(o); - if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity); - var h = Math.atan2(o.b, o.a) * rad2deg; - return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity); -} + // Math.pow(`this`, `num`) + BN.prototype.pow = function pow (num) { + var w = toBitArray(num); + if (w.length === 0) return new BN(1); -function lch(l, c, h, opacity) { - return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity); -} + // Skip leading zeroes + var res = this; + for (var i = 0; i < w.length; i++, res = res.sqr()) { + if (w[i] !== 0) break; + } -function hcl(h, c, l, opacity) { - return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity); -} + if (++i < w.length) { + for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) { + if (w[i] === 0) continue; -function Hcl(h, c, l, opacity) { - this.h = +h; - this.c = +c; - this.l = +l; - this.opacity = +opacity; -} + res = res.mul(q); + } + } -function hcl2lab(o) { - if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity); - var h = o.h * deg2rad; - return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity); -} + return res; + }; -define(Hcl, hcl, extend(Color, { - brighter: function(k) { - return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity); - }, - darker: function(k) { - return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity); - }, - rgb: function() { - return hcl2lab(this).rgb(); - } -})); + // Shift-left in-place + BN.prototype.iushln = function iushln (bits) { + assert(typeof bits === 'number' && bits >= 0); + var r = bits % 26; + var s = (bits - r) / 26; + var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r); + var i; -var A = -0.14861, - B = +1.78277, - C = -0.29227, - D = -0.90649, - E = +1.97294, - ED = E * D, - EB = E * B, - BC_DA = B * C - D * A; + if (r !== 0) { + var carry = 0; -function cubehelixConvert(o) { - if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity); - if (!(o instanceof Rgb)) o = rgbConvert(o); - var r = o.r / 255, - g = o.g / 255, - b = o.b / 255, - l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB), - bl = b - l, - k = (E * (g - l) - C * bl) / D, - s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1 - h = s ? Math.atan2(k, bl) * rad2deg - 120 : NaN; - return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity); -} + for (i = 0; i < this.length; i++) { + var newCarry = this.words[i] & carryMask; + var c = ((this.words[i] | 0) - newCarry) << r; + this.words[i] = c | carry; + carry = newCarry >>> (26 - r); + } -function cubehelix(h, s, l, opacity) { - return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity); -} + if (carry) { + this.words[i] = carry; + this.length++; + } + } -function Cubehelix(h, s, l, opacity) { - this.h = +h; - this.s = +s; - this.l = +l; - this.opacity = +opacity; -} + if (s !== 0) { + for (i = this.length - 1; i >= 0; i--) { + this.words[i + s] = this.words[i]; + } -define(Cubehelix, cubehelix, extend(Color, { - brighter: function(k) { - k = k == null ? brighter : Math.pow(brighter, k); - return new Cubehelix(this.h, this.s, this.l * k, this.opacity); - }, - darker: function(k) { - k = k == null ? darker : Math.pow(darker, k); - return new Cubehelix(this.h, this.s, this.l * k, this.opacity); - }, - rgb: function() { - var h = isNaN(this.h) ? 0 : (this.h + 120) * deg2rad, - l = +this.l, - a = isNaN(this.s) ? 0 : this.s * l * (1 - l), - cosh = Math.cos(h), - sinh = Math.sin(h); - return new Rgb( - 255 * (l + a * (A * cosh + B * sinh)), - 255 * (l + a * (C * cosh + D * sinh)), - 255 * (l + a * (E * cosh)), - this.opacity - ); - } -})); + for (i = 0; i < s; i++) { + this.words[i] = 0; + } -exports.color = color; -exports.cubehelix = cubehelix; -exports.gray = gray; -exports.hcl = hcl; -exports.hsl = hsl; -exports.lab = lab; -exports.lch = lch; -exports.rgb = rgb; + this.length += s; + } -Object.defineProperty(exports, '__esModule', { value: true }); + return this.strip(); + }; -})); + BN.prototype.ishln = function ishln (bits) { + // TODO(indutny): implement me + assert(this.negative === 0); + return this.iushln(bits); + }; -},{}],159:[function(_dereq_,module,exports){ -// https://d3js.org/d3-dispatch/ v1.0.6 Copyright 2019 Mike Bostock -(function (global, factory) { -typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : -typeof define === 'function' && define.amd ? define(['exports'], factory) : -(global = global || self, factory(global.d3 = global.d3 || {})); -}(this, function (exports) { 'use strict'; + // Shift-right in-place + // NOTE: `hint` is a lowest bit before trailing zeroes + // NOTE: if `extended` is present - it will be filled with destroyed bits + BN.prototype.iushrn = function iushrn (bits, hint, extended) { + assert(typeof bits === 'number' && bits >= 0); + var h; + if (hint) { + h = (hint - (hint % 26)) / 26; + } else { + h = 0; + } -var noop = {value: function() {}}; + var r = bits % 26; + var s = Math.min((bits - r) / 26, this.length); + var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r); + var maskedWords = extended; -function dispatch() { - for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) { - if (!(t = arguments[i] + "") || (t in _) || /[\s.]/.test(t)) throw new Error("illegal type: " + t); - _[t] = []; - } - return new Dispatch(_); -} + h -= s; + h = Math.max(0, h); -function Dispatch(_) { - this._ = _; -} + // Extended mode, copy masked part + if (maskedWords) { + for (var i = 0; i < s; i++) { + maskedWords.words[i] = this.words[i]; + } + maskedWords.length = s; + } -function parseTypenames(typenames, types) { - return typenames.trim().split(/^|\s+/).map(function(t) { - var name = "", i = t.indexOf("."); - if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i); - if (t && !types.hasOwnProperty(t)) throw new Error("unknown type: " + t); - return {type: t, name: name}; - }); -} + if (s === 0) { + // No-op, we should not move anything at all + } else if (this.length > s) { + this.length -= s; + for (i = 0; i < this.length; i++) { + this.words[i] = this.words[i + s]; + } + } else { + this.words[0] = 0; + this.length = 1; + } -Dispatch.prototype = dispatch.prototype = { - constructor: Dispatch, - on: function(typename, callback) { - var _ = this._, - T = parseTypenames(typename + "", _), - t, - i = -1, - n = T.length; + var carry = 0; + for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) { + var word = this.words[i] | 0; + this.words[i] = (carry << (26 - r)) | (word >>> r); + carry = word & mask; + } - // If no callback was specified, return the callback of the given type and name. - if (arguments.length < 2) { - while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t; - return; + // Push carried bits as a mask + if (maskedWords && carry !== 0) { + maskedWords.words[maskedWords.length++] = carry; } - // If a type was specified, set the callback for the given type and name. - // Otherwise, if a null callback was specified, remove callbacks of the given name. - if (callback != null && typeof callback !== "function") throw new Error("invalid callback: " + callback); - while (++i < n) { - if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback); - else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null); + if (this.length === 0) { + this.words[0] = 0; + this.length = 1; } - return this; - }, - copy: function() { - var copy = {}, _ = this._; - for (var t in _) copy[t] = _[t].slice(); - return new Dispatch(copy); - }, - call: function(type, that) { - if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2]; - if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type); - for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args); - }, - apply: function(type, that, args) { - if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type); - for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args); - } -}; + return this.strip(); + }; -function get(type, name) { - for (var i = 0, n = type.length, c; i < n; ++i) { - if ((c = type[i]).name === name) { - return c.value; - } - } -} + BN.prototype.ishrn = function ishrn (bits, hint, extended) { + // TODO(indutny): implement me + assert(this.negative === 0); + return this.iushrn(bits, hint, extended); + }; -function set(type, name, callback) { - for (var i = 0, n = type.length; i < n; ++i) { - if (type[i].name === name) { - type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1)); - break; - } - } - if (callback != null) type.push({name: name, value: callback}); - return type; -} + // Shift-left + BN.prototype.shln = function shln (bits) { + return this.clone().ishln(bits); + }; -exports.dispatch = dispatch; + BN.prototype.ushln = function ushln (bits) { + return this.clone().iushln(bits); + }; -Object.defineProperty(exports, '__esModule', { value: true }); + // Shift-right + BN.prototype.shrn = function shrn (bits) { + return this.clone().ishrn(bits); + }; -})); + BN.prototype.ushrn = function ushrn (bits) { + return this.clone().iushrn(bits); + }; -},{}],160:[function(_dereq_,module,exports){ -// https://d3js.org/d3-force/ v1.2.1 Copyright 2019 Mike Bostock -(function (global, factory) { -typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, _dereq_('d3-quadtree'), _dereq_('d3-collection'), _dereq_('d3-dispatch'), _dereq_('d3-timer')) : -typeof define === 'function' && define.amd ? define(['exports', 'd3-quadtree', 'd3-collection', 'd3-dispatch', 'd3-timer'], factory) : -(factory((global.d3 = global.d3 || {}),global.d3,global.d3,global.d3,global.d3)); -}(this, (function (exports,d3Quadtree,d3Collection,d3Dispatch,d3Timer) { 'use strict'; + // Test if n bit is set + BN.prototype.testn = function testn (bit) { + assert(typeof bit === 'number' && bit >= 0); + var r = bit % 26; + var s = (bit - r) / 26; + var q = 1 << r; -function center(x, y) { - var nodes; + // Fast case: bit is much higher than all existing words + if (this.length <= s) return false; - if (x == null) x = 0; - if (y == null) y = 0; + // Check bit and return + var w = this.words[s]; - function force() { - var i, - n = nodes.length, - node, - sx = 0, - sy = 0; + return !!(w & q); + }; - for (i = 0; i < n; ++i) { - node = nodes[i], sx += node.x, sy += node.y; + // Return only lowers bits of number (in-place) + BN.prototype.imaskn = function imaskn (bits) { + assert(typeof bits === 'number' && bits >= 0); + var r = bits % 26; + var s = (bits - r) / 26; + + assert(this.negative === 0, 'imaskn works only with positive numbers'); + + if (this.length <= s) { + return this; } - for (sx = sx / n - x, sy = sy / n - y, i = 0; i < n; ++i) { - node = nodes[i], node.x -= sx, node.y -= sy; + if (r !== 0) { + s++; } - } + this.length = Math.min(s, this.length); - force.initialize = function(_) { - nodes = _; - }; + if (r !== 0) { + var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r); + this.words[this.length - 1] &= mask; + } - force.x = function(_) { - return arguments.length ? (x = +_, force) : x; + return this.strip(); }; - force.y = function(_) { - return arguments.length ? (y = +_, force) : y; + // Return only lowers bits of number + BN.prototype.maskn = function maskn (bits) { + return this.clone().imaskn(bits); }; - return force; -} + // Add plain number `num` to `this` + BN.prototype.iaddn = function iaddn (num) { + assert(typeof num === 'number'); + assert(num < 0x4000000); + if (num < 0) return this.isubn(-num); -function constant(x) { - return function() { - return x; - }; -} + // Possible sign change + if (this.negative !== 0) { + if (this.length === 1 && (this.words[0] | 0) < num) { + this.words[0] = num - (this.words[0] | 0); + this.negative = 0; + return this; + } -function jiggle() { - return (Math.random() - 0.5) * 1e-6; -} + this.negative = 0; + this.isubn(num); + this.negative = 1; + return this; + } -function x(d) { - return d.x + d.vx; -} + // Add without checks + return this._iaddn(num); + }; -function y(d) { - return d.y + d.vy; -} + BN.prototype._iaddn = function _iaddn (num) { + this.words[0] += num; -function collide(radius) { - var nodes, - radii, - strength = 1, - iterations = 1; + // Carry + for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) { + this.words[i] -= 0x4000000; + if (i === this.length - 1) { + this.words[i + 1] = 1; + } else { + this.words[i + 1]++; + } + } + this.length = Math.max(this.length, i + 1); - if (typeof radius !== "function") radius = constant(radius == null ? 1 : +radius); + return this; + }; - function force() { - var i, n = nodes.length, - tree, - node, - xi, - yi, - ri, - ri2; + // Subtract plain number `num` from `this` + BN.prototype.isubn = function isubn (num) { + assert(typeof num === 'number'); + assert(num < 0x4000000); + if (num < 0) return this.iaddn(-num); - for (var k = 0; k < iterations; ++k) { - tree = d3Quadtree.quadtree(nodes, x, y).visitAfter(prepare); - for (i = 0; i < n; ++i) { - node = nodes[i]; - ri = radii[node.index], ri2 = ri * ri; - xi = node.x + node.vx; - yi = node.y + node.vy; - tree.visit(apply); - } + if (this.negative !== 0) { + this.negative = 0; + this.iaddn(num); + this.negative = 1; + return this; } - function apply(quad, x0, y0, x1, y1) { - var data = quad.data, rj = quad.r, r = ri + rj; - if (data) { - if (data.index > node.index) { - var x = xi - data.x - data.vx, - y = yi - data.y - data.vy, - l = x * x + y * y; - if (l < r * r) { - if (x === 0) x = jiggle(), l += x * x; - if (y === 0) y = jiggle(), l += y * y; - l = (r - (l = Math.sqrt(l))) / l * strength; - node.vx += (x *= l) * (r = (rj *= rj) / (ri2 + rj)); - node.vy += (y *= l) * r; - data.vx -= x * (r = 1 - r); - data.vy -= y * r; - } - } - return; - } - return x0 > xi + r || x1 < xi - r || y0 > yi + r || y1 < yi - r; - } - } + this.words[0] -= num; - function prepare(quad) { - if (quad.data) return quad.r = radii[quad.data.index]; - for (var i = quad.r = 0; i < 4; ++i) { - if (quad[i] && quad[i].r > quad.r) { - quad.r = quad[i].r; + if (this.length === 1 && this.words[0] < 0) { + this.words[0] = -this.words[0]; + this.negative = 1; + } else { + // Carry + for (var i = 0; i < this.length && this.words[i] < 0; i++) { + this.words[i] += 0x4000000; + this.words[i + 1] -= 1; } } - } - - function initialize() { - if (!nodes) return; - var i, n = nodes.length, node; - radii = new Array(n); - for (i = 0; i < n; ++i) node = nodes[i], radii[node.index] = +radius(node, i, nodes); - } - force.initialize = function(_) { - nodes = _; - initialize(); + return this.strip(); }; - force.iterations = function(_) { - return arguments.length ? (iterations = +_, force) : iterations; + BN.prototype.addn = function addn (num) { + return this.clone().iaddn(num); }; - force.strength = function(_) { - return arguments.length ? (strength = +_, force) : strength; + BN.prototype.subn = function subn (num) { + return this.clone().isubn(num); }; - force.radius = function(_) { - return arguments.length ? (radius = typeof _ === "function" ? _ : constant(+_), initialize(), force) : radius; + BN.prototype.iabs = function iabs () { + this.negative = 0; + + return this; }; - return force; -} + BN.prototype.abs = function abs () { + return this.clone().iabs(); + }; -function index(d) { - return d.index; -} + BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) { + var len = num.length + shift; + var i; -function find(nodeById, nodeId) { - var node = nodeById.get(nodeId); - if (!node) throw new Error("missing: " + nodeId); - return node; -} + this._expand(len); -function link(links) { - var id = index, - strength = defaultStrength, - strengths, - distance = constant(30), - distances, - nodes, - count, - bias, - iterations = 1; + var w; + var carry = 0; + for (i = 0; i < num.length; i++) { + w = (this.words[i + shift] | 0) + carry; + var right = (num.words[i] | 0) * mul; + w -= right & 0x3ffffff; + carry = (w >> 26) - ((right / 0x4000000) | 0); + this.words[i + shift] = w & 0x3ffffff; + } + for (; i < this.length - shift; i++) { + w = (this.words[i + shift] | 0) + carry; + carry = w >> 26; + this.words[i + shift] = w & 0x3ffffff; + } - if (links == null) links = []; + if (carry === 0) return this.strip(); - function defaultStrength(link) { - return 1 / Math.min(count[link.source.index], count[link.target.index]); - } + // Subtraction overflow + assert(carry === -1); + carry = 0; + for (i = 0; i < this.length; i++) { + w = -(this.words[i] | 0) + carry; + carry = w >> 26; + this.words[i] = w & 0x3ffffff; + } + this.negative = 1; - function force(alpha) { - for (var k = 0, n = links.length; k < iterations; ++k) { - for (var i = 0, link, source, target, x, y, l, b; i < n; ++i) { - link = links[i], source = link.source, target = link.target; - x = target.x + target.vx - source.x - source.vx || jiggle(); - y = target.y + target.vy - source.y - source.vy || jiggle(); - l = Math.sqrt(x * x + y * y); - l = (l - distances[i]) / l * alpha * strengths[i]; - x *= l, y *= l; - target.vx -= x * (b = bias[i]); - target.vy -= y * b; - source.vx += x * (b = 1 - b); - source.vy += y * b; + return this.strip(); + }; + + BN.prototype._wordDiv = function _wordDiv (num, mode) { + var shift = this.length - num.length; + + var a = this.clone(); + var b = num; + + // Normalize + var bhi = b.words[b.length - 1] | 0; + var bhiBits = this._countBits(bhi); + shift = 26 - bhiBits; + if (shift !== 0) { + b = b.ushln(shift); + a.iushln(shift); + bhi = b.words[b.length - 1] | 0; + } + + // Initialize quotient + var m = a.length - b.length; + var q; + + if (mode !== 'mod') { + q = new BN(null); + q.length = m + 1; + q.words = new Array(q.length); + for (var i = 0; i < q.length; i++) { + q.words[i] = 0; } } - } - function initialize() { - if (!nodes) return; + var diff = a.clone()._ishlnsubmul(b, 1, m); + if (diff.negative === 0) { + a = diff; + if (q) { + q.words[m] = 1; + } + } - var i, - n = nodes.length, - m = links.length, - nodeById = d3Collection.map(nodes, id), - link; + for (var j = m - 1; j >= 0; j--) { + var qj = (a.words[b.length + j] | 0) * 0x4000000 + + (a.words[b.length + j - 1] | 0); - for (i = 0, count = new Array(n); i < m; ++i) { - link = links[i], link.index = i; - if (typeof link.source !== "object") link.source = find(nodeById, link.source); - if (typeof link.target !== "object") link.target = find(nodeById, link.target); - count[link.source.index] = (count[link.source.index] || 0) + 1; - count[link.target.index] = (count[link.target.index] || 0) + 1; + // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max + // (0x7ffffff) + qj = Math.min((qj / bhi) | 0, 0x3ffffff); + + a._ishlnsubmul(b, qj, j); + while (a.negative !== 0) { + qj--; + a.negative = 0; + a._ishlnsubmul(b, 1, j); + if (!a.isZero()) { + a.negative ^= 1; + } + } + if (q) { + q.words[j] = qj; + } } + if (q) { + q.strip(); + } + a.strip(); - for (i = 0, bias = new Array(m); i < m; ++i) { - link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]); + // Denormalize + if (mode !== 'div' && shift !== 0) { + a.iushrn(shift); } - strengths = new Array(m), initializeStrength(); - distances = new Array(m), initializeDistance(); - } + return { + div: q || null, + mod: a + }; + }; - function initializeStrength() { - if (!nodes) return; + // NOTE: 1) `mode` can be set to `mod` to request mod only, + // to `div` to request div only, or be absent to + // request both div & mod + // 2) `positive` is true if unsigned mod is requested + BN.prototype.divmod = function divmod (num, mode, positive) { + assert(!num.isZero()); - for (var i = 0, n = links.length; i < n; ++i) { - strengths[i] = +strength(links[i], i, links); + if (this.isZero()) { + return { + div: new BN(0), + mod: new BN(0) + }; } - } - function initializeDistance() { - if (!nodes) return; + var div, mod, res; + if (this.negative !== 0 && num.negative === 0) { + res = this.neg().divmod(num, mode); - for (var i = 0, n = links.length; i < n; ++i) { - distances[i] = +distance(links[i], i, links); + if (mode !== 'mod') { + div = res.div.neg(); + } + + if (mode !== 'div') { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.iadd(num); + } + } + + return { + div: div, + mod: mod + }; } - } - force.initialize = function(_) { - nodes = _; - initialize(); - }; + if (this.negative === 0 && num.negative !== 0) { + res = this.divmod(num.neg(), mode); - force.links = function(_) { - return arguments.length ? (links = _, initialize(), force) : links; - }; + if (mode !== 'mod') { + div = res.div.neg(); + } - force.id = function(_) { - return arguments.length ? (id = _, force) : id; - }; + return { + div: div, + mod: res.mod + }; + } - force.iterations = function(_) { - return arguments.length ? (iterations = +_, force) : iterations; + if ((this.negative & num.negative) !== 0) { + res = this.neg().divmod(num.neg(), mode); + + if (mode !== 'div') { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.isub(num); + } + } + + return { + div: res.div, + mod: mod + }; + } + + // Both numbers are positive at this point + + // Strip both numbers to approximate shift value + if (num.length > this.length || this.cmp(num) < 0) { + return { + div: new BN(0), + mod: this + }; + } + + // Very short reduction + if (num.length === 1) { + if (mode === 'div') { + return { + div: this.divn(num.words[0]), + mod: null + }; + } + + if (mode === 'mod') { + return { + div: null, + mod: new BN(this.modn(num.words[0])) + }; + } + + return { + div: this.divn(num.words[0]), + mod: new BN(this.modn(num.words[0])) + }; + } + + return this._wordDiv(num, mode); }; - force.strength = function(_) { - return arguments.length ? (strength = typeof _ === "function" ? _ : constant(+_), initializeStrength(), force) : strength; + // Find `this` / `num` + BN.prototype.div = function div (num) { + return this.divmod(num, 'div', false).div; }; - force.distance = function(_) { - return arguments.length ? (distance = typeof _ === "function" ? _ : constant(+_), initializeDistance(), force) : distance; + // Find `this` % `num` + BN.prototype.mod = function mod (num) { + return this.divmod(num, 'mod', false).mod; }; - return force; -} + BN.prototype.umod = function umod (num) { + return this.divmod(num, 'mod', true).mod; + }; -function x$1(d) { - return d.x; -} + // Find Round(`this` / `num`) + BN.prototype.divRound = function divRound (num) { + var dm = this.divmod(num); -function y$1(d) { - return d.y; -} + // Fast case - exact division + if (dm.mod.isZero()) return dm.div; -var initialRadius = 10, - initialAngle = Math.PI * (3 - Math.sqrt(5)); + var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod; -function simulation(nodes) { - var simulation, - alpha = 1, - alphaMin = 0.001, - alphaDecay = 1 - Math.pow(alphaMin, 1 / 300), - alphaTarget = 0, - velocityDecay = 0.6, - forces = d3Collection.map(), - stepper = d3Timer.timer(step), - event = d3Dispatch.dispatch("tick", "end"); + var half = num.ushrn(1); + var r2 = num.andln(1); + var cmp = mod.cmp(half); - if (nodes == null) nodes = []; + // Round down + if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div; - function step() { - tick(); - event.call("tick", simulation); - if (alpha < alphaMin) { - stepper.stop(); - event.call("end", simulation); - } - } + // Round up + return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1); + }; - function tick(iterations) { - var i, n = nodes.length, node; + BN.prototype.modn = function modn (num) { + assert(num <= 0x3ffffff); + var p = (1 << 26) % num; - if (iterations === undefined) iterations = 1; + var acc = 0; + for (var i = this.length - 1; i >= 0; i--) { + acc = (p * acc + (this.words[i] | 0)) % num; + } - for (var k = 0; k < iterations; ++k) { - alpha += (alphaTarget - alpha) * alphaDecay; + return acc; + }; - forces.each(function (force) { - force(alpha); - }); + // In-place division by number + BN.prototype.idivn = function idivn (num) { + assert(num <= 0x3ffffff); - for (i = 0; i < n; ++i) { - node = nodes[i]; - if (node.fx == null) node.x += node.vx *= velocityDecay; - else node.x = node.fx, node.vx = 0; - if (node.fy == null) node.y += node.vy *= velocityDecay; - else node.y = node.fy, node.vy = 0; - } + var carry = 0; + for (var i = this.length - 1; i >= 0; i--) { + var w = (this.words[i] | 0) + carry * 0x4000000; + this.words[i] = (w / num) | 0; + carry = w % num; } - return simulation; - } + return this.strip(); + }; - function initializeNodes() { - for (var i = 0, n = nodes.length, node; i < n; ++i) { - node = nodes[i], node.index = i; - if (node.fx != null) node.x = node.fx; - if (node.fy != null) node.y = node.fy; - if (isNaN(node.x) || isNaN(node.y)) { - var radius = initialRadius * Math.sqrt(i), angle = i * initialAngle; - node.x = radius * Math.cos(angle); - node.y = radius * Math.sin(angle); - } - if (isNaN(node.vx) || isNaN(node.vy)) { - node.vx = node.vy = 0; - } - } - } + BN.prototype.divn = function divn (num) { + return this.clone().idivn(num); + }; - function initializeForce(force) { - if (force.initialize) force.initialize(nodes); - return force; - } + BN.prototype.egcd = function egcd (p) { + assert(p.negative === 0); + assert(!p.isZero()); - initializeNodes(); + var x = this; + var y = p.clone(); - return simulation = { - tick: tick, + if (x.negative !== 0) { + x = x.umod(p); + } else { + x = x.clone(); + } - restart: function() { - return stepper.restart(step), simulation; - }, + // A * x + B * y = x + var A = new BN(1); + var B = new BN(0); - stop: function() { - return stepper.stop(), simulation; - }, + // C * x + D * y = y + var C = new BN(0); + var D = new BN(1); - nodes: function(_) { - return arguments.length ? (nodes = _, initializeNodes(), forces.each(initializeForce), simulation) : nodes; - }, + var g = 0; - alpha: function(_) { - return arguments.length ? (alpha = +_, simulation) : alpha; - }, + while (x.isEven() && y.isEven()) { + x.iushrn(1); + y.iushrn(1); + ++g; + } - alphaMin: function(_) { - return arguments.length ? (alphaMin = +_, simulation) : alphaMin; - }, + var yp = y.clone(); + var xp = x.clone(); - alphaDecay: function(_) { - return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay; - }, + while (!x.isZero()) { + for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1); + if (i > 0) { + x.iushrn(i); + while (i-- > 0) { + if (A.isOdd() || B.isOdd()) { + A.iadd(yp); + B.isub(xp); + } - alphaTarget: function(_) { - return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget; - }, + A.iushrn(1); + B.iushrn(1); + } + } - velocityDecay: function(_) { - return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay; - }, + for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1); + if (j > 0) { + y.iushrn(j); + while (j-- > 0) { + if (C.isOdd() || D.isOdd()) { + C.iadd(yp); + D.isub(xp); + } - force: function(name, _) { - return arguments.length > 1 ? ((_ == null ? forces.remove(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name); - }, + C.iushrn(1); + D.iushrn(1); + } + } - find: function(x, y, radius) { - var i = 0, - n = nodes.length, - dx, - dy, - d2, - node, - closest; + if (x.cmp(y) >= 0) { + x.isub(y); + A.isub(C); + B.isub(D); + } else { + y.isub(x); + C.isub(A); + D.isub(B); + } + } - if (radius == null) radius = Infinity; - else radius *= radius; + return { + a: C, + b: D, + gcd: y.iushln(g) + }; + }; - for (i = 0; i < n; ++i) { - node = nodes[i]; - dx = x - node.x; - dy = y - node.y; - d2 = dx * dx + dy * dy; - if (d2 < radius) closest = node, radius = d2; - } + // This is reduced incarnation of the binary EEA + // above, designated to invert members of the + // _prime_ fields F(p) at a maximal speed + BN.prototype._invmp = function _invmp (p) { + assert(p.negative === 0); + assert(!p.isZero()); - return closest; - }, + var a = this; + var b = p.clone(); - on: function(name, _) { - return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name); + if (a.negative !== 0) { + a = a.umod(p); + } else { + a = a.clone(); } - }; -} -function manyBody() { - var nodes, - node, - alpha, - strength = constant(-30), - strengths, - distanceMin2 = 1, - distanceMax2 = Infinity, - theta2 = 0.81; + var x1 = new BN(1); + var x2 = new BN(0); - function force(_) { - var i, n = nodes.length, tree = d3Quadtree.quadtree(nodes, x$1, y$1).visitAfter(accumulate); - for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply); - } + var delta = b.clone(); - function initialize() { - if (!nodes) return; - var i, n = nodes.length, node; - strengths = new Array(n); - for (i = 0; i < n; ++i) node = nodes[i], strengths[node.index] = +strength(node, i, nodes); - } + while (a.cmpn(1) > 0 && b.cmpn(1) > 0) { + for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1); + if (i > 0) { + a.iushrn(i); + while (i-- > 0) { + if (x1.isOdd()) { + x1.iadd(delta); + } - function accumulate(quad) { - var strength = 0, q, c, weight = 0, x, y, i; + x1.iushrn(1); + } + } - // For internal nodes, accumulate forces from child quadrants. - if (quad.length) { - for (x = y = i = 0; i < 4; ++i) { - if ((q = quad[i]) && (c = Math.abs(q.value))) { - strength += q.value, weight += c, x += c * q.x, y += c * q.y; + for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1); + if (j > 0) { + b.iushrn(j); + while (j-- > 0) { + if (x2.isOdd()) { + x2.iadd(delta); + } + + x2.iushrn(1); } } - quad.x = x / weight; - quad.y = y / weight; + + if (a.cmp(b) >= 0) { + a.isub(b); + x1.isub(x2); + } else { + b.isub(a); + x2.isub(x1); + } } - // For leaf nodes, accumulate forces from coincident quadrants. - else { - q = quad; - q.x = q.data.x; - q.y = q.data.y; - do strength += strengths[q.data.index]; - while (q = q.next); + var res; + if (a.cmpn(1) === 0) { + res = x1; + } else { + res = x2; } - quad.value = strength; - } + if (res.cmpn(0) < 0) { + res.iadd(p); + } - function apply(quad, x1, _, x2) { - if (!quad.value) return true; + return res; + }; - var x = quad.x - node.x, - y = quad.y - node.y, - w = x2 - x1, - l = x * x + y * y; + BN.prototype.gcd = function gcd (num) { + if (this.isZero()) return num.abs(); + if (num.isZero()) return this.abs(); - // Apply the Barnes-Hut approximation if possible. - // Limit forces for very close nodes; randomize direction if coincident. - if (w * w / theta2 < l) { - if (l < distanceMax2) { - if (x === 0) x = jiggle(), l += x * x; - if (y === 0) y = jiggle(), l += y * y; - if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l); - node.vx += x * quad.value * alpha / l; - node.vy += y * quad.value * alpha / l; - } - return true; + var a = this.clone(); + var b = num.clone(); + a.negative = 0; + b.negative = 0; + + // Remove common factor of two + for (var shift = 0; a.isEven() && b.isEven(); shift++) { + a.iushrn(1); + b.iushrn(1); } - // Otherwise, process points directly. - else if (quad.length || l >= distanceMax2) return; + do { + while (a.isEven()) { + a.iushrn(1); + } + while (b.isEven()) { + b.iushrn(1); + } - // Limit forces for very close nodes; randomize direction if coincident. - if (quad.data !== node || quad.next) { - if (x === 0) x = jiggle(), l += x * x; - if (y === 0) y = jiggle(), l += y * y; - if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l); - } + var r = a.cmp(b); + if (r < 0) { + // Swap `a` and `b` to make `a` always bigger than `b` + var t = a; + a = b; + b = t; + } else if (r === 0 || b.cmpn(1) === 0) { + break; + } - do if (quad.data !== node) { - w = strengths[quad.data.index] * alpha / l; - node.vx += x * w; - node.vy += y * w; - } while (quad = quad.next); - } + a.isub(b); + } while (true); - force.initialize = function(_) { - nodes = _; - initialize(); + return b.iushln(shift); }; - force.strength = function(_) { - return arguments.length ? (strength = typeof _ === "function" ? _ : constant(+_), initialize(), force) : strength; + // Invert number in the field F(num) + BN.prototype.invm = function invm (num) { + return this.egcd(num).a.umod(num); }; - force.distanceMin = function(_) { - return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2); + BN.prototype.isEven = function isEven () { + return (this.words[0] & 1) === 0; }; - force.distanceMax = function(_) { - return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2); + BN.prototype.isOdd = function isOdd () { + return (this.words[0] & 1) === 1; }; - force.theta = function(_) { - return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2); + // And first word and num + BN.prototype.andln = function andln (num) { + return this.words[0] & num; }; - return force; -} - -function radial(radius, x, y) { - var nodes, - strength = constant(0.1), - strengths, - radiuses; - - if (typeof radius !== "function") radius = constant(+radius); - if (x == null) x = 0; - if (y == null) y = 0; + // Increment at the bit position in-line + BN.prototype.bincn = function bincn (bit) { + assert(typeof bit === 'number'); + var r = bit % 26; + var s = (bit - r) / 26; + var q = 1 << r; - function force(alpha) { - for (var i = 0, n = nodes.length; i < n; ++i) { - var node = nodes[i], - dx = node.x - x || 1e-6, - dy = node.y - y || 1e-6, - r = Math.sqrt(dx * dx + dy * dy), - k = (radiuses[i] - r) * strengths[i] * alpha / r; - node.vx += dx * k; - node.vy += dy * k; + // Fast case: bit is much higher than all existing words + if (this.length <= s) { + this._expand(s + 1); + this.words[s] |= q; + return this; } - } - function initialize() { - if (!nodes) return; - var i, n = nodes.length; - strengths = new Array(n); - radiuses = new Array(n); - for (i = 0; i < n; ++i) { - radiuses[i] = +radius(nodes[i], i, nodes); - strengths[i] = isNaN(radiuses[i]) ? 0 : +strength(nodes[i], i, nodes); + // Add bit and propagate, if needed + var carry = q; + for (var i = s; carry !== 0 && i < this.length; i++) { + var w = this.words[i] | 0; + w += carry; + carry = w >>> 26; + w &= 0x3ffffff; + this.words[i] = w; } - } - - force.initialize = function(_) { - nodes = _, initialize(); - }; - - force.strength = function(_) { - return arguments.length ? (strength = typeof _ === "function" ? _ : constant(+_), initialize(), force) : strength; - }; - - force.radius = function(_) { - return arguments.length ? (radius = typeof _ === "function" ? _ : constant(+_), initialize(), force) : radius; + if (carry !== 0) { + this.words[i] = carry; + this.length++; + } + return this; }; - force.x = function(_) { - return arguments.length ? (x = +_, force) : x; + BN.prototype.isZero = function isZero () { + return this.length === 1 && this.words[0] === 0; }; - force.y = function(_) { - return arguments.length ? (y = +_, force) : y; - }; + BN.prototype.cmpn = function cmpn (num) { + var negative = num < 0; - return force; -} + if (this.negative !== 0 && !negative) return -1; + if (this.negative === 0 && negative) return 1; -function x$2(x) { - var strength = constant(0.1), - nodes, - strengths, - xz; + this.strip(); - if (typeof x !== "function") x = constant(x == null ? 0 : +x); + var res; + if (this.length > 1) { + res = 1; + } else { + if (negative) { + num = -num; + } - function force(alpha) { - for (var i = 0, n = nodes.length, node; i < n; ++i) { - node = nodes[i], node.vx += (xz[i] - node.x) * strengths[i] * alpha; - } - } + assert(num <= 0x3ffffff, 'Number is too big'); - function initialize() { - if (!nodes) return; - var i, n = nodes.length; - strengths = new Array(n); - xz = new Array(n); - for (i = 0; i < n; ++i) { - strengths[i] = isNaN(xz[i] = +x(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes); + var w = this.words[0] | 0; + res = w === num ? 0 : w < num ? -1 : 1; } - } - - force.initialize = function(_) { - nodes = _; - initialize(); + if (this.negative !== 0) return -res | 0; + return res; }; - force.strength = function(_) { - return arguments.length ? (strength = typeof _ === "function" ? _ : constant(+_), initialize(), force) : strength; - }; + // Compare two numbers and return: + // 1 - if `this` > `num` + // 0 - if `this` == `num` + // -1 - if `this` < `num` + BN.prototype.cmp = function cmp (num) { + if (this.negative !== 0 && num.negative === 0) return -1; + if (this.negative === 0 && num.negative !== 0) return 1; - force.x = function(_) { - return arguments.length ? (x = typeof _ === "function" ? _ : constant(+_), initialize(), force) : x; + var res = this.ucmp(num); + if (this.negative !== 0) return -res | 0; + return res; }; - return force; -} - -function y$2(y) { - var strength = constant(0.1), - nodes, - strengths, - yz; + // Unsigned comparison + BN.prototype.ucmp = function ucmp (num) { + // At this point both numbers have the same sign + if (this.length > num.length) return 1; + if (this.length < num.length) return -1; - if (typeof y !== "function") y = constant(y == null ? 0 : +y); + var res = 0; + for (var i = this.length - 1; i >= 0; i--) { + var a = this.words[i] | 0; + var b = num.words[i] | 0; - function force(alpha) { - for (var i = 0, n = nodes.length, node; i < n; ++i) { - node = nodes[i], node.vy += (yz[i] - node.y) * strengths[i] * alpha; + if (a === b) continue; + if (a < b) { + res = -1; + } else if (a > b) { + res = 1; + } + break; } - } + return res; + }; - function initialize() { - if (!nodes) return; - var i, n = nodes.length; - strengths = new Array(n); - yz = new Array(n); - for (i = 0; i < n; ++i) { - strengths[i] = isNaN(yz[i] = +y(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes); - } - } + BN.prototype.gtn = function gtn (num) { + return this.cmpn(num) === 1; + }; - force.initialize = function(_) { - nodes = _; - initialize(); + BN.prototype.gt = function gt (num) { + return this.cmp(num) === 1; }; - force.strength = function(_) { - return arguments.length ? (strength = typeof _ === "function" ? _ : constant(+_), initialize(), force) : strength; + BN.prototype.gten = function gten (num) { + return this.cmpn(num) >= 0; }; - force.y = function(_) { - return arguments.length ? (y = typeof _ === "function" ? _ : constant(+_), initialize(), force) : y; + BN.prototype.gte = function gte (num) { + return this.cmp(num) >= 0; }; - return force; -} + BN.prototype.ltn = function ltn (num) { + return this.cmpn(num) === -1; + }; -exports.forceCenter = center; -exports.forceCollide = collide; -exports.forceLink = link; -exports.forceManyBody = manyBody; -exports.forceRadial = radial; -exports.forceSimulation = simulation; -exports.forceX = x$2; -exports.forceY = y$2; + BN.prototype.lt = function lt (num) { + return this.cmp(num) === -1; + }; -Object.defineProperty(exports, '__esModule', { value: true }); + BN.prototype.lten = function lten (num) { + return this.cmpn(num) <= 0; + }; -}))); + BN.prototype.lte = function lte (num) { + return this.cmp(num) <= 0; + }; -},{"d3-collection":157,"d3-dispatch":159,"d3-quadtree":164,"d3-timer":168}],161:[function(_dereq_,module,exports){ -// https://d3js.org/d3-hierarchy/ v1.1.9 Copyright 2019 Mike Bostock -(function (global, factory) { -typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : -typeof define === 'function' && define.amd ? define(['exports'], factory) : -(global = global || self, factory(global.d3 = global.d3 || {})); -}(this, function (exports) { 'use strict'; + BN.prototype.eqn = function eqn (num) { + return this.cmpn(num) === 0; + }; -function defaultSeparation(a, b) { - return a.parent === b.parent ? 1 : 2; -} + BN.prototype.eq = function eq (num) { + return this.cmp(num) === 0; + }; -function meanX(children) { - return children.reduce(meanXReduce, 0) / children.length; -} + // + // A reduce context, could be using montgomery or something better, depending + // on the `m` itself. + // + BN.red = function red (num) { + return new Red(num); + }; -function meanXReduce(x, c) { - return x + c.x; -} + BN.prototype.toRed = function toRed (ctx) { + assert(!this.red, 'Already a number in reduction context'); + assert(this.negative === 0, 'red works only with positives'); + return ctx.convertTo(this)._forceRed(ctx); + }; -function maxY(children) { - return 1 + children.reduce(maxYReduce, 0); -} + BN.prototype.fromRed = function fromRed () { + assert(this.red, 'fromRed works only with numbers in reduction context'); + return this.red.convertFrom(this); + }; -function maxYReduce(y, c) { - return Math.max(y, c.y); -} + BN.prototype._forceRed = function _forceRed (ctx) { + this.red = ctx; + return this; + }; -function leafLeft(node) { - var children; - while (children = node.children) node = children[0]; - return node; -} + BN.prototype.forceRed = function forceRed (ctx) { + assert(!this.red, 'Already a number in reduction context'); + return this._forceRed(ctx); + }; -function leafRight(node) { - var children; - while (children = node.children) node = children[children.length - 1]; - return node; -} + BN.prototype.redAdd = function redAdd (num) { + assert(this.red, 'redAdd works only with red numbers'); + return this.red.add(this, num); + }; -function cluster() { - var separation = defaultSeparation, - dx = 1, - dy = 1, - nodeSize = false; + BN.prototype.redIAdd = function redIAdd (num) { + assert(this.red, 'redIAdd works only with red numbers'); + return this.red.iadd(this, num); + }; - function cluster(root) { - var previousNode, - x = 0; + BN.prototype.redSub = function redSub (num) { + assert(this.red, 'redSub works only with red numbers'); + return this.red.sub(this, num); + }; - // First walk, computing the initial x & y values. - root.eachAfter(function(node) { - var children = node.children; - if (children) { - node.x = meanX(children); - node.y = maxY(children); - } else { - node.x = previousNode ? x += separation(node, previousNode) : 0; - node.y = 0; - previousNode = node; - } - }); + BN.prototype.redISub = function redISub (num) { + assert(this.red, 'redISub works only with red numbers'); + return this.red.isub(this, num); + }; - var left = leafLeft(root), - right = leafRight(root), - x0 = left.x - separation(left, right) / 2, - x1 = right.x + separation(right, left) / 2; + BN.prototype.redShl = function redShl (num) { + assert(this.red, 'redShl works only with red numbers'); + return this.red.shl(this, num); + }; - // Second walk, normalizing x & y to the desired size. - return root.eachAfter(nodeSize ? function(node) { - node.x = (node.x - root.x) * dx; - node.y = (root.y - node.y) * dy; - } : function(node) { - node.x = (node.x - x0) / (x1 - x0) * dx; - node.y = (1 - (root.y ? node.y / root.y : 1)) * dy; - }); - } + BN.prototype.redMul = function redMul (num) { + assert(this.red, 'redMul works only with red numbers'); + this.red._verify2(this, num); + return this.red.mul(this, num); + }; - cluster.separation = function(x) { - return arguments.length ? (separation = x, cluster) : separation; + BN.prototype.redIMul = function redIMul (num) { + assert(this.red, 'redMul works only with red numbers'); + this.red._verify2(this, num); + return this.red.imul(this, num); }; - cluster.size = function(x) { - return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? null : [dx, dy]); + BN.prototype.redSqr = function redSqr () { + assert(this.red, 'redSqr works only with red numbers'); + this.red._verify1(this); + return this.red.sqr(this); }; - cluster.nodeSize = function(x) { - return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? [dx, dy] : null); + BN.prototype.redISqr = function redISqr () { + assert(this.red, 'redISqr works only with red numbers'); + this.red._verify1(this); + return this.red.isqr(this); }; - return cluster; -} + // Square root over p + BN.prototype.redSqrt = function redSqrt () { + assert(this.red, 'redSqrt works only with red numbers'); + this.red._verify1(this); + return this.red.sqrt(this); + }; -function count(node) { - var sum = 0, - children = node.children, - i = children && children.length; - if (!i) sum = 1; - else while (--i >= 0) sum += children[i].value; - node.value = sum; -} + BN.prototype.redInvm = function redInvm () { + assert(this.red, 'redInvm works only with red numbers'); + this.red._verify1(this); + return this.red.invm(this); + }; -function node_count() { - return this.eachAfter(count); -} + // Return negative clone of `this` % `red modulo` + BN.prototype.redNeg = function redNeg () { + assert(this.red, 'redNeg works only with red numbers'); + this.red._verify1(this); + return this.red.neg(this); + }; -function node_each(callback) { - var node = this, current, next = [node], children, i, n; - do { - current = next.reverse(), next = []; - while (node = current.pop()) { - callback(node), children = node.children; - if (children) for (i = 0, n = children.length; i < n; ++i) { - next.push(children[i]); - } - } - } while (next.length); - return this; -} + BN.prototype.redPow = function redPow (num) { + assert(this.red && !num.red, 'redPow(normalNum)'); + this.red._verify1(this); + return this.red.pow(this, num); + }; -function node_eachBefore(callback) { - var node = this, nodes = [node], children, i; - while (node = nodes.pop()) { - callback(node), children = node.children; - if (children) for (i = children.length - 1; i >= 0; --i) { - nodes.push(children[i]); - } - } - return this; -} + // Prime numbers with efficient reduction + var primes = { + k256: null, + p224: null, + p192: null, + p25519: null + }; -function node_eachAfter(callback) { - var node = this, nodes = [node], next = [], children, i, n; - while (node = nodes.pop()) { - next.push(node), children = node.children; - if (children) for (i = 0, n = children.length; i < n; ++i) { - nodes.push(children[i]); - } - } - while (node = next.pop()) { - callback(node); + // Pseudo-Mersenne prime + function MPrime (name, p) { + // P = 2 ^ N - K + this.name = name; + this.p = new BN(p, 16); + this.n = this.p.bitLength(); + this.k = new BN(1).iushln(this.n).isub(this.p); + + this.tmp = this._tmp(); } - return this; -} -function node_sum(value) { - return this.eachAfter(function(node) { - var sum = +value(node.data) || 0, - children = node.children, - i = children && children.length; - while (--i >= 0) sum += children[i].value; - node.value = sum; - }); -} + MPrime.prototype._tmp = function _tmp () { + var tmp = new BN(null); + tmp.words = new Array(Math.ceil(this.n / 13)); + return tmp; + }; -function node_sort(compare) { - return this.eachBefore(function(node) { - if (node.children) { - node.children.sort(compare); + MPrime.prototype.ireduce = function ireduce (num) { + // Assumes that `num` is less than `P^2` + // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P) + var r = num; + var rlen; + + do { + this.split(r, this.tmp); + r = this.imulK(r); + r = r.iadd(this.tmp); + rlen = r.bitLength(); + } while (rlen > this.n); + + var cmp = rlen < this.n ? -1 : r.ucmp(this.p); + if (cmp === 0) { + r.words[0] = 0; + r.length = 1; + } else if (cmp > 0) { + r.isub(this.p); + } else { + r.strip(); } - }); -} -function node_path(end) { - var start = this, - ancestor = leastCommonAncestor(start, end), - nodes = [start]; - while (start !== ancestor) { - start = start.parent; - nodes.push(start); - } - var k = nodes.length; - while (end !== ancestor) { - nodes.splice(k, 0, end); - end = end.parent; - } - return nodes; -} + return r; + }; -function leastCommonAncestor(a, b) { - if (a === b) return a; - var aNodes = a.ancestors(), - bNodes = b.ancestors(), - c = null; - a = aNodes.pop(); - b = bNodes.pop(); - while (a === b) { - c = a; - a = aNodes.pop(); - b = bNodes.pop(); - } - return c; -} + MPrime.prototype.split = function split (input, out) { + input.iushrn(this.n, 0, out); + }; -function node_ancestors() { - var node = this, nodes = [node]; - while (node = node.parent) { - nodes.push(node); + MPrime.prototype.imulK = function imulK (num) { + return num.imul(this.k); + }; + + function K256 () { + MPrime.call( + this, + 'k256', + 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f'); } - return nodes; -} + inherits(K256, MPrime); -function node_descendants() { - var nodes = []; - this.each(function(node) { - nodes.push(node); - }); - return nodes; -} + K256.prototype.split = function split (input, output) { + // 256 = 9 * 26 + 22 + var mask = 0x3fffff; -function node_leaves() { - var leaves = []; - this.eachBefore(function(node) { - if (!node.children) { - leaves.push(node); + var outLen = Math.min(input.length, 9); + for (var i = 0; i < outLen; i++) { + output.words[i] = input.words[i]; } - }); - return leaves; -} + output.length = outLen; -function node_links() { - var root = this, links = []; - root.each(function(node) { - if (node !== root) { // Don’t include the root’s parent, if any. - links.push({source: node.parent, target: node}); + if (input.length <= 9) { + input.words[0] = 0; + input.length = 1; + return; } - }); - return links; -} -function hierarchy(data, children) { - var root = new Node(data), - valued = +data.value && (root.value = data.value), - node, - nodes = [root], - child, - childs, - i, - n; + // Shift by 9 limbs + var prev = input.words[9]; + output.words[output.length++] = prev & mask; - if (children == null) children = defaultChildren; + for (i = 10; i < input.length; i++) { + var next = input.words[i] | 0; + input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22); + prev = next; + } + prev >>>= 22; + input.words[i - 10] = prev; + if (prev === 0 && input.length > 10) { + input.length -= 10; + } else { + input.length -= 9; + } + }; - while (node = nodes.pop()) { - if (valued) node.value = +node.data.value; - if ((childs = children(node.data)) && (n = childs.length)) { - node.children = new Array(n); - for (i = n - 1; i >= 0; --i) { - nodes.push(child = node.children[i] = new Node(childs[i])); - child.parent = node; - child.depth = node.depth + 1; - } + K256.prototype.imulK = function imulK (num) { + // K = 0x1000003d1 = [ 0x40, 0x3d1 ] + num.words[num.length] = 0; + num.words[num.length + 1] = 0; + num.length += 2; + + // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390 + var lo = 0; + for (var i = 0; i < num.length; i++) { + var w = num.words[i] | 0; + lo += w * 0x3d1; + num.words[i] = lo & 0x3ffffff; + lo = w * 0x40 + ((lo / 0x4000000) | 0); } - } - return root.eachBefore(computeHeight); -} + // Fast length reduction + if (num.words[num.length - 1] === 0) { + num.length--; + if (num.words[num.length - 1] === 0) { + num.length--; + } + } + return num; + }; -function node_copy() { - return hierarchy(this).eachBefore(copyData); -} + function P224 () { + MPrime.call( + this, + 'p224', + 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001'); + } + inherits(P224, MPrime); -function defaultChildren(d) { - return d.children; -} + function P192 () { + MPrime.call( + this, + 'p192', + 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff'); + } + inherits(P192, MPrime); -function copyData(node) { - node.data = node.data.data; -} + function P25519 () { + // 2 ^ 255 - 19 + MPrime.call( + this, + '25519', + '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed'); + } + inherits(P25519, MPrime); -function computeHeight(node) { - var height = 0; - do node.height = height; - while ((node = node.parent) && (node.height < ++height)); -} + P25519.prototype.imulK = function imulK (num) { + // K = 0x13 + var carry = 0; + for (var i = 0; i < num.length; i++) { + var hi = (num.words[i] | 0) * 0x13 + carry; + var lo = hi & 0x3ffffff; + hi >>>= 26; -function Node(data) { - this.data = data; - this.depth = - this.height = 0; - this.parent = null; -} + num.words[i] = lo; + carry = hi; + } + if (carry !== 0) { + num.words[num.length++] = carry; + } + return num; + }; -Node.prototype = hierarchy.prototype = { - constructor: Node, - count: node_count, - each: node_each, - eachAfter: node_eachAfter, - eachBefore: node_eachBefore, - sum: node_sum, - sort: node_sort, - path: node_path, - ancestors: node_ancestors, - descendants: node_descendants, - leaves: node_leaves, - links: node_links, - copy: node_copy -}; + // Exported mostly for testing purposes, use plain name instead + BN._prime = function prime (name) { + // Cached version of prime + if (primes[name]) return primes[name]; -var slice = Array.prototype.slice; + var prime; + if (name === 'k256') { + prime = new K256(); + } else if (name === 'p224') { + prime = new P224(); + } else if (name === 'p192') { + prime = new P192(); + } else if (name === 'p25519') { + prime = new P25519(); + } else { + throw new Error('Unknown prime ' + name); + } + primes[name] = prime; -function shuffle(array) { - var m = array.length, - t, - i; + return prime; + }; - while (m) { - i = Math.random() * m-- | 0; - t = array[m]; - array[m] = array[i]; - array[i] = t; + // + // Base reduction engine + // + function Red (m) { + if (typeof m === 'string') { + var prime = BN._prime(m); + this.m = prime.p; + this.prime = prime; + } else { + assert(m.gtn(1), 'modulus must be greater than 1'); + this.m = m; + this.prime = null; + } } - return array; -} + Red.prototype._verify1 = function _verify1 (a) { + assert(a.negative === 0, 'red works only with positives'); + assert(a.red, 'red works only with red numbers'); + }; -function enclose(circles) { - var i = 0, n = (circles = shuffle(slice.call(circles))).length, B = [], p, e; + Red.prototype._verify2 = function _verify2 (a, b) { + assert((a.negative | b.negative) === 0, 'red works only with positives'); + assert(a.red && a.red === b.red, + 'red works only with red numbers'); + }; - while (i < n) { - p = circles[i]; - if (e && enclosesWeak(e, p)) ++i; - else e = encloseBasis(B = extendBasis(B, p)), i = 0; - } + Red.prototype.imod = function imod (a) { + if (this.prime) return this.prime.ireduce(a)._forceRed(this); + return a.umod(this.m)._forceRed(this); + }; - return e; -} + Red.prototype.neg = function neg (a) { + if (a.isZero()) { + return a.clone(); + } -function extendBasis(B, p) { - var i, j; + return this.m.sub(a)._forceRed(this); + }; - if (enclosesWeakAll(p, B)) return [p]; + Red.prototype.add = function add (a, b) { + this._verify2(a, b); - // If we get here then B must have at least one element. - for (i = 0; i < B.length; ++i) { - if (enclosesNot(p, B[i]) - && enclosesWeakAll(encloseBasis2(B[i], p), B)) { - return [B[i], p]; + var res = a.add(b); + if (res.cmp(this.m) >= 0) { + res.isub(this.m); } - } + return res._forceRed(this); + }; - // If we get here then B must have at least two elements. - for (i = 0; i < B.length - 1; ++i) { - for (j = i + 1; j < B.length; ++j) { - if (enclosesNot(encloseBasis2(B[i], B[j]), p) - && enclosesNot(encloseBasis2(B[i], p), B[j]) - && enclosesNot(encloseBasis2(B[j], p), B[i]) - && enclosesWeakAll(encloseBasis3(B[i], B[j], p), B)) { - return [B[i], B[j], p]; - } + Red.prototype.iadd = function iadd (a, b) { + this._verify2(a, b); + + var res = a.iadd(b); + if (res.cmp(this.m) >= 0) { + res.isub(this.m); } - } + return res; + }; - // If we get here then something is very wrong. - throw new Error; -} + Red.prototype.sub = function sub (a, b) { + this._verify2(a, b); -function enclosesNot(a, b) { - var dr = a.r - b.r, dx = b.x - a.x, dy = b.y - a.y; - return dr < 0 || dr * dr < dx * dx + dy * dy; -} + var res = a.sub(b); + if (res.cmpn(0) < 0) { + res.iadd(this.m); + } + return res._forceRed(this); + }; -function enclosesWeak(a, b) { - var dr = a.r - b.r + 1e-6, dx = b.x - a.x, dy = b.y - a.y; - return dr > 0 && dr * dr > dx * dx + dy * dy; -} + Red.prototype.isub = function isub (a, b) { + this._verify2(a, b); -function enclosesWeakAll(a, B) { - for (var i = 0; i < B.length; ++i) { - if (!enclosesWeak(a, B[i])) { - return false; + var res = a.isub(b); + if (res.cmpn(0) < 0) { + res.iadd(this.m); } - } - return true; -} + return res; + }; -function encloseBasis(B) { - switch (B.length) { - case 1: return encloseBasis1(B[0]); - case 2: return encloseBasis2(B[0], B[1]); - case 3: return encloseBasis3(B[0], B[1], B[2]); - } -} + Red.prototype.shl = function shl (a, num) { + this._verify1(a); + return this.imod(a.ushln(num)); + }; -function encloseBasis1(a) { - return { - x: a.x, - y: a.y, - r: a.r + Red.prototype.imul = function imul (a, b) { + this._verify2(a, b); + return this.imod(a.imul(b)); }; -} -function encloseBasis2(a, b) { - var x1 = a.x, y1 = a.y, r1 = a.r, - x2 = b.x, y2 = b.y, r2 = b.r, - x21 = x2 - x1, y21 = y2 - y1, r21 = r2 - r1, - l = Math.sqrt(x21 * x21 + y21 * y21); - return { - x: (x1 + x2 + x21 / l * r21) / 2, - y: (y1 + y2 + y21 / l * r21) / 2, - r: (l + r1 + r2) / 2 + Red.prototype.mul = function mul (a, b) { + this._verify2(a, b); + return this.imod(a.mul(b)); }; -} -function encloseBasis3(a, b, c) { - var x1 = a.x, y1 = a.y, r1 = a.r, - x2 = b.x, y2 = b.y, r2 = b.r, - x3 = c.x, y3 = c.y, r3 = c.r, - a2 = x1 - x2, - a3 = x1 - x3, - b2 = y1 - y2, - b3 = y1 - y3, - c2 = r2 - r1, - c3 = r3 - r1, - d1 = x1 * x1 + y1 * y1 - r1 * r1, - d2 = d1 - x2 * x2 - y2 * y2 + r2 * r2, - d3 = d1 - x3 * x3 - y3 * y3 + r3 * r3, - ab = a3 * b2 - a2 * b3, - xa = (b2 * d3 - b3 * d2) / (ab * 2) - x1, - xb = (b3 * c2 - b2 * c3) / ab, - ya = (a3 * d2 - a2 * d3) / (ab * 2) - y1, - yb = (a2 * c3 - a3 * c2) / ab, - A = xb * xb + yb * yb - 1, - B = 2 * (r1 + xa * xb + ya * yb), - C = xa * xa + ya * ya - r1 * r1, - r = -(A ? (B + Math.sqrt(B * B - 4 * A * C)) / (2 * A) : C / B); - return { - x: x1 + xa + xb * r, - y: y1 + ya + yb * r, - r: r + Red.prototype.isqr = function isqr (a) { + return this.imul(a, a.clone()); }; -} -function place(b, a, c) { - var dx = b.x - a.x, x, a2, - dy = b.y - a.y, y, b2, - d2 = dx * dx + dy * dy; - if (d2) { - a2 = a.r + c.r, a2 *= a2; - b2 = b.r + c.r, b2 *= b2; - if (a2 > b2) { - x = (d2 + b2 - a2) / (2 * d2); - y = Math.sqrt(Math.max(0, b2 / d2 - x * x)); - c.x = b.x - x * dx - y * dy; - c.y = b.y - x * dy + y * dx; - } else { - x = (d2 + a2 - b2) / (2 * d2); - y = Math.sqrt(Math.max(0, a2 / d2 - x * x)); - c.x = a.x + x * dx - y * dy; - c.y = a.y + x * dy + y * dx; + Red.prototype.sqr = function sqr (a) { + return this.mul(a, a); + }; + + Red.prototype.sqrt = function sqrt (a) { + if (a.isZero()) return a.clone(); + + var mod3 = this.m.andln(3); + assert(mod3 % 2 === 1); + + // Fast case + if (mod3 === 3) { + var pow = this.m.add(new BN(1)).iushrn(2); + return this.pow(a, pow); } - } else { - c.x = a.x + c.r; - c.y = a.y; - } -} -function intersects(a, b) { - var dr = a.r + b.r - 1e-6, dx = b.x - a.x, dy = b.y - a.y; - return dr > 0 && dr * dr > dx * dx + dy * dy; -} + // Tonelli-Shanks algorithm (Totally unoptimized and slow) + // + // Find Q and S, that Q * 2 ^ S = (P - 1) + var q = this.m.subn(1); + var s = 0; + while (!q.isZero() && q.andln(1) === 0) { + s++; + q.iushrn(1); + } + assert(!q.isZero()); -function score(node) { - var a = node._, - b = node.next._, - ab = a.r + b.r, - dx = (a.x * b.r + b.x * a.r) / ab, - dy = (a.y * b.r + b.y * a.r) / ab; - return dx * dx + dy * dy; -} + var one = new BN(1).toRed(this); + var nOne = one.redNeg(); -function Node$1(circle) { - this._ = circle; - this.next = null; - this.previous = null; -} + // Find quadratic non-residue + // NOTE: Max is such because of generalized Riemann hypothesis. + var lpow = this.m.subn(1).iushrn(1); + var z = this.m.bitLength(); + z = new BN(2 * z * z).toRed(this); -function packEnclose(circles) { - if (!(n = circles.length)) return 0; + while (this.pow(z, lpow).cmp(nOne) !== 0) { + z.redIAdd(nOne); + } - var a, b, c, n, aa, ca, i, j, k, sj, sk; + var c = this.pow(z, q); + var r = this.pow(a, q.addn(1).iushrn(1)); + var t = this.pow(a, q); + var m = s; + while (t.cmp(one) !== 0) { + var tmp = t; + for (var i = 0; tmp.cmp(one) !== 0; i++) { + tmp = tmp.redSqr(); + } + assert(i < m); + var b = this.pow(c, new BN(1).iushln(m - i - 1)); - // Place the first circle. - a = circles[0], a.x = 0, a.y = 0; - if (!(n > 1)) return a.r; + r = r.redMul(b); + c = b.redSqr(); + t = t.redMul(c); + m = i; + } - // Place the second circle. - b = circles[1], a.x = -b.r, b.x = a.r, b.y = 0; - if (!(n > 2)) return a.r + b.r; + return r; + }; - // Place the third circle. - place(b, a, c = circles[2]); + Red.prototype.invm = function invm (a) { + var inv = a._invmp(this.m); + if (inv.negative !== 0) { + inv.negative = 0; + return this.imod(inv).redNeg(); + } else { + return this.imod(inv); + } + }; - // Initialize the front-chain using the first three circles a, b and c. - a = new Node$1(a), b = new Node$1(b), c = new Node$1(c); - a.next = c.previous = b; - b.next = a.previous = c; - c.next = b.previous = a; + Red.prototype.pow = function pow (a, num) { + if (num.isZero()) return new BN(1).toRed(this); + if (num.cmpn(1) === 0) return a.clone(); - // Attempt to place each remaining circle… - pack: for (i = 3; i < n; ++i) { - place(a._, b._, c = circles[i]), c = new Node$1(c); + var windowSize = 4; + var wnd = new Array(1 << windowSize); + wnd[0] = new BN(1).toRed(this); + wnd[1] = a; + for (var i = 2; i < wnd.length; i++) { + wnd[i] = this.mul(wnd[i - 1], a); + } - // Find the closest intersecting circle on the front-chain, if any. - // “Closeness” is determined by linear distance along the front-chain. - // “Ahead” or “behind” is likewise determined by linear distance. - j = b.next, k = a.previous, sj = b._.r, sk = a._.r; - do { - if (sj <= sk) { - if (intersects(j._, c._)) { - b = j, a.next = b, b.previous = a, --i; - continue pack; + var res = wnd[0]; + var current = 0; + var currentLen = 0; + var start = num.bitLength() % 26; + if (start === 0) { + start = 26; + } + + for (i = num.length - 1; i >= 0; i--) { + var word = num.words[i]; + for (var j = start - 1; j >= 0; j--) { + var bit = (word >> j) & 1; + if (res !== wnd[0]) { + res = this.sqr(res); } - sj += j._.r, j = j.next; - } else { - if (intersects(k._, c._)) { - a = k, a.next = b, b.previous = a, --i; - continue pack; + + if (bit === 0 && current === 0) { + currentLen = 0; + continue; } - sk += k._.r, k = k.previous; - } - } while (j !== k.next); - // Success! Insert the new circle c between a and b. - c.previous = a, c.next = b, a.next = b.previous = b = c; + current <<= 1; + current |= bit; + currentLen++; + if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue; - // Compute the new closest circle pair to the centroid. - aa = score(a); - while ((c = c.next) !== b) { - if ((ca = score(c)) < aa) { - a = c, aa = ca; + res = this.mul(res, wnd[current]); + currentLen = 0; + current = 0; } + start = 26; } - b = a.next; - } - // Compute the enclosing circle of the front chain. - a = [b._], c = b; while ((c = c.next) !== b) a.push(c._); c = enclose(a); - - // Translate the circles to put the enclosing circle around the origin. - for (i = 0; i < n; ++i) a = circles[i], a.x -= c.x, a.y -= c.y; - - return c.r; -} + return res; + }; -function siblings(circles) { - packEnclose(circles); - return circles; -} + Red.prototype.convertTo = function convertTo (num) { + var r = num.umod(this.m); -function optional(f) { - return f == null ? null : required(f); -} + return r === num ? r.clone() : r; + }; -function required(f) { - if (typeof f !== "function") throw new Error; - return f; -} + Red.prototype.convertFrom = function convertFrom (num) { + var res = num.clone(); + res.red = null; + return res; + }; -function constantZero() { - return 0; -} + // + // Montgomery method engine + // -function constant(x) { - return function() { - return x; + BN.mont = function mont (num) { + return new Mont(num); }; -} - -function defaultRadius(d) { - return Math.sqrt(d.value); -} -function index() { - var radius = null, - dx = 1, - dy = 1, - padding = constantZero; + function Mont (m) { + Red.call(this, m); - function pack(root) { - root.x = dx / 2, root.y = dy / 2; - if (radius) { - root.eachBefore(radiusLeaf(radius)) - .eachAfter(packChildren(padding, 0.5)) - .eachBefore(translateChild(1)); - } else { - root.eachBefore(radiusLeaf(defaultRadius)) - .eachAfter(packChildren(constantZero, 1)) - .eachAfter(packChildren(padding, root.r / Math.min(dx, dy))) - .eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r))); + this.shift = this.m.bitLength(); + if (this.shift % 26 !== 0) { + this.shift += 26 - (this.shift % 26); } - return root; + + this.r = new BN(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); } + inherits(Mont, Red); - pack.radius = function(x) { - return arguments.length ? (radius = optional(x), pack) : radius; + Mont.prototype.convertTo = function convertTo (num) { + return this.imod(num.ushln(this.shift)); }; - pack.size = function(x) { - return arguments.length ? (dx = +x[0], dy = +x[1], pack) : [dx, dy]; + Mont.prototype.convertFrom = function convertFrom (num) { + var r = this.imod(num.mul(this.rinv)); + r.red = null; + return r; }; - pack.padding = function(x) { - return arguments.length ? (padding = typeof x === "function" ? x : constant(+x), pack) : padding; - }; + Mont.prototype.imul = function imul (a, b) { + if (a.isZero() || b.isZero()) { + a.words[0] = 0; + a.length = 1; + return a; + } - return pack; -} + var t = a.imul(b); + var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m); + var u = t.isub(c).iushrn(this.shift); + var res = u; -function radiusLeaf(radius) { - return function(node) { - if (!node.children) { - node.r = Math.max(0, +radius(node) || 0); + if (u.cmp(this.m) >= 0) { + res = u.isub(this.m); + } else if (u.cmpn(0) < 0) { + res = u.iadd(this.m); } + + return res._forceRed(this); }; -} -function packChildren(padding, k) { - return function(node) { - if (children = node.children) { - var children, - i, - n = children.length, - r = padding(node) * k || 0, - e; + Mont.prototype.mul = function mul (a, b) { + if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this); - if (r) for (i = 0; i < n; ++i) children[i].r += r; - e = packEnclose(children); - if (r) for (i = 0; i < n; ++i) children[i].r -= r; - node.r = e + r; + var t = a.mul(b); + var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m); + var u = t.isub(c).iushrn(this.shift); + var res = u; + if (u.cmp(this.m) >= 0) { + res = u.isub(this.m); + } else if (u.cmpn(0) < 0) { + res = u.iadd(this.m); } + + return res._forceRed(this); }; -} -function translateChild(k) { - return function(node) { - var parent = node.parent; - node.r *= k; - if (parent) { - node.x = parent.x + k * node.x; - node.y = parent.y + k * node.y; - } + Mont.prototype.invm = function invm (a) { + // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R + var res = this.imod(a._invmp(this.m).mul(this.r2)); + return res._forceRed(this); }; -} +})(typeof module === 'undefined' || module, this); -function roundNode(node) { - node.x0 = Math.round(node.x0); - node.y0 = Math.round(node.y0); - node.x1 = Math.round(node.x1); - node.y1 = Math.round(node.y1); -} +},{"buffer":111}],103:[function(_dereq_,module,exports){ +'use strict' -function treemapDice(parent, x0, y0, x1, y1) { - var nodes = parent.children, - node, - i = -1, - n = nodes.length, - k = parent.value && (x1 - x0) / parent.value; +module.exports = boundary - while (++i < n) { - node = nodes[i], node.y0 = y0, node.y1 = y1; - node.x0 = x0, node.x1 = x0 += node.value * k; +function boundary (cells) { + var i, j, k + var n = cells.length + var sz = 0 + for (i = 0; i < n; ++i) { + sz += cells[i].length + } + var result = new Array(sz) + var ptr = 0 + for (i = 0; i < n; ++i) { + var c = cells[i] + var d = c.length + for (j = 0; j < d; ++j) { + var b = result[ptr++] = new Array(d - 1) + var p = 0 + for (k = 0; k < d; ++k) { + if (k === j) { + continue + } + b[p++] = c[k] + } + if (j & 1) { + var tmp = b[1] + b[1] = b[0] + b[0] = tmp + } + } } + return result } -function partition() { - var dx = 1, - dy = 1, - padding = 0, - round = false; +},{}],104:[function(_dereq_,module,exports){ +'use strict' - function partition(root) { - var n = root.height + 1; - root.x0 = - root.y0 = padding; - root.x1 = dx; - root.y1 = dy / n; - root.eachBefore(positionNode(dy, n)); - if (round) root.eachBefore(roundNode); - return root; +module.exports = boxIntersectWrapper + +var pool = _dereq_('typedarray-pool') +var sweep = _dereq_('./lib/sweep') +var boxIntersectIter = _dereq_('./lib/intersect') + +function boxEmpty(d, box) { + for(var j=0; j>>1 + if(d <= 0) { + return + } - return partition; -} + var retval -var keyPrefix = "$", // Protect against keys like “__proto__”. - preroot = {depth: -1}, - ambiguous = {}; + //Convert red boxes + var redList = pool.mallocDouble(2*d*n) + var redIds = pool.mallocInt32(n) + n = convertBoxes(red, d, redList, redIds) -function defaultId(d) { - return d.id; -} + if(n > 0) { + if(d === 1 && full) { + //Special case: 1d complete + sweep.init(n) + retval = sweep.sweepComplete( + d, visit, + 0, n, redList, redIds, + 0, n, redList, redIds) + } else { -function defaultParentId(d) { - return d.parentId; -} + //Convert blue boxes + var blueList = pool.mallocDouble(2*d*m) + var blueIds = pool.mallocInt32(m) + m = convertBoxes(blue, d, blueList, blueIds) -function stratify() { - var id = defaultId, - parentId = defaultParentId; + if(m > 0) { + sweep.init(n+m) - function stratify(data) { - var d, - i, - n = data.length, - root, - parent, - node, - nodes = new Array(n), - nodeId, - nodeKey, - nodeByKey = {}; - - for (i = 0; i < n; ++i) { - d = data[i], node = nodes[i] = new Node(d); - if ((nodeId = id(d, i, data)) != null && (nodeId += "")) { - nodeKey = keyPrefix + (node.id = nodeId); - nodeByKey[nodeKey] = nodeKey in nodeByKey ? ambiguous : node; - } - } + if(d === 1) { + //Special case: 1d bipartite + retval = sweep.sweepBipartite( + d, visit, + 0, n, redList, redIds, + 0, m, blueList, blueIds) + } else { + //General case: d>1 + retval = boxIntersectIter( + d, visit, full, + n, redList, redIds, + m, blueList, blueIds) + } - for (i = 0; i < n; ++i) { - node = nodes[i], nodeId = parentId(data[i], i, data); - if (nodeId == null || !(nodeId += "")) { - if (root) throw new Error("multiple roots"); - root = node; - } else { - parent = nodeByKey[keyPrefix + nodeId]; - if (!parent) throw new Error("missing: " + nodeId); - if (parent === ambiguous) throw new Error("ambiguous: " + nodeId); - if (parent.children) parent.children.push(node); - else parent.children = [node]; - node.parent = parent; + pool.free(blueList) + pool.free(blueIds) } } - if (!root) throw new Error("no root"); - root.parent = preroot; - root.eachBefore(function(node) { node.depth = node.parent.depth + 1; --n; }).eachBefore(computeHeight); - root.parent = null; - if (n > 0) throw new Error("cycle"); - - return root; + pool.free(redList) + pool.free(redIds) } - stratify.id = function(x) { - return arguments.length ? (id = required(x), stratify) : id; - }; - - stratify.parentId = function(x) { - return arguments.length ? (parentId = required(x), stratify) : parentId; - }; - - return stratify; + return retval } -function defaultSeparation$1(a, b) { - return a.parent === b.parent ? 1 : 2; -} -// function radialSeparation(a, b) { -// return (a.parent === b.parent ? 1 : 2) / a.depth; -// } +var RESULT -// This function is used to traverse the left contour of a subtree (or -// subforest). It returns the successor of v on this contour. This successor is -// either given by the leftmost child of v or by the thread of v. The function -// returns null if and only if v is on the highest level of its subtree. -function nextLeft(v) { - var children = v.children; - return children ? children[0] : v.t; +function appendItem(i,j) { + RESULT.push([i,j]) } -// This function works analogously to nextLeft. -function nextRight(v) { - var children = v.children; - return children ? children[children.length - 1] : v.t; +function intersectFullArray(x) { + RESULT = [] + boxIntersect(x, x, appendItem, true) + return RESULT } -// Shifts the current subtree rooted at w+. This is done by increasing -// prelim(w+) and mod(w+) by shift. -function moveSubtree(wm, wp, shift) { - var change = shift / (wp.i - wm.i); - wp.c -= change; - wp.s += shift; - wm.c += change; - wp.z += shift; - wp.m += shift; +function intersectBipartiteArray(x, y) { + RESULT = [] + boxIntersect(x, y, appendItem, false) + return RESULT } -// All other shifts, applied to the smaller subtrees between w- and w+, are -// performed by this function. To prepare the shifts, we have to adjust -// change(w+), shift(w+), and change(w-). -function executeShifts(v) { - var shift = 0, - change = 0, - children = v.children, - i = children.length, - w; - while (--i >= 0) { - w = children[i]; - w.z += shift; - w.m += shift; - shift += w.s + (change += w.c); +//User-friendly wrapper, handle full input and no-visitor cases +function boxIntersectWrapper(arg0, arg1, arg2) { + var result + switch(arguments.length) { + case 1: + return intersectFullArray(arg0) + case 2: + if(typeof arg1 === 'function') { + return boxIntersect(arg0, arg0, arg1, true) + } else { + return intersectBipartiteArray(arg0, arg1) + } + case 3: + return boxIntersect(arg0, arg1, arg2, false) + default: + throw new Error('box-intersect: Invalid arguments') } } +},{"./lib/intersect":106,"./lib/sweep":110,"typedarray-pool":611}],105:[function(_dereq_,module,exports){ +'use strict' -// If vi-’s ancestor is a sibling of v, returns vi-’s ancestor. Otherwise, -// returns the specified (default) ancestor. -function nextAncestor(vim, v, ancestor) { - return vim.a.parent === v.parent ? vim.a : ancestor; -} - -function TreeNode(node, i) { - this._ = node; - this.parent = null; - this.children = null; - this.A = null; // default ancestor - this.a = this; // ancestor - this.z = 0; // prelim - this.m = 0; // mod - this.c = 0; // change - this.s = 0; // shift - this.t = null; // thread - this.i = i; // number -} +var DIMENSION = 'd' +var AXIS = 'ax' +var VISIT = 'vv' +var FLIP = 'fp' -TreeNode.prototype = Object.create(Node.prototype); +var ELEM_SIZE = 'es' -function treeRoot(root) { - var tree = new TreeNode(root, 0), - node, - nodes = [tree], - child, - children, - i, - n; +var RED_START = 'rs' +var RED_END = 're' +var RED_BOXES = 'rb' +var RED_INDEX = 'ri' +var RED_PTR = 'rp' - while (node = nodes.pop()) { - if (children = node._.children) { - node.children = new Array(n = children.length); - for (i = n - 1; i >= 0; --i) { - nodes.push(child = node.children[i] = new TreeNode(children[i], i)); - child.parent = node; - } - } - } +var BLUE_START = 'bs' +var BLUE_END = 'be' +var BLUE_BOXES = 'bb' +var BLUE_INDEX = 'bi' +var BLUE_PTR = 'bp' - (tree.parent = new TreeNode(null, 0)).children = [tree]; - return tree; -} +var RETVAL = 'rv' -// Node-link tree diagram using the Reingold-Tilford "tidy" algorithm -function tree() { - var separation = defaultSeparation$1, - dx = 1, - dy = 1, - nodeSize = null; +var INNER_LABEL = 'Q' - function tree(root) { - var t = treeRoot(root); +var ARGS = [ + DIMENSION, + AXIS, + VISIT, + RED_START, + RED_END, + RED_BOXES, + RED_INDEX, + BLUE_START, + BLUE_END, + BLUE_BOXES, + BLUE_INDEX +] - // Compute the layout using Buchheim et al.’s algorithm. - t.eachAfter(firstWalk), t.parent.m = -t.z; - t.eachBefore(secondWalk); +function generateBruteForce(redMajor, flip, full) { + var funcName = 'bruteForce' + + (redMajor ? 'Red' : 'Blue') + + (flip ? 'Flip' : '') + + (full ? 'Full' : '') - // If a fixed node size is specified, scale x and y. - if (nodeSize) root.eachBefore(sizeNode); + var code = ['function ', funcName, '(', ARGS.join(), '){', + 'var ', ELEM_SIZE, '=2*', DIMENSION, ';'] - // If a fixed tree size is specified, scale x and y based on the extent. - // Compute the left-most, right-most, and depth-most nodes for extents. - else { - var left = root, - right = root, - bottom = root; - root.eachBefore(function(node) { - if (node.x < left.x) left = node; - if (node.x > right.x) right = node; - if (node.depth > bottom.depth) bottom = node; - }); - var s = left === right ? 1 : separation(left, right) / 2, - tx = s - left.x, - kx = dx / (right.x + s + tx), - ky = dy / (bottom.depth || 1); - root.eachBefore(function(node) { - node.x = (node.x + tx) * kx; - node.y = node.depth * ky; - }); - } + var redLoop = + 'for(var i=' + RED_START + ',' + RED_PTR + '=' + ELEM_SIZE + '*' + RED_START + ';' + + 'i<' + RED_END +';' + + '++i,' + RED_PTR + '+=' + ELEM_SIZE + '){' + + 'var x0=' + RED_BOXES + '[' + AXIS + '+' + RED_PTR + '],' + + 'x1=' + RED_BOXES + '[' + AXIS + '+' + RED_PTR + '+' + DIMENSION + '],' + + 'xi=' + RED_INDEX + '[i];' - return root; - } + var blueLoop = + 'for(var j=' + BLUE_START + ',' + BLUE_PTR + '=' + ELEM_SIZE + '*' + BLUE_START + ';' + + 'j<' + BLUE_END + ';' + + '++j,' + BLUE_PTR + '+=' + ELEM_SIZE + '){' + + 'var y0=' + BLUE_BOXES + '[' + AXIS + '+' + BLUE_PTR + '],' + + (full ? 'y1=' + BLUE_BOXES + '[' + AXIS + '+' + BLUE_PTR + '+' + DIMENSION + '],' : '') + + 'yi=' + BLUE_INDEX + '[j];' - // Computes a preliminary x-coordinate for v. Before that, FIRST WALK is - // applied recursively to the children of v, as well as the function - // APPORTION. After spacing out the children by calling EXECUTE SHIFTS, the - // node v is placed to the midpoint of its outermost children. - function firstWalk(v) { - var children = v.children, - siblings = v.parent.children, - w = v.i ? siblings[v.i - 1] : null; - if (children) { - executeShifts(v); - var midpoint = (children[0].z + children[children.length - 1].z) / 2; - if (w) { - v.z = w.z + separation(v._, w._); - v.m = v.z - midpoint; - } else { - v.z = midpoint; - } - } else if (w) { - v.z = w.z + separation(v._, w._); - } - v.parent.A = apportion(v, w, v.parent.A || siblings[0]); + if(redMajor) { + code.push(redLoop, INNER_LABEL, ':', blueLoop) + } else { + code.push(blueLoop, INNER_LABEL, ':', redLoop) } - // Computes all real x-coordinates by summing up the modifiers recursively. - function secondWalk(v) { - v._.x = v.z + v.parent.m; - v.m += v.parent.m; + if(full) { + code.push('if(y1 0) { - moveSubtree(nextAncestor(vim, v, ancestor), v, shift); - sip += shift; - sop += shift; - } - sim += vim.m; - sip += vip.m; - som += vom.m; - sop += vop.m; - } - if (vim && !nextRight(vop)) { - vop.t = vim; - vop.m += sim - sop; - } - if (vip && !nextLeft(vom)) { - vom.t = vip; - vom.m += sip - som; - ancestor = v; - } - } - return ancestor; - } + code.push('for(var k='+AXIS+'+1;k<'+DIMENSION+';++k){'+ + 'var r0='+RED_BOXES+'[k+'+RED_PTR+'],'+ + 'r1='+RED_BOXES+'[k+'+DIMENSION+'+'+RED_PTR+'],'+ + 'b0='+BLUE_BOXES+'[k+'+BLUE_PTR+'],'+ + 'b1='+BLUE_BOXES+'[k+'+DIMENSION+'+'+BLUE_PTR+'];'+ + 'if(r1 maxValue) maxValue = nodeValue; - beta = sumValue * sumValue * alpha; - newRatio = Math.max(maxValue / beta, beta / minValue); - if (newRatio > minRatio) { sumValue -= nodeValue; break; } - minRatio = newRatio; - } + code.push('if(' + RED_END + '-' + RED_START + '>' + + BLUE_END + '-' + BLUE_START + '){') - // Position and record the row orientation. - rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)}); - if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1); - else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1); - value -= sumValue, i0 = i1; + if(full) { + invoke(true, false) + code.push('}else{') + invoke(false, false) + } else { + code.push('if(' + FLIP + '){') + invoke(true, true) + code.push('}else{') + invoke(true, false) + code.push('}}else{if(' + FLIP + '){') + invoke(false, true) + code.push('}else{') + invoke(false, false) + code.push('}') } + code.push('}}return ' + funcName) - return rows; + var codeStr = prefix.join('') + code.join('') + var proc = new Function(codeStr) + return proc() } -var squarify = (function custom(ratio) { - - function squarify(parent, x0, y0, x1, y1) { - squarifyRatio(ratio, parent, x0, y0, x1, y1); - } - squarify.ratio = function(x) { - return custom((x = +x) > 1 ? x : 1); - }; +exports.partial = bruteForcePlanner(false) +exports.full = bruteForcePlanner(true) +},{}],106:[function(_dereq_,module,exports){ +'use strict' - return squarify; -})(phi); +module.exports = boxIntersectIter -function index$1() { - var tile = squarify, - round = false, - dx = 1, - dy = 1, - paddingStack = [0], - paddingInner = constantZero, - paddingTop = constantZero, - paddingRight = constantZero, - paddingBottom = constantZero, - paddingLeft = constantZero; +var pool = _dereq_('typedarray-pool') +var bits = _dereq_('bit-twiddle') +var bruteForce = _dereq_('./brute') +var bruteForcePartial = bruteForce.partial +var bruteForceFull = bruteForce.full +var sweep = _dereq_('./sweep') +var findMedian = _dereq_('./median') +var genPartition = _dereq_('./partition') - function treemap(root) { - root.x0 = - root.y0 = 0; - root.x1 = dx; - root.y1 = dy; - root.eachBefore(positionNode); - paddingStack = [0]; - if (round) root.eachBefore(roundNode); - return root; - } +//Twiddle parameters +var BRUTE_FORCE_CUTOFF = 128 //Cut off for brute force search +var SCAN_CUTOFF = (1<<22) //Cut off for two way scan +var SCAN_COMPLETE_CUTOFF = (1<<22) - function positionNode(node) { - var p = paddingStack[node.depth], - x0 = node.x0 + p, - y0 = node.y0 + p, - x1 = node.x1 - p, - y1 = node.y1 - p; - if (x1 < x0) x0 = x1 = (x0 + x1) / 2; - if (y1 < y0) y0 = y1 = (y0 + y1) / 2; - node.x0 = x0; - node.y0 = y0; - node.x1 = x1; - node.y1 = y1; - if (node.children) { - p = paddingStack[node.depth + 1] = paddingInner(node) / 2; - x0 += paddingLeft(node) - p; - y0 += paddingTop(node) - p; - x1 -= paddingRight(node) - p; - y1 -= paddingBottom(node) - p; - if (x1 < x0) x0 = x1 = (x0 + x1) / 2; - if (y1 < y0) y0 = y1 = (y0 + y1) / 2; - tile(node, x0, y0, x1, y1); - } - } +//Partition functions +var partitionInteriorContainsInterval = genPartition( + '!(lo>=p0)&&!(p1>=hi)', + ['p0', 'p1']) - treemap.round = function(x) { - return arguments.length ? (round = !!x, treemap) : round; - }; +var partitionStartEqual = genPartition( + 'lo===p0', + ['p0']) - treemap.size = function(x) { - return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy]; - }; +var partitionStartLessThan = genPartition( + 'lo= j - 1) { - var node = nodes[i]; - node.x0 = x0, node.y0 = y0; - node.x1 = x1, node.y1 = y1; - return; +red_loop: + for(var i=redStart, redPtr=redStart*elemSize; i>> 1; - if (sums[mid] < valueTarget) k = mid + 1; - else hi = mid; + if(flip && blueX === r0) { + continue } - - if ((valueTarget - sums[k - 1]) < (sums[k] - valueTarget) && i + 1 < k) --k; - - var valueLeft = sums[k] - valueOffset, - valueRight = value - valueLeft; - - if ((x1 - x0) > (y1 - y0)) { - var xk = (x0 * valueRight + x1 * valueLeft) / value; - partition(i, k, valueLeft, x0, y0, xk, y1); - partition(k, j, valueRight, xk, y0, x1, y1); + var redId = redIndex[i] + for(var j=axis+1; j 1 ? x : 1); - }; +//The main box intersection routine +function boxIntersectIter( + d, visit, initFull, + xSize, xBoxes, xIndex, + ySize, yBoxes, yIndex) { - return resquarify; -})(phi); + //Reserve memory for stack + iterInit(d, xSize + ySize) -exports.cluster = cluster; -exports.hierarchy = hierarchy; -exports.pack = index; -exports.packEnclose = enclose; -exports.packSiblings = siblings; -exports.partition = partition; -exports.stratify = stratify; -exports.tree = tree; -exports.treemap = index$1; -exports.treemapBinary = binary; -exports.treemapDice = treemapDice; -exports.treemapResquarify = resquarify; -exports.treemapSlice = treemapSlice; -exports.treemapSliceDice = sliceDice; -exports.treemapSquarify = squarify; + var top = 0 + var elemSize = 2 * d + var retval -Object.defineProperty(exports, '__esModule', { value: true }); + iterPush(top++, + 0, + 0, xSize, + 0, ySize, + initFull ? 16 : 0, + -Infinity, Infinity) + if(!initFull) { + iterPush(top++, + 0, + 0, ySize, + 0, xSize, + 1, + -Infinity, Infinity) + } -})); + while(top > 0) { + top -= 1 -},{}],162:[function(_dereq_,module,exports){ -// https://d3js.org/d3-interpolate/ v1.4.0 Copyright 2019 Mike Bostock -(function (global, factory) { -typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, _dereq_('d3-color')) : -typeof define === 'function' && define.amd ? define(['exports', 'd3-color'], factory) : -(global = global || self, factory(global.d3 = global.d3 || {}, global.d3)); -}(this, function (exports, d3Color) { 'use strict'; + var iptr = top * IFRAME_SIZE + var axis = BOX_ISTACK[iptr] + var redStart = BOX_ISTACK[iptr+1] + var redEnd = BOX_ISTACK[iptr+2] + var blueStart = BOX_ISTACK[iptr+3] + var blueEnd = BOX_ISTACK[iptr+4] + var state = BOX_ISTACK[iptr+5] -function basis(t1, v0, v1, v2, v3) { - var t2 = t1 * t1, t3 = t2 * t1; - return ((1 - 3 * t1 + 3 * t2 - t3) * v0 - + (4 - 6 * t2 + 3 * t3) * v1 - + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2 - + t3 * v3) / 6; -} + var dptr = top * DFRAME_SIZE + var lo = BOX_DSTACK[dptr] + var hi = BOX_DSTACK[dptr+1] -function basis$1(values) { - var n = values.length - 1; - return function(t) { - var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n), - v1 = values[i], - v2 = values[i + 1], - v0 = i > 0 ? values[i - 1] : 2 * v1 - v2, - v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1; - return basis((t - i / n) * n, v0, v1, v2, v3); - }; -} + //Unpack state info + var flip = (state & 1) + var full = !!(state & 16) -function basisClosed(values) { - var n = values.length; - return function(t) { - var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n), - v0 = values[(i + n - 1) % n], - v1 = values[i % n], - v2 = values[(i + 1) % n], - v3 = values[(i + 2) % n]; - return basis((t - i / n) * n, v0, v1, v2, v3); - }; -} + //Unpack indices + var red = xBoxes + var redIndex = xIndex + var blue = yBoxes + var blueIndex = yIndex + if(flip) { + red = yBoxes + redIndex = yIndex + blue = xBoxes + blueIndex = xIndex + } -function constant(x) { - return function() { - return x; - }; -} + if(state & 2) { + redEnd = partitionStartLessThan( + d, axis, + redStart, redEnd, red, redIndex, + hi) + if(redStart >= redEnd) { + continue + } + } + if(state & 4) { + redStart = partitionEndLessThanEqual( + d, axis, + redStart, redEnd, red, redIndex, + lo) + if(redStart >= redEnd) { + continue + } + } + + var redCount = redEnd - redStart + var blueCount = blueEnd - blueStart -function linear(a, d) { - return function(t) { - return a + t * d; - }; -} + if(full) { + if(d * redCount * (redCount + blueCount) < SCAN_COMPLETE_CUTOFF) { + retval = sweep.scanComplete( + d, axis, visit, + redStart, redEnd, red, redIndex, + blueStart, blueEnd, blue, blueIndex) + if(retval !== void 0) { + return retval + } + continue + } + } else { + if(d * Math.min(redCount, blueCount) < BRUTE_FORCE_CUTOFF) { + //If input small, then use brute force + retval = bruteForcePartial( + d, axis, visit, flip, + redStart, redEnd, red, redIndex, + blueStart, blueEnd, blue, blueIndex) + if(retval !== void 0) { + return retval + } + continue + } else if(d * redCount * blueCount < SCAN_CUTOFF) { + //If input medium sized, then use sweep and prune + retval = sweep.scanBipartite( + d, axis, visit, flip, + redStart, redEnd, red, redIndex, + blueStart, blueEnd, blue, blueIndex) + if(retval !== void 0) { + return retval + } + continue + } + } + + //First, find all red intervals whose interior contains (lo,hi) + var red0 = partitionInteriorContainsInterval( + d, axis, + redStart, redEnd, red, redIndex, + lo, hi) -function exponential(a, b, y) { - return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) { - return Math.pow(a + t * b, y); - }; -} + //Lower dimensional case + if(redStart < red0) { -function hue(a, b) { - var d = b - a; - return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a); -} + if(d * (red0 - redStart) < BRUTE_FORCE_CUTOFF) { + //Special case for small inputs: use brute force + retval = bruteForceFull( + d, axis+1, visit, + redStart, red0, red, redIndex, + blueStart, blueEnd, blue, blueIndex) + if(retval !== void 0) { + return retval + } + } else if(axis === d-2) { + if(flip) { + retval = sweep.sweepBipartite( + d, visit, + blueStart, blueEnd, blue, blueIndex, + redStart, red0, red, redIndex) + } else { + retval = sweep.sweepBipartite( + d, visit, + redStart, red0, red, redIndex, + blueStart, blueEnd, blue, blueIndex) + } + if(retval !== void 0) { + return retval + } + } else { + iterPush(top++, + axis+1, + redStart, red0, + blueStart, blueEnd, + flip, + -Infinity, Infinity) + iterPush(top++, + axis+1, + blueStart, blueEnd, + redStart, red0, + flip^1, + -Infinity, Infinity) + } + } -function gamma(y) { - return (y = +y) === 1 ? nogamma : function(a, b) { - return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a); - }; -} + //Divide and conquer phase + if(red0 < redEnd) { -function nogamma(a, b) { - var d = b - a; - return d ? linear(a, d) : constant(isNaN(a) ? b : a); -} + //Cut blue into 3 parts: + // + // Points < mid point + // Points = mid point + // Points > mid point + // + var blue0 = findMedian( + d, axis, + blueStart, blueEnd, blue, blueIndex) + var mid = blue[elemSize * blue0 + axis] + var blue1 = partitionStartEqual( + d, axis, + blue0, blueEnd, blue, blueIndex, + mid) -var rgb = (function rgbGamma(y) { - var color = gamma(y); + //Right case + if(blue1 < blueEnd) { + iterPush(top++, + axis, + red0, redEnd, + blue1, blueEnd, + (flip|4) + (full ? 16 : 0), + mid, hi) + } - function rgb(start, end) { - var r = color((start = d3Color.rgb(start)).r, (end = d3Color.rgb(end)).r), - g = color(start.g, end.g), - b = color(start.b, end.b), - opacity = nogamma(start.opacity, end.opacity); - return function(t) { - start.r = r(t); - start.g = g(t); - start.b = b(t); - start.opacity = opacity(t); - return start + ""; - }; - } - - rgb.gamma = rgbGamma; + //Left case + if(blueStart < blue0) { + iterPush(top++, + axis, + red0, redEnd, + blueStart, blue0, + (flip|2) + (full ? 16 : 0), + lo, mid) + } - return rgb; -})(1); + //Center case (the hard part) + if(blue0 + 1 === blue1) { + //Optimization: Range with exactly 1 point, use a brute force scan + if(full) { + retval = onePointFull( + d, axis, visit, + red0, redEnd, red, redIndex, + blue0, blue, blueIndex[blue0]) + } else { + retval = onePointPartial( + d, axis, visit, flip, + red0, redEnd, red, redIndex, + blue0, blue, blueIndex[blue0]) + } + if(retval !== void 0) { + return retval + } + } else if(blue0 < blue1) { + var red1 + if(full) { + //If full intersection, need to handle special case + red1 = partitionContainsPoint( + d, axis, + red0, redEnd, red, redIndex, + mid) + if(red0 < red1) { + var redX = partitionStartEqual( + d, axis, + red0, red1, red, redIndex, + mid) + if(axis === d-2) { + //Degenerate sweep intersection: + // [red0, redX] with [blue0, blue1] + if(red0 < redX) { + retval = sweep.sweepComplete( + d, visit, + red0, redX, red, redIndex, + blue0, blue1, blue, blueIndex) + if(retval !== void 0) { + return retval + } + } -function rgbSpline(spline) { - return function(colors) { - var n = colors.length, - r = new Array(n), - g = new Array(n), - b = new Array(n), - i, color; - for (i = 0; i < n; ++i) { - color = d3Color.rgb(colors[i]); - r[i] = color.r || 0; - g[i] = color.g || 0; - b[i] = color.b || 0; + //Normal sweep intersection: + // [redX, red1] with [blue0, blue1] + if(redX < red1) { + retval = sweep.sweepBipartite( + d, visit, + redX, red1, red, redIndex, + blue0, blue1, blue, blueIndex) + if(retval !== void 0) { + return retval + } + } + } else { + if(red0 < redX) { + iterPush(top++, + axis+1, + red0, redX, + blue0, blue1, + 16, + -Infinity, Infinity) + } + if(redX < red1) { + iterPush(top++, + axis+1, + redX, red1, + blue0, blue1, + 0, + -Infinity, Infinity) + iterPush(top++, + axis+1, + blue0, blue1, + redX, red1, + 1, + -Infinity, Infinity) + } + } + } + } else { + if(flip) { + red1 = partitionContainsPointProper( + d, axis, + red0, redEnd, red, redIndex, + mid) + } else { + red1 = partitionContainsPoint( + d, axis, + red0, redEnd, red, redIndex, + mid) + } + if(red0 < red1) { + if(axis === d-2) { + if(flip) { + retval = sweep.sweepBipartite( + d, visit, + blue0, blue1, blue, blueIndex, + red0, red1, red, redIndex) + } else { + retval = sweep.sweepBipartite( + d, visit, + red0, red1, red, redIndex, + blue0, blue1, blue, blueIndex) + } + } else { + iterPush(top++, + axis+1, + red0, red1, + blue0, blue1, + flip, + -Infinity, Infinity) + iterPush(top++, + axis+1, + blue0, blue1, + red0, red1, + flip^1, + -Infinity, Infinity) + } + } + } + } } - r = spline(r); - g = spline(g); - b = spline(b); - color.opacity = 1; - return function(t) { - color.r = r(t); - color.g = g(t); - color.b = b(t); - return color + ""; - }; - }; -} - -var rgbBasis = rgbSpline(basis$1); -var rgbBasisClosed = rgbSpline(basisClosed); - -function numberArray(a, b) { - if (!b) b = []; - var n = a ? Math.min(b.length, a.length) : 0, - c = b.slice(), - i; - return function(t) { - for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t; - return c; - }; + } } +},{"./brute":105,"./median":107,"./partition":108,"./sweep":110,"bit-twiddle":100,"typedarray-pool":611}],107:[function(_dereq_,module,exports){ +'use strict' -function isNumberArray(x) { - return ArrayBuffer.isView(x) && !(x instanceof DataView); -} +module.exports = findMedian -function array(a, b) { - return (isNumberArray(b) ? numberArray : genericArray)(a, b); -} +var genPartition = _dereq_('./partition') -function genericArray(a, b) { - var nb = b ? b.length : 0, - na = a ? Math.min(nb, a.length) : 0, - x = new Array(na), - c = new Array(nb), - i; +var partitionStartLessThan = genPartition('lostart && boxes[ptr+axis] > x; + --j, ptr-=elemSize) { + //Swap + var aPtr = ptr + var bPtr = ptr+elemSize + for(var k=0; k>> 1) + var elemSize = 2*d + var pivot = mid + var value = boxes[elemSize*mid+axis] + + while(lo < hi) { + if(hi - lo < PARTITION_THRESHOLD) { + insertionSort(d, axis, lo, hi, boxes, ids) + value = boxes[elemSize*mid+axis] + break + } + + //Select pivot using median-of-3 + var count = hi - lo + var pivot0 = (Math.random()*count+lo)|0 + var value0 = boxes[elemSize*pivot0 + axis] + var pivot1 = (Math.random()*count+lo)|0 + var value1 = boxes[elemSize*pivot1 + axis] + var pivot2 = (Math.random()*count+lo)|0 + var value2 = boxes[elemSize*pivot2 + axis] + if(value0 <= value1) { + if(value2 >= value1) { + pivot = pivot1 + value = value1 + } else if(value0 >= value2) { + pivot = pivot0 + value = value0 + } else { + pivot = pivot2 + value = value2 + } + } else { + if(value1 >= value2) { + pivot = pivot1 + value = value1 + } else if(value2 >= value0) { + pivot = pivot0 + value = value0 + } else { + pivot = pivot2 + value = value2 + } + } -function object(a, b) { - var i = {}, - c = {}, - k; + //Swap pivot to end of array + var aPtr = elemSize * (hi-1) + var bPtr = elemSize * pivot + for(var i=0; i= 0) { + reads.push('lo=e[k+n]') + } + if(predicate.indexOf('hi') >= 0) { + reads.push('hi=e[k+o]') + } + fargs.push( + code.replace('_', reads.join()) + .replace('$', predicate)) + return Function.apply(void 0, fargs) } +},{}],109:[function(_dereq_,module,exports){ +'use strict'; -function string(a, b) { - var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b - am, // current match in a - bm, // current match in b - bs, // string preceding current number in b, if any - i = -1, // index in s - s = [], // string constants and placeholders - q = []; // number interpolators +//This code is extracted from ndarray-sort +//It is inlined here as a temporary workaround - // Coerce inputs to strings. - a = a + "", b = b + ""; +module.exports = wrapper; - // Interpolate pairs of numbers in a & b. - while ((am = reA.exec(a)) - && (bm = reB.exec(b))) { - if ((bs = bm.index) > bi) { // a string precedes the next number in b - bs = b.slice(bi, bs); - if (s[i]) s[i] += bs; // coalesce with previous string - else s[++i] = bs; - } - if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match - if (s[i]) s[i] += bm; // coalesce with previous string - else s[++i] = bm; - } else { // interpolate non-matching numbers - s[++i] = null; - q.push({i: i, x: number(am, bm)}); - } - bi = reB.lastIndex; - } +var INSERT_SORT_CUTOFF = 32 - // Add remains of b. - if (bi < b.length) { - bs = b.slice(bi); - if (s[i]) s[i] += bs; // coalesce with previous string - else s[++i] = bs; +function wrapper(data, n0) { + if (n0 <= 4*INSERT_SORT_CUTOFF) { + insertionSort(0, n0 - 1, data); + } else { + quickSort(0, n0 - 1, data); } - - // Special optimization for only a single match. - // Otherwise, interpolate each of the numbers and rejoin the string. - return s.length < 2 ? (q[0] - ? one(q[0].x) - : zero(b)) - : (b = q.length, function(t) { - for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t); - return s.join(""); - }); } -function value(a, b) { - var t = typeof b, c; - return b == null || t === "boolean" ? constant(b) - : (t === "number" ? number - : t === "string" ? ((c = d3Color.color(b)) ? (b = c, rgb) : string) - : b instanceof d3Color.color ? rgb - : b instanceof Date ? date - : isNumberArray(b) ? numberArray - : Array.isArray(b) ? genericArray - : typeof b.valueOf !== "function" && typeof b.toString !== "function" || isNaN(b) ? object - : number)(a, b); +function insertionSort(left, right, data) { + var ptr = 2*(left+1) + for(var i=left+1; i<=right; ++i) { + var a = data[ptr++] + var b = data[ptr++] + var j = i + var jptr = ptr-2 + while(j-- > left) { + var x = data[jptr-2] + var y = data[jptr-1] + if(x < a) { + break + } else if(x === a && y < b) { + break + } + data[jptr] = x + data[jptr+1] = y + jptr -= 2 + } + data[jptr] = a + data[jptr+1] = b + } } -function discrete(range) { - var n = range.length; - return function(t) { - return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))]; - }; +function swap(i, j, data) { + i *= 2 + j *= 2 + var x = data[i] + var y = data[i+1] + data[i] = data[j] + data[i+1] = data[j+1] + data[j] = x + data[j+1] = y } -function hue$1(a, b) { - var i = hue(+a, +b); - return function(t) { - var x = i(t); - return x - 360 * Math.floor(x / 360); - }; +function move(i, j, data) { + i *= 2 + j *= 2 + data[i] = data[j] + data[i+1] = data[j+1] } -function round(a, b) { - return a = +a, b = +b, function(t) { - return Math.round(a * (1 - t) + b * t); - }; +function rotate(i, j, k, data) { + i *= 2 + j *= 2 + k *= 2 + var x = data[i] + var y = data[i+1] + data[i] = data[j] + data[i+1] = data[j+1] + data[j] = data[k] + data[j+1] = data[k+1] + data[k] = x + data[k+1] = y } -var degrees = 180 / Math.PI; - -var identity = { - translateX: 0, - translateY: 0, - rotate: 0, - skewX: 0, - scaleX: 1, - scaleY: 1 -}; - -function decompose(a, b, c, d, e, f) { - var scaleX, scaleY, skewX; - if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX; - if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX; - if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY; - if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX; - return { - translateX: e, - translateY: f, - rotate: Math.atan2(b, a) * degrees, - skewX: Math.atan(skewX) * degrees, - scaleX: scaleX, - scaleY: scaleY - }; +function shufflePivot(i, j, px, py, data) { + i *= 2 + j *= 2 + data[i] = data[j] + data[j] = px + data[i+1] = data[j+1] + data[j+1] = py } -var cssNode, - cssRoot, - cssView, - svgNode; - -function parseCss(value) { - if (value === "none") return identity; - if (!cssNode) cssNode = document.createElement("DIV"), cssRoot = document.documentElement, cssView = document.defaultView; - cssNode.style.transform = value; - value = cssView.getComputedStyle(cssRoot.appendChild(cssNode), null).getPropertyValue("transform"); - cssRoot.removeChild(cssNode); - value = value.slice(7, -1).split(","); - return decompose(+value[0], +value[1], +value[2], +value[3], +value[4], +value[5]); +function compare(i, j, data) { + i *= 2 + j *= 2 + var x = data[i], + y = data[j] + if(x < y) { + return false + } else if(x === y) { + return data[i+1] > data[j+1] + } + return true } -function parseSvg(value) { - if (value == null) return identity; - if (!svgNode) svgNode = document.createElementNS("http://www.w3.org/2000/svg", "g"); - svgNode.setAttribute("transform", value); - if (!(value = svgNode.transform.baseVal.consolidate())) return identity; - value = value.matrix; - return decompose(value.a, value.b, value.c, value.d, value.e, value.f); +function comparePivot(i, y, b, data) { + i *= 2 + var x = data[i] + if(x < y) { + return true + } else if(x === y) { + return data[i+1] < b + } + return false } -function interpolateTransform(parse, pxComma, pxParen, degParen) { - - function pop(s) { - return s.length ? s.pop() + " " : ""; +function quickSort(left, right, data) { + var 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, + tmp = 0 + if(compare(el1, el2, data)) { + tmp = el1 + el1 = el2 + el2 = tmp } - - function translate(xa, ya, xb, yb, s, q) { - if (xa !== xb || ya !== yb) { - var i = s.push("translate(", null, pxComma, null, pxParen); - q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)}); - } else if (xb || yb) { - s.push("translate(" + xb + pxComma + yb + pxParen); - } + if(compare(el4, el5, data)) { + tmp = el4 + el4 = el5 + el5 = tmp } - - function rotate(a, b, s, q) { - if (a !== b) { - if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path - q.push({i: s.push(pop(s) + "rotate(", null, degParen) - 2, x: number(a, b)}); - } else if (b) { - s.push(pop(s) + "rotate(" + b + degParen); - } + if(compare(el1, el3, data)) { + tmp = el1 + el1 = el3 + el3 = tmp + } + if(compare(el2, el3, data)) { + tmp = el2 + el2 = el3 + el3 = tmp + } + if(compare(el1, el4, data)) { + tmp = el1 + el1 = el4 + el4 = tmp + } + if(compare(el3, el4, data)) { + tmp = el3 + el3 = el4 + el4 = tmp + } + if(compare(el2, el5, data)) { + tmp = el2 + el2 = el5 + el5 = tmp + } + if(compare(el2, el3, data)) { + tmp = el2 + el2 = el3 + el3 = tmp + } + if(compare(el4, el5, data)) { + tmp = el4 + el4 = el5 + el5 = tmp } - function skewX(a, b, s, q) { - if (a !== b) { - q.push({i: s.push(pop(s) + "skewX(", null, degParen) - 2, x: number(a, b)}); - } else if (b) { - s.push(pop(s) + "skewX(" + b + degParen); - } + var pivot1X = data[2*el2] + var pivot1Y = data[2*el2+1] + var pivot2X = data[2*el4] + var pivot2Y = data[2*el4+1] + + var ptr0 = 2 * el1; + var ptr2 = 2 * el3; + var ptr4 = 2 * el5; + var ptr5 = 2 * index1; + var ptr6 = 2 * index3; + var ptr7 = 2 * index5; + for (var i1 = 0; i1 < 2; ++i1) { + var x = data[ptr0+i1]; + var y = data[ptr2+i1]; + var z = data[ptr4+i1]; + data[ptr5+i1] = x; + data[ptr6+i1] = y; + data[ptr7+i1] = z; } - function scale(xa, ya, xb, yb, s, q) { - if (xa !== xb || ya !== yb) { - var i = s.push(pop(s) + "scale(", null, ",", null, ")"); - q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)}); - } else if (xb !== 1 || yb !== 1) { - s.push(pop(s) + "scale(" + xb + "," + yb + ")"); + move(index2, left, data) + move(index4, right, data) + for (var k = less; k <= great; ++k) { + if (comparePivot(k, pivot1X, pivot1Y, data)) { + if (k !== less) { + swap(k, less, data) + } + ++less; + } else { + if (!comparePivot(k, pivot2X, pivot2Y, data)) { + while (true) { + if (!comparePivot(great, pivot2X, pivot2Y, data)) { + if (--great < k) { + break; + } + continue; + } else { + if (comparePivot(great, pivot1X, pivot1Y, data)) { + rotate(k, less, great, data) + ++less; + --great; + } else { + swap(k, great, data) + --great; + } + break; + } + } + } } } + shufflePivot(left, less-1, pivot1X, pivot1Y, data) + shufflePivot(right, great+1, pivot2X, pivot2Y, data) + if (less - 2 - left <= INSERT_SORT_CUTOFF) { + insertionSort(left, less - 2, data); + } else { + quickSort(left, less - 2, data); + } + if (right - (great + 2) <= INSERT_SORT_CUTOFF) { + insertionSort(great + 2, right, data); + } else { + quickSort(great + 2, right, data); + } + if (great - less <= INSERT_SORT_CUTOFF) { + insertionSort(less, great, data); + } else { + quickSort(less, great, data); + } +} +},{}],110:[function(_dereq_,module,exports){ +'use strict' - return function(a, b) { - var s = [], // string constants and placeholders - q = []; // number interpolators - a = parse(a), b = parse(b); - translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q); - rotate(a.rotate, b.rotate, s, q); - skewX(a.skewX, b.skewX, s, q); - scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q); - a = b = null; // gc - return function(t) { - var i = -1, n = q.length, o; - while (++i < n) s[(o = q[i]).i] = o.x(t); - return s.join(""); - }; - }; +module.exports = { + init: sqInit, + sweepBipartite: sweepBipartite, + sweepComplete: sweepComplete, + scanBipartite: scanBipartite, + scanComplete: scanComplete } -var interpolateTransformCss = interpolateTransform(parseCss, "px, ", "px)", "deg)"); -var interpolateTransformSvg = interpolateTransform(parseSvg, ", ", ")", ")"); +var pool = _dereq_('typedarray-pool') +var bits = _dereq_('bit-twiddle') +var isort = _dereq_('./sort') -var rho = Math.SQRT2, - rho2 = 2, - rho4 = 4, - epsilon2 = 1e-12; +//Flag for blue +var BLUE_FLAG = (1<<28) -function cosh(x) { - return ((x = Math.exp(x)) + 1 / x) / 2; +//1D sweep event queue stuff (use pool to save space) +var INIT_CAPACITY = 1024 +var RED_SWEEP_QUEUE = pool.mallocInt32(INIT_CAPACITY) +var RED_SWEEP_INDEX = pool.mallocInt32(INIT_CAPACITY) +var BLUE_SWEEP_QUEUE = pool.mallocInt32(INIT_CAPACITY) +var BLUE_SWEEP_INDEX = pool.mallocInt32(INIT_CAPACITY) +var COMMON_SWEEP_QUEUE = pool.mallocInt32(INIT_CAPACITY) +var COMMON_SWEEP_INDEX = pool.mallocInt32(INIT_CAPACITY) +var SWEEP_EVENTS = pool.mallocDouble(INIT_CAPACITY * 8) + +//Reserves memory for the 1D sweep data structures +function sqInit(count) { + var rcount = bits.nextPow2(count) + if(RED_SWEEP_QUEUE.length < rcount) { + pool.free(RED_SWEEP_QUEUE) + RED_SWEEP_QUEUE = pool.mallocInt32(rcount) + } + if(RED_SWEEP_INDEX.length < rcount) { + pool.free(RED_SWEEP_INDEX) + RED_SWEEP_INDEX = pool.mallocInt32(rcount) + } + if(BLUE_SWEEP_QUEUE.length < rcount) { + pool.free(BLUE_SWEEP_QUEUE) + BLUE_SWEEP_QUEUE = pool.mallocInt32(rcount) + } + if(BLUE_SWEEP_INDEX.length < rcount) { + pool.free(BLUE_SWEEP_INDEX) + BLUE_SWEEP_INDEX = pool.mallocInt32(rcount) + } + if(COMMON_SWEEP_QUEUE.length < rcount) { + pool.free(COMMON_SWEEP_QUEUE) + COMMON_SWEEP_QUEUE = pool.mallocInt32(rcount) + } + if(COMMON_SWEEP_INDEX.length < rcount) { + pool.free(COMMON_SWEEP_INDEX) + COMMON_SWEEP_INDEX = pool.mallocInt32(rcount) + } + var eventLength = 8 * rcount + if(SWEEP_EVENTS.length < eventLength) { + pool.free(SWEEP_EVENTS) + SWEEP_EVENTS = pool.mallocDouble(eventLength) + } } -function sinh(x) { - return ((x = Math.exp(x)) - 1 / x) / 2; +//Remove an item from the active queue in O(1) +function sqPop(queue, index, count, item) { + var idx = index[item] + var top = queue[count-1] + queue[idx] = top + index[top] = idx } -function tanh(x) { - return ((x = Math.exp(2 * x)) - 1) / (x + 1); +//Insert an item into the active queue in O(1) +function sqPush(queue, index, count, item) { + queue[count] = item + index[item] = count } -// p0 = [ux0, uy0, w0] -// p1 = [ux1, uy1, w1] -function zoom(p0, p1) { - var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], - ux1 = p1[0], uy1 = p1[1], w1 = p1[2], - dx = ux1 - ux0, - dy = uy1 - uy0, - d2 = dx * dx + dy * dy, - i, - S; +//Recursion base case: use 1D sweep algorithm +function sweepBipartite( + d, visit, + redStart, redEnd, red, redIndex, + blueStart, blueEnd, blue, blueIndex) { - // Special case for u0 ≅ u1. - if (d2 < epsilon2) { - S = Math.log(w1 / w0) / rho; - i = function(t) { - return [ - ux0 + t * dx, - uy0 + t * dy, - w0 * Math.exp(rho * t * S) - ]; - }; - } + //store events as pairs [coordinate, idx] + // + // red create: -(idx+1) + // red destroy: idx + // blue create: -(idx+BLUE_FLAG) + // blue destroy: idx+BLUE_FLAG + // + var ptr = 0 + var elemSize = 2*d + var istart = d-1 + var iend = elemSize-1 - // General case. - else { - var d1 = Math.sqrt(d2), - b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1), - b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1), - r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), - r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1); - S = (r1 - r0) / rho; - i = function(t) { - var s = t * S, - coshr0 = cosh(r0), - u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0)); - return [ - ux0 + u * dx, - uy0 + u * dy, - w0 * coshr0 / cosh(rho * s + r0) - ]; - }; + for(var i=redStart; iright + var n = ptr >>> 1 + isort(SWEEP_EVENTS, n) + + var redActive = 0 + var blueActive = 0 + for(var i=0; i= BLUE_FLAG) { + //blue destroy event + e = (e-BLUE_FLAG)|0 + sqPop(BLUE_SWEEP_QUEUE, BLUE_SWEEP_INDEX, blueActive--, e) + } else if(e >= 0) { + //red destroy event + sqPop(RED_SWEEP_QUEUE, RED_SWEEP_INDEX, redActive--, e) + } else if(e <= -BLUE_FLAG) { + //blue create event + e = (-e-BLUE_FLAG)|0 + for(var j=0; jright + var n = ptr >>> 1 + isort(SWEEP_EVENTS, n) + + var redActive = 0 + var blueActive = 0 + var commonActive = 0 + for(var i=0; i>1) === (SWEEP_EVENTS[2*i+3]>>1)) { + color = 2 + i += 1 } + + if(e < 0) { + //Create event + var id = -(e>>1) - 1 - cubehelix.gamma = cubehelixGamma; - - return cubehelix; - })(1); -} + //Intersect with common + for(var j=0; j>1) - 1 + if(color === 0) { + //Red + sqPop(RED_SWEEP_QUEUE, RED_SWEEP_INDEX, redActive--, id) + } else if(color === 1) { + //Blue + sqPop(BLUE_SWEEP_QUEUE, BLUE_SWEEP_INDEX, blueActive--, id) + } else if(color === 2) { + //Both + sqPop(COMMON_SWEEP_QUEUE, COMMON_SWEEP_INDEX, commonActive--, id) + } + } + } } -exports.interpolate = value; -exports.interpolateArray = array; -exports.interpolateBasis = basis$1; -exports.interpolateBasisClosed = basisClosed; -exports.interpolateCubehelix = cubehelix$1; -exports.interpolateCubehelixLong = cubehelixLong; -exports.interpolateDate = date; -exports.interpolateDiscrete = discrete; -exports.interpolateHcl = hcl$1; -exports.interpolateHclLong = hclLong; -exports.interpolateHsl = hsl$1; -exports.interpolateHslLong = hslLong; -exports.interpolateHue = hue$1; -exports.interpolateLab = lab; -exports.interpolateNumber = number; -exports.interpolateNumberArray = numberArray; -exports.interpolateObject = object; -exports.interpolateRgb = rgb; -exports.interpolateRgbBasis = rgbBasis; -exports.interpolateRgbBasisClosed = rgbBasisClosed; -exports.interpolateRound = round; -exports.interpolateString = string; -exports.interpolateTransformCss = interpolateTransformCss; -exports.interpolateTransformSvg = interpolateTransformSvg; -exports.interpolateZoom = zoom; -exports.piecewise = piecewise; -exports.quantize = quantize; +//Sweep and prune/scanline algorithm: +// Scan along axis, detect intersections +// Brute force all boxes along axis +function scanBipartite( + d, axis, visit, flip, + redStart, redEnd, red, redIndex, + blueStart, blueEnd, blue, blueIndex) { + + var ptr = 0 + var elemSize = 2*d + var istart = axis + var iend = axis+d -Object.defineProperty(exports, '__esModule', { value: true }); + var redShift = 1 + var blueShift = 1 + if(flip) { + blueShift = BLUE_FLAG + } else { + redShift = BLUE_FLAG + } -})); + for(var i=redStart; iright + var n = ptr >>> 1 + isort(SWEEP_EVENTS, n) + + var redActive = 0 + for(var i=0; i= BLUE_FLAG) { + isRed = !flip + idx -= BLUE_FLAG + } else { + isRed = !!flip + idx -= 1 + } + if(isRed) { + sqPush(RED_SWEEP_QUEUE, RED_SWEEP_INDEX, redActive++, idx) + } else { + var blueId = blueIndex[idx] + var bluePtr = elemSize * idx + + var b0 = blue[bluePtr+axis+1] + var b1 = blue[bluePtr+axis+1+d] -var pi = Math.PI, - tau = 2 * pi, - epsilon = 1e-6, - tauEpsilon = tau - epsilon; +red_loop: + for(var j=0; j epsilon)); + for(var i=redStart; i epsilon) || !r) { - this._ += "L" + (this._x1 = x1) + "," + (this._y1 = y1); - } + //process events from left->right + var n = ptr >>> 1 + isort(SWEEP_EVENTS, n) + + var redActive = 0 + for(var i=0; i= BLUE_FLAG) { + RED_SWEEP_QUEUE[redActive++] = idx - BLUE_FLAG + } else { + idx -= 1 + var blueId = blueIndex[idx] + var bluePtr = elemSize * idx - // Otherwise, draw an arc! - else { - var x20 = x2 - x0, - y20 = y2 - y0, - l21_2 = x21 * x21 + y21 * y21, - l20_2 = x20 * x20 + y20 * y20, - l21 = Math.sqrt(l21_2), - l01 = Math.sqrt(l01_2), - l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2), - t01 = l / l01, - t21 = l / l21; + var b0 = blue[bluePtr+axis+1] + var b1 = blue[bluePtr+axis+1+d] - // If the start tangent is not coincident with (x0,y0), line to. - if (Math.abs(t01 - 1) > epsilon) { - this._ += "L" + (x1 + t01 * x01) + "," + (y1 + t01 * y01); - } +red_loop: + for(var j=0; j x01 * y20)) + "," + (this._x1 = x1 + t21 * x21) + "," + (this._y1 = y1 + t21 * y21); - } - }, - arc: function(x, y, r, a0, a1, ccw) { - x = +x, y = +y, r = +r, ccw = !!ccw; - var dx = r * Math.cos(a0), - dy = r * Math.sin(a0), - x0 = x + dx, - y0 = y + dy, - cw = 1 ^ ccw, - da = ccw ? a0 - a1 : a1 - a0; + if(redId === blueId) { + break + } - // Is the radius negative? Error. - if (r < 0) throw new Error("negative radius: " + r); + var redPtr = elemSize * oidx + if(b1 < red[redPtr+axis+1] || + red[redPtr+axis+1+d] < b0) { + continue + } + for(var k=axis+2; k=0; --j) { + if(RED_SWEEP_QUEUE[j] === idx) { + for(var k=j+1; k epsilon || Math.abs(this._y1 - y0) > epsilon) { - this._ += "L" + x0 + "," + y0; - } +},{}],112:[function(_dereq_,module,exports){ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. - // Is this arc empty? We’re done. - if (!r) return; +'use strict'; - // Does the angle go the wrong way? Flip the direction. - if (da < 0) da = da % tau + tau; +var R = typeof Reflect === 'object' ? Reflect : null +var ReflectApply = R && typeof R.apply === 'function' + ? R.apply + : function ReflectApply(target, receiver, args) { + return Function.prototype.apply.call(target, receiver, args); + } - // Is this a complete circle? Draw two arcs to complete the circle. - if (da > tauEpsilon) { - this._ += "A" + r + "," + r + ",0,1," + cw + "," + (x - dx) + "," + (y - dy) + "A" + r + "," + r + ",0,1," + cw + "," + (this._x1 = x0) + "," + (this._y1 = y0); - } +var ReflectOwnKeys +if (R && typeof R.ownKeys === 'function') { + ReflectOwnKeys = R.ownKeys +} else if (Object.getOwnPropertySymbols) { + ReflectOwnKeys = function ReflectOwnKeys(target) { + return Object.getOwnPropertyNames(target) + .concat(Object.getOwnPropertySymbols(target)); + }; +} else { + ReflectOwnKeys = function ReflectOwnKeys(target) { + return Object.getOwnPropertyNames(target); + }; +} - // Is this arc non-empty? Draw an arc! - else if (da > epsilon) { - this._ += "A" + r + "," + r + ",0," + (+(da >= pi)) + "," + cw + "," + (this._x1 = x + r * Math.cos(a1)) + "," + (this._y1 = y + r * Math.sin(a1)); - } - }, - rect: function(x, y, w, h) { - this._ += "M" + (this._x0 = this._x1 = +x) + "," + (this._y0 = this._y1 = +y) + "h" + (+w) + "v" + (+h) + "h" + (-w) + "Z"; - }, - toString: function() { - return this._; - } -}; +function ProcessEmitWarning(warning) { + if (console && console.warn) console.warn(warning); +} -exports.path = path; +var NumberIsNaN = Number.isNaN || function NumberIsNaN(value) { + return value !== value; +} -Object.defineProperty(exports, '__esModule', { value: true }); +function EventEmitter() { + EventEmitter.init.call(this); +} +module.exports = EventEmitter; +module.exports.once = once; -})); +// Backwards-compat with node 0.10.x +EventEmitter.EventEmitter = EventEmitter; -},{}],164:[function(_dereq_,module,exports){ -// https://d3js.org/d3-quadtree/ v1.0.7 Copyright 2019 Mike Bostock -(function (global, factory) { -typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : -typeof define === 'function' && define.amd ? define(['exports'], factory) : -(global = global || self, factory(global.d3 = global.d3 || {})); -}(this, function (exports) { 'use strict'; +EventEmitter.prototype._events = undefined; +EventEmitter.prototype._eventsCount = 0; +EventEmitter.prototype._maxListeners = undefined; -function tree_add(d) { - var x = +this._x.call(null, d), - y = +this._y.call(null, d); - return add(this.cover(x, y), x, y, d); -} +// By default EventEmitters will print a warning if more than 10 listeners are +// added to it. This is a useful default which helps finding memory leaks. +var defaultMaxListeners = 10; -function add(tree, x, y, d) { - if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points +function checkListener(listener) { + if (typeof listener !== 'function') { + throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof listener); + } +} - var parent, - node = tree._root, - leaf = {data: d}, - x0 = tree._x0, - y0 = tree._y0, - x1 = tree._x1, - y1 = tree._y1, - xm, - ym, - xp, - yp, - right, - bottom, - i, - j; +Object.defineProperty(EventEmitter, 'defaultMaxListeners', { + enumerable: true, + get: function() { + return defaultMaxListeners; + }, + set: function(arg) { + if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) { + throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + arg + '.'); + } + defaultMaxListeners = arg; + } +}); - // If the tree is empty, initialize the root as a leaf. - if (!node) return tree._root = leaf, tree; +EventEmitter.init = function() { - // Find the existing leaf for the new point, or add it. - while (node.length) { - if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm; - if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym; - if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree; + if (this._events === undefined || + this._events === Object.getPrototypeOf(this)._events) { + this._events = Object.create(null); + this._eventsCount = 0; } - // Is the new point is exactly coincident with the existing point? - xp = +tree._x.call(null, node.data); - yp = +tree._y.call(null, node.data); - if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree; + this._maxListeners = this._maxListeners || undefined; +}; - // Otherwise, split the leaf node until the old and new point are separated. - do { - parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4); - if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm; - if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym; - } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm))); - return parent[j] = node, parent[i] = leaf, tree; +// Obviously not all Emitters should be limited to 10. This function allows +// that to be increased. Set to zero for unlimited. +EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) { + if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) { + throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + n + '.'); + } + this._maxListeners = n; + return this; +}; + +function _getMaxListeners(that) { + if (that._maxListeners === undefined) + return EventEmitter.defaultMaxListeners; + return that._maxListeners; } -function addAll(data) { - var d, i, n = data.length, - x, - y, - xz = new Array(n), - yz = new Array(n), - x0 = Infinity, - y0 = Infinity, - x1 = -Infinity, - y1 = -Infinity; +EventEmitter.prototype.getMaxListeners = function getMaxListeners() { + return _getMaxListeners(this); +}; - // Compute the points and their extent. - for (i = 0; i < n; ++i) { - if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue; - xz[i] = x; - yz[i] = y; - if (x < x0) x0 = x; - if (x > x1) x1 = x; - if (y < y0) y0 = y; - if (y > y1) y1 = y; +EventEmitter.prototype.emit = function emit(type) { + var args = []; + for (var i = 1; i < arguments.length; i++) args.push(arguments[i]); + var doError = (type === 'error'); + + var events = this._events; + if (events !== undefined) + doError = (doError && events.error === undefined); + else if (!doError) + return false; + + // If there is no 'error' event listener then throw. + if (doError) { + var er; + if (args.length > 0) + er = args[0]; + if (er instanceof Error) { + // Note: The comments on the `throw` lines are intentional, they show + // up in Node's output if this results in an unhandled exception. + throw er; // Unhandled 'error' event + } + // At least give some kind of context to the user + var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : '')); + err.context = er; + throw err; // Unhandled 'error' event } - // If there were no (valid) points, abort. - if (x0 > x1 || y0 > y1) return this; + var handler = events[type]; - // Expand the tree to cover the new points. - this.cover(x0, y0).cover(x1, y1); + if (handler === undefined) + return false; - // Add the new points. - for (i = 0; i < n; ++i) { - add(this, xz[i], yz[i], data[i]); + if (typeof handler === 'function') { + ReflectApply(handler, this, args); + } else { + var len = handler.length; + var listeners = arrayClone(handler, len); + for (var i = 0; i < len; ++i) + ReflectApply(listeners[i], this, args); } - return this; -} + return true; +}; -function tree_cover(x, y) { - if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points +function _addListener(target, type, listener, prepend) { + var m; + var events; + var existing; - var x0 = this._x0, - y0 = this._y0, - x1 = this._x1, - y1 = this._y1; + checkListener(listener); - // If the quadtree has no extent, initialize them. - // Integer extent are necessary so that if we later double the extent, - // the existing quadrant boundaries don’t change due to floating point error! - if (isNaN(x0)) { - x1 = (x0 = Math.floor(x)) + 1; - y1 = (y0 = Math.floor(y)) + 1; - } + events = target._events; + if (events === undefined) { + events = target._events = Object.create(null); + target._eventsCount = 0; + } else { + // To avoid recursion in the case that type === "newListener"! Before + // adding it to the listeners, first emit "newListener". + if (events.newListener !== undefined) { + target.emit('newListener', type, + listener.listener ? listener.listener : listener); - // Otherwise, double repeatedly to cover. - else { - var z = x1 - x0, - node = this._root, - parent, - i; + // Re-assign `events` because a newListener handler could have caused the + // this._events to be assigned to a new object + events = target._events; + } + existing = events[type]; + } - while (x0 > x || x >= x1 || y0 > y || y >= y1) { - i = (y < y0) << 1 | (x < x0); - parent = new Array(4), parent[i] = node, node = parent, z *= 2; - switch (i) { - case 0: x1 = x0 + z, y1 = y0 + z; break; - case 1: x0 = x1 - z, y1 = y0 + z; break; - case 2: x1 = x0 + z, y0 = y1 - z; break; - case 3: x0 = x1 - z, y0 = y1 - z; break; - } + if (existing === undefined) { + // Optimize the case of one listener. Don't need the extra array object. + existing = events[type] = listener; + ++target._eventsCount; + } else { + if (typeof existing === 'function') { + // Adding the second element, need to change to array. + existing = events[type] = + prepend ? [listener, existing] : [existing, listener]; + // If we've already got an array, just append. + } else if (prepend) { + existing.unshift(listener); + } else { + existing.push(listener); } - if (this._root && this._root.length) this._root = node; + // Check for listener leak + m = _getMaxListeners(target); + if (m > 0 && existing.length > m && !existing.warned) { + existing.warned = true; + // No error code for this since it is a Warning + // eslint-disable-next-line no-restricted-syntax + var w = new Error('Possible EventEmitter memory leak detected. ' + + existing.length + ' ' + String(type) + ' listeners ' + + 'added. Use emitter.setMaxListeners() to ' + + 'increase limit'); + w.name = 'MaxListenersExceededWarning'; + w.emitter = target; + w.type = type; + w.count = existing.length; + ProcessEmitWarning(w); + } } - this._x0 = x0; - this._y0 = y0; - this._x1 = x1; - this._y1 = y1; - return this; + return target; } -function tree_data() { - var data = []; - this.visit(function(node) { - if (!node.length) do data.push(node.data); while (node = node.next) - }); - return data; -} +EventEmitter.prototype.addListener = function addListener(type, listener) { + return _addListener(this, type, listener, false); +}; -function tree_extent(_) { - return arguments.length - ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1]) - : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]]; +EventEmitter.prototype.on = EventEmitter.prototype.addListener; + +EventEmitter.prototype.prependListener = + function prependListener(type, listener) { + return _addListener(this, type, listener, true); + }; + +function onceWrapper() { + if (!this.fired) { + this.target.removeListener(this.type, this.wrapFn); + this.fired = true; + if (arguments.length === 0) + return this.listener.call(this.target); + return this.listener.apply(this.target, arguments); + } } -function Quad(node, x0, y0, x1, y1) { - this.node = node; - this.x0 = x0; - this.y0 = y0; - this.x1 = x1; - this.y1 = y1; +function _onceWrap(target, type, listener) { + var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener }; + var wrapped = onceWrapper.bind(state); + wrapped.listener = listener; + state.wrapFn = wrapped; + return wrapped; } -function tree_find(x, y, radius) { - var data, - x0 = this._x0, - y0 = this._y0, - x1, - y1, - x2, - y2, - x3 = this._x1, - y3 = this._y1, - quads = [], - node = this._root, - q, - i; +EventEmitter.prototype.once = function once(type, listener) { + checkListener(listener); + this.on(type, _onceWrap(this, type, listener)); + return this; +}; - if (node) quads.push(new Quad(node, x0, y0, x3, y3)); - if (radius == null) radius = Infinity; - else { - x0 = x - radius, y0 = y - radius; - x3 = x + radius, y3 = y + radius; - radius *= radius; - } +EventEmitter.prototype.prependOnceListener = + function prependOnceListener(type, listener) { + checkListener(listener); + this.prependListener(type, _onceWrap(this, type, listener)); + return this; + }; - while (q = quads.pop()) { +// Emits a 'removeListener' event if and only if the listener was removed. +EventEmitter.prototype.removeListener = + function removeListener(type, listener) { + var list, events, position, i, originalListener; - // Stop searching if this quadrant can’t contain a closer node. - if (!(node = q.node) - || (x1 = q.x0) > x3 - || (y1 = q.y0) > y3 - || (x2 = q.x1) < x0 - || (y2 = q.y1) < y0) continue; + checkListener(listener); - // Bisect the current quadrant. - if (node.length) { - var xm = (x1 + x2) / 2, - ym = (y1 + y2) / 2; + events = this._events; + if (events === undefined) + return this; - quads.push( - new Quad(node[3], xm, ym, x2, y2), - new Quad(node[2], x1, ym, xm, y2), - new Quad(node[1], xm, y1, x2, ym), - new Quad(node[0], x1, y1, xm, ym) - ); + list = events[type]; + if (list === undefined) + return this; - // Visit the closest quadrant first. - if (i = (y >= ym) << 1 | (x >= xm)) { - q = quads[quads.length - 1]; - quads[quads.length - 1] = quads[quads.length - 1 - i]; - quads[quads.length - 1 - i] = q; - } - } + if (list === listener || list.listener === listener) { + if (--this._eventsCount === 0) + this._events = Object.create(null); + else { + delete events[type]; + if (events.removeListener) + this.emit('removeListener', type, list.listener || listener); + } + } else if (typeof list !== 'function') { + position = -1; - // Visit this point. (Visiting coincident points isn’t necessary!) - else { - var dx = x - +this._x.call(null, node.data), - dy = y - +this._y.call(null, node.data), - d2 = dx * dx + dy * dy; - if (d2 < radius) { - var d = Math.sqrt(radius = d2); - x0 = x - d, y0 = y - d; - x3 = x + d, y3 = y + d; - data = node.data; + for (i = list.length - 1; i >= 0; i--) { + if (list[i] === listener || list[i].listener === listener) { + originalListener = list[i].listener; + position = i; + break; + } + } + + if (position < 0) + return this; + + if (position === 0) + list.shift(); + else { + spliceOne(list, position); + } + + if (list.length === 1) + events[type] = list[0]; + + if (events.removeListener !== undefined) + this.emit('removeListener', type, originalListener || listener); } - } - } - return data; -} + return this; + }; -function tree_remove(d) { - if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points +EventEmitter.prototype.off = EventEmitter.prototype.removeListener; - var parent, - node = this._root, - retainer, - previous, - next, - x0 = this._x0, - y0 = this._y0, - x1 = this._x1, - y1 = this._y1, - x, - y, - xm, - ym, - right, - bottom, - i, - j; +EventEmitter.prototype.removeAllListeners = + function removeAllListeners(type) { + var listeners, events, i; - // If the tree is empty, initialize the root as a leaf. - if (!node) return this; + events = this._events; + if (events === undefined) + return this; - // Find the leaf node for the point. - // While descending, also retain the deepest parent with a non-removed sibling. - if (node.length) while (true) { - if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm; - if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym; - if (!(parent = node, node = node[i = bottom << 1 | right])) return this; - if (!node.length) break; - if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i; - } + // not listening for removeListener, no need to emit + if (events.removeListener === undefined) { + if (arguments.length === 0) { + this._events = Object.create(null); + this._eventsCount = 0; + } else if (events[type] !== undefined) { + if (--this._eventsCount === 0) + this._events = Object.create(null); + else + delete events[type]; + } + return this; + } - // Find the point to remove. - while (node.data !== d) if (!(previous = node, node = node.next)) return this; - if (next = node.next) delete node.next; + // emit removeListener for all listeners on all events + if (arguments.length === 0) { + var keys = Object.keys(events); + var key; + for (i = 0; i < keys.length; ++i) { + key = keys[i]; + if (key === 'removeListener') continue; + this.removeAllListeners(key); + } + this.removeAllListeners('removeListener'); + this._events = Object.create(null); + this._eventsCount = 0; + return this; + } - // If there are multiple coincident points, remove just the point. - if (previous) return (next ? previous.next = next : delete previous.next), this; + listeners = events[type]; - // If this is the root point, remove it. - if (!parent) return this._root = next, this; + if (typeof listeners === 'function') { + this.removeListener(type, listeners); + } else if (listeners !== undefined) { + // LIFO order + for (i = listeners.length - 1; i >= 0; i--) { + this.removeListener(type, listeners[i]); + } + } - // Remove this leaf. - next ? parent[i] = next : delete parent[i]; + return this; + }; - // If the parent now contains exactly one leaf, collapse superfluous parents. - if ((node = parent[0] || parent[1] || parent[2] || parent[3]) - && node === (parent[3] || parent[2] || parent[1] || parent[0]) - && !node.length) { - if (retainer) retainer[j] = node; - else this._root = node; - } +function _listeners(target, type, unwrap) { + var events = target._events; - return this; -} + if (events === undefined) + return []; -function removeAll(data) { - for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]); - return this; -} + var evlistener = events[type]; + if (evlistener === undefined) + return []; -function tree_root() { - return this._root; -} + if (typeof evlistener === 'function') + return unwrap ? [evlistener.listener || evlistener] : [evlistener]; -function tree_size() { - var size = 0; - this.visit(function(node) { - if (!node.length) do ++size; while (node = node.next) - }); - return size; + return unwrap ? + unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length); } -function tree_visit(callback) { - var quads = [], q, node = this._root, child, x0, y0, x1, y1; - if (node) quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1)); - while (q = quads.pop()) { - if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) { - var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2; - if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1)); - if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1)); - if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym)); - if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym)); - } +EventEmitter.prototype.listeners = function listeners(type) { + return _listeners(this, type, true); +}; + +EventEmitter.prototype.rawListeners = function rawListeners(type) { + return _listeners(this, type, false); +}; + +EventEmitter.listenerCount = function(emitter, type) { + if (typeof emitter.listenerCount === 'function') { + return emitter.listenerCount(type); + } else { + return listenerCount.call(emitter, type); } - return this; -} +}; -function tree_visitAfter(callback) { - var quads = [], next = [], q; - if (this._root) quads.push(new Quad(this._root, this._x0, this._y0, this._x1, this._y1)); - while (q = quads.pop()) { - var node = q.node; - if (node.length) { - var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2; - if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym)); - if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym)); - if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1)); - if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1)); +EventEmitter.prototype.listenerCount = listenerCount; +function listenerCount(type) { + var events = this._events; + + if (events !== undefined) { + var evlistener = events[type]; + + if (typeof evlistener === 'function') { + return 1; + } else if (evlistener !== undefined) { + return evlistener.length; } - next.push(q); - } - while (q = next.pop()) { - callback(q.node, q.x0, q.y0, q.x1, q.y1); } - return this; -} -function defaultX(d) { - return d[0]; + return 0; } -function tree_x(_) { - return arguments.length ? (this._x = _, this) : this._x; +EventEmitter.prototype.eventNames = function eventNames() { + return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : []; +}; + +function arrayClone(arr, n) { + var copy = new Array(n); + for (var i = 0; i < n; ++i) + copy[i] = arr[i]; + return copy; } -function defaultY(d) { - return d[1]; +function spliceOne(list, index) { + for (; index + 1 < list.length; index++) + list[index] = list[index + 1]; + list.pop(); } -function tree_y(_) { - return arguments.length ? (this._y = _, this) : this._y; -} - -function quadtree(nodes, x, y) { - var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN); - return nodes == null ? tree : tree.addAll(nodes); -} - -function Quadtree(x, y, x0, y0, x1, y1) { - this._x = x; - this._y = y; - this._x0 = x0; - this._y0 = y0; - this._x1 = x1; - this._y1 = y1; - this._root = undefined; -} - -function leaf_copy(leaf) { - var copy = {data: leaf.data}, next = copy; - while (leaf = leaf.next) next = next.next = {data: leaf.data}; - return copy; +function unwrapListeners(arr) { + var ret = new Array(arr.length); + for (var i = 0; i < ret.length; ++i) { + ret[i] = arr[i].listener || arr[i]; + } + return ret; } -var treeProto = quadtree.prototype = Quadtree.prototype; - -treeProto.copy = function() { - var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1), - node = this._root, - nodes, - child; - - if (!node) return copy; - - if (!node.length) return copy._root = leaf_copy(node), copy; - - nodes = [{source: node, target: copy._root = new Array(4)}]; - while (node = nodes.pop()) { - for (var i = 0; i < 4; ++i) { - if (child = node.source[i]) { - if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)}); - else node.target[i] = leaf_copy(child); +function once(emitter, name) { + return new Promise(function (resolve, reject) { + function eventListener() { + if (errorListener !== undefined) { + emitter.removeListener('error', errorListener); } - } - } - - return copy; -}; + resolve([].slice.call(arguments)); + }; + var errorListener; -treeProto.add = tree_add; -treeProto.addAll = addAll; -treeProto.cover = tree_cover; -treeProto.data = tree_data; -treeProto.extent = tree_extent; -treeProto.find = tree_find; -treeProto.remove = tree_remove; -treeProto.removeAll = removeAll; -treeProto.root = tree_root; -treeProto.size = tree_size; -treeProto.visit = tree_visit; -treeProto.visitAfter = tree_visitAfter; -treeProto.x = tree_x; -treeProto.y = tree_y; + // Adding an error listener is not optional because + // if an error is thrown on an event emitter we cannot + // guarantee that the actual event we are waiting will + // be fired. The result could be a silent way to create + // memory or file descriptor leaks, which is something + // we should avoid. + if (name !== 'error') { + errorListener = function errorListener(err) { + emitter.removeListener(name, eventListener); + reject(err); + }; -exports.quadtree = quadtree; + emitter.once('error', errorListener); + } -Object.defineProperty(exports, '__esModule', { value: true }); + emitter.once(name, eventListener); + }); +} -})); +},{}],113:[function(_dereq_,module,exports){ +(function (Buffer){(function (){ +/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */ +/* eslint-disable no-proto */ -},{}],165:[function(_dereq_,module,exports){ -// https://d3js.org/d3-shape/ v1.3.7 Copyright 2019 Mike Bostock -(function (global, factory) { -typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, _dereq_('d3-path')) : -typeof define === 'function' && define.amd ? define(['exports', 'd3-path'], factory) : -(global = global || self, factory(global.d3 = global.d3 || {}, global.d3)); -}(this, function (exports, d3Path) { 'use strict'; +'use strict' -function constant(x) { - return function constant() { - return x; - }; -} +var base64 = _dereq_('base64-js') +var ieee754 = _dereq_('ieee754') -var abs = Math.abs; -var atan2 = Math.atan2; -var cos = Math.cos; -var max = Math.max; -var min = Math.min; -var sin = Math.sin; -var sqrt = Math.sqrt; +exports.Buffer = Buffer +exports.SlowBuffer = SlowBuffer +exports.INSPECT_MAX_BYTES = 50 -var epsilon = 1e-12; -var pi = Math.PI; -var halfPi = pi / 2; -var tau = 2 * pi; +var K_MAX_LENGTH = 0x7fffffff +exports.kMaxLength = K_MAX_LENGTH -function acos(x) { - return x > 1 ? 0 : x < -1 ? pi : Math.acos(x); -} +/** + * If `Buffer.TYPED_ARRAY_SUPPORT`: + * === true Use Uint8Array implementation (fastest) + * === false Print warning and recommend using `buffer` v4.x which has an Object + * implementation (most compatible, even IE6) + * + * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, + * Opera 11.6+, iOS 4.2+. + * + * We report that the browser does not support typed arrays if the are not subclassable + * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array` + * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support + * for __proto__ and has a buggy typed array implementation. + */ +Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport() -function asin(x) { - return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x); +if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' && + typeof console.error === 'function') { + console.error( + 'This browser lacks typed array (Uint8Array) support which is required by ' + + '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.' + ) } -function arcInnerRadius(d) { - return d.innerRadius; +function typedArraySupport () { + // Can typed array instances can be augmented? + try { + var arr = new Uint8Array(1) + arr.__proto__ = { __proto__: Uint8Array.prototype, foo: function () { return 42 } } + return arr.foo() === 42 + } catch (e) { + return false + } } -function arcOuterRadius(d) { - return d.outerRadius; -} +Object.defineProperty(Buffer.prototype, 'parent', { + enumerable: true, + get: function () { + if (!Buffer.isBuffer(this)) return undefined + return this.buffer + } +}) -function arcStartAngle(d) { - return d.startAngle; -} +Object.defineProperty(Buffer.prototype, 'offset', { + enumerable: true, + get: function () { + if (!Buffer.isBuffer(this)) return undefined + return this.byteOffset + } +}) -function arcEndAngle(d) { - return d.endAngle; +function createBuffer (length) { + if (length > K_MAX_LENGTH) { + throw new RangeError('The value "' + length + '" is invalid for option "size"') + } + // Return an augmented `Uint8Array` instance + var buf = new Uint8Array(length) + buf.__proto__ = Buffer.prototype + return buf } -function arcPadAngle(d) { - return d && d.padAngle; // Note: optional! -} +/** + * The Buffer constructor returns instances of `Uint8Array` that have their + * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of + * `Uint8Array`, so the returned instances will have all the node `Buffer` methods + * and the `Uint8Array` methods. Square bracket notation works as expected -- it + * returns a single octet. + * + * The `Uint8Array` prototype remains unmodified. + */ -function intersect(x0, y0, x1, y1, x2, y2, x3, y3) { - var x10 = x1 - x0, y10 = y1 - y0, - x32 = x3 - x2, y32 = y3 - y2, - t = y32 * x10 - x32 * y10; - if (t * t < epsilon) return; - t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t; - return [x0 + t * x10, y0 + t * y10]; +function Buffer (arg, encodingOrOffset, length) { + // Common case. + if (typeof arg === 'number') { + if (typeof encodingOrOffset === 'string') { + throw new TypeError( + 'The "string" argument must be of type string. Received type number' + ) + } + return allocUnsafe(arg) + } + return from(arg, encodingOrOffset, length) } -// Compute perpendicular offset line of length rc. -// http://mathworld.wolfram.com/Circle-LineIntersection.html -function cornerTangents(x0, y0, x1, y1, r1, rc, cw) { - var x01 = x0 - x1, - y01 = y0 - y1, - lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01), - ox = lo * y01, - oy = -lo * x01, - x11 = x0 + ox, - y11 = y0 + oy, - x10 = x1 + ox, - y10 = y1 + oy, - x00 = (x11 + x10) / 2, - y00 = (y11 + y10) / 2, - dx = x10 - x11, - dy = y10 - y11, - d2 = dx * dx + dy * dy, - r = r1 - rc, - D = x11 * y10 - x10 * y11, - d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)), - cx0 = (D * dy - dx * d) / d2, - cy0 = (-D * dx - dy * d) / d2, - cx1 = (D * dy + dx * d) / d2, - cy1 = (-D * dx + dy * d) / d2, - dx0 = cx0 - x00, - dy0 = cy0 - y00, - dx1 = cx1 - x00, - dy1 = cy1 - y00; - - // Pick the closer of the two intersection points. - // TODO Is there a faster way to determine which intersection to use? - if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1; - - return { - cx: cx0, - cy: cy0, - x01: -ox, - y01: -oy, - x11: cx0 * (r1 / r - 1), - y11: cy0 * (r1 / r - 1) - }; +// Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97 +if (typeof Symbol !== 'undefined' && Symbol.species != null && + Buffer[Symbol.species] === Buffer) { + Object.defineProperty(Buffer, Symbol.species, { + value: null, + configurable: true, + enumerable: false, + writable: false + }) } -function arc() { - var innerRadius = arcInnerRadius, - outerRadius = arcOuterRadius, - cornerRadius = constant(0), - padRadius = null, - startAngle = arcStartAngle, - endAngle = arcEndAngle, - padAngle = arcPadAngle, - context = null; - - function arc() { - var buffer, - r, - r0 = +innerRadius.apply(this, arguments), - r1 = +outerRadius.apply(this, arguments), - a0 = startAngle.apply(this, arguments) - halfPi, - a1 = endAngle.apply(this, arguments) - halfPi, - da = abs(a1 - a0), - cw = a1 > a0; - - if (!context) context = buffer = d3Path.path(); - - // Ensure that the outer radius is always larger than the inner radius. - if (r1 < r0) r = r1, r1 = r0, r0 = r; +Buffer.poolSize = 8192 // not used by this implementation - // Is it a point? - if (!(r1 > epsilon)) context.moveTo(0, 0); +function from (value, encodingOrOffset, length) { + if (typeof value === 'string') { + return fromString(value, encodingOrOffset) + } - // Or is it a circle or annulus? - else if (da > tau - epsilon) { - context.moveTo(r1 * cos(a0), r1 * sin(a0)); - context.arc(0, 0, r1, a0, a1, !cw); - if (r0 > epsilon) { - context.moveTo(r0 * cos(a1), r0 * sin(a1)); - context.arc(0, 0, r0, a1, a0, cw); - } - } + if (ArrayBuffer.isView(value)) { + return fromArrayLike(value) + } - // Or is it a circular or annular sector? - else { - var a01 = a0, - a11 = a1, - a00 = a0, - a10 = a1, - da0 = da, - da1 = da, - ap = padAngle.apply(this, arguments) / 2, - rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)), - rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)), - rc0 = rc, - rc1 = rc, - t0, - t1; + if (value == null) { + throw TypeError( + 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' + + 'or Array-like Object. Received type ' + (typeof value) + ) + } - // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0. - if (rp > epsilon) { - var p0 = asin(rp / r0 * sin(ap)), - p1 = asin(rp / r1 * sin(ap)); - if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0; - else da0 = 0, a00 = a10 = (a0 + a1) / 2; - if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1; - else da1 = 0, a01 = a11 = (a0 + a1) / 2; - } + if (isInstance(value, ArrayBuffer) || + (value && isInstance(value.buffer, ArrayBuffer))) { + return fromArrayBuffer(value, encodingOrOffset, length) + } - var x01 = r1 * cos(a01), - y01 = r1 * sin(a01), - x10 = r0 * cos(a10), - y10 = r0 * sin(a10); + if (typeof value === 'number') { + throw new TypeError( + 'The "value" argument must not be of type number. Received type number' + ) + } - // Apply rounded corners? - if (rc > epsilon) { - var x11 = r1 * cos(a11), - y11 = r1 * sin(a11), - x00 = r0 * cos(a00), - y00 = r0 * sin(a00), - oc; + var valueOf = value.valueOf && value.valueOf() + if (valueOf != null && valueOf !== value) { + return Buffer.from(valueOf, encodingOrOffset, length) + } - // Restrict the corner radius according to the sector angle. - if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) { - var ax = x01 - oc[0], - ay = y01 - oc[1], - bx = x11 - oc[0], - by = y11 - oc[1], - kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2), - lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]); - rc0 = min(rc, (r0 - lc) / (kc - 1)); - rc1 = min(rc, (r1 - lc) / (kc + 1)); - } - } + var b = fromObject(value) + if (b) return b - // Is the sector collapsed to a line? - if (!(da1 > epsilon)) context.moveTo(x01, y01); + if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null && + typeof value[Symbol.toPrimitive] === 'function') { + return Buffer.from( + value[Symbol.toPrimitive]('string'), encodingOrOffset, length + ) + } - // Does the sector’s outer ring have rounded corners? - else if (rc1 > epsilon) { - t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw); - t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw); + throw new TypeError( + 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' + + 'or Array-like Object. Received type ' + (typeof value) + ) +} - context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01); +/** + * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError + * if value is a number. + * Buffer.from(str[, encoding]) + * Buffer.from(array) + * Buffer.from(buffer) + * Buffer.from(arrayBuffer[, byteOffset[, length]]) + **/ +Buffer.from = function (value, encodingOrOffset, length) { + return from(value, encodingOrOffset, length) +} - // Have the corners merged? - if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw); +// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug: +// https://github.com/feross/buffer/pull/148 +Buffer.prototype.__proto__ = Uint8Array.prototype +Buffer.__proto__ = Uint8Array - // Otherwise, draw the two corners and the ring. - else { - context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw); - context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw); - context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw); - } - } +function assertSize (size) { + if (typeof size !== 'number') { + throw new TypeError('"size" argument must be of type number') + } else if (size < 0) { + throw new RangeError('The value "' + size + '" is invalid for option "size"') + } +} - // Or is the outer ring just a circular arc? - else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw); +function alloc (size, fill, encoding) { + assertSize(size) + if (size <= 0) { + return createBuffer(size) + } + if (fill !== undefined) { + // Only pay attention to encoding if it's a string. This + // prevents accidentally sending in a number that would + // be interpretted as a start offset. + return typeof encoding === 'string' + ? createBuffer(size).fill(fill, encoding) + : createBuffer(size).fill(fill) + } + return createBuffer(size) +} - // Is there no inner ring, and it’s a circular sector? - // Or perhaps it’s an annular sector collapsed due to padding? - if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10); +/** + * Creates a new filled Buffer instance. + * alloc(size[, fill[, encoding]]) + **/ +Buffer.alloc = function (size, fill, encoding) { + return alloc(size, fill, encoding) +} - // Does the sector’s inner ring (or point) have rounded corners? - else if (rc0 > epsilon) { - t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw); - t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw); +function allocUnsafe (size) { + assertSize(size) + return createBuffer(size < 0 ? 0 : checked(size) | 0) +} - context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01); +/** + * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. + * */ +Buffer.allocUnsafe = function (size) { + return allocUnsafe(size) +} +/** + * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. + */ +Buffer.allocUnsafeSlow = function (size) { + return allocUnsafe(size) +} - // Have the corners merged? - if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw); +function fromString (string, encoding) { + if (typeof encoding !== 'string' || encoding === '') { + encoding = 'utf8' + } - // Otherwise, draw the two corners and the ring. - else { - context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw); - context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw); - context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw); - } - } + if (!Buffer.isEncoding(encoding)) { + throw new TypeError('Unknown encoding: ' + encoding) + } - // Or is the inner ring just a circular arc? - else context.arc(0, 0, r0, a10, a00, cw); - } + var length = byteLength(string, encoding) | 0 + var buf = createBuffer(length) - context.closePath(); + var actual = buf.write(string, encoding) - if (buffer) return context = null, buffer + "" || null; + if (actual !== length) { + // Writing a hex string, for example, that contains invalid characters will + // cause everything after the first invalid character to be ignored. (e.g. + // 'abxxcd' will be treated as 'ab') + buf = buf.slice(0, actual) } - arc.centroid = function() { - var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2, - a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2; - return [cos(a) * r, sin(a) * r]; - }; + return buf +} - arc.innerRadius = function(_) { - return arguments.length ? (innerRadius = typeof _ === "function" ? _ : constant(+_), arc) : innerRadius; - }; +function fromArrayLike (array) { + var length = array.length < 0 ? 0 : checked(array.length) | 0 + var buf = createBuffer(length) + for (var i = 0; i < length; i += 1) { + buf[i] = array[i] & 255 + } + return buf +} - arc.outerRadius = function(_) { - return arguments.length ? (outerRadius = typeof _ === "function" ? _ : constant(+_), arc) : outerRadius; - }; +function fromArrayBuffer (array, byteOffset, length) { + if (byteOffset < 0 || array.byteLength < byteOffset) { + throw new RangeError('"offset" is outside of buffer bounds') + } - arc.cornerRadius = function(_) { - return arguments.length ? (cornerRadius = typeof _ === "function" ? _ : constant(+_), arc) : cornerRadius; - }; + if (array.byteLength < byteOffset + (length || 0)) { + throw new RangeError('"length" is outside of buffer bounds') + } - arc.padRadius = function(_) { - return arguments.length ? (padRadius = _ == null ? null : typeof _ === "function" ? _ : constant(+_), arc) : padRadius; - }; + var buf + if (byteOffset === undefined && length === undefined) { + buf = new Uint8Array(array) + } else if (length === undefined) { + buf = new Uint8Array(array, byteOffset) + } else { + buf = new Uint8Array(array, byteOffset, length) + } - arc.startAngle = function(_) { - return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant(+_), arc) : startAngle; - }; + // Return an augmented `Uint8Array` instance + buf.__proto__ = Buffer.prototype + return buf +} - arc.endAngle = function(_) { - return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant(+_), arc) : endAngle; - }; +function fromObject (obj) { + if (Buffer.isBuffer(obj)) { + var len = checked(obj.length) | 0 + var buf = createBuffer(len) - arc.padAngle = function(_) { - return arguments.length ? (padAngle = typeof _ === "function" ? _ : constant(+_), arc) : padAngle; - }; + if (buf.length === 0) { + return buf + } - arc.context = function(_) { - return arguments.length ? ((context = _ == null ? null : _), arc) : context; - }; + obj.copy(buf, 0, 0, len) + return buf + } - return arc; -} + if (obj.length !== undefined) { + if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) { + return createBuffer(0) + } + return fromArrayLike(obj) + } -function Linear(context) { - this._context = context; + if (obj.type === 'Buffer' && Array.isArray(obj.data)) { + return fromArrayLike(obj.data) + } } -Linear.prototype = { - areaStart: function() { - this._line = 0; - }, - areaEnd: function() { - this._line = NaN; - }, - lineStart: function() { - this._point = 0; - }, - lineEnd: function() { - if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); - this._line = 1 - this._line; - }, - point: function(x, y) { - x = +x, y = +y; - switch (this._point) { - case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; - case 1: this._point = 2; // proceed - default: this._context.lineTo(x, y); break; - } +function checked (length) { + // Note: cannot use `length < K_MAX_LENGTH` here because that fails when + // length is NaN (which is otherwise coerced to zero.) + if (length >= K_MAX_LENGTH) { + throw new RangeError('Attempt to allocate Buffer larger than maximum ' + + 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes') } -}; - -function curveLinear(context) { - return new Linear(context); + return length | 0 } -function x(p) { - return p[0]; +function SlowBuffer (length) { + if (+length != length) { // eslint-disable-line eqeqeq + length = 0 + } + return Buffer.alloc(+length) } -function y(p) { - return p[1]; +Buffer.isBuffer = function isBuffer (b) { + return b != null && b._isBuffer === true && + b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false } -function line() { - var x$1 = x, - y$1 = y, - defined = constant(true), - context = null, - curve = curveLinear, - output = null; +Buffer.compare = function compare (a, b) { + if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength) + if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength) + if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { + throw new TypeError( + 'The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array' + ) + } - function line(data) { - var i, - n = data.length, - d, - defined0 = false, - buffer; + if (a === b) return 0 - if (context == null) output = curve(buffer = d3Path.path()); + var x = a.length + var y = b.length - for (i = 0; i <= n; ++i) { - if (!(i < n && defined(d = data[i], i, data)) === defined0) { - if (defined0 = !defined0) output.lineStart(); - else output.lineEnd(); - } - if (defined0) output.point(+x$1(d, i, data), +y$1(d, i, data)); + for (var i = 0, len = Math.min(x, y); i < len; ++i) { + if (a[i] !== b[i]) { + x = a[i] + y = b[i] + break } - - if (buffer) return output = null, buffer + "" || null; } - line.x = function(_) { - return arguments.length ? (x$1 = typeof _ === "function" ? _ : constant(+_), line) : x$1; - }; + if (x < y) return -1 + if (y < x) return 1 + return 0 +} - line.y = function(_) { - return arguments.length ? (y$1 = typeof _ === "function" ? _ : constant(+_), line) : y$1; - }; +Buffer.isEncoding = function isEncoding (encoding) { + switch (String(encoding).toLowerCase()) { + case 'hex': + case 'utf8': + case 'utf-8': + case 'ascii': + case 'latin1': + case 'binary': + case 'base64': + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return true + default: + return false + } +} - line.defined = function(_) { - return arguments.length ? (defined = typeof _ === "function" ? _ : constant(!!_), line) : defined; - }; +Buffer.concat = function concat (list, length) { + if (!Array.isArray(list)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } - line.curve = function(_) { - return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve; - }; + if (list.length === 0) { + return Buffer.alloc(0) + } - line.context = function(_) { - return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context; - }; + var i + if (length === undefined) { + length = 0 + for (i = 0; i < list.length; ++i) { + length += list[i].length + } + } - return line; + var buffer = Buffer.allocUnsafe(length) + var pos = 0 + for (i = 0; i < list.length; ++i) { + var buf = list[i] + if (isInstance(buf, Uint8Array)) { + buf = Buffer.from(buf) + } + if (!Buffer.isBuffer(buf)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + buf.copy(buffer, pos) + pos += buf.length + } + return buffer } -function area() { - var x0 = x, - x1 = null, - y0 = constant(0), - y1 = y, - defined = constant(true), - context = null, - curve = curveLinear, - output = null; - - function area(data) { - var i, - j, - k, - n = data.length, - d, - defined0 = false, - buffer, - x0z = new Array(n), - y0z = new Array(n); +function byteLength (string, encoding) { + if (Buffer.isBuffer(string)) { + return string.length + } + if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) { + return string.byteLength + } + if (typeof string !== 'string') { + throw new TypeError( + 'The "string" argument must be one of type string, Buffer, or ArrayBuffer. ' + + 'Received type ' + typeof string + ) + } - if (context == null) output = curve(buffer = d3Path.path()); + var len = string.length + var mustMatch = (arguments.length > 2 && arguments[2] === true) + if (!mustMatch && len === 0) return 0 - for (i = 0; i <= n; ++i) { - if (!(i < n && defined(d = data[i], i, data)) === defined0) { - if (defined0 = !defined0) { - j = i; - output.areaStart(); - output.lineStart(); - } else { - output.lineEnd(); - output.lineStart(); - for (k = i - 1; k >= j; --k) { - output.point(x0z[k], y0z[k]); - } - output.lineEnd(); - output.areaEnd(); + // Use a for loop to avoid recursion + var loweredCase = false + for (;;) { + switch (encoding) { + case 'ascii': + case 'latin1': + case 'binary': + return len + case 'utf8': + case 'utf-8': + return utf8ToBytes(string).length + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return len * 2 + case 'hex': + return len >>> 1 + case 'base64': + return base64ToBytes(string).length + default: + if (loweredCase) { + return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8 } - } - if (defined0) { - x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data); - output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]); - } + encoding = ('' + encoding).toLowerCase() + loweredCase = true } + } +} +Buffer.byteLength = byteLength - if (buffer) return output = null, buffer + "" || null; +function slowToString (encoding, start, end) { + var loweredCase = false + + // No need to verify that "this.length <= MAX_UINT32" since it's a read-only + // property of a typed array. + + // This behaves neither like String nor Uint8Array in that we set start/end + // to their upper/lower bounds if the value passed is out of range. + // undefined is handled specially as per ECMA-262 6th Edition, + // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. + if (start === undefined || start < 0) { + start = 0 + } + // Return early if start > this.length. Done here to prevent potential uint32 + // coercion fail below. + if (start > this.length) { + return '' } - function arealine() { - return line().defined(defined).curve(curve).context(context); + if (end === undefined || end > this.length) { + end = this.length } - area.x = function(_) { - return arguments.length ? (x0 = typeof _ === "function" ? _ : constant(+_), x1 = null, area) : x0; - }; + if (end <= 0) { + return '' + } - area.x0 = function(_) { - return arguments.length ? (x0 = typeof _ === "function" ? _ : constant(+_), area) : x0; - }; + // Force coersion to uint32. This will also coerce falsey/NaN values to 0. + end >>>= 0 + start >>>= 0 - area.x1 = function(_) { - return arguments.length ? (x1 = _ == null ? null : typeof _ === "function" ? _ : constant(+_), area) : x1; - }; + if (end <= start) { + return '' + } - area.y = function(_) { - return arguments.length ? (y0 = typeof _ === "function" ? _ : constant(+_), y1 = null, area) : y0; - }; + if (!encoding) encoding = 'utf8' - area.y0 = function(_) { - return arguments.length ? (y0 = typeof _ === "function" ? _ : constant(+_), area) : y0; - }; + while (true) { + switch (encoding) { + case 'hex': + return hexSlice(this, start, end) - area.y1 = function(_) { - return arguments.length ? (y1 = _ == null ? null : typeof _ === "function" ? _ : constant(+_), area) : y1; - }; + case 'utf8': + case 'utf-8': + return utf8Slice(this, start, end) - area.lineX0 = - area.lineY0 = function() { - return arealine().x(x0).y(y0); - }; + case 'ascii': + return asciiSlice(this, start, end) - area.lineY1 = function() { - return arealine().x(x0).y(y1); - }; + case 'latin1': + case 'binary': + return latin1Slice(this, start, end) - area.lineX1 = function() { - return arealine().x(x1).y(y0); - }; + case 'base64': + return base64Slice(this, start, end) - area.defined = function(_) { - return arguments.length ? (defined = typeof _ === "function" ? _ : constant(!!_), area) : defined; - }; + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return utf16leSlice(this, start, end) - area.curve = function(_) { - return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve; - }; + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = (encoding + '').toLowerCase() + loweredCase = true + } + } +} - area.context = function(_) { - return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context; - }; +// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package) +// to detect a Buffer instance. It's not possible to use `instanceof Buffer` +// reliably in a browserify context because there could be multiple different +// copies of the 'buffer' package in use. This method works even for Buffer +// instances that were created from another copy of the `buffer` package. +// See: https://github.com/feross/buffer/issues/154 +Buffer.prototype._isBuffer = true - return area; +function swap (b, n, m) { + var i = b[n] + b[n] = b[m] + b[m] = i } -function descending(a, b) { - return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN; +Buffer.prototype.swap16 = function swap16 () { + var len = this.length + if (len % 2 !== 0) { + throw new RangeError('Buffer size must be a multiple of 16-bits') + } + for (var i = 0; i < len; i += 2) { + swap(this, i, i + 1) + } + return this } -function identity(d) { - return d; +Buffer.prototype.swap32 = function swap32 () { + var len = this.length + if (len % 4 !== 0) { + throw new RangeError('Buffer size must be a multiple of 32-bits') + } + for (var i = 0; i < len; i += 4) { + swap(this, i, i + 3) + swap(this, i + 1, i + 2) + } + return this } -function pie() { - var value = identity, - sortValues = descending, - sort = null, - startAngle = constant(0), - endAngle = constant(tau), - padAngle = constant(0); - - function pie(data) { - var i, - n = data.length, - j, - k, - sum = 0, - index = new Array(n), - arcs = new Array(n), - a0 = +startAngle.apply(this, arguments), - da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)), - a1, - p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)), - pa = p * (da < 0 ? -1 : 1), - v; +Buffer.prototype.swap64 = function swap64 () { + var len = this.length + if (len % 8 !== 0) { + throw new RangeError('Buffer size must be a multiple of 64-bits') + } + for (var i = 0; i < len; i += 8) { + swap(this, i, i + 7) + swap(this, i + 1, i + 6) + swap(this, i + 2, i + 5) + swap(this, i + 3, i + 4) + } + return this +} - for (i = 0; i < n; ++i) { - if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) { - sum += v; - } - } +Buffer.prototype.toString = function toString () { + var length = this.length + if (length === 0) return '' + if (arguments.length === 0) return utf8Slice(this, 0, length) + return slowToString.apply(this, arguments) +} - // Optionally sort the arcs by previously-computed values or by data. - if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); }); - else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); }); +Buffer.prototype.toLocaleString = Buffer.prototype.toString - // Compute the arcs! They are stored in the original data's order. - for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) { - j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = { - data: data[j], - index: i, - value: v, - startAngle: a0, - endAngle: a1, - padAngle: p - }; - } +Buffer.prototype.equals = function equals (b) { + if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') + if (this === b) return true + return Buffer.compare(this, b) === 0 +} - return arcs; +Buffer.prototype.inspect = function inspect () { + var str = '' + var max = exports.INSPECT_MAX_BYTES + str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim() + if (this.length > max) str += ' ... ' + return '' +} + +Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) { + if (isInstance(target, Uint8Array)) { + target = Buffer.from(target, target.offset, target.byteLength) + } + if (!Buffer.isBuffer(target)) { + throw new TypeError( + 'The "target" argument must be one of type Buffer or Uint8Array. ' + + 'Received type ' + (typeof target) + ) } - pie.value = function(_) { - return arguments.length ? (value = typeof _ === "function" ? _ : constant(+_), pie) : value; - }; + if (start === undefined) { + start = 0 + } + if (end === undefined) { + end = target ? target.length : 0 + } + if (thisStart === undefined) { + thisStart = 0 + } + if (thisEnd === undefined) { + thisEnd = this.length + } - pie.sortValues = function(_) { - return arguments.length ? (sortValues = _, sort = null, pie) : sortValues; - }; + if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { + throw new RangeError('out of range index') + } - pie.sort = function(_) { - return arguments.length ? (sort = _, sortValues = null, pie) : sort; - }; + if (thisStart >= thisEnd && start >= end) { + return 0 + } + if (thisStart >= thisEnd) { + return -1 + } + if (start >= end) { + return 1 + } - pie.startAngle = function(_) { - return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant(+_), pie) : startAngle; - }; + start >>>= 0 + end >>>= 0 + thisStart >>>= 0 + thisEnd >>>= 0 - pie.endAngle = function(_) { - return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant(+_), pie) : endAngle; - }; + if (this === target) return 0 - pie.padAngle = function(_) { - return arguments.length ? (padAngle = typeof _ === "function" ? _ : constant(+_), pie) : padAngle; - }; + var x = thisEnd - thisStart + var y = end - start + var len = Math.min(x, y) - return pie; -} + var thisCopy = this.slice(thisStart, thisEnd) + var targetCopy = target.slice(start, end) -var curveRadialLinear = curveRadial(curveLinear); + for (var i = 0; i < len; ++i) { + if (thisCopy[i] !== targetCopy[i]) { + x = thisCopy[i] + y = targetCopy[i] + break + } + } -function Radial(curve) { - this._curve = curve; + if (x < y) return -1 + if (y < x) return 1 + return 0 } -Radial.prototype = { - areaStart: function() { - this._curve.areaStart(); - }, - areaEnd: function() { - this._curve.areaEnd(); - }, - lineStart: function() { - this._curve.lineStart(); - }, - lineEnd: function() { - this._curve.lineEnd(); - }, - point: function(a, r) { - this._curve.point(r * Math.sin(a), r * -Math.cos(a)); +// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, +// OR the last index of `val` in `buffer` at offset <= `byteOffset`. +// +// Arguments: +// - buffer - a Buffer to search +// - val - a string, Buffer, or number +// - byteOffset - an index into `buffer`; will be clamped to an int32 +// - encoding - an optional encoding, relevant is val is a string +// - dir - true for indexOf, false for lastIndexOf +function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) { + // Empty buffer means no match + if (buffer.length === 0) return -1 + + // Normalize byteOffset + if (typeof byteOffset === 'string') { + encoding = byteOffset + byteOffset = 0 + } else if (byteOffset > 0x7fffffff) { + byteOffset = 0x7fffffff + } else if (byteOffset < -0x80000000) { + byteOffset = -0x80000000 + } + byteOffset = +byteOffset // Coerce to Number. + if (numberIsNaN(byteOffset)) { + // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer + byteOffset = dir ? 0 : (buffer.length - 1) } -}; -function curveRadial(curve) { + // Normalize byteOffset: negative offsets start from the end of the buffer + if (byteOffset < 0) byteOffset = buffer.length + byteOffset + if (byteOffset >= buffer.length) { + if (dir) return -1 + else byteOffset = buffer.length - 1 + } else if (byteOffset < 0) { + if (dir) byteOffset = 0 + else return -1 + } - function radial(context) { - return new Radial(curve(context)); + // Normalize val + if (typeof val === 'string') { + val = Buffer.from(val, encoding) } - radial._curve = curve; + // Finally, search either indexOf (if dir is true) or lastIndexOf + if (Buffer.isBuffer(val)) { + // Special case: looking for empty string/buffer always fails + if (val.length === 0) { + return -1 + } + return arrayIndexOf(buffer, val, byteOffset, encoding, dir) + } else if (typeof val === 'number') { + val = val & 0xFF // Search for a byte value [0-255] + if (typeof Uint8Array.prototype.indexOf === 'function') { + if (dir) { + return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) + } else { + return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) + } + } + return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir) + } - return radial; + throw new TypeError('val must be string, number or Buffer') } -function lineRadial(l) { - var c = l.curve; +function arrayIndexOf (arr, val, byteOffset, encoding, dir) { + var indexSize = 1 + var arrLength = arr.length + var valLength = val.length - l.angle = l.x, delete l.x; - l.radius = l.y, delete l.y; + if (encoding !== undefined) { + encoding = String(encoding).toLowerCase() + if (encoding === 'ucs2' || encoding === 'ucs-2' || + encoding === 'utf16le' || encoding === 'utf-16le') { + if (arr.length < 2 || val.length < 2) { + return -1 + } + indexSize = 2 + arrLength /= 2 + valLength /= 2 + byteOffset /= 2 + } + } - l.curve = function(_) { - return arguments.length ? c(curveRadial(_)) : c()._curve; - }; + function read (buf, i) { + if (indexSize === 1) { + return buf[i] + } else { + return buf.readUInt16BE(i * indexSize) + } + } - return l; + var i + if (dir) { + var foundIndex = -1 + for (i = byteOffset; i < arrLength; i++) { + if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { + if (foundIndex === -1) foundIndex = i + if (i - foundIndex + 1 === valLength) return foundIndex * indexSize + } else { + if (foundIndex !== -1) i -= i - foundIndex + foundIndex = -1 + } + } + } else { + if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength + for (i = byteOffset; i >= 0; i--) { + var found = true + for (var j = 0; j < valLength; j++) { + if (read(arr, i + j) !== read(val, j)) { + found = false + break + } + } + if (found) return i + } + } + + return -1 } -function lineRadial$1() { - return lineRadial(line().curve(curveRadialLinear)); +Buffer.prototype.includes = function includes (val, byteOffset, encoding) { + return this.indexOf(val, byteOffset, encoding) !== -1 } -function areaRadial() { - var a = area().curve(curveRadialLinear), - c = a.curve, - x0 = a.lineX0, - x1 = a.lineX1, - y0 = a.lineY0, - y1 = a.lineY1; +Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, true) +} - a.angle = a.x, delete a.x; - a.startAngle = a.x0, delete a.x0; - a.endAngle = a.x1, delete a.x1; - a.radius = a.y, delete a.y; - a.innerRadius = a.y0, delete a.y0; - a.outerRadius = a.y1, delete a.y1; - a.lineStartAngle = function() { return lineRadial(x0()); }, delete a.lineX0; - a.lineEndAngle = function() { return lineRadial(x1()); }, delete a.lineX1; - a.lineInnerRadius = function() { return lineRadial(y0()); }, delete a.lineY0; - a.lineOuterRadius = function() { return lineRadial(y1()); }, delete a.lineY1; +Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, false) +} - a.curve = function(_) { - return arguments.length ? c(curveRadial(_)) : c()._curve; - }; +function hexWrite (buf, string, offset, length) { + offset = Number(offset) || 0 + var remaining = buf.length - offset + if (!length) { + length = remaining + } else { + length = Number(length) + if (length > remaining) { + length = remaining + } + } - return a; + var strLen = string.length + + if (length > strLen / 2) { + length = strLen / 2 + } + for (var i = 0; i < length; ++i) { + var parsed = parseInt(string.substr(i * 2, 2), 16) + if (numberIsNaN(parsed)) return i + buf[offset + i] = parsed + } + return i } -function pointRadial(x, y) { - return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)]; +function utf8Write (buf, string, offset, length) { + return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) } -var slice = Array.prototype.slice; +function asciiWrite (buf, string, offset, length) { + return blitBuffer(asciiToBytes(string), buf, offset, length) +} -function linkSource(d) { - return d.source; +function latin1Write (buf, string, offset, length) { + return asciiWrite(buf, string, offset, length) } -function linkTarget(d) { - return d.target; +function base64Write (buf, string, offset, length) { + return blitBuffer(base64ToBytes(string), buf, offset, length) } -function link(curve) { - var source = linkSource, - target = linkTarget, - x$1 = x, - y$1 = y, - context = null; +function ucs2Write (buf, string, offset, length) { + return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) +} - function link() { - var buffer, argv = slice.call(arguments), s = source.apply(this, argv), t = target.apply(this, argv); - if (!context) context = buffer = d3Path.path(); - curve(context, +x$1.apply(this, (argv[0] = s, argv)), +y$1.apply(this, argv), +x$1.apply(this, (argv[0] = t, argv)), +y$1.apply(this, argv)); - if (buffer) return context = null, buffer + "" || null; +Buffer.prototype.write = function write (string, offset, length, encoding) { + // Buffer#write(string) + if (offset === undefined) { + encoding = 'utf8' + length = this.length + offset = 0 + // Buffer#write(string, encoding) + } else if (length === undefined && typeof offset === 'string') { + encoding = offset + length = this.length + offset = 0 + // Buffer#write(string, offset[, length][, encoding]) + } else if (isFinite(offset)) { + offset = offset >>> 0 + if (isFinite(length)) { + length = length >>> 0 + if (encoding === undefined) encoding = 'utf8' + } else { + encoding = length + length = undefined + } + } else { + throw new Error( + 'Buffer.write(string, encoding, offset[, length]) is no longer supported' + ) } - link.source = function(_) { - return arguments.length ? (source = _, link) : source; - }; + var remaining = this.length - offset + if (length === undefined || length > remaining) length = remaining - link.target = function(_) { - return arguments.length ? (target = _, link) : target; - }; + if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { + throw new RangeError('Attempt to write outside buffer bounds') + } - link.x = function(_) { - return arguments.length ? (x$1 = typeof _ === "function" ? _ : constant(+_), link) : x$1; - }; + if (!encoding) encoding = 'utf8' - link.y = function(_) { - return arguments.length ? (y$1 = typeof _ === "function" ? _ : constant(+_), link) : y$1; - }; + var loweredCase = false + for (;;) { + switch (encoding) { + case 'hex': + return hexWrite(this, string, offset, length) - link.context = function(_) { - return arguments.length ? ((context = _ == null ? null : _), link) : context; - }; + case 'utf8': + case 'utf-8': + return utf8Write(this, string, offset, length) - return link; -} + case 'ascii': + return asciiWrite(this, string, offset, length) -function curveHorizontal(context, x0, y0, x1, y1) { - context.moveTo(x0, y0); - context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1); -} + case 'latin1': + case 'binary': + return latin1Write(this, string, offset, length) -function curveVertical(context, x0, y0, x1, y1) { - context.moveTo(x0, y0); - context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1); -} + case 'base64': + // Warning: maxLength not taken into account in base64Write + return base64Write(this, string, offset, length) -function curveRadial$1(context, x0, y0, x1, y1) { - var p0 = pointRadial(x0, y0), - p1 = pointRadial(x0, y0 = (y0 + y1) / 2), - p2 = pointRadial(x1, y0), - p3 = pointRadial(x1, y1); - context.moveTo(p0[0], p0[1]); - context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]); -} + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return ucs2Write(this, string, offset, length) -function linkHorizontal() { - return link(curveHorizontal); + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = ('' + encoding).toLowerCase() + loweredCase = true + } + } } -function linkVertical() { - return link(curveVertical); +Buffer.prototype.toJSON = function toJSON () { + return { + type: 'Buffer', + data: Array.prototype.slice.call(this._arr || this, 0) + } } -function linkRadial() { - var l = link(curveRadial$1); - l.angle = l.x, delete l.x; - l.radius = l.y, delete l.y; - return l; +function base64Slice (buf, start, end) { + if (start === 0 && end === buf.length) { + return base64.fromByteArray(buf) + } else { + return base64.fromByteArray(buf.slice(start, end)) + } } -var circle = { - draw: function(context, size) { - var r = Math.sqrt(size / pi); - context.moveTo(r, 0); - context.arc(0, 0, r, 0, tau); - } -}; +function utf8Slice (buf, start, end) { + end = Math.min(buf.length, end) + var res = [] -var cross = { - draw: function(context, size) { - var r = Math.sqrt(size / 5) / 2; - context.moveTo(-3 * r, -r); - context.lineTo(-r, -r); - context.lineTo(-r, -3 * r); - context.lineTo(r, -3 * r); - context.lineTo(r, -r); - context.lineTo(3 * r, -r); - context.lineTo(3 * r, r); - context.lineTo(r, r); - context.lineTo(r, 3 * r); - context.lineTo(-r, 3 * r); - context.lineTo(-r, r); - context.lineTo(-3 * r, r); - context.closePath(); - } -}; + var i = start + while (i < end) { + var firstByte = buf[i] + var codePoint = null + var bytesPerSequence = (firstByte > 0xEF) ? 4 + : (firstByte > 0xDF) ? 3 + : (firstByte > 0xBF) ? 2 + : 1 -var tan30 = Math.sqrt(1 / 3), - tan30_2 = tan30 * 2; + if (i + bytesPerSequence <= end) { + var secondByte, thirdByte, fourthByte, tempCodePoint -var diamond = { - draw: function(context, size) { - var y = Math.sqrt(size / tan30_2), - x = y * tan30; - context.moveTo(0, -y); - context.lineTo(x, 0); - context.lineTo(0, y); - context.lineTo(-x, 0); - context.closePath(); + switch (bytesPerSequence) { + case 1: + if (firstByte < 0x80) { + codePoint = firstByte + } + break + case 2: + secondByte = buf[i + 1] + if ((secondByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F) + if (tempCodePoint > 0x7F) { + codePoint = tempCodePoint + } + } + break + case 3: + secondByte = buf[i + 1] + thirdByte = buf[i + 2] + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F) + if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { + codePoint = tempCodePoint + } + } + break + case 4: + secondByte = buf[i + 1] + thirdByte = buf[i + 2] + fourthByte = buf[i + 3] + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F) + if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { + codePoint = tempCodePoint + } + } + } + } + + if (codePoint === null) { + // we did not generate a valid codePoint so insert a + // replacement char (U+FFFD) and advance only 1 byte + codePoint = 0xFFFD + bytesPerSequence = 1 + } else if (codePoint > 0xFFFF) { + // encode to utf16 (surrogate pair dance) + codePoint -= 0x10000 + res.push(codePoint >>> 10 & 0x3FF | 0xD800) + codePoint = 0xDC00 | codePoint & 0x3FF + } + + res.push(codePoint) + i += bytesPerSequence } -}; -var ka = 0.89081309152928522810, - kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10), - kx = Math.sin(tau / 10) * kr, - ky = -Math.cos(tau / 10) * kr; + return decodeCodePointsArray(res) +} -var star = { - draw: function(context, size) { - var r = Math.sqrt(size * ka), - x = kx * r, - y = ky * r; - context.moveTo(0, -r); - context.lineTo(x, y); - for (var i = 1; i < 5; ++i) { - var a = tau * i / 5, - c = Math.cos(a), - s = Math.sin(a); - context.lineTo(s * r, -c * r); - context.lineTo(c * x - s * y, s * x + c * y); - } - context.closePath(); +// Based on http://stackoverflow.com/a/22747272/680742, the browser with +// the lowest limit is Chrome, with 0x10000 args. +// We go 1 magnitude less, for safety +var MAX_ARGUMENTS_LENGTH = 0x1000 + +function decodeCodePointsArray (codePoints) { + var len = codePoints.length + if (len <= MAX_ARGUMENTS_LENGTH) { + return String.fromCharCode.apply(String, codePoints) // avoid extra slice() } -}; -var square = { - draw: function(context, size) { - var w = Math.sqrt(size), - x = -w / 2; - context.rect(x, x, w, w); + // Decode in chunks to avoid "call stack size exceeded". + var res = '' + var i = 0 + while (i < len) { + res += String.fromCharCode.apply( + String, + codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) + ) } -}; + return res +} -var sqrt3 = Math.sqrt(3); +function asciiSlice (buf, start, end) { + var ret = '' + end = Math.min(buf.length, end) -var triangle = { - draw: function(context, size) { - var y = -Math.sqrt(size / (sqrt3 * 3)); - context.moveTo(0, y * 2); - context.lineTo(-sqrt3 * y, -y); - context.lineTo(sqrt3 * y, -y); - context.closePath(); + for (var i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i] & 0x7F) } -}; + return ret +} -var c = -0.5, - s = Math.sqrt(3) / 2, - k = 1 / Math.sqrt(12), - a = (k / 2 + 1) * 3; +function latin1Slice (buf, start, end) { + var ret = '' + end = Math.min(buf.length, end) -var wye = { - draw: function(context, size) { - var r = Math.sqrt(size / a), - x0 = r / 2, - y0 = r * k, - x1 = x0, - y1 = r * k + r, - x2 = -x1, - y2 = y1; - context.moveTo(x0, y0); - context.lineTo(x1, y1); - context.lineTo(x2, y2); - context.lineTo(c * x0 - s * y0, s * x0 + c * y0); - context.lineTo(c * x1 - s * y1, s * x1 + c * y1); - context.lineTo(c * x2 - s * y2, s * x2 + c * y2); - context.lineTo(c * x0 + s * y0, c * y0 - s * x0); - context.lineTo(c * x1 + s * y1, c * y1 - s * x1); - context.lineTo(c * x2 + s * y2, c * y2 - s * x2); - context.closePath(); + for (var i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i]) } -}; + return ret +} -var symbols = [ - circle, - cross, - diamond, - square, - star, - triangle, - wye -]; +function hexSlice (buf, start, end) { + var len = buf.length -function symbol() { - var type = constant(circle), - size = constant(64), - context = null; + if (!start || start < 0) start = 0 + if (!end || end < 0 || end > len) end = len - function symbol() { - var buffer; - if (!context) context = buffer = d3Path.path(); - type.apply(this, arguments).draw(context, +size.apply(this, arguments)); - if (buffer) return context = null, buffer + "" || null; + var out = '' + for (var i = start; i < end; ++i) { + out += toHex(buf[i]) } + return out +} - symbol.type = function(_) { - return arguments.length ? (type = typeof _ === "function" ? _ : constant(_), symbol) : type; - }; +function utf16leSlice (buf, start, end) { + var bytes = buf.slice(start, end) + var res = '' + for (var i = 0; i < bytes.length; i += 2) { + res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256)) + } + return res +} - symbol.size = function(_) { - return arguments.length ? (size = typeof _ === "function" ? _ : constant(+_), symbol) : size; - }; +Buffer.prototype.slice = function slice (start, end) { + var len = this.length + start = ~~start + end = end === undefined ? len : ~~end - symbol.context = function(_) { - return arguments.length ? (context = _ == null ? null : _, symbol) : context; - }; + if (start < 0) { + start += len + if (start < 0) start = 0 + } else if (start > len) { + start = len + } - return symbol; -} + if (end < 0) { + end += len + if (end < 0) end = 0 + } else if (end > len) { + end = len + } -function noop() {} + if (end < start) end = start -function point(that, x, y) { - that._context.bezierCurveTo( - (2 * that._x0 + that._x1) / 3, - (2 * that._y0 + that._y1) / 3, - (that._x0 + 2 * that._x1) / 3, - (that._y0 + 2 * that._y1) / 3, - (that._x0 + 4 * that._x1 + x) / 6, - (that._y0 + 4 * that._y1 + y) / 6 - ); + var newBuf = this.subarray(start, end) + // Return an augmented `Uint8Array` instance + newBuf.__proto__ = Buffer.prototype + return newBuf } -function Basis(context) { - this._context = context; +/* + * Need to make sure that buffer isn't trying to write out of bounds. + */ +function checkOffset (offset, ext, length) { + if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') + if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') } -Basis.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: point(this, this._x1, this._y1); // proceed - case 2: this._context.lineTo(this._x1, this._y1); break; - } - if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); - this._line = 1 - this._line; - }, - point: function(x, y) { - x = +x, y = +y; - switch (this._point) { - case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); 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); // proceed - default: point(this, x, y); break; - } - this._x0 = this._x1, this._x1 = x; - this._y0 = this._y1, this._y1 = y; +Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { + offset = offset >>> 0 + byteLength = byteLength >>> 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var val = this[offset] + var mul = 1 + var i = 0 + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul } -}; -function basis(context) { - return new Basis(context); + return val } -function BasisClosed(context) { - this._context = context; -} +Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { + offset = offset >>> 0 + byteLength = byteLength >>> 0 + if (!noAssert) { + checkOffset(offset, byteLength, this.length) + } -BasisClosed.prototype = { - areaStart: noop, - areaEnd: noop, - 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); - break; - } - } - }, - point: function(x, y) { - x = +x, y = +y; - switch (this._point) { - case 0: this._point = 1; this._x2 = x, this._y2 = y; break; - case 1: this._point = 2; this._x3 = x, this._y3 = y; break; - case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break; - default: point(this, x, y); break; - } - this._x0 = this._x1, this._x1 = x; - this._y0 = this._y1, this._y1 = y; + var val = this[offset + --byteLength] + var mul = 1 + while (byteLength > 0 && (mul *= 0x100)) { + val += this[offset + --byteLength] * mul } -}; -function basisClosed(context) { - return new BasisClosed(context); + return val } -function BasisOpen(context) { - this._context = context; +Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 1, this.length) + return this[offset] } -BasisOpen.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() { - if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath(); - this._line = 1 - this._line; - }, - point: function(x, y) { - x = +x, y = +y; - switch (this._point) { - case 0: this._point = 1; break; - case 1: this._point = 2; break; - case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break; - case 3: this._point = 4; // proceed - default: point(this, x, y); break; - } - this._x0 = this._x1, this._x1 = x; - this._y0 = this._y1, this._y1 = y; - } -}; +Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 2, this.length) + return this[offset] | (this[offset + 1] << 8) +} -function basisOpen(context) { - return new BasisOpen(context); +Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 2, this.length) + return (this[offset] << 8) | this[offset + 1] } -function Bundle(context, beta) { - this._basis = new Basis(context); - this._beta = beta; +Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 4, this.length) + + return ((this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16)) + + (this[offset + 3] * 0x1000000) } -Bundle.prototype = { - lineStart: function() { - this._x = []; - this._y = []; - this._basis.lineStart(); - }, - lineEnd: function() { - var x = this._x, - y = this._y, - j = x.length - 1; +Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 4, this.length) - if (j > 0) { - var x0 = x[0], - y0 = y[0], - dx = x[j] - x0, - dy = y[j] - y0, - i = -1, - t; + return (this[offset] * 0x1000000) + + ((this[offset + 1] << 16) | + (this[offset + 2] << 8) | + this[offset + 3]) +} - while (++i <= j) { - t = i / j; - this._basis.point( - this._beta * x[i] + (1 - this._beta) * (x0 + t * dx), - this._beta * y[i] + (1 - this._beta) * (y0 + t * dy) - ); - } - } +Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { + offset = offset >>> 0 + byteLength = byteLength >>> 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) - this._x = this._y = null; - this._basis.lineEnd(); - }, - point: function(x, y) { - this._x.push(+x); - this._y.push(+y); + var val = this[offset] + var mul = 1 + var i = 0 + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul } -}; + mul *= 0x80 -var bundle = (function custom(beta) { + if (val >= mul) val -= Math.pow(2, 8 * byteLength) - function bundle(context) { - return beta === 1 ? new Basis(context) : new Bundle(context, beta); + return val +} + +Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { + offset = offset >>> 0 + byteLength = byteLength >>> 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var i = byteLength + var mul = 1 + var val = this[offset + --i] + while (i > 0 && (mul *= 0x100)) { + val += this[offset + --i] * mul } + mul *= 0x80 - bundle.beta = function(beta) { - return custom(+beta); - }; + if (val >= mul) val -= Math.pow(2, 8 * byteLength) - return bundle; -})(0.85); + return val +} -function point$1(that, x, y) { - that._context.bezierCurveTo( - that._x1 + that._k * (that._x2 - that._x0), - that._y1 + that._k * (that._y2 - that._y0), - that._x2 + that._k * (that._x1 - x), - that._y2 + that._k * (that._y1 - y), - that._x2, - that._y2 - ); +Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 1, this.length) + if (!(this[offset] & 0x80)) return (this[offset]) + return ((0xff - this[offset] + 1) * -1) } -function Cardinal(context, tension) { - this._context = context; - this._k = (1 - tension) / 6; +Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 2, this.length) + var val = this[offset] | (this[offset + 1] << 8) + return (val & 0x8000) ? val | 0xFFFF0000 : val } -Cardinal.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: point$1(this, this._x1, this._y1); break; - } - if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); - this._line = 1 - this._line; - }, - point: function(x, y) { - x = +x, y = +y; - switch (this._point) { - case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; - case 1: this._point = 2; this._x1 = x, this._y1 = y; break; - case 2: this._point = 3; // proceed - default: point$1(this, x, y); break; - } - this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; - this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; - } -}; +Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 2, this.length) + var val = this[offset + 1] | (this[offset] << 8) + return (val & 0x8000) ? val | 0xFFFF0000 : val +} -var cardinal = (function custom(tension) { +Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 4, this.length) - function cardinal(context) { - return new Cardinal(context, tension); - } + return (this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16) | + (this[offset + 3] << 24) +} - cardinal.tension = function(tension) { - return custom(+tension); - }; +Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 4, this.length) - return cardinal; -})(0); + return (this[offset] << 24) | + (this[offset + 1] << 16) | + (this[offset + 2] << 8) | + (this[offset + 3]) +} -function CardinalClosed(context, tension) { - this._context = context; - this._k = (1 - tension) / 6; +Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754.read(this, offset, true, 23, 4) } -CardinalClosed.prototype = { - areaStart: noop, - areaEnd: noop, - 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); - break; - } - } - }, - point: function(x, y) { - x = +x, y = +y; - switch (this._point) { - case 0: this._point = 1; this._x3 = x, this._y3 = y; break; - case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break; - case 2: this._point = 3; this._x5 = x, this._y5 = y; break; - default: point$1(this, x, y); break; - } - this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; - this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; - } -}; - -var cardinalClosed = (function custom(tension) { - - function cardinal(context) { - return new CardinalClosed(context, tension); - } +Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754.read(this, offset, false, 23, 4) +} - cardinal.tension = function(tension) { - return custom(+tension); - }; +Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754.read(this, offset, true, 52, 8) +} - return cardinal; -})(0); +Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754.read(this, offset, false, 52, 8) +} -function CardinalOpen(context, tension) { - this._context = context; - this._k = (1 - tension) / 6; +function checkInt (buf, value, offset, ext, max, min) { + if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance') + if (value > max || value < min) throw new RangeError('"value" argument is out of bounds') + if (offset + ext > buf.length) throw new RangeError('Index out of range') } -CardinalOpen.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() { - if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath(); - this._line = 1 - this._line; - }, - point: function(x, y) { - x = +x, y = +y; - 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; // proceed - default: point$1(this, x, y); break; - } - this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; - this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; +Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { + value = +value + offset = offset >>> 0 + byteLength = byteLength >>> 0 + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1 + checkInt(this, value, offset, byteLength, maxBytes, 0) } -}; - -var cardinalOpen = (function custom(tension) { - function cardinal(context) { - return new CardinalOpen(context, tension); + var mul = 1 + var i = 0 + this[offset] = value & 0xFF + while (++i < byteLength && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF } - cardinal.tension = function(tension) { - return custom(+tension); - }; - - return cardinal; -})(0); - -function point$2(that, x, y) { - var x1 = that._x1, - y1 = that._y1, - x2 = that._x2, - y2 = that._y2; + return offset + byteLength +} - if (that._l01_a > epsilon) { - var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a, - n = 3 * that._l01_a * (that._l01_a + that._l12_a); - x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n; - y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n; +Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { + value = +value + offset = offset >>> 0 + byteLength = byteLength >>> 0 + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1 + checkInt(this, value, offset, byteLength, maxBytes, 0) } - if (that._l23_a > epsilon) { - var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a, - m = 3 * that._l23_a * (that._l23_a + that._l12_a); - x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m; - y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m; + var i = byteLength - 1 + var mul = 1 + this[offset + i] = value & 0xFF + while (--i >= 0 && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF } - that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2); + return offset + byteLength } -function CatmullRom(context, alpha) { - this._context = context; - this._alpha = alpha; +Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0) + this[offset] = (value & 0xff) + return offset + 1 } -CatmullRom.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); break; - } - if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); - this._line = 1 - this._line; - }, - point: function(x, y) { - x = +x, y = +y; - - if (this._point) { - var x23 = this._x2 - x, - y23 = this._y2 - y; - this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha)); - } - - switch (this._point) { - case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; - case 1: this._point = 2; break; - case 2: this._point = 3; // proceed - default: point$2(this, x, y); break; - } - - 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 = x; - this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; - } -}; - -var catmullRom = (function custom(alpha) { - - function catmullRom(context) { - return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0); - } - - catmullRom.alpha = function(alpha) { - return custom(+alpha); - }; - - return catmullRom; -})(0.5); +Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + return offset + 2 +} -function CatmullRomClosed(context, alpha) { - this._context = context; - this._alpha = alpha; +Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) + this[offset] = (value >>> 8) + this[offset + 1] = (value & 0xff) + return offset + 2 } -CatmullRomClosed.prototype = { - areaStart: noop, - areaEnd: noop, - 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); - break; - } - } - }, - point: function(x, y) { - x = +x, y = +y; +Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) + this[offset + 3] = (value >>> 24) + this[offset + 2] = (value >>> 16) + this[offset + 1] = (value >>> 8) + this[offset] = (value & 0xff) + return offset + 4 +} - if (this._point) { - var x23 = this._x2 - x, - y23 = this._y2 - y; - this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha)); - } +Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) + this[offset] = (value >>> 24) + this[offset + 1] = (value >>> 16) + this[offset + 2] = (value >>> 8) + this[offset + 3] = (value & 0xff) + return offset + 4 +} - switch (this._point) { - case 0: this._point = 1; this._x3 = x, this._y3 = y; break; - case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break; - case 2: this._point = 3; this._x5 = x, this._y5 = y; break; - default: point$2(this, x, y); break; - } +Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) { + var limit = Math.pow(2, (8 * byteLength) - 1) - 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 = x; - this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; + checkInt(this, value, offset, byteLength, limit - 1, -limit) } -}; - -var catmullRomClosed = (function custom(alpha) { - function catmullRom(context) { - return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0); + var i = 0 + var mul = 1 + var sub = 0 + this[offset] = value & 0xFF + while (++i < byteLength && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { + sub = 1 + } + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF } - catmullRom.alpha = function(alpha) { - return custom(+alpha); - }; - - return catmullRom; -})(0.5); - -function CatmullRomOpen(context, alpha) { - this._context = context; - this._alpha = alpha; + return offset + byteLength } -CatmullRomOpen.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() { - if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath(); - this._line = 1 - this._line; - }, - point: function(x, y) { - x = +x, y = +y; - - if (this._point) { - var x23 = this._x2 - x, - y23 = this._y2 - y; - this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, 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; // proceed - default: point$2(this, x, y); break; - } +Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) { + var limit = Math.pow(2, (8 * byteLength) - 1) - 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 = x; - this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; + checkInt(this, value, offset, byteLength, limit - 1, -limit) } -}; - -var catmullRomOpen = (function custom(alpha) { - function catmullRom(context) { - return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0); + var i = byteLength - 1 + var mul = 1 + var sub = 0 + this[offset + i] = value & 0xFF + while (--i >= 0 && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { + sub = 1 + } + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF } - catmullRom.alpha = function(alpha) { - return custom(+alpha); - }; - - return catmullRom; -})(0.5); - -function LinearClosed(context) { - this._context = context; + return offset + byteLength } -LinearClosed.prototype = { - areaStart: noop, - areaEnd: noop, - lineStart: function() { - this._point = 0; - }, - lineEnd: function() { - if (this._point) this._context.closePath(); - }, - point: function(x, y) { - x = +x, y = +y; - if (this._point) this._context.lineTo(x, y); - else this._point = 1, this._context.moveTo(x, y); - } -}; - -function linearClosed(context) { - return new LinearClosed(context); +Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80) + if (value < 0) value = 0xff + value + 1 + this[offset] = (value & 0xff) + return offset + 1 } -function sign(x) { - return x < 0 ? -1 : 1; +Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + return offset + 2 } -// Calculate the slopes of the tangents (Hermite-type interpolation) based on -// the following paper: Steffen, M. 1990. A Simple Method for Monotonic -// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO. -// NOV(II), P. 443, 1990. -function slope3(that, x2, y2) { - var h0 = that._x1 - that._x0, - h1 = x2 - that._x1, - s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0), - s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0), - p = (s0 * h1 + s1 * h0) / (h0 + h1); - return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0; +Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) + this[offset] = (value >>> 8) + this[offset + 1] = (value & 0xff) + return offset + 2 } -// Calculate a one-sided slope. -function slope2(that, t) { - var h = that._x1 - that._x0; - return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t; +Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + this[offset + 2] = (value >>> 16) + this[offset + 3] = (value >>> 24) + return offset + 4 } -// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations -// "you can express cubic Hermite interpolation in terms of cubic Bézier curves -// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1". -function point$3(that, t0, t1) { - var x0 = that._x0, - y0 = that._y0, - x1 = that._x1, - y1 = that._y1, - dx = (x1 - x0) / 3; - that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1); +Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) + if (value < 0) value = 0xffffffff + value + 1 + this[offset] = (value >>> 24) + this[offset + 1] = (value >>> 16) + this[offset + 2] = (value >>> 8) + this[offset + 3] = (value & 0xff) + return offset + 4 } -function MonotoneX(context) { - this._context = context; +function checkIEEE754 (buf, value, offset, ext, max, min) { + if (offset + ext > buf.length) throw new RangeError('Index out of range') + if (offset < 0) throw new RangeError('Index out of range') } -MonotoneX.prototype = { - areaStart: function() { - this._line = 0; - }, - areaEnd: function() { - this._line = NaN; - }, - lineStart: function() { - this._x0 = this._x1 = - this._y0 = this._y1 = - this._t0 = NaN; - this._point = 0; - }, - lineEnd: function() { - switch (this._point) { - case 2: this._context.lineTo(this._x1, this._y1); break; - case 3: point$3(this, this._t0, slope2(this, this._t0)); break; - } - if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); - this._line = 1 - this._line; - }, - point: function(x, y) { - var t1 = NaN; - - x = +x, y = +y; - if (x === this._x1 && y === this._y1) return; // Ignore coincident points. - switch (this._point) { - case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; - case 1: this._point = 2; break; - case 2: this._point = 3; point$3(this, slope2(this, t1 = slope3(this, x, y)), t1); break; - default: point$3(this, this._t0, t1 = slope3(this, x, y)); break; - } - - this._x0 = this._x1, this._x1 = x; - this._y0 = this._y1, this._y1 = y; - this._t0 = t1; +function writeFloat (buf, value, offset, littleEndian, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) { + checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38) } -}; - -function MonotoneY(context) { - this._context = new ReflectContext(context); + ieee754.write(buf, value, offset, littleEndian, 23, 4) + return offset + 4 } -(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) { - MonotoneX.prototype.point.call(this, y, x); -}; - -function ReflectContext(context) { - this._context = context; +Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { + return writeFloat(this, value, offset, true, noAssert) } -ReflectContext.prototype = { - moveTo: function(x, y) { this._context.moveTo(y, x); }, - closePath: function() { this._context.closePath(); }, - lineTo: function(x, y) { this._context.lineTo(y, x); }, - bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); } -}; +Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { + return writeFloat(this, value, offset, false, noAssert) +} -function monotoneX(context) { - return new MonotoneX(context); +function writeDouble (buf, value, offset, littleEndian, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) { + checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308) + } + ieee754.write(buf, value, offset, littleEndian, 52, 8) + return offset + 8 } -function monotoneY(context) { - return new MonotoneY(context); +Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { + return writeDouble(this, value, offset, true, noAssert) } -function Natural(context) { - this._context = context; +Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { + return writeDouble(this, value, offset, false, noAssert) } -Natural.prototype = { - areaStart: function() { - this._line = 0; - }, - areaEnd: function() { - this._line = NaN; - }, - lineStart: function() { - this._x = []; - this._y = []; - }, - lineEnd: function() { - var x = this._x, - y = this._y, - n = x.length; +// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) +Buffer.prototype.copy = function copy (target, targetStart, start, end) { + if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer') + if (!start) start = 0 + if (!end && end !== 0) end = this.length + if (targetStart >= target.length) targetStart = target.length + if (!targetStart) targetStart = 0 + if (end > 0 && end < start) end = start - if (n) { - this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]); - if (n === 2) { - this._context.lineTo(x[1], y[1]); - } else { - var px = controlPoints(x), - py = controlPoints(y); - for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) { - this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]); - } - } - } + // Copy 0 bytes; we're done + if (end === start) return 0 + if (target.length === 0 || this.length === 0) return 0 - if (this._line || (this._line !== 0 && n === 1)) this._context.closePath(); - this._line = 1 - this._line; - this._x = this._y = null; - }, - point: function(x, y) { - this._x.push(+x); - this._y.push(+y); + // Fatal error conditions + if (targetStart < 0) { + throw new RangeError('targetStart out of bounds') } -}; + if (start < 0 || start >= this.length) throw new RangeError('Index out of range') + if (end < 0) throw new RangeError('sourceEnd out of bounds') -// See https://www.particleincell.com/2012/bezier-splines/ for derivation. -function controlPoints(x) { - var i, - n = x.length - 1, - m, - a = new Array(n), - b = new Array(n), - r = new Array(n); - a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1]; - for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1]; - a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n]; - for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1]; - a[n - 1] = r[n - 1] / b[n - 1]; - for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i]; - b[n - 1] = (x[n] + a[n - 1]) / 2; - for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1]; - return [a, b]; -} + // Are we oob? + if (end > this.length) end = this.length + if (target.length - targetStart < end - start) { + end = target.length - targetStart + start + } -function natural(context) { - return new Natural(context); -} + var len = end - start -function Step(context, t) { - this._context = context; - this._t = t; + if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') { + // Use built-in when available, missing from IE11 + this.copyWithin(targetStart, start, end) + } else if (this === target && start < targetStart && targetStart < end) { + // descending copy from end + for (var i = len - 1; i >= 0; --i) { + target[i + targetStart] = this[i + start] + } + } else { + Uint8Array.prototype.set.call( + target, + this.subarray(start, end), + targetStart + ) + } + + return len } -Step.prototype = { - areaStart: function() { - this._line = 0; - }, - areaEnd: function() { - this._line = NaN; - }, - lineStart: function() { - this._x = this._y = NaN; - this._point = 0; - }, - lineEnd: function() { - if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y); - if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); - if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line; - }, - point: function(x, y) { - x = +x, y = +y; - switch (this._point) { - case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; - case 1: this._point = 2; // proceed - default: { - if (this._t <= 0) { - this._context.lineTo(this._x, y); - this._context.lineTo(x, y); - } else { - var x1 = this._x * (1 - this._t) + x * this._t; - this._context.lineTo(x1, this._y); - this._context.lineTo(x1, y); - } - break; +// Usage: +// buffer.fill(number[, offset[, end]]) +// buffer.fill(buffer[, offset[, end]]) +// buffer.fill(string[, offset[, end]][, encoding]) +Buffer.prototype.fill = function fill (val, start, end, encoding) { + // Handle string cases: + if (typeof val === 'string') { + if (typeof start === 'string') { + encoding = start + start = 0 + end = this.length + } else if (typeof end === 'string') { + encoding = end + end = this.length + } + if (encoding !== undefined && typeof encoding !== 'string') { + throw new TypeError('encoding must be a string') + } + if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { + throw new TypeError('Unknown encoding: ' + encoding) + } + if (val.length === 1) { + var code = val.charCodeAt(0) + if ((encoding === 'utf8' && code < 128) || + encoding === 'latin1') { + // Fast path: If `val` fits into a single byte, use that numeric value. + val = code } } - this._x = x, this._y = y; + } else if (typeof val === 'number') { + val = val & 255 } -}; -function step(context) { - return new Step(context, 0.5); -} + // Invalid ranges are not set to a default, so can range check early. + if (start < 0 || this.length < start || this.length < end) { + throw new RangeError('Out of range index') + } -function stepBefore(context) { - return new Step(context, 0); -} + if (end <= start) { + return this + } -function stepAfter(context) { - return new Step(context, 1); -} + start = start >>> 0 + end = end === undefined ? this.length : end >>> 0 -function none(series, order) { - if (!((n = series.length) > 1)) return; - for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) { - s0 = s1, s1 = series[order[i]]; - for (j = 0; j < m; ++j) { - s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1]; + if (!val) val = 0 + + var i + if (typeof val === 'number') { + for (i = start; i < end; ++i) { + this[i] = val + } + } else { + var bytes = Buffer.isBuffer(val) + ? val + : Buffer.from(val, encoding) + var len = bytes.length + if (len === 0) { + throw new TypeError('The value "' + val + + '" is invalid for argument "value"') + } + for (i = 0; i < end - start; ++i) { + this[i + start] = bytes[i % len] } } + + return this } -function none$1(series) { - var n = series.length, o = new Array(n); - while (--n >= 0) o[n] = n; - return o; +// HELPER FUNCTIONS +// ================ + +var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g + +function base64clean (str) { + // Node takes equal signs as end of the Base64 encoding + str = str.split('=')[0] + // Node strips out invalid characters like \n and \t from the string, base64-js does not + str = str.trim().replace(INVALID_BASE64_RE, '') + // Node converts strings with length < 2 to '' + if (str.length < 2) return '' + // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not + while (str.length % 4 !== 0) { + str = str + '=' + } + return str } -function stackValue(d, key) { - return d[key]; +function toHex (n) { + if (n < 16) return '0' + n.toString(16) + return n.toString(16) } -function stack() { - var keys = constant([]), - order = none$1, - offset = none, - value = stackValue; +function utf8ToBytes (string, units) { + units = units || Infinity + var codePoint + var length = string.length + var leadSurrogate = null + var bytes = [] - function stack(data) { - var kz = keys.apply(this, arguments), - i, - m = data.length, - n = kz.length, - sz = new Array(n), - oz; + for (var i = 0; i < length; ++i) { + codePoint = string.charCodeAt(i) - for (i = 0; i < n; ++i) { - for (var ki = kz[i], si = sz[i] = new Array(m), j = 0, sij; j < m; ++j) { - si[j] = sij = [0, +value(data[j], ki, j, data)]; - sij.data = data[j]; - } - si.key = ki; - } + // is surrogate component + if (codePoint > 0xD7FF && codePoint < 0xE000) { + // last char was a lead + if (!leadSurrogate) { + // no lead yet + if (codePoint > 0xDBFF) { + // unexpected trail + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } else if (i + 1 === length) { + // unpaired lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } - for (i = 0, oz = order(sz); i < n; ++i) { - sz[oz[i]].index = i; - } + // valid lead + leadSurrogate = codePoint - offset(sz, oz); - return sz; - } + continue + } - stack.keys = function(_) { - return arguments.length ? (keys = typeof _ === "function" ? _ : constant(slice.call(_)), stack) : keys; - }; + // 2 leads in a row + if (codePoint < 0xDC00) { + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + leadSurrogate = codePoint + continue + } - stack.value = function(_) { - return arguments.length ? (value = typeof _ === "function" ? _ : constant(+_), stack) : value; - }; + // valid surrogate pair + codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000 + } else if (leadSurrogate) { + // valid bmp char, but last char was a lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + } - stack.order = function(_) { - return arguments.length ? (order = _ == null ? none$1 : typeof _ === "function" ? _ : constant(slice.call(_)), stack) : order; - }; + leadSurrogate = null - stack.offset = function(_) { - return arguments.length ? (offset = _ == null ? none : _, stack) : offset; - }; + // encode utf8 + if (codePoint < 0x80) { + if ((units -= 1) < 0) break + bytes.push(codePoint) + } else if (codePoint < 0x800) { + if ((units -= 2) < 0) break + bytes.push( + codePoint >> 0x6 | 0xC0, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x10000) { + if ((units -= 3) < 0) break + bytes.push( + codePoint >> 0xC | 0xE0, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x110000) { + if ((units -= 4) < 0) break + bytes.push( + codePoint >> 0x12 | 0xF0, + codePoint >> 0xC & 0x3F | 0x80, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else { + throw new Error('Invalid code point') + } + } - return stack; + return bytes } -function expand(series, order) { - if (!((n = series.length) > 0)) return; - for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) { - for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0; - if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y; +function asciiToBytes (str) { + var byteArray = [] + for (var i = 0; i < str.length; ++i) { + // Node's code seems to be doing this and not & 0x7F.. + byteArray.push(str.charCodeAt(i) & 0xFF) } - none(series, order); + return byteArray } -function diverging(series, order) { - if (!((n = series.length) > 0)) return; - for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) { - for (yp = yn = 0, i = 0; i < n; ++i) { - if ((dy = (d = series[order[i]][j])[1] - d[0]) > 0) { - d[0] = yp, d[1] = yp += dy; - } else if (dy < 0) { - d[1] = yn, d[0] = yn += dy; - } else { - d[0] = 0, d[1] = dy; - } - } +function utf16leToBytes (str, units) { + var c, hi, lo + var byteArray = [] + for (var i = 0; i < str.length; ++i) { + if ((units -= 2) < 0) break + + c = str.charCodeAt(i) + hi = c >> 8 + lo = c % 256 + byteArray.push(lo) + byteArray.push(hi) } + + return byteArray } -function silhouette(series, order) { - if (!((n = series.length) > 0)) return; - for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) { - for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0; - s0[j][1] += s0[j][0] = -y / 2; - } - none(series, order); +function base64ToBytes (str) { + return base64.toByteArray(base64clean(str)) } -function wiggle(series, order) { - if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return; - for (var y = 0, j = 1, s0, m, n; j < m; ++j) { - for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) { - var si = series[order[i]], - sij0 = si[j][1] || 0, - sij1 = si[j - 1][1] || 0, - s3 = (sij0 - sij1) / 2; - for (var k = 0; k < i; ++k) { - var sk = series[order[k]], - skj0 = sk[j][1] || 0, - skj1 = sk[j - 1][1] || 0; - s3 += skj0 - skj1; - } - s1 += sij0, s2 += s3 * sij0; - } - s0[j - 1][1] += s0[j - 1][0] = y; - if (s1) y -= s2 / s1; +function blitBuffer (src, dst, offset, length) { + for (var i = 0; i < length; ++i) { + if ((i + offset >= dst.length) || (i >= src.length)) break + dst[i + offset] = src[i] } - s0[j - 1][1] += s0[j - 1][0] = y; - none(series, order); + return i } -function appearance(series) { - var peaks = series.map(peak); - return none$1(series).sort(function(a, b) { return peaks[a] - peaks[b]; }); +// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass +// the `instanceof` check but they should be treated as of that type. +// See: https://github.com/feross/buffer/issues/166 +function isInstance (obj, type) { + return obj instanceof type || + (obj != null && obj.constructor != null && obj.constructor.name != null && + obj.constructor.name === type.name) } - -function peak(series) { - var i = -1, j = 0, n = series.length, vi, vj = -Infinity; - while (++i < n) if ((vi = +series[i][1]) > vj) vj = vi, j = i; - return j; +function numberIsNaN (obj) { + // For IE11 support + return obj !== obj // eslint-disable-line no-self-compare } -function ascending(series) { - var sums = series.map(sum); - return none$1(series).sort(function(a, b) { return sums[a] - sums[b]; }); -} +}).call(this)}).call(this,_dereq_("buffer").Buffer) +},{"base64-js":82,"buffer":113,"ieee754":441}],114:[function(_dereq_,module,exports){ +'use strict' -function sum(series) { - var s = 0, i = -1, n = series.length, v; - while (++i < n) if (v = +series[i][1]) s += v; - return s; +var monotoneTriangulate = _dereq_('./lib/monotone') +var makeIndex = _dereq_('./lib/triangulation') +var delaunayFlip = _dereq_('./lib/delaunay') +var filterTriangulation = _dereq_('./lib/filter') + +module.exports = cdt2d + +function canonicalizeEdge(e) { + return [Math.min(e[0], e[1]), Math.max(e[0], e[1])] } -function descending$1(series) { - return ascending(series).reverse(); +function compareEdge(a, b) { + return a[0]-b[0] || a[1]-b[1] } -function insideOut(series) { - var n = series.length, - i, - j, - sums = series.map(sum), - order = appearance(series), - top = 0, - bottom = 0, - tops = [], - bottoms = []; - - for (i = 0; i < n; ++i) { - j = order[i]; - if (top < bottom) { - top += sums[j]; - tops.push(j); - } else { - bottom += sums[j]; - bottoms.push(j); - } - } - - return bottoms.reverse().concat(tops); +function canonicalizeEdges(edges) { + return edges.map(canonicalizeEdge).sort(compareEdge) } -function reverse(series) { - return none$1(series).reverse(); +function getDefault(options, property, dflt) { + if(property in options) { + return options[property] + } + return dflt } -exports.arc = arc; -exports.area = area; -exports.areaRadial = areaRadial; -exports.curveBasis = basis; -exports.curveBasisClosed = basisClosed; -exports.curveBasisOpen = basisOpen; -exports.curveBundle = bundle; -exports.curveCardinal = cardinal; -exports.curveCardinalClosed = cardinalClosed; -exports.curveCardinalOpen = cardinalOpen; -exports.curveCatmullRom = catmullRom; -exports.curveCatmullRomClosed = catmullRomClosed; -exports.curveCatmullRomOpen = catmullRomOpen; -exports.curveLinear = curveLinear; -exports.curveLinearClosed = linearClosed; -exports.curveMonotoneX = monotoneX; -exports.curveMonotoneY = monotoneY; -exports.curveNatural = natural; -exports.curveStep = step; -exports.curveStepAfter = stepAfter; -exports.curveStepBefore = stepBefore; -exports.line = line; -exports.lineRadial = lineRadial$1; -exports.linkHorizontal = linkHorizontal; -exports.linkRadial = linkRadial; -exports.linkVertical = linkVertical; -exports.pie = pie; -exports.pointRadial = pointRadial; -exports.radialArea = areaRadial; -exports.radialLine = lineRadial$1; -exports.stack = stack; -exports.stackOffsetDiverging = diverging; -exports.stackOffsetExpand = expand; -exports.stackOffsetNone = none; -exports.stackOffsetSilhouette = silhouette; -exports.stackOffsetWiggle = wiggle; -exports.stackOrderAppearance = appearance; -exports.stackOrderAscending = ascending; -exports.stackOrderDescending = descending$1; -exports.stackOrderInsideOut = insideOut; -exports.stackOrderNone = none$1; -exports.stackOrderReverse = reverse; -exports.symbol = symbol; -exports.symbolCircle = circle; -exports.symbolCross = cross; -exports.symbolDiamond = diamond; -exports.symbolSquare = square; -exports.symbolStar = star; -exports.symbolTriangle = triangle; -exports.symbolWye = wye; -exports.symbols = symbols; - -Object.defineProperty(exports, '__esModule', { value: true }); +function cdt2d(points, edges, options) { -})); + if(!Array.isArray(edges)) { + options = edges || {} + edges = [] + } else { + options = options || {} + edges = edges || [] + } -},{"d3-path":163}],166:[function(_dereq_,module,exports){ -// https://d3js.org/d3-time-format/ v2.2.3 Copyright 2019 Mike Bostock -(function (global, factory) { -typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, _dereq_('d3-time')) : -typeof define === 'function' && define.amd ? define(['exports', 'd3-time'], factory) : -(global = global || self, factory(global.d3 = global.d3 || {}, global.d3)); -}(this, function (exports, d3Time) { 'use strict'; + //Parse out options + var delaunay = !!getDefault(options, 'delaunay', true) + var interior = !!getDefault(options, 'interior', true) + var exterior = !!getDefault(options, 'exterior', true) + var infinity = !!getDefault(options, 'infinity', false) -function localDate(d) { - if (0 <= d.y && d.y < 100) { - var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L); - date.setFullYear(d.y); - return date; + //Handle trivial case + if((!interior && !exterior) || points.length === 0) { + return [] } - return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L); -} -function utcDate(d) { - if (0 <= d.y && d.y < 100) { - var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L)); - date.setUTCFullYear(d.y); - return date; - } - return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L)); -} + //Construct initial triangulation + var cells = monotoneTriangulate(points, edges) -function newDate(y, m, d) { - return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0}; -} + //If delaunay refinement needed, then improve quality by edge flipping + if(delaunay || interior !== exterior || infinity) { -function formatLocale(locale) { - var locale_dateTime = locale.dateTime, - locale_date = locale.date, - locale_time = locale.time, - locale_periods = locale.periods, - locale_weekdays = locale.days, - locale_shortWeekdays = locale.shortDays, - locale_months = locale.months, - locale_shortMonths = locale.shortMonths; + //Index all of the cells to support fast neighborhood queries + var triangulation = makeIndex(points.length, canonicalizeEdges(edges)) + for(var i=0; i 53) return null; - if (!("w" in d)) d.w = 1; - if ("Z" in d) { - week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay(); - week = day > 4 || day === 0 ? d3Time.utcMonday.ceil(week) : d3Time.utcMonday(week); - week = d3Time.utcDay.offset(week, (d.V - 1) * 7); - d.y = week.getUTCFullYear(); - d.m = week.getUTCMonth(); - d.d = week.getUTCDate() + (d.w + 6) % 7; - } else { - week = localDate(newDate(d.y, 0, 1)), day = week.getDay(); - week = day > 4 || day === 0 ? d3Time.timeMonday.ceil(week) : d3Time.timeMonday(week); - week = d3Time.timeDay.offset(week, (d.V - 1) * 7); - d.y = week.getFullYear(); - d.m = week.getMonth(); - d.d = week.getDate() + (d.w + 6) % 7; + //Find opposite edge + var x = star[j-1], y = -1 + for(var k=1; k 0) { + var b = stack.pop() + var a = stack.pop() - while (i < n) { - if (j >= m) return -1; - c = specifier.charCodeAt(i++); - if (c === 37) { - c = specifier.charAt(i++); - parse = parses[c in pads ? specifier.charAt(i++) : c]; - if (!parse || ((j = parse(d, string, j)) < 0)) return -1; - } else if (c != string.charCodeAt(j++)) { - return -1; + //Find opposite pairs + var x = -1, y = -1 + var star = stars[a] + for(var i=1; i= 0) { + continue + } - function parseShortWeekday(d, string, i) { - var n = shortWeekdayRe.exec(string.slice(i)); - return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1; - } + //Flip the edge + triangulation.flip(a, b) - function parseWeekday(d, string, i) { - var n = weekdayRe.exec(string.slice(i)); - return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1; + //Test flipping neighboring edges + testFlip(points, triangulation, stack, x, a, y) + testFlip(points, triangulation, stack, a, y, x) + testFlip(points, triangulation, stack, y, b, x) + testFlip(points, triangulation, stack, b, x, y) } +} - function parseShortMonth(d, string, i) { - var n = shortMonthRe.exec(string.slice(i)); - return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1; - } +},{"binary-search-bounds":99,"robust-in-sphere":540}],116:[function(_dereq_,module,exports){ +'use strict' - function parseMonth(d, string, i) { - var n = monthRe.exec(string.slice(i)); - return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1; - } +var bsearch = _dereq_('binary-search-bounds') - function parseLocaleDateTime(d, string, i) { - return parseSpecifier(d, locale_dateTime, string, i); - } +module.exports = classifyFaces - function parseLocaleDate(d, string, i) { - return parseSpecifier(d, locale_date, string, i); - } +function FaceIndex(cells, neighbor, constraint, flags, active, next, boundary) { + this.cells = cells + this.neighbor = neighbor + this.flags = flags + this.constraint = constraint + this.active = active + this.next = next + this.boundary = boundary +} - function parseLocaleTime(d, string, i) { - return parseSpecifier(d, locale_time, string, i); - } +var proto = FaceIndex.prototype - function formatShortWeekday(d) { - return locale_shortWeekdays[d.getDay()]; - } +function compareCell(a, b) { + return a[0] - b[0] || + a[1] - b[1] || + a[2] - b[2] +} - function formatWeekday(d) { - return locale_weekdays[d.getDay()]; +proto.locate = (function() { + var key = [0,0,0] + return function(a, b, c) { + var x = a, y = b, z = c + if(b < c) { + if(b < a) { + x = b + y = c + z = a + } + } else if(c < a) { + x = c + y = a + z = b + } + if(x < 0) { + return -1 + } + key[0] = x + key[1] = y + key[2] = z + return bsearch.eq(this.cells, key, compareCell) } +})() - function formatShortMonth(d) { - return locale_shortMonths[d.getMonth()]; +function indexCells(triangulation, infinity) { + //First get cells and canonicalize + var cells = triangulation.cells() + var nc = cells.length + for(var i=0; i= 12)]; + //Build neighbor index, initialize queues + var active = [] + var next = [] + var neighbor = new Array(3*nc) + var constraint = new Array(3*nc) + var boundary = null + if(infinity) { + boundary = [] } - - function formatQuarter(d) { - return 1 + ~~(d.getMonth() / 3); + var index = new FaceIndex( + cells, + neighbor, + constraint, + flags, + active, + next, + boundary) + for(var i=0; i= 12)]; - } + while(active.length > 0 || next.length > 0) { + while(active.length > 0) { + var t = active.pop() + if(flags[t] === -side) { + continue + } + flags[t] = side + var c = cells[t] + for(var j=0; j<3; ++j) { + var f = neighbor[3*t+j] + if(f >= 0 && flags[f] === 0) { + if(constraint[3*t+j]) { + next.push(f) + } else { + active.push(f) + flags[f] = side + } + } + } + } - function formatUTCQuarter(d) { - return 1 + ~~(d.getUTCMonth() / 3); + //Swap arrays and loop + var tmp = next + next = active + active = tmp + next.length = 0 + side = -side } - return { - format: function(specifier) { - var f = newFormat(specifier += "", formats); - f.toString = function() { return specifier; }; - return f; - }, - parse: function(specifier) { - var p = newParse(specifier += "", false); - p.toString = function() { return specifier; }; - return p; - }, - utcFormat: function(specifier) { - var f = newFormat(specifier += "", utcFormats); - f.toString = function() { return specifier; }; - return f; - }, - utcParse: function(specifier) { - var p = newParse(specifier += "", true); - p.toString = function() { return specifier; }; - return p; - } - }; + var result = filterCells(cells, flags, target) + if(infinity) { + return result.concat(index.boundary) + } + return result } -var pads = {"-": "", "_": " ", "0": "0"}, - numberRe = /^\s*\d+/, // note: ignores next directive - percentRe = /^%/, - requoteRe = /[\\^$*+?|[\]().{}]/g; +},{"binary-search-bounds":99}],117:[function(_dereq_,module,exports){ +'use strict' -function pad(value, fill, width) { - var sign = value < 0 ? "-" : "", - string = (sign ? -value : value) + "", - length = string.length; - return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string); -} +var bsearch = _dereq_('binary-search-bounds') +var orient = _dereq_('robust-orientation')[3] -function requote(s) { - return s.replace(requoteRe, "\\$&"); -} +var EVENT_POINT = 0 +var EVENT_END = 1 +var EVENT_START = 2 -function formatRe(names) { - return new RegExp("^(?:" + names.map(requote).join("|") + ")", "i"); -} +module.exports = monotoneTriangulate -function formatLookup(names) { - var map = {}, i = -1, n = names.length; - while (++i < n) map[names[i].toLowerCase()] = i; - return map; +//A partial convex hull fragment, made of two unimonotone polygons +function PartialHull(a, b, idx, lowerIds, upperIds) { + this.a = a + this.b = b + this.idx = idx + this.lowerIds = lowerIds + this.upperIds = upperIds } -function parseWeekdayNumberSunday(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 1)); - return n ? (d.w = +n[0], i + n[0].length) : -1; +//An event in the sweep line procedure +function Event(a, b, type, idx) { + this.a = a + this.b = b + this.type = type + this.idx = idx } -function parseWeekdayNumberMonday(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 1)); - return n ? (d.u = +n[0], i + n[0].length) : -1; +//This is used to compare events for the sweep line procedure +// Points are: +// 1. sorted lexicographically +// 2. sorted by type (point < end < start) +// 3. segments sorted by winding order +// 4. sorted by index +function compareEvent(a, b) { + var d = + (a.a[0] - b.a[0]) || + (a.a[1] - b.a[1]) || + (a.type - b.type) + if(d) { return d } + if(a.type !== EVENT_POINT) { + d = orient(a.a, a.b, b.b) + if(d) { return d } + } + return a.idx - b.idx } -function parseWeekNumberSunday(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 2)); - return n ? (d.U = +n[0], i + n[0].length) : -1; +function testPoint(hull, p) { + return orient(hull.a, hull.b, p) } -function parseWeekNumberISO(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 2)); - return n ? (d.V = +n[0], i + n[0].length) : -1; -} +function addPoint(cells, hulls, points, p, idx) { + var lo = bsearch.lt(hulls, p, testPoint) + var hi = bsearch.gt(hulls, p, testPoint) + for(var i=lo; i 1 && orient( + points[lowerIds[m-2]], + points[lowerIds[m-1]], + p) > 0) { + cells.push( + [lowerIds[m-1], + lowerIds[m-2], + idx]) + m -= 1 + } + lowerIds.length = m + lowerIds.push(idx) -function parseFullYear(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 4)); - return n ? (d.y = +n[0], i + n[0].length) : -1; + //Insert p into upper hull + var upperIds = hull.upperIds + var m = upperIds.length + while(m > 1 && orient( + points[upperIds[m-2]], + points[upperIds[m-1]], + p) < 0) { + cells.push( + [upperIds[m-2], + upperIds[m-1], + idx]) + m -= 1 + } + upperIds.length = m + upperIds.push(idx) + } } -function parseYear(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 2)); - return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1; +function findSplit(hull, edge) { + var d + if(hull.a[0] < edge.a[0]) { + d = orient(hull.a, hull.b, edge.a) + } else { + d = orient(edge.b, edge.a, hull.a) + } + if(d) { return d } + if(edge.b[0] < hull.b[0]) { + d = orient(hull.a, hull.b, edge.b) + } else { + d = orient(edge.b, edge.a, hull.b) + } + return d || hull.idx - edge.idx } -function parseZone(d, string, i) { - var n = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(string.slice(i, i + 6)); - return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || "00")), i + n[0].length) : -1; +function splitHulls(hulls, points, event) { + var splitIdx = bsearch.le(hulls, event, findSplit) + var hull = hulls[splitIdx] + var upperIds = hull.upperIds + var x = upperIds[upperIds.length-1] + hull.upperIds = [x] + hulls.splice(splitIdx+1, 0, + new PartialHull(event.a, event.b, event.idx, [x], upperIds)) } -function parseQuarter(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 1)); - return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1; -} -function parseMonthNumber(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 2)); - return n ? (d.m = n[0] - 1, i + n[0].length) : -1; +function mergeHulls(hulls, points, event) { + //Swap pointers for merge search + var tmp = event.a + event.a = event.b + event.b = tmp + var mergeIdx = bsearch.eq(hulls, event, findSplit) + var upper = hulls[mergeIdx] + var lower = hulls[mergeIdx-1] + lower.upperIds = upper.upperIds + hulls.splice(mergeIdx, 1) } -function parseDayOfMonth(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 2)); - return n ? (d.d = +n[0], i + n[0].length) : -1; -} -function parseDayOfYear(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 3)); - return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1; -} +function monotoneTriangulate(points, edges) { -function parseHour24(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 2)); - return n ? (d.H = +n[0], i + n[0].length) : -1; -} + var numPoints = points.length + var numEdges = edges.length -function parseMinutes(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 2)); - return n ? (d.M = +n[0], i + n[0].length) : -1; -} + var events = [] -function parseSeconds(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 2)); - return n ? (d.S = +n[0], i + n[0].length) : -1; -} + //Create point events + for(var i=0; i b[0]) { + events.push( + new Event(b, a, EVENT_START, i), + new Event(a, b, EVENT_END, i)) + } + } -function parseMicroseconds(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 6)); - return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1; -} + //Sort events + events.sort(compareEvent) -function parseLiteralPercent(d, string, i) { - var n = percentRe.exec(string.slice(i, i + 1)); - return n ? i + n[0].length : -1; -} + //Initialize hull + var minX = events[0].a[0] - (1 + Math.abs(events[0].a[0])) * Math.pow(2, -52) + var hull = [ new PartialHull([minX, 1], [minX, 0], -1, [], [], [], []) ] -function parseUnixTimestamp(d, string, i) { - var n = numberRe.exec(string.slice(i)); - return n ? (d.Q = +n[0], i + n[0].length) : -1; -} + //Process events in order + var cells = [] + for(var i=0, numEvents=events.length; i= 0 + } +})() -function formatMinutes(d, p) { - return pad(d.getMinutes(), p, 2); +proto.removeTriangle = function(i, j, k) { + var stars = this.stars + removePair(stars[i], j, k) + removePair(stars[j], k, i) + removePair(stars[k], i, j) } -function formatSeconds(d, p) { - return pad(d.getSeconds(), p, 2); +proto.addTriangle = function(i, j, k) { + var stars = this.stars + stars[i].push(j, k) + stars[j].push(k, i) + stars[k].push(i, j) } -function formatWeekdayNumberMonday(d) { - var day = d.getDay(); - return day === 0 ? 7 : day; +proto.opposite = function(j, i) { + var list = this.stars[i] + for(var k=1, n=list.length; k= 4 || day === 0) ? d3Time.timeThursday(d) : d3Time.timeThursday.ceil(d); - return pad(d3Time.timeThursday.count(d3Time.timeYear(d), d) + (d3Time.timeYear(d).getDay() === 4), p, 2); +proto.edges = function() { + var stars = this.stars + var result = [] + for(var i=0, n=stars.length; i 0 ? "-" : (z *= -1, "+")) - + pad(z / 60 | 0, "0", 2) - + pad(z % 60, "0", 2); -} +module.exports = orientation -function formatUTCDayOfMonth(d, p) { - return pad(d.getUTCDate(), p, 2); +function orientation(s) { + var p = 1 + for(var i=1; i= 4 || day === 0) ? d3Time.utcThursday(d) : d3Time.utcThursday.ceil(d); - return pad(d3Time.utcThursday.count(d3Time.utcYear(d), d) + (d3Time.utcYear(d).getUTCDay() === 4), p, 2); +function circumradius(points) { + var center = circumcenter(points) + var avgDist = 0.0 + for(var i=0; i max ? max : value) + : (value < max ? max : value > min ? min : value) } -function formatUTCWeekNumberMonday(d, p) { - return pad(d3Time.utcMonday.count(d3Time.utcYear(d) - 1, d), p, 2); -} +},{}],123:[function(_dereq_,module,exports){ +'use strict' -function formatUTCYear(d, p) { - return pad(d.getUTCFullYear() % 100, p, 2); -} +module.exports = cleanPSLG -function formatUTCFullYear(d, p) { - return pad(d.getUTCFullYear() % 10000, p, 4); -} +var UnionFind = _dereq_('union-find') +var boxIntersect = _dereq_('box-intersect') +var segseg = _dereq_('robust-segment-intersect') +var rat = _dereq_('big-rat') +var ratCmp = _dereq_('big-rat/cmp') +var ratToFloat = _dereq_('big-rat/to-float') +var ratVec = _dereq_('rat-vec') +var nextafter = _dereq_('nextafter') -function formatUTCZone() { - return "+0000"; -} +var solveIntersection = _dereq_('./lib/rat-seg-intersect') -function formatLiteralPercent() { - return "%"; +// Bounds on a rational number when rounded to a float +function boundRat (r) { + var f = ratToFloat(r) + return [ + nextafter(f, -Infinity), + nextafter(f, Infinity) + ] } -function formatUnixTimestamp(d) { - return +d; +// Convert a list of edges in a pslg to bounding boxes +function boundEdges (points, edges) { + var bounds = new Array(edges.length) + for (var i = 0; i < edges.length; ++i) { + var e = edges[i] + var a = points[e[0]] + var b = points[e[1]] + bounds[i] = [ + nextafter(Math.min(a[0], b[0]), -Infinity), + nextafter(Math.min(a[1], b[1]), -Infinity), + nextafter(Math.max(a[0], b[0]), Infinity), + nextafter(Math.max(a[1], b[1]), Infinity) + ] + } + return bounds } -function formatUnixTimestampSeconds(d) { - return Math.floor(+d / 1000); +// Convert a list of points into bounding boxes by duplicating coords +function boundPoints (points) { + var bounds = new Array(points.length) + for (var i = 0; i < points.length; ++i) { + var p = points[i] + bounds[i] = [ + nextafter(p[0], -Infinity), + nextafter(p[1], -Infinity), + nextafter(p[0], Infinity), + nextafter(p[1], Infinity) + ] + } + return bounds } -var locale; - -defaultLocale({ - 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"] -}); - -function defaultLocale(definition) { - locale = formatLocale(definition); - exports.timeFormat = locale.format; - exports.timeParse = locale.parse; - exports.utcFormat = locale.utcFormat; - exports.utcParse = locale.utcParse; - return locale; +// Find all pairs of crossing edges in a pslg (given edge bounds) +function getCrossings (points, edges, edgeBounds) { + var result = [] + boxIntersect(edgeBounds, function (i, j) { + var e = edges[i] + var f = edges[j] + if (e[0] === f[0] || e[0] === f[1] || + e[1] === f[0] || e[1] === f[1]) { + return + } + var a = points[e[0]] + var b = points[e[1]] + var c = points[f[0]] + var d = points[f[1]] + if (segseg(a, b, c, d)) { + result.push([i, j]) + } + }) + return result } -var isoSpecifier = "%Y-%m-%dT%H:%M:%S.%LZ"; - -function formatIsoNative(date) { - return date.toISOString(); +// Find all pairs of crossing vertices in a pslg (given edge/vert bounds) +function getTJunctions (points, edges, edgeBounds, vertBounds) { + var result = [] + boxIntersect(edgeBounds, vertBounds, function (i, v) { + var e = edges[i] + if (e[0] === v || e[1] === v) { + return + } + var p = points[v] + var a = points[e[0]] + var b = points[e[1]] + if (segseg(a, b, p, p)) { + result.push([i, v]) + } + }) + return result } -var formatIso = Date.prototype.toISOString - ? formatIsoNative - : exports.utcFormat(isoSpecifier); +// Cut edges along crossings/tjunctions +function cutEdges (floatPoints, edges, crossings, junctions, useColor) { + var i, e -function parseIsoNative(string) { - var date = new Date(string); - return isNaN(date) ? null : date; -} + // Convert crossings into tjunctions by constructing rational points + var ratPoints = floatPoints.map(function(p) { + return [ + rat(p[0]), + rat(p[1]) + ] + }) + for (i = 0; i < crossings.length; ++i) { + var crossing = crossings[i] + e = crossing[0] + var f = crossing[1] + var ee = edges[e] + var ef = edges[f] + var x = solveIntersection( + ratVec(floatPoints[ee[0]]), + ratVec(floatPoints[ee[1]]), + ratVec(floatPoints[ef[0]]), + ratVec(floatPoints[ef[1]])) + if (!x) { + // Segments are parallel, should already be handled by t-junctions + continue + } + var idx = floatPoints.length + floatPoints.push([ratToFloat(x[0]), ratToFloat(x[1])]) + ratPoints.push(x) + junctions.push([e, idx], [f, idx]) + } -var parseIso = +new Date("2000-01-01T00:00:00.000Z") - ? parseIsoNative - : exports.utcParse(isoSpecifier); + // Sort tjunctions + junctions.sort(function (a, b) { + if (a[0] !== b[0]) { + return a[0] - b[0] + } + var u = ratPoints[a[1]] + var v = ratPoints[b[1]] + return ratCmp(u[0], v[0]) || ratCmp(u[1], v[1]) + }) -exports.isoFormat = formatIso; -exports.isoParse = parseIso; -exports.timeFormatDefaultLocale = defaultLocale; -exports.timeFormatLocale = formatLocale; + // Split edges along junctions + for (i = junctions.length - 1; i >= 0; --i) { + var junction = junctions[i] + e = junction[0] -Object.defineProperty(exports, '__esModule', { value: true }); + var edge = edges[e] + var s = edge[0] + var t = edge[1] -})); + // Check if edge is not lexicographically sorted + var a = floatPoints[s] + var b = floatPoints[t] + if (((a[0] - b[0]) || (a[1] - b[1])) < 0) { + var tmp = s + s = t + t = tmp + } -},{"d3-time":167}],167:[function(_dereq_,module,exports){ -// https://d3js.org/d3-time/ v1.1.0 Copyright 2019 Mike Bostock -(function (global, factory) { -typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : -typeof define === 'function' && define.amd ? define(['exports'], factory) : -(global = global || self, factory(global.d3 = global.d3 || {})); -}(this, function (exports) { 'use strict'; + // Split leading edge + edge[0] = s + var last = edge[1] = junction[1] -var t0 = new Date, - t1 = new Date; + // If we are grouping edges by color, remember to track data + var color + if (useColor) { + color = edge[2] + } -function newInterval(floori, offseti, count, field) { + // Split other edges + while (i > 0 && junctions[i - 1][0] === e) { + var junction = junctions[--i] + var next = junction[1] + if (useColor) { + edges.push([last, next, color]) + } else { + edges.push([last, next]) + } + last = next + } - function interval(date) { - return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date; + // Add final edge + if (useColor) { + edges.push([last, t, color]) + } else { + edges.push([last, t]) + } } - interval.floor = function(date) { - return floori(date = new Date(+date)), date; - }; - - interval.ceil = function(date) { - return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date; - }; - - interval.round = function(date) { - var d0 = interval(date), - d1 = interval.ceil(date); - return date - d0 < d1 - date ? d0 : d1; - }; - - interval.offset = function(date, step) { - return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date; - }; - - interval.range = function(start, stop, step) { - var range = [], previous; - start = interval.ceil(start); - step = step == null ? 1 : Math.floor(step); - if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date - do range.push(previous = new Date(+start)), offseti(start, step), floori(start); - while (previous < start && start < stop); - return range; - }; - - interval.filter = function(test) { - return newInterval(function(date) { - if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1); - }, function(date, step) { - if (date >= date) { - if (step < 0) while (++step <= 0) { - while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty - } else while (--step >= 0) { - while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty - } - } - }); - }; + // Return constructed rational points + return ratPoints +} - if (count) { - interval.count = function(start, end) { - t0.setTime(+start), t1.setTime(+end); - floori(t0), floori(t1); - return Math.floor(count(t0, t1)); - }; +// Merge overlapping points +function dedupPoints (floatPoints, ratPoints, floatBounds) { + var numPoints = ratPoints.length + var uf = new UnionFind(numPoints) - interval.every = function(step) { - step = Math.floor(step); - return !isFinite(step) || !(step > 0) ? null - : !(step > 1) ? interval - : interval.filter(field - ? function(d) { return field(d) % step === 0; } - : function(d) { return interval.count(0, d) % step === 0; }); - }; + // Compute rational bounds + var bounds = [] + for (var i = 0; i < ratPoints.length; ++i) { + var p = ratPoints[i] + var xb = boundRat(p[0]) + var yb = boundRat(p[1]) + bounds.push([ + nextafter(xb[0], -Infinity), + nextafter(yb[0], -Infinity), + nextafter(xb[1], Infinity), + nextafter(yb[1], Infinity) + ]) } - return interval; -} - -var millisecond = newInterval(function() { - // noop -}, function(date, step) { - date.setTime(+date + step); -}, function(start, end) { - return end - start; -}); + // Link all points with over lapping boxes + boxIntersect(bounds, function (i, j) { + uf.link(i, j) + }) -// An optimized implementation for this simple case. -millisecond.every = function(k) { - k = Math.floor(k); - if (!isFinite(k) || !(k > 0)) return null; - if (!(k > 1)) return millisecond; - return newInterval(function(date) { - date.setTime(Math.floor(date / k) * k); - }, function(date, step) { - date.setTime(+date + step * k); - }, function(start, end) { - return (end - start) / k; - }); -}; -var milliseconds = millisecond.range; + // Do 1 pass over points to combine points in label sets + var noDupes = true + var labels = new Array(numPoints) + for (var i = 0; i < numPoints; ++i) { + var j = uf.find(i) + if (j !== i) { + // Clear no-dupes flag, zero out label + noDupes = false + // Make each point the top-left point from its cell + floatPoints[j] = [ + Math.min(floatPoints[i][0], floatPoints[j][0]), + Math.min(floatPoints[i][1], floatPoints[j][1]) + ] + } + } -var durationSecond = 1e3; -var durationMinute = 6e4; -var durationHour = 36e5; -var durationDay = 864e5; -var durationWeek = 6048e5; + // If no duplicates, return null to signal termination + if (noDupes) { + return null + } -var second = newInterval(function(date) { - date.setTime(date - date.getMilliseconds()); -}, function(date, step) { - date.setTime(+date + step * durationSecond); -}, function(start, end) { - return (end - start) / durationSecond; -}, function(date) { - return date.getUTCSeconds(); -}); -var seconds = second.range; + var ptr = 0 + for (var i = 0; i < numPoints; ++i) { + var j = uf.find(i) + if (j === i) { + labels[i] = ptr + floatPoints[ptr++] = floatPoints[i] + } else { + labels[i] = -1 + } + } -var minute = newInterval(function(date) { - date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond); -}, function(date, step) { - date.setTime(+date + step * durationMinute); -}, function(start, end) { - return (end - start) / durationMinute; -}, function(date) { - return date.getMinutes(); -}); -var minutes = minute.range; + floatPoints.length = ptr -var hour = newInterval(function(date) { - date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute); -}, function(date, step) { - date.setTime(+date + step * durationHour); -}, function(start, end) { - return (end - start) / durationHour; -}, function(date) { - return date.getHours(); -}); -var hours = hour.range; + // Do a second pass to fix up missing labels + for (var i = 0; i < numPoints; ++i) { + if (labels[i] < 0) { + labels[i] = labels[uf.find(i)] + } + } -var day = newInterval(function(date) { - date.setHours(0, 0, 0, 0); -}, function(date, step) { - date.setDate(date.getDate() + step); -}, function(start, end) { - return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay; -}, function(date) { - return date.getDate() - 1; -}); -var days = day.range; + // Return resulting union-find data structure + return labels +} -function weekday(i) { - return newInterval(function(date) { - date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7); - date.setHours(0, 0, 0, 0); - }, function(date, step) { - date.setDate(date.getDate() + step * 7); - }, function(start, end) { - return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek; - }); +function compareLex2 (a, b) { return (a[0] - b[0]) || (a[1] - b[1]) } +function compareLex3 (a, b) { + var d = (a[0] - b[0]) || (a[1] - b[1]) + if (d) { + return d + } + if (a[2] < b[2]) { + return -1 + } else if (a[2] > b[2]) { + return 1 + } + return 0 } -var sunday = weekday(0); -var monday = weekday(1); -var tuesday = weekday(2); -var wednesday = weekday(3); -var thursday = weekday(4); -var friday = weekday(5); -var saturday = weekday(6); +// Remove duplicate edge labels +function dedupEdges (edges, labels, useColor) { + if (edges.length === 0) { + return + } + if (labels) { + for (var i = 0; i < edges.length; ++i) { + var e = edges[i] + var a = labels[e[0]] + var b = labels[e[1]] + e[0] = Math.min(a, b) + e[1] = Math.max(a, b) + } + } else { + for (var i = 0; i < edges.length; ++i) { + var e = edges[i] + var a = e[0] + var b = e[1] + e[0] = Math.min(a, b) + e[1] = Math.max(a, b) + } + } + if (useColor) { + edges.sort(compareLex3) + } else { + edges.sort(compareLex2) + } + var ptr = 1 + for (var i = 1; i < edges.length; ++i) { + var prev = edges[i - 1] + var next = edges[i] + if (next[0] === prev[0] && next[1] === prev[1] && + (!useColor || next[2] === prev[2])) { + continue + } + edges[ptr++] = next + } + edges.length = ptr +} -var sundays = sunday.range; -var mondays = monday.range; -var tuesdays = tuesday.range; -var wednesdays = wednesday.range; -var thursdays = thursday.range; -var fridays = friday.range; -var saturdays = saturday.range; +function preRound (points, edges, useColor) { + var labels = dedupPoints(points, [], boundPoints(points)) + dedupEdges(edges, labels, useColor) + return !!labels +} -var month = newInterval(function(date) { - date.setDate(1); - date.setHours(0, 0, 0, 0); -}, function(date, step) { - date.setMonth(date.getMonth() + step); -}, function(start, end) { - return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12; -}, function(date) { - return date.getMonth(); -}); -var months = month.range; +// Repeat until convergence +function snapRound (points, edges, useColor) { + // 1. find edge crossings + var edgeBounds = boundEdges(points, edges) + var crossings = getCrossings(points, edges, edgeBounds) -var year = newInterval(function(date) { - date.setMonth(0, 1); - date.setHours(0, 0, 0, 0); -}, function(date, step) { - date.setFullYear(date.getFullYear() + step); -}, function(start, end) { - return end.getFullYear() - start.getFullYear(); -}, function(date) { - return date.getFullYear(); -}); + // 2. find t-junctions + var vertBounds = boundPoints(points) + var tjunctions = getTJunctions(points, edges, edgeBounds, vertBounds) -// An optimized implementation for this simple case. -year.every = function(k) { - return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function(date) { - date.setFullYear(Math.floor(date.getFullYear() / k) * k); - date.setMonth(0, 1); - date.setHours(0, 0, 0, 0); - }, function(date, step) { - date.setFullYear(date.getFullYear() + step * k); - }); -}; -var years = year.range; + // 3. cut edges, construct rational points + var ratPoints = cutEdges(points, edges, crossings, tjunctions, useColor) -var utcMinute = newInterval(function(date) { - date.setUTCSeconds(0, 0); -}, function(date, step) { - date.setTime(+date + step * durationMinute); -}, function(start, end) { - return (end - start) / durationMinute; -}, function(date) { - return date.getUTCMinutes(); -}); -var utcMinutes = utcMinute.range; + // 4. dedupe verts + var labels = dedupPoints(points, ratPoints, vertBounds) -var utcHour = newInterval(function(date) { - date.setUTCMinutes(0, 0, 0); -}, function(date, step) { - date.setTime(+date + step * durationHour); -}, function(start, end) { - return (end - start) / durationHour; -}, function(date) { - return date.getUTCHours(); -}); -var utcHours = utcHour.range; + // 5. dedupe edges + dedupEdges(edges, labels, useColor) -var utcDay = newInterval(function(date) { - date.setUTCHours(0, 0, 0, 0); -}, function(date, step) { - date.setUTCDate(date.getUTCDate() + step); -}, function(start, end) { - return (end - start) / durationDay; -}, function(date) { - return date.getUTCDate() - 1; -}); -var utcDays = utcDay.range; + // 6. check termination + if (!labels) { + return (crossings.length > 0 || tjunctions.length > 0) + } -function utcWeekday(i) { - return newInterval(function(date) { - date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7); - date.setUTCHours(0, 0, 0, 0); - }, function(date, step) { - date.setUTCDate(date.getUTCDate() + step * 7); - }, function(start, end) { - return (end - start) / durationWeek; - }); + // More iterations necessary + return true } -var utcSunday = utcWeekday(0); -var utcMonday = utcWeekday(1); -var utcTuesday = utcWeekday(2); -var utcWednesday = utcWeekday(3); -var utcThursday = utcWeekday(4); -var utcFriday = utcWeekday(5); -var utcSaturday = utcWeekday(6); - -var utcSundays = utcSunday.range; -var utcMondays = utcMonday.range; -var utcTuesdays = utcTuesday.range; -var utcWednesdays = utcWednesday.range; -var utcThursdays = utcThursday.range; -var utcFridays = utcFriday.range; -var utcSaturdays = utcSaturday.range; - -var utcMonth = newInterval(function(date) { - date.setUTCDate(1); - date.setUTCHours(0, 0, 0, 0); -}, function(date, step) { - date.setUTCMonth(date.getUTCMonth() + step); -}, function(start, end) { - return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12; -}, function(date) { - return date.getUTCMonth(); -}); -var utcMonths = utcMonth.range; - -var utcYear = newInterval(function(date) { - date.setUTCMonth(0, 1); - date.setUTCHours(0, 0, 0, 0); -}, function(date, step) { - date.setUTCFullYear(date.getUTCFullYear() + step); -}, function(start, end) { - return end.getUTCFullYear() - start.getUTCFullYear(); -}, function(date) { - return date.getUTCFullYear(); -}); - -// An optimized implementation for this simple case. -utcYear.every = function(k) { - return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function(date) { - date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k); - date.setUTCMonth(0, 1); - date.setUTCHours(0, 0, 0, 0); - }, function(date, step) { - date.setUTCFullYear(date.getUTCFullYear() + step * k); - }); -}; -var utcYears = utcYear.range; +// Main loop, runs PSLG clean up until completion +function cleanPSLG (points, edges, colors) { + // If using colors, augment edges with color data + var prevEdges + if (colors) { + prevEdges = edges + var augEdges = new Array(edges.length) + for (var i = 0; i < edges.length; ++i) { + var e = edges[i] + augEdges[i] = [e[0], e[1], colors[i]] + } + edges = augEdges + } -exports.timeDay = day; -exports.timeDays = days; -exports.timeFriday = friday; -exports.timeFridays = fridays; -exports.timeHour = hour; -exports.timeHours = hours; -exports.timeInterval = newInterval; -exports.timeMillisecond = millisecond; -exports.timeMilliseconds = milliseconds; -exports.timeMinute = minute; -exports.timeMinutes = minutes; -exports.timeMonday = monday; -exports.timeMondays = mondays; -exports.timeMonth = month; -exports.timeMonths = months; -exports.timeSaturday = saturday; -exports.timeSaturdays = saturdays; -exports.timeSecond = second; -exports.timeSeconds = seconds; -exports.timeSunday = sunday; -exports.timeSundays = sundays; -exports.timeThursday = thursday; -exports.timeThursdays = thursdays; -exports.timeTuesday = tuesday; -exports.timeTuesdays = tuesdays; -exports.timeWednesday = wednesday; -exports.timeWednesdays = wednesdays; -exports.timeWeek = sunday; -exports.timeWeeks = sundays; -exports.timeYear = year; -exports.timeYears = years; -exports.utcDay = utcDay; -exports.utcDays = utcDays; -exports.utcFriday = utcFriday; -exports.utcFridays = utcFridays; -exports.utcHour = utcHour; -exports.utcHours = utcHours; -exports.utcMillisecond = millisecond; -exports.utcMilliseconds = milliseconds; -exports.utcMinute = utcMinute; -exports.utcMinutes = utcMinutes; -exports.utcMonday = utcMonday; -exports.utcMondays = utcMondays; -exports.utcMonth = utcMonth; -exports.utcMonths = utcMonths; -exports.utcSaturday = utcSaturday; -exports.utcSaturdays = utcSaturdays; -exports.utcSecond = second; -exports.utcSeconds = seconds; -exports.utcSunday = utcSunday; -exports.utcSundays = utcSundays; -exports.utcThursday = utcThursday; -exports.utcThursdays = utcThursdays; -exports.utcTuesday = utcTuesday; -exports.utcTuesdays = utcTuesdays; -exports.utcWednesday = utcWednesday; -exports.utcWednesdays = utcWednesdays; -exports.utcWeek = utcSunday; -exports.utcWeeks = utcSundays; -exports.utcYear = utcYear; -exports.utcYears = utcYears; + // First round: remove duplicate edges and points + var modified = preRound(points, edges, !!colors) -Object.defineProperty(exports, '__esModule', { value: true }); + // Run snap rounding until convergence + while (snapRound(points, edges, !!colors)) { + modified = true + } -})); + // Strip color tags + if (!!colors && modified) { + prevEdges.length = 0 + colors.length = 0 + for (var i = 0; i < edges.length; ++i) { + var e = edges[i] + prevEdges.push([e[0], e[1]]) + colors.push(e[2]) + } + } -},{}],168:[function(_dereq_,module,exports){ -// https://d3js.org/d3-timer/ v1.0.10 Copyright 2019 Mike Bostock -(function (global, factory) { -typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : -typeof define === 'function' && define.amd ? define(['exports'], factory) : -(global = global || self, factory(global.d3 = global.d3 || {})); -}(this, function (exports) { 'use strict'; + return modified +} -var frame = 0, // is an animation frame pending? - timeout = 0, // is a timeout pending? - interval = 0, // are any timers active? - pokeDelay = 1000, // how frequently we check for clock skew - taskHead, - taskTail, - clockLast = 0, - clockNow = 0, - clockSkew = 0, - clock = typeof performance === "object" && performance.now ? performance : Date, - setFrame = typeof window === "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); }; +},{"./lib/rat-seg-intersect":124,"big-rat":86,"big-rat/cmp":84,"big-rat/to-float":98,"box-intersect":104,"nextafter":481,"rat-vec":526,"robust-segment-intersect":545,"union-find":612}],124:[function(_dereq_,module,exports){ +'use strict' -function now() { - return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew); -} +module.exports = solveIntersection -function clearNow() { - clockNow = 0; -} +var ratMul = _dereq_('big-rat/mul') +var ratDiv = _dereq_('big-rat/div') +var ratSub = _dereq_('big-rat/sub') +var ratSign = _dereq_('big-rat/sign') +var rvSub = _dereq_('rat-vec/sub') +var rvAdd = _dereq_('rat-vec/add') +var rvMuls = _dereq_('rat-vec/muls') -function Timer() { - this._call = - this._time = - this._next = null; +function ratPerp (a, b) { + return ratSub(ratMul(a[0], b[1]), ratMul(a[1], b[0])) } -Timer.prototype = timer.prototype = { - constructor: Timer, - restart: function(callback, delay, time) { - if (typeof callback !== "function") throw new TypeError("callback is not a function"); - time = (time == null ? now() : +time) + (delay == null ? 0 : +delay); - if (!this._next && taskTail !== this) { - if (taskTail) taskTail._next = this; - else taskHead = this; - taskTail = this; - } - this._call = callback; - this._time = time; - sleep(); - }, - stop: function() { - if (this._call) { - this._call = null; - this._time = Infinity; - sleep(); - } - } -}; +// Solve for intersection +// x = a + t (b-a) +// (x - c) ^ (d-c) = 0 +// (t * (b-a) + (a-c) ) ^ (d-c) = 0 +// t * (b-a)^(d-c) = (d-c)^(a-c) +// t = (d-c)^(a-c) / (b-a)^(d-c) -function timer(callback, delay, time) { - var t = new Timer; - t.restart(callback, delay, time); - return t; -} +function solveIntersection (a, b, c, d) { + var ba = rvSub(b, a) + var dc = rvSub(d, c) -function timerFlush() { - now(); // Get the current time, if not already set. - ++frame; // Pretend we’ve set an alarm, if we haven’t already. - var t = taskHead, e; - while (t) { - if ((e = clockNow - t._time) >= 0) t._call.call(null, e); - t = t._next; - } - --frame; -} + var baXdc = ratPerp(ba, dc) -function wake() { - clockNow = (clockLast = clock.now()) + clockSkew; - frame = timeout = 0; - try { - timerFlush(); - } finally { - frame = 0; - nap(); - clockNow = 0; + if (ratSign(baXdc) === 0) { + return null } -} -function poke() { - var now = clock.now(), delay = now - clockLast; - if (delay > pokeDelay) clockSkew -= delay, clockLast = now; -} + var ac = rvSub(a, c) + var dcXac = ratPerp(dc, ac) -function nap() { - var t0, t1 = taskHead, t2, time = Infinity; - while (t1) { - if (t1._call) { - if (time > t1._time) time = t1._time; - t0 = t1, t1 = t1._next; - } else { - t2 = t1._next, t1._next = null; - t1 = t0 ? t0._next = t2 : taskHead = t2; - } - } - taskTail = t0; - sleep(time); -} + var t = ratDiv(dcXac, baXdc) + var s = rvMuls(ba, t) + var r = rvAdd(a, s) -function sleep(time) { - if (frame) return; // Soonest alarm already set, or will be. - if (timeout) timeout = clearTimeout(timeout); - var delay = time - clockNow; // Strictly less than if we recomputed clockNow. - if (delay > 24) { - if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew); - if (interval) interval = clearInterval(interval); - } else { - if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay); - frame = 1, setFrame(wake); - } + return r } -function timeout$1(callback, delay, time) { - var t = new Timer; - delay = delay == null ? 0 : +delay; - t.restart(function(elapsed) { - t.stop(); - callback(elapsed + delay); - }, delay, time); - return t; +},{"big-rat/div":85,"big-rat/mul":95,"big-rat/sign":96,"big-rat/sub":97,"rat-vec/add":525,"rat-vec/muls":527,"rat-vec/sub":528}],125:[function(_dereq_,module,exports){ +/** @module color-id */ + +'use strict' + +var clamp = _dereq_('clamp') + +module.exports = toNumber +module.exports.to = toNumber +module.exports.from = fromNumber + +function toNumber (rgba, normalized) { + if(normalized == null) normalized = true + + var r = rgba[0], g = rgba[1], b = rgba[2], a = rgba[3] + + if (a == null) a = normalized ? 1 : 255 + + if (normalized) { + r *= 255 + g *= 255 + b *= 255 + a *= 255 + } + + r = clamp(r, 0, 255) & 0xFF + g = clamp(g, 0, 255) & 0xFF + b = clamp(b, 0, 255) & 0xFF + a = clamp(a, 0, 255) & 0xFF + + //hi-order shift converts to -1, so we can't use <<24 + var n = (r * 0x01000000) + (g << 16) + (b << 8) + (a) + + return n +} + +function fromNumber (n, normalized) { + n = +n + + var r = n >>> 24 + var g = (n & 0x00ff0000) >>> 16 + var b = (n & 0x0000ff00) >>> 8 + var a = n & 0x000000ff + + if (normalized === false) return [r, g, b, a] + + return [r/255, g/255, b/255, a/255] +} + +},{"clamp":122}],126:[function(_dereq_,module,exports){ +'use strict' + +module.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] +}; + +},{}],127:[function(_dereq_,module,exports){ +/** @module color-normalize */ + +'use strict' + +var rgba = _dereq_('color-rgba') +var clamp = _dereq_('clamp') +var dtype = _dereq_('dtype') + +module.exports = function normalize (color, type) { + if (type === 'float' || !type) type = 'array' + if (type === 'uint') type = 'uint8' + if (type === 'uint_clamped') type = 'uint8_clamped' + var Ctor = dtype(type) + var output = new Ctor(4) + + var normalize = type !== 'uint8' && type !== 'uint8_clamped' + + // attempt to parse non-array arguments + if (!color.length || typeof color === 'string') { + color = rgba(color) + color[0] /= 255 + color[1] /= 255 + color[2] /= 255 + } + + // 0, 1 are possible contradictory values for Arrays: + // [1,1,1] input gives [1,1,1] output instead of [1/255,1/255,1/255], which may be collision if input is meant to be uint. + // converting [1,1,1] to [1/255,1/255,1/255] in case of float input gives larger mistake since [1,1,1] float is frequent edge value, whereas [0,1,1], [1,1,1] etc. uint inputs are relatively rare + if (isInt(color)) { + output[0] = color[0] + output[1] = color[1] + output[2] = color[2] + output[3] = color[3] != null ? color[3] : 255 + + if (normalize) { + output[0] /= 255 + output[1] /= 255 + output[2] /= 255 + output[3] /= 255 + } + + return output + } + + if (!normalize) { + output[0] = clamp(Math.floor(color[0] * 255), 0, 255) + output[1] = clamp(Math.floor(color[1] * 255), 0, 255) + output[2] = clamp(Math.floor(color[2] * 255), 0, 255) + output[3] = color[3] == null ? 255 : clamp(Math.floor(color[3] * 255), 0, 255) + } else { + output[0] = color[0] + output[1] = color[1] + output[2] = color[2] + output[3] = color[3] != null ? color[3] : 1 + } + + return output +} + +function isInt(color) { + if (color instanceof Uint8Array || color instanceof Uint8ClampedArray) return true + + if (Array.isArray(color) && + (color[0] > 1 || color[0] === 0) && + (color[1] > 1 || color[1] === 0) && + (color[2] > 1 || color[2] === 0) && + (!color[3] || color[3] > 1) + ) return true + + return false +} + +},{"clamp":122,"color-rgba":129,"dtype":176}],128:[function(_dereq_,module,exports){ +(function (global){(function (){ +/** + * @module color-parse + */ + +'use strict' + +var names = _dereq_('color-name') +var isObject = _dereq_('is-plain-obj') +var defined = _dereq_('defined') + +module.exports = parse + +/** + * Base hues + * http://dev.w3.org/csswg/css-color/#typedef-named-hue + */ +//FIXME: use external hue detector +var baseHues = { + red: 0, + orange: 60, + yellow: 120, + green: 180, + blue: 240, + purple: 300 } -function interval$1(callback, delay, time) { - var t = new Timer, total = delay; - if (delay == null) return t.restart(callback, delay, time), t; - delay = +delay, time = time == null ? now() : +time; - t.restart(function tick(elapsed) { - elapsed += total; - t.restart(tick, total += delay, time); - callback(elapsed); - }, delay, time); - return t; +/** + * Parse color from the string passed + * + * @return {Object} A space indicator `space`, an array `values` and `alpha` + */ +function parse (cstr) { + var m, parts = [], alpha = 1, space + + if (typeof cstr === 'string') { + //keyword + if (names[cstr]) { + parts = names[cstr].slice() + space = 'rgb' + } + + //reserved words + else if (cstr === 'transparent') { + alpha = 0 + space = 'rgb' + parts = [0,0,0] + } + + //hex + else if (/^#[A-Fa-f0-9]+$/.test(cstr)) { + var base = cstr.slice(1) + var size = base.length + var isShort = size <= 4 + alpha = 1 + + if (isShort) { + parts = [ + parseInt(base[0] + base[0], 16), + parseInt(base[1] + base[1], 16), + parseInt(base[2] + base[2], 16) + ] + if (size === 4) { + alpha = parseInt(base[3] + base[3], 16) / 255 + } + } + else { + parts = [ + parseInt(base[0] + base[1], 16), + parseInt(base[2] + base[3], 16), + parseInt(base[4] + base[5], 16) + ] + if (size === 8) { + alpha = parseInt(base[6] + base[7], 16) / 255 + } + } + + if (!parts[0]) parts[0] = 0 + if (!parts[1]) parts[1] = 0 + if (!parts[2]) parts[2] = 0 + + space = 'rgb' + } + + //color space + else if (m = /^((?:rgb|hs[lvb]|hwb|cmyk?|xy[zy]|gray|lab|lchu?v?|[ly]uv|lms)a?)\s*\(([^\)]*)\)/.exec(cstr)) { + var name = m[1] + var isRGB = name === 'rgb' + var base = name.replace(/a$/, '') + space = base + var size = base === 'cmyk' ? 4 : base === 'gray' ? 1 : 3 + parts = m[2].trim() + .split(/\s*,\s*/) + .map(function (x, i) { + // + if (/%$/.test(x)) { + //alpha + if (i === size) return parseFloat(x) / 100 + //rgb + if (base === 'rgb') return parseFloat(x) * 255 / 100 + return parseFloat(x) + } + //hue + else if (base[i] === 'h') { + // + if (/deg$/.test(x)) { + return parseFloat(x) + } + // + else if (baseHues[x] !== undefined) { + return baseHues[x] + } + } + return parseFloat(x) + }) + + if (name === base) parts.push(1) + alpha = (isRGB) ? 1 : (parts[size] === undefined) ? 1 : parts[size] + parts = parts.slice(0, size) + } + + //named channels case + else if (cstr.length > 10 && /[0-9](?:\s|\/)/.test(cstr)) { + parts = cstr.match(/([0-9]+)/g).map(function (value) { + return parseFloat(value) + }) + + space = cstr.match(/([a-z])/ig).join('').toLowerCase() + } + } + + //numeric case + else if (!isNaN(cstr)) { + space = 'rgb' + parts = [cstr >>> 16, (cstr & 0x00ff00) >>> 8, cstr & 0x0000ff] + } + + //object case - detects css cases of rgb and hsl + else if (isObject(cstr)) { + var r = defined(cstr.r, cstr.red, cstr.R, null) + + if (r !== null) { + space = 'rgb' + parts = [ + r, + defined(cstr.g, cstr.green, cstr.G), + defined(cstr.b, cstr.blue, cstr.B) + ] + } + else { + space = 'hsl' + parts = [ + defined(cstr.h, cstr.hue, cstr.H), + defined(cstr.s, cstr.saturation, cstr.S), + defined(cstr.l, cstr.lightness, cstr.L, cstr.b, cstr.brightness) + ] + } + + alpha = defined(cstr.a, cstr.alpha, cstr.opacity, 1) + + if (cstr.opacity != null) alpha /= 100 + } + + //array + else if (Array.isArray(cstr) || global.ArrayBuffer && ArrayBuffer.isView && ArrayBuffer.isView(cstr)) { + parts = [cstr[0], cstr[1], cstr[2]] + space = 'rgb' + alpha = cstr.length === 4 ? cstr[3] : 1 + } + + return { + space: space, + values: parts, + alpha: alpha + } } -exports.interval = interval$1; -exports.now = now; -exports.timeout = timeout$1; -exports.timer = timer; -exports.timerFlush = timerFlush; +}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{"color-name":126,"defined":171,"is-plain-obj":453}],129:[function(_dereq_,module,exports){ +/** @module color-rgba */ -Object.defineProperty(exports, '__esModule', { value: true }); +'use strict' -})); +var parse = _dereq_('color-parse') +var hsl = _dereq_('color-space/hsl') +var clamp = _dereq_('clamp') + +module.exports = function rgba (color) { + var values, i, l + + //attempt to parse non-array arguments + var parsed = parse(color) + + if (!parsed.space) return [] + + values = Array(3) + values[0] = clamp(parsed.values[0], 0, 255) + values[1] = clamp(parsed.values[1], 0, 255) + values[2] = clamp(parsed.values[2], 0, 255) + + if (parsed.space[0] === 'h') { + values = hsl.rgb(values) + } + + values.push(clamp(parsed.alpha, 0, 1)) + + return values +} + +},{"clamp":122,"color-parse":128,"color-space/hsl":130}],130:[function(_dereq_,module,exports){ +/** + * @module color-space/hsl + */ +'use strict' + +var rgb = _dereq_('./rgb'); + +module.exports = { + name: 'hsl', + min: [0,0,0], + max: [360,100,100], + channel: ['hue', 'saturation', 'lightness'], + alias: ['HSL'], + + rgb: function(hsl) { + var h = hsl[0] / 360, + s = hsl[1] / 100, + l = hsl[2] / 100, + t1, t2, t3, rgb, val; + + if (s === 0) { + val = l * 255; + return [val, val, val]; + } + + if (l < 0.5) { + t2 = l * (1 + s); + } + else { + t2 = l + s - l * s; + } + t1 = 2 * l - t2; + + rgb = [0, 0, 0]; + for (var i = 0; i < 3; i++) { + t3 = h + 1 / 3 * - (i - 1); + if (t3 < 0) { + t3++; + } + else if (t3 > 1) { + t3--; + } + + if (6 * t3 < 1) { + val = t1 + (t2 - t1) * 6 * t3; + } + else if (2 * t3 < 1) { + val = t2; + } + else if (3 * t3 < 2) { + val = t1 + (t2 - t1) * (2 / 3 - t3) * 6; + } + else { + val = t1; + } + + rgb[i] = val * 255; + } + + return rgb; + } +}; + + +//extend rgb +rgb.hsl = function(rgb) { + var r = rgb[0]/255, + g = rgb[1]/255, + b = rgb[2]/255, + min = Math.min(r, g, b), + max = Math.max(r, g, b), + delta = max - min, + h, s, l; + + if (max === min) { + h = 0; + } + else if (r === max) { + h = (g - b) / delta; + } + else if (g === max) { + h = 2 + (b - r) / delta; + } + else if (b === max) { + h = 4 + (r - g)/ delta; + } + + h = Math.min(h * 60, 360); + + if (h < 0) { + h += 360; + } + + l = (min + max) / 2; + + if (max === min) { + s = 0; + } + else if (l <= 0.5) { + s = delta / (max + min); + } + else { + s = delta / (2 - max - min); + } + + return [h, s * 100, l * 100]; +}; + +},{"./rgb":131}],131:[function(_dereq_,module,exports){ +/** + * RGB space. + * + * @module color-space/rgb + */ +'use strict' + +module.exports = { + name: 'rgb', + min: [0,0,0], + max: [255,255,255], + channel: ['red', 'green', 'blue'], + alias: ['RGB'] +}; + +},{}],132:[function(_dereq_,module,exports){ +module.exports={ + "jet":[{"index":0,"rgb":[0,0,131]},{"index":0.125,"rgb":[0,60,170]},{"index":0.375,"rgb":[5,255,255]},{"index":0.625,"rgb":[255,255,0]},{"index":0.875,"rgb":[250,0,0]},{"index":1,"rgb":[128,0,0]}], + + "hsv":[{"index":0,"rgb":[255,0,0]},{"index":0.169,"rgb":[253,255,2]},{"index":0.173,"rgb":[247,255,2]},{"index":0.337,"rgb":[0,252,4]},{"index":0.341,"rgb":[0,252,10]},{"index":0.506,"rgb":[1,249,255]},{"index":0.671,"rgb":[2,0,253]},{"index":0.675,"rgb":[8,0,253]},{"index":0.839,"rgb":[255,0,251]},{"index":0.843,"rgb":[255,0,245]},{"index":1,"rgb":[255,0,6]}], + + "hot":[{"index":0,"rgb":[0,0,0]},{"index":0.3,"rgb":[230,0,0]},{"index":0.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":0.376,"rgb":[84,84,116]},{"index":0.753,"rgb":[169,200,200]},{"index":1,"rgb":[255,255,255]}], + + "copper":[{"index":0,"rgb":[0,0,0]},{"index":0.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":0.125,"rgb":[37,52,148]},{"index":0.25,"rgb":[34,94,168]},{"index":0.375,"rgb":[29,145,192]},{"index":0.5,"rgb":[65,182,196]},{"index":0.625,"rgb":[127,205,187]},{"index":0.75,"rgb":[199,233,180]},{"index":0.875,"rgb":[237,248,217]},{"index":1,"rgb":[255,255,217]}], + + "greens":[{"index":0,"rgb":[0,68,27]},{"index":0.125,"rgb":[0,109,44]},{"index":0.25,"rgb":[35,139,69]},{"index":0.375,"rgb":[65,171,93]},{"index":0.5,"rgb":[116,196,118]},{"index":0.625,"rgb":[161,217,155]},{"index":0.75,"rgb":[199,233,192]},{"index":0.875,"rgb":[229,245,224]},{"index":1,"rgb":[247,252,245]}], + + "yiorrd":[{"index":0,"rgb":[128,0,38]},{"index":0.125,"rgb":[189,0,38]},{"index":0.25,"rgb":[227,26,28]},{"index":0.375,"rgb":[252,78,42]},{"index":0.5,"rgb":[253,141,60]},{"index":0.625,"rgb":[254,178,76]},{"index":0.75,"rgb":[254,217,118]},{"index":0.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":0.35,"rgb":[106,137,247]},{"index":0.5,"rgb":[190,190,190]},{"index":0.6,"rgb":[220,170,132]},{"index":0.7,"rgb":[230,145,90]},{"index":1,"rgb":[178,10,28]}], + + "picnic":[{"index":0,"rgb":[0,0,255]},{"index":0.1,"rgb":[51,153,255]},{"index":0.2,"rgb":[102,204,255]},{"index":0.3,"rgb":[153,204,255]},{"index":0.4,"rgb":[204,204,255]},{"index":0.5,"rgb":[255,255,255]},{"index":0.6,"rgb":[255,204,255]},{"index":0.7,"rgb":[255,153,255]},{"index":0.8,"rgb":[255,102,204]},{"index":0.9,"rgb":[255,102,102]},{"index":1,"rgb":[255,0,0]}], + + "rainbow":[{"index":0,"rgb":[150,0,90]},{"index":0.125,"rgb":[0,0,200]},{"index":0.25,"rgb":[0,25,255]},{"index":0.375,"rgb":[0,152,255]},{"index":0.5,"rgb":[44,255,150]},{"index":0.625,"rgb":[151,255,0]},{"index":0.75,"rgb":[255,234,0]},{"index":0.875,"rgb":[255,111,0]},{"index":1,"rgb":[255,0,0]}], + + "portland":[{"index":0,"rgb":[12,51,131]},{"index":0.25,"rgb":[10,136,186]},{"index":0.5,"rgb":[242,211,56]},{"index":0.75,"rgb":[242,143,56]},{"index":1,"rgb":[217,30,30]}], + + "blackbody":[{"index":0,"rgb":[0,0,0]},{"index":0.2,"rgb":[230,0,0]},{"index":0.4,"rgb":[230,210,0]},{"index":0.7,"rgb":[255,255,255]},{"index":1,"rgb":[160,200,255]}], + + "earth":[{"index":0,"rgb":[0,0,130]},{"index":0.1,"rgb":[0,180,180]},{"index":0.2,"rgb":[40,210,40]},{"index":0.4,"rgb":[230,230,50]},{"index":0.6,"rgb":[120,70,20]},{"index":1,"rgb":[255,255,255]}], + + "electric":[{"index":0,"rgb":[0,0,0]},{"index":0.15,"rgb":[30,0,100]},{"index":0.4,"rgb":[120,0,100]},{"index":0.6,"rgb":[160,90,0]},{"index":0.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":0.13,"rgb":[71,44,122]},{"index":0.25,"rgb":[59,81,139]},{"index":0.38,"rgb":[44,113,142]},{"index":0.5,"rgb":[33,144,141]},{"index":0.63,"rgb":[39,173,129]},{"index":0.75,"rgb":[92,200,99]},{"index":0.88,"rgb":[170,220,50]},{"index":1,"rgb":[253,231,37]}], + + "inferno": [{"index":0,"rgb":[0,0,4]},{"index":0.13,"rgb":[31,12,72]},{"index":0.25,"rgb":[85,15,109]},{"index":0.38,"rgb":[136,34,106]},{"index":0.5,"rgb":[186,54,85]},{"index":0.63,"rgb":[227,89,51]},{"index":0.75,"rgb":[249,140,10]},{"index":0.88,"rgb":[249,201,50]},{"index":1,"rgb":[252,255,164]}], + + "magma": [{"index":0,"rgb":[0,0,4]},{"index":0.13,"rgb":[28,16,68]},{"index":0.25,"rgb":[79,18,123]},{"index":0.38,"rgb":[129,37,129]},{"index":0.5,"rgb":[181,54,122]},{"index":0.63,"rgb":[229,80,100]},{"index":0.75,"rgb":[251,135,97]},{"index":0.88,"rgb":[254,194,135]},{"index":1,"rgb":[252,253,191]}], + + "plasma": [{"index":0,"rgb":[13,8,135]},{"index":0.13,"rgb":[75,3,161]},{"index":0.25,"rgb":[125,3,168]},{"index":0.38,"rgb":[168,34,150]},{"index":0.5,"rgb":[203,70,121]},{"index":0.63,"rgb":[229,107,93]},{"index":0.75,"rgb":[248,148,65]},{"index":0.88,"rgb":[253,195,40]},{"index":1,"rgb":[240,249,33]}], + + "warm": [{"index":0,"rgb":[125,0,179]},{"index":0.13,"rgb":[172,0,187]},{"index":0.25,"rgb":[219,0,170]},{"index":0.38,"rgb":[255,0,130]},{"index":0.5,"rgb":[255,63,74]},{"index":0.63,"rgb":[255,123,0]},{"index":0.75,"rgb":[234,176,0]},{"index":0.88,"rgb":[190,228,0]},{"index":1,"rgb":[147,255,0]}], + + "cool": [{"index":0,"rgb":[125,0,179]},{"index":0.13,"rgb":[116,0,218]},{"index":0.25,"rgb":[98,74,237]},{"index":0.38,"rgb":[68,146,231]},{"index":0.5,"rgb":[0,204,197]},{"index":0.63,"rgb":[0,247,146]},{"index":0.75,"rgb":[0,255,88]},{"index":0.88,"rgb":[40,255,8]},{"index":1,"rgb":[147,255,0]}], + + "rainbow-soft": [{"index":0,"rgb":[125,0,179]},{"index":0.1,"rgb":[199,0,180]},{"index":0.2,"rgb":[255,0,121]},{"index":0.3,"rgb":[255,108,0]},{"index":0.4,"rgb":[222,194,0]},{"index":0.5,"rgb":[150,255,0]},{"index":0.6,"rgb":[0,255,55]},{"index":0.7,"rgb":[0,246,150]},{"index":0.8,"rgb":[50,167,222]},{"index":0.9,"rgb":[103,51,235]},{"index":1,"rgb":[124,0,186]}], + + "bathymetry": [{"index":0,"rgb":[40,26,44]},{"index":0.13,"rgb":[59,49,90]},{"index":0.25,"rgb":[64,76,139]},{"index":0.38,"rgb":[63,110,151]},{"index":0.5,"rgb":[72,142,158]},{"index":0.63,"rgb":[85,174,163]},{"index":0.75,"rgb":[120,206,163]},{"index":0.88,"rgb":[187,230,172]},{"index":1,"rgb":[253,254,204]}], + + "cdom": [{"index":0,"rgb":[47,15,62]},{"index":0.13,"rgb":[87,23,86]},{"index":0.25,"rgb":[130,28,99]},{"index":0.38,"rgb":[171,41,96]},{"index":0.5,"rgb":[206,67,86]},{"index":0.63,"rgb":[230,106,84]},{"index":0.75,"rgb":[242,149,103]},{"index":0.88,"rgb":[249,193,135]},{"index":1,"rgb":[254,237,176]}], + + "chlorophyll": [{"index":0,"rgb":[18,36,20]},{"index":0.13,"rgb":[25,63,41]},{"index":0.25,"rgb":[24,91,59]},{"index":0.38,"rgb":[13,119,72]},{"index":0.5,"rgb":[18,148,80]},{"index":0.63,"rgb":[80,173,89]},{"index":0.75,"rgb":[132,196,122]},{"index":0.88,"rgb":[175,221,162]},{"index":1,"rgb":[215,249,208]}], + + "density": [{"index":0,"rgb":[54,14,36]},{"index":0.13,"rgb":[89,23,80]},{"index":0.25,"rgb":[110,45,132]},{"index":0.38,"rgb":[120,77,178]},{"index":0.5,"rgb":[120,113,213]},{"index":0.63,"rgb":[115,151,228]},{"index":0.75,"rgb":[134,185,227]},{"index":0.88,"rgb":[177,214,227]},{"index":1,"rgb":[230,241,241]}], + + "freesurface-blue": [{"index":0,"rgb":[30,4,110]},{"index":0.13,"rgb":[47,14,176]},{"index":0.25,"rgb":[41,45,236]},{"index":0.38,"rgb":[25,99,212]},{"index":0.5,"rgb":[68,131,200]},{"index":0.63,"rgb":[114,156,197]},{"index":0.75,"rgb":[157,181,203]},{"index":0.88,"rgb":[200,208,216]},{"index":1,"rgb":[241,237,236]}], + + "freesurface-red": [{"index":0,"rgb":[60,9,18]},{"index":0.13,"rgb":[100,17,27]},{"index":0.25,"rgb":[142,20,29]},{"index":0.38,"rgb":[177,43,27]},{"index":0.5,"rgb":[192,87,63]},{"index":0.63,"rgb":[205,125,105]},{"index":0.75,"rgb":[216,162,148]},{"index":0.88,"rgb":[227,199,193]},{"index":1,"rgb":[241,237,236]}], + + "oxygen": [{"index":0,"rgb":[64,5,5]},{"index":0.13,"rgb":[106,6,15]},{"index":0.25,"rgb":[144,26,7]},{"index":0.38,"rgb":[168,64,3]},{"index":0.5,"rgb":[188,100,4]},{"index":0.63,"rgb":[206,136,11]},{"index":0.75,"rgb":[220,174,25]},{"index":0.88,"rgb":[231,215,44]},{"index":1,"rgb":[248,254,105]}], + + "par": [{"index":0,"rgb":[51,20,24]},{"index":0.13,"rgb":[90,32,35]},{"index":0.25,"rgb":[129,44,34]},{"index":0.38,"rgb":[159,68,25]},{"index":0.5,"rgb":[182,99,19]},{"index":0.63,"rgb":[199,134,22]},{"index":0.75,"rgb":[212,171,35]},{"index":0.88,"rgb":[221,210,54]},{"index":1,"rgb":[225,253,75]}], + + "phase": [{"index":0,"rgb":[145,105,18]},{"index":0.13,"rgb":[184,71,38]},{"index":0.25,"rgb":[186,58,115]},{"index":0.38,"rgb":[160,71,185]},{"index":0.5,"rgb":[110,97,218]},{"index":0.63,"rgb":[50,123,164]},{"index":0.75,"rgb":[31,131,110]},{"index":0.88,"rgb":[77,129,34]},{"index":1,"rgb":[145,105,18]}], + + "salinity": [{"index":0,"rgb":[42,24,108]},{"index":0.13,"rgb":[33,50,162]},{"index":0.25,"rgb":[15,90,145]},{"index":0.38,"rgb":[40,118,137]},{"index":0.5,"rgb":[59,146,135]},{"index":0.63,"rgb":[79,175,126]},{"index":0.75,"rgb":[120,203,104]},{"index":0.88,"rgb":[193,221,100]},{"index":1,"rgb":[253,239,154]}], + + "temperature": [{"index":0,"rgb":[4,35,51]},{"index":0.13,"rgb":[23,51,122]},{"index":0.25,"rgb":[85,59,157]},{"index":0.38,"rgb":[129,79,143]},{"index":0.5,"rgb":[175,95,130]},{"index":0.63,"rgb":[222,112,101]},{"index":0.75,"rgb":[249,146,66]},{"index":0.88,"rgb":[249,196,65]},{"index":1,"rgb":[232,250,91]}], + + "turbidity": [{"index":0,"rgb":[34,31,27]},{"index":0.13,"rgb":[65,50,41]},{"index":0.25,"rgb":[98,69,52]},{"index":0.38,"rgb":[131,89,57]},{"index":0.5,"rgb":[161,112,59]},{"index":0.63,"rgb":[185,140,66]},{"index":0.75,"rgb":[202,174,88]},{"index":0.88,"rgb":[216,209,126]},{"index":1,"rgb":[233,246,171]}], + + "velocity-blue": [{"index":0,"rgb":[17,32,64]},{"index":0.13,"rgb":[35,52,116]},{"index":0.25,"rgb":[29,81,156]},{"index":0.38,"rgb":[31,113,162]},{"index":0.5,"rgb":[50,144,169]},{"index":0.63,"rgb":[87,173,176]},{"index":0.75,"rgb":[149,196,189]},{"index":0.88,"rgb":[203,221,211]},{"index":1,"rgb":[254,251,230]}], + + "velocity-green": [{"index":0,"rgb":[23,35,19]},{"index":0.13,"rgb":[24,64,38]},{"index":0.25,"rgb":[11,95,45]},{"index":0.38,"rgb":[39,123,35]},{"index":0.5,"rgb":[95,146,12]},{"index":0.63,"rgb":[152,165,18]},{"index":0.75,"rgb":[201,186,69]},{"index":0.88,"rgb":[233,216,137]},{"index":1,"rgb":[255,253,205]}], + + "cubehelix": [{"index":0,"rgb":[0,0,0]},{"index":0.07,"rgb":[22,5,59]},{"index":0.13,"rgb":[60,4,105]},{"index":0.2,"rgb":[109,1,135]},{"index":0.27,"rgb":[161,0,147]},{"index":0.33,"rgb":[210,2,142]},{"index":0.4,"rgb":[251,11,123]},{"index":0.47,"rgb":[255,29,97]},{"index":0.53,"rgb":[255,54,69]},{"index":0.6,"rgb":[255,85,46]},{"index":0.67,"rgb":[255,120,34]},{"index":0.73,"rgb":[255,157,37]},{"index":0.8,"rgb":[241,191,57]},{"index":0.87,"rgb":[224,220,93]},{"index":0.93,"rgb":[218,241,142]},{"index":1,"rgb":[227,253,198]}] +}; + +},{}],133:[function(_dereq_,module,exports){ +/* + * Ben Postlethwaite + * January 2013 + * License MIT + */ +'use strict'; + +var colorScale = _dereq_('./colorScale'); +var lerp = _dereq_('lerp') + +module.exports = createColormap; + +function createColormap (spec) { + /* + * Default Options + */ + var indicies, fromrgba, torgba, + nsteps, cmap, colormap, format, + nshades, colors, alpha, i; + + if ( !spec ) spec = {}; + + nshades = (spec.nshades || 72) - 1; + format = spec.format || 'hex'; + + colormap = spec.colormap; + if (!colormap) colormap = 'jet'; + + if (typeof colormap === 'string') { + colormap = colormap.toLowerCase(); + + if (!colorScale[colormap]) { + throw Error(colormap + ' not a supported colorscale'); + } + + cmap = colorScale[colormap]; + + } else if (Array.isArray(colormap)) { + cmap = colormap.slice(); -},{}],169:[function(_dereq_,module,exports){ -!function() { - var d3 = { - version: "3.5.17" - }; - var d3_arraySlice = [].slice, d3_array = function(list) { - return d3_arraySlice.call(list); - }; - var d3_document = this.document; - function d3_documentElement(node) { - return node && (node.ownerDocument || node.document || node).documentElement; - } - function d3_window(node) { - return node && (node.ownerDocument && node.ownerDocument.defaultView || node.document && node || node.defaultView); - } - if (d3_document) { - try { - d3_array(d3_document.documentElement.childNodes)[0].nodeType; - } catch (e) { - d3_array = function(list) { - var i = list.length, array = new Array(i); - while (i--) array[i] = list[i]; - return array; - }; - } - } - if (!Date.now) Date.now = function() { - return +new Date(); - }; - if (d3_document) { - try { - d3_document.createElement("DIV").style.setProperty("opacity", 0, ""); - } catch (error) { - var d3_element_prototype = this.Element.prototype, d3_element_setAttribute = d3_element_prototype.setAttribute, d3_element_setAttributeNS = d3_element_prototype.setAttributeNS, d3_style_prototype = this.CSSStyleDeclaration.prototype, d3_style_setProperty = d3_style_prototype.setProperty; - d3_element_prototype.setAttribute = function(name, value) { - d3_element_setAttribute.call(this, name, value + ""); - }; - d3_element_prototype.setAttributeNS = function(space, local, value) { - d3_element_setAttributeNS.call(this, space, local, value + ""); - }; - d3_style_prototype.setProperty = function(name, value, priority) { - d3_style_setProperty.call(this, name, value + "", priority); - }; - } - } - d3.ascending = d3_ascending; - function d3_ascending(a, b) { - return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; - } - d3.descending = function(a, b) { - return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN; - }; - d3.min = function(array, f) { - var i = -1, n = array.length, a, b; - if (arguments.length === 1) { - while (++i < n) if ((b = array[i]) != null && b >= b) { - a = b; - break; - } - while (++i < n) if ((b = array[i]) != null && a > b) a = b; - } else { - while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) { - a = b; - break; - } - while (++i < n) if ((b = f.call(array, array[i], i)) != null && a > b) a = b; - } - return a; - }; - d3.max = function(array, f) { - var i = -1, n = array.length, a, b; - if (arguments.length === 1) { - while (++i < n) if ((b = array[i]) != null && b >= b) { - a = b; - break; - } - while (++i < n) if ((b = array[i]) != null && b > a) a = b; - } else { - while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) { - a = b; - break; - } - while (++i < n) if ((b = f.call(array, array[i], i)) != null && b > a) a = b; - } - return a; - }; - d3.extent = function(array, f) { - var i = -1, n = array.length, a, b, c; - if (arguments.length === 1) { - while (++i < n) if ((b = array[i]) != null && b >= b) { - a = c = b; - break; - } - while (++i < n) if ((b = array[i]) != null) { - if (a > b) a = b; - if (c < b) c = b; - } - } else { - while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) { - a = c = b; - break; - } - while (++i < n) if ((b = f.call(array, array[i], i)) != null) { - if (a > b) a = b; - if (c < b) c = b; - } - } - return [ a, c ]; - }; - function d3_number(x) { - return x === null ? NaN : +x; - } - function d3_numeric(x) { - return !isNaN(x); - } - d3.sum = function(array, f) { - var s = 0, n = array.length, a, i = -1; - if (arguments.length === 1) { - while (++i < n) if (d3_numeric(a = +array[i])) s += a; - } else { - while (++i < n) if (d3_numeric(a = +f.call(array, array[i], i))) s += a; - } - return s; - }; - d3.mean = function(array, f) { - var s = 0, n = array.length, a, i = -1, j = n; - if (arguments.length === 1) { - while (++i < n) if (d3_numeric(a = d3_number(array[i]))) s += a; else --j; } else { - while (++i < n) if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) s += a; else --j; + throw Error('unsupported colormap option', colormap); } - if (j) return s / j; - }; - d3.quantile = function(values, p) { - var H = (values.length - 1) * p + 1, h = Math.floor(H), v = +values[h - 1], e = H - h; - return e ? v + e * (values[h] - v) : v; - }; - d3.median = function(array, f) { - var numbers = [], n = array.length, a, i = -1; - if (arguments.length === 1) { - while (++i < n) if (d3_numeric(a = d3_number(array[i]))) numbers.push(a); - } else { - while (++i < n) if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) numbers.push(a); + + if (cmap.length > nshades + 1) { + throw new Error( + colormap+' map requires nshades to be at least size '+cmap.length + ); } - if (numbers.length) return d3.quantile(numbers.sort(d3_ascending), .5); - }; - d3.variance = function(array, f) { - var n = array.length, m = 0, a, d, s = 0, i = -1, j = 0; - if (arguments.length === 1) { - while (++i < n) { - if (d3_numeric(a = d3_number(array[i]))) { - d = a - m; - m += d / ++j; - s += d * (a - m); + + if (!Array.isArray(spec.alpha)) { + + if (typeof spec.alpha === 'number') { + alpha = [spec.alpha, spec.alpha]; + + } else { + alpha = [1, 1]; } - } + + } else if (spec.alpha.length !== 2) { + alpha = [1, 1]; + } else { - while (++i < n) { - if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) { - d = a - m; - m += d / ++j; - s += d * (a - m); - } - } - } - if (j > 1) return s / (j - 1); - }; - d3.deviation = function() { - var v = d3.variance.apply(this, arguments); - return v ? Math.sqrt(v) : v; - }; - function d3_bisector(compare) { - return { - left: function(a, x, lo, hi) { - if (arguments.length < 3) lo = 0; - if (arguments.length < 4) hi = a.length; - while (lo < hi) { - var mid = lo + hi >>> 1; - if (compare(a[mid], x) < 0) lo = mid + 1; else hi = mid; - } - return lo; - }, - right: function(a, x, lo, hi) { - if (arguments.length < 3) lo = 0; - if (arguments.length < 4) hi = a.length; - while (lo < hi) { - var mid = lo + hi >>> 1; - if (compare(a[mid], x) > 0) hi = mid; else lo = mid + 1; - } - return lo; - } - }; - } - var d3_bisect = d3_bisector(d3_ascending); - d3.bisectLeft = d3_bisect.left; - d3.bisect = d3.bisectRight = d3_bisect.right; - d3.bisector = function(f) { - return d3_bisector(f.length === 1 ? function(d, x) { - return d3_ascending(f(d), x); - } : f); - }; - d3.shuffle = function(array, i0, i1) { - if ((m = arguments.length) < 3) { - i1 = array.length; - if (m < 2) i0 = 0; - } - var m = i1 - i0, t, i; - while (m) { - i = Math.random() * m-- | 0; - t = array[m + i0], array[m + i0] = array[i + i0], array[i + i0] = t; - } - return array; - }; - d3.permute = function(array, indexes) { - var i = indexes.length, permutes = new Array(i); - while (i--) permutes[i] = array[indexes[i]]; - return permutes; - }; - d3.pairs = function(array) { - var i = 0, n = array.length - 1, p0, p1 = array[0], pairs = new Array(n < 0 ? 0 : n); - while (i < n) pairs[i] = [ p0 = p1, p1 = array[++i] ]; - return pairs; - }; - d3.transpose = function(matrix) { - if (!(n = matrix.length)) return []; - for (var i = -1, m = d3.min(matrix, d3_transposeLength), transpose = new Array(m); ++i < m; ) { - for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n; ) { - row[j] = matrix[j][i]; - } + alpha = spec.alpha.slice(); } - return transpose; - }; - function d3_transposeLength(d) { - return d.length; - } - d3.zip = function() { - return d3.transpose(arguments); - }; - d3.keys = function(map) { - var keys = []; - for (var key in map) keys.push(key); - return keys; - }; - d3.values = function(map) { - var values = []; - for (var key in map) values.push(map[key]); - return values; - }; - d3.entries = function(map) { - var entries = []; - for (var key in map) entries.push({ - key: key, - value: map[key] + + // map index points from 0..1 to 0..n-1 + indicies = cmap.map(function(c) { + return Math.round(c.index * nshades); }); - return entries; - }; - d3.merge = function(arrays) { - var n = arrays.length, m, i = -1, j = 0, merged, array; - while (++i < n) j += arrays[i].length; - merged = new Array(j); - while (--n >= 0) { - array = arrays[n]; - m = array.length; - while (--m >= 0) { - merged[--j] = array[m]; - } - } - return merged; - }; - var abs = Math.abs; - d3.range = function(start, stop, step) { - if (arguments.length < 3) { - step = 1; - if (arguments.length < 2) { - stop = start; - start = 0; - } - } - if ((stop - start) / step === Infinity) throw new Error("infinite range"); - var range = [], k = d3_range_integerScale(abs(step)), i = -1, j; - start *= k, stop *= k, step *= k; - if (step < 0) while ((j = start + step * ++i) > stop) range.push(j / k); else while ((j = start + step * ++i) < stop) range.push(j / k); - return range; - }; - function d3_range_integerScale(x) { - var k = 1; - while (x * k % 1) k *= 10; - return k; - } - function d3_class(ctor, properties) { - for (var key in properties) { - Object.defineProperty(ctor.prototype, key, { - value: properties[key], - enumerable: false - }); - } - } - d3.map = function(object, f) { - var map = new d3_Map(); - if (object instanceof d3_Map) { - object.forEach(function(key, value) { - map.set(key, value); - }); - } else if (Array.isArray(object)) { - var i = -1, n = object.length, o; - if (arguments.length === 1) while (++i < n) map.set(i, object[i]); else while (++i < n) map.set(f.call(object, o = object[i], i), o); - } else { - for (var key in object) map.set(key, object[key]); - } - return map; - }; - function d3_Map() { - this._ = Object.create(null); - } - var d3_map_proto = "__proto__", d3_map_zero = "\x00"; - d3_class(d3_Map, { - has: d3_map_has, - get: function(key) { - return this._[d3_map_escape(key)]; - }, - set: function(key, value) { - return this._[d3_map_escape(key)] = value; - }, - remove: d3_map_remove, - keys: d3_map_keys, - values: function() { - var values = []; - for (var key in this._) values.push(this._[key]); - return values; - }, - entries: function() { - var entries = []; - for (var key in this._) entries.push({ - key: d3_map_unescape(key), - value: this._[key] - }); - return entries; - }, - size: d3_map_size, - empty: d3_map_empty, - forEach: function(f) { - for (var key in this._) f.call(this, d3_map_unescape(key), this._[key]); - } - }); - function d3_map_escape(key) { - return (key += "") === d3_map_proto || key[0] === d3_map_zero ? d3_map_zero + key : key; - } - function d3_map_unescape(key) { - return (key += "")[0] === d3_map_zero ? key.slice(1) : key; - } - function d3_map_has(key) { - return d3_map_escape(key) in this._; - } - function d3_map_remove(key) { - return (key = d3_map_escape(key)) in this._ && delete this._[key]; - } - function d3_map_keys() { - var keys = []; - for (var key in this._) keys.push(d3_map_unescape(key)); - return keys; - } - function d3_map_size() { - var size = 0; - for (var key in this._) ++size; - return size; - } - function d3_map_empty() { - for (var key in this._) return false; - return true; - } - d3.nest = function() { - var nest = {}, keys = [], sortKeys = [], sortValues, rollup; - function map(mapType, array, depth) { - if (depth >= keys.length) return rollup ? rollup.call(nest, array) : sortValues ? array.sort(sortValues) : array; - var i = -1, n = array.length, key = keys[depth++], keyValue, object, setter, valuesByKey = new d3_Map(), values; - while (++i < n) { - if (values = valuesByKey.get(keyValue = key(object = array[i]))) { - values.push(object); - } else { - valuesByKey.set(keyValue, [ object ]); - } - } - if (mapType) { - object = mapType(); - setter = function(keyValue, values) { - object.set(keyValue, map(mapType, values, depth)); - }; - } else { - object = {}; - setter = function(keyValue, values) { - object[keyValue] = map(mapType, values, depth); - }; - } - valuesByKey.forEach(setter); - return object; - } - function entries(map, depth) { - if (depth >= keys.length) return map; - var array = [], sortKey = sortKeys[depth++]; - map.forEach(function(key, keyMap) { - array.push({ - key: key, - values: entries(keyMap, depth) - }); - }); - return sortKey ? array.sort(function(a, b) { - return sortKey(a.key, b.key); - }) : array; - } - nest.map = function(array, mapType) { - return map(mapType, array, 0); - }; - nest.entries = function(array) { - return entries(map(d3.map, array, 0), 0); - }; - nest.key = function(d) { - keys.push(d); - return nest; - }; - nest.sortKeys = function(order) { - sortKeys[keys.length - 1] = order; - return nest; - }; - nest.sortValues = function(order) { - sortValues = order; - return nest; - }; - nest.rollup = function(f) { - rollup = f; - return nest; - }; - return nest; - }; - d3.set = function(array) { - var set = new d3_Set(); - if (array) for (var i = 0, n = array.length; i < n; ++i) set.add(array[i]); - return set; - }; - function d3_Set() { - this._ = Object.create(null); - } - d3_class(d3_Set, { - has: d3_map_has, - add: function(key) { - this._[d3_map_escape(key += "")] = true; - return key; - }, - remove: d3_map_remove, - values: d3_map_keys, - size: d3_map_size, - empty: d3_map_empty, - forEach: function(f) { - for (var key in this._) f.call(this, d3_map_unescape(key)); - } - }); - d3.behavior = {}; - function d3_identity(d) { - return d; - } - d3.rebind = function(target, source) { - var i = 1, n = arguments.length, method; - while (++i < n) target[method = arguments[i]] = d3_rebind(target, source, source[method]); - return target; - }; - function d3_rebind(target, source, method) { - return function() { - var value = method.apply(source, arguments); - return value === source ? target : value; - }; - } - function d3_vendorSymbol(object, name) { - if (name in object) return name; - name = name.charAt(0).toUpperCase() + name.slice(1); - for (var i = 0, n = d3_vendorPrefixes.length; i < n; ++i) { - var prefixName = d3_vendorPrefixes[i] + name; - if (prefixName in object) return prefixName; - } - } - var d3_vendorPrefixes = [ "webkit", "ms", "moz", "Moz", "o", "O" ]; - function d3_noop() {} - d3.dispatch = function() { - var dispatch = new d3_dispatch(), i = -1, n = arguments.length; - while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch); - return dispatch; - }; - function d3_dispatch() {} - d3_dispatch.prototype.on = function(type, listener) { - var i = type.indexOf("."), name = ""; - if (i >= 0) { - name = type.slice(i + 1); - type = type.slice(0, i); - } - if (type) return arguments.length < 2 ? this[type].on(name) : this[type].on(name, listener); - if (arguments.length === 2) { - if (listener == null) for (type in this) { - if (this.hasOwnProperty(type)) this[type].on(name, null); - } - return this; - } - }; - function d3_dispatch_event(dispatch) { - var listeners = [], listenerByName = new d3_Map(); - function event() { - var z = listeners, i = -1, n = z.length, l; - while (++i < n) if (l = z[i].on) l.apply(this, arguments); - return dispatch; - } - event.on = function(name, listener) { - var l = listenerByName.get(name), i; - if (arguments.length < 2) return l && l.on; - if (l) { - l.on = null; - listeners = listeners.slice(0, i = listeners.indexOf(l)).concat(listeners.slice(i + 1)); - listenerByName.remove(name); - } - if (listener) listeners.push(listenerByName.set(name, { - on: listener - })); - return dispatch; - }; - return event; - } - d3.event = null; - function d3_eventPreventDefault() { - d3.event.preventDefault(); - } - function d3_eventSource() { - var e = d3.event, s; - while (s = e.sourceEvent) e = s; - return e; - } - function d3_eventDispatch(target) { - var dispatch = new d3_dispatch(), i = 0, n = arguments.length; - while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch); - dispatch.of = function(thiz, argumentz) { - return function(e1) { - try { - var e0 = e1.sourceEvent = d3.event; - e1.target = target; - d3.event = e1; - dispatch[e1.type].apply(thiz, argumentz); - } finally { - d3.event = e0; - } - }; - }; - return dispatch; - } - d3.requote = function(s) { - return s.replace(d3_requote_re, "\\$&"); - }; - var d3_requote_re = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g; - var d3_subclass = {}.__proto__ ? function(object, prototype) { - object.__proto__ = prototype; - } : function(object, prototype) { - for (var property in prototype) object[property] = prototype[property]; - }; - function d3_selection(groups) { - d3_subclass(groups, d3_selectionPrototype); - return groups; - } - var d3_select = function(s, n) { - return n.querySelector(s); - }, d3_selectAll = function(s, n) { - return n.querySelectorAll(s); - }, d3_selectMatches = function(n, s) { - var d3_selectMatcher = n.matches || n[d3_vendorSymbol(n, "matchesSelector")]; - d3_selectMatches = function(n, s) { - return d3_selectMatcher.call(n, s); - }; - return d3_selectMatches(n, s); - }; - if (typeof Sizzle === "function") { - d3_select = function(s, n) { - return Sizzle(s, n)[0] || null; - }; - d3_selectAll = Sizzle; - d3_selectMatches = Sizzle.matchesSelector; - } - d3.selection = function() { - return d3.select(d3_document.documentElement); - }; - var d3_selectionPrototype = d3.selection.prototype = []; - d3_selectionPrototype.select = function(selector) { - var subgroups = [], subgroup, subnode, group, node; - selector = d3_selection_selector(selector); - for (var j = -1, m = this.length; ++j < m; ) { - subgroups.push(subgroup = []); - subgroup.parentNode = (group = this[j]).parentNode; - for (var i = -1, n = group.length; ++i < n; ) { - if (node = group[i]) { - subgroup.push(subnode = selector.call(node, node.__data__, i, j)); - if (subnode && "__data__" in node) subnode.__data__ = node.__data__; - } else { - subgroup.push(null); - } - } - } - return d3_selection(subgroups); - }; - function d3_selection_selector(selector) { - return typeof selector === "function" ? selector : function() { - return d3_select(selector, this); - }; - } - d3_selectionPrototype.selectAll = function(selector) { - var subgroups = [], subgroup, node; - selector = d3_selection_selectorAll(selector); - for (var j = -1, m = this.length; ++j < m; ) { - for (var group = this[j], i = -1, n = group.length; ++i < n; ) { - if (node = group[i]) { - subgroups.push(subgroup = d3_array(selector.call(node, node.__data__, i, j))); - subgroup.parentNode = node; - } - } - } - return d3_selection(subgroups); - }; - function d3_selection_selectorAll(selector) { - return typeof selector === "function" ? selector : function() { - return d3_selectAll(selector, this); - }; - } - var d3_nsXhtml = "http://www.w3.org/1999/xhtml"; - var d3_nsPrefix = { - svg: "http://www.w3.org/2000/svg", - xhtml: d3_nsXhtml, - xlink: "http://www.w3.org/1999/xlink", - xml: "http://www.w3.org/XML/1998/namespace", - xmlns: "http://www.w3.org/2000/xmlns/" - }; - d3.ns = { - prefix: d3_nsPrefix, - qualify: function(name) { - var i = name.indexOf(":"), prefix = name; - if (i >= 0 && (prefix = name.slice(0, i)) !== "xmlns") name = name.slice(i + 1); - return d3_nsPrefix.hasOwnProperty(prefix) ? { - space: d3_nsPrefix[prefix], - local: name - } : name; - } - }; - d3_selectionPrototype.attr = function(name, value) { - if (arguments.length < 2) { - if (typeof name === "string") { - var node = this.node(); - name = d3.ns.qualify(name); - return name.local ? node.getAttributeNS(name.space, name.local) : node.getAttribute(name); - } - for (value in name) this.each(d3_selection_attr(value, name[value])); - return this; - } - return this.each(d3_selection_attr(name, value)); - }; - function d3_selection_attr(name, value) { - name = d3.ns.qualify(name); - function attrNull() { - this.removeAttribute(name); - } - function attrNullNS() { - this.removeAttributeNS(name.space, name.local); - } - function attrConstant() { - this.setAttribute(name, value); - } - function attrConstantNS() { - this.setAttributeNS(name.space, name.local, value); - } - function attrFunction() { - var x = value.apply(this, arguments); - if (x == null) this.removeAttribute(name); else this.setAttribute(name, x); - } - function attrFunctionNS() { - var x = value.apply(this, arguments); - if (x == null) this.removeAttributeNS(name.space, name.local); else this.setAttributeNS(name.space, name.local, x); - } - return value == null ? name.local ? attrNullNS : attrNull : typeof value === "function" ? name.local ? attrFunctionNS : attrFunction : name.local ? attrConstantNS : attrConstant; - } - function d3_collapse(s) { - return s.trim().replace(/\s+/g, " "); - } - d3_selectionPrototype.classed = function(name, value) { - if (arguments.length < 2) { - if (typeof name === "string") { - var node = this.node(), n = (name = d3_selection_classes(name)).length, i = -1; - if (value = node.classList) { - while (++i < n) if (!value.contains(name[i])) return false; - } else { - value = node.getAttribute("class"); - while (++i < n) if (!d3_selection_classedRe(name[i]).test(value)) return false; - } - return true; - } - for (value in name) this.each(d3_selection_classed(value, name[value])); - return this; - } - return this.each(d3_selection_classed(name, value)); - }; - function d3_selection_classedRe(name) { - return new RegExp("(?:^|\\s+)" + d3.requote(name) + "(?:\\s+|$)", "g"); - } - function d3_selection_classes(name) { - return (name + "").trim().split(/^|\s+/); - } - function d3_selection_classed(name, value) { - name = d3_selection_classes(name).map(d3_selection_classedName); - var n = name.length; - function classedConstant() { - var i = -1; - while (++i < n) name[i](this, value); - } - function classedFunction() { - var i = -1, x = value.apply(this, arguments); - while (++i < n) name[i](this, x); - } - return typeof value === "function" ? classedFunction : classedConstant; - } - function d3_selection_classedName(name) { - var re = d3_selection_classedRe(name); - return function(node, value) { - if (c = node.classList) return value ? c.add(name) : c.remove(name); - var c = node.getAttribute("class") || ""; - if (value) { - re.lastIndex = 0; - if (!re.test(c)) node.setAttribute("class", d3_collapse(c + " " + name)); - } else { - node.setAttribute("class", d3_collapse(c.replace(re, " "))); - } - }; - } - d3_selectionPrototype.style = function(name, value, priority) { - var n = arguments.length; - if (n < 3) { - if (typeof name !== "string") { - if (n < 2) value = ""; - for (priority in name) this.each(d3_selection_style(priority, name[priority], value)); - return this; - } - if (n < 2) { - var node = this.node(); - return d3_window(node).getComputedStyle(node, null).getPropertyValue(name); - } - priority = ""; - } - return this.each(d3_selection_style(name, value, priority)); - }; - function d3_selection_style(name, value, priority) { - function styleNull() { - this.style.removeProperty(name); - } - function styleConstant() { - this.style.setProperty(name, value, priority); - } - function styleFunction() { - var x = value.apply(this, arguments); - if (x == null) this.style.removeProperty(name); else this.style.setProperty(name, x, priority); - } - return value == null ? styleNull : typeof value === "function" ? styleFunction : styleConstant; - } - d3_selectionPrototype.property = function(name, value) { - if (arguments.length < 2) { - if (typeof name === "string") return this.node()[name]; - for (value in name) this.each(d3_selection_property(value, name[value])); - return this; - } - return this.each(d3_selection_property(name, value)); - }; - function d3_selection_property(name, value) { - function propertyNull() { - delete this[name]; - } - function propertyConstant() { - this[name] = value; - } - function propertyFunction() { - var x = value.apply(this, arguments); - if (x == null) delete this[name]; else this[name] = x; - } - return value == null ? propertyNull : typeof value === "function" ? propertyFunction : propertyConstant; - } - d3_selectionPrototype.text = function(value) { - return arguments.length ? this.each(typeof value === "function" ? function() { - var v = value.apply(this, arguments); - this.textContent = v == null ? "" : v; - } : value == null ? function() { - this.textContent = ""; - } : function() { - this.textContent = value; - }) : this.node().textContent; - }; - d3_selectionPrototype.html = function(value) { - return arguments.length ? this.each(typeof value === "function" ? function() { - var v = value.apply(this, arguments); - this.innerHTML = v == null ? "" : v; - } : value == null ? function() { - this.innerHTML = ""; - } : function() { - this.innerHTML = value; - }) : this.node().innerHTML; - }; - d3_selectionPrototype.append = function(name) { - name = d3_selection_creator(name); - return this.select(function() { - return this.appendChild(name.apply(this, arguments)); - }); - }; - function d3_selection_creator(name) { - function create() { - var document = this.ownerDocument, namespace = this.namespaceURI; - return namespace === d3_nsXhtml && document.documentElement.namespaceURI === d3_nsXhtml ? document.createElement(name) : document.createElementNS(namespace, name); - } - function createNS() { - return this.ownerDocument.createElementNS(name.space, name.local); - } - return typeof name === "function" ? name : (name = d3.ns.qualify(name)).local ? createNS : create; - } - d3_selectionPrototype.insert = function(name, before) { - name = d3_selection_creator(name); - before = d3_selection_selector(before); - return this.select(function() { - return this.insertBefore(name.apply(this, arguments), before.apply(this, arguments) || null); - }); - }; - d3_selectionPrototype.remove = function() { - return this.each(d3_selectionRemove); - }; - function d3_selectionRemove() { - var parent = this.parentNode; - if (parent) parent.removeChild(this); - } - d3_selectionPrototype.data = function(value, key) { - var i = -1, n = this.length, group, node; - if (!arguments.length) { - value = new Array(n = (group = this[0]).length); - while (++i < n) { - if (node = group[i]) { - value[i] = node.__data__; - } - } - return value; - } - function bind(group, groupData) { - var i, n = group.length, m = groupData.length, n0 = Math.min(n, m), updateNodes = new Array(m), enterNodes = new Array(m), exitNodes = new Array(n), node, nodeData; - if (key) { - var nodeByKeyValue = new d3_Map(), keyValues = new Array(n), keyValue; - for (i = -1; ++i < n; ) { - if (node = group[i]) { - if (nodeByKeyValue.has(keyValue = key.call(node, node.__data__, i))) { - exitNodes[i] = node; - } else { - nodeByKeyValue.set(keyValue, node); - } - keyValues[i] = keyValue; - } - } - for (i = -1; ++i < m; ) { - if (!(node = nodeByKeyValue.get(keyValue = key.call(groupData, nodeData = groupData[i], i)))) { - enterNodes[i] = d3_selection_dataNode(nodeData); - } else if (node !== true) { - updateNodes[i] = node; - node.__data__ = nodeData; - } - nodeByKeyValue.set(keyValue, true); - } - for (i = -1; ++i < n; ) { - if (i in keyValues && nodeByKeyValue.get(keyValues[i]) !== true) { - exitNodes[i] = group[i]; - } - } - } else { - for (i = -1; ++i < n0; ) { - node = group[i]; - nodeData = groupData[i]; - if (node) { - node.__data__ = nodeData; - updateNodes[i] = node; - } else { - enterNodes[i] = d3_selection_dataNode(nodeData); - } - } - for (;i < m; ++i) { - enterNodes[i] = d3_selection_dataNode(groupData[i]); - } - for (;i < n; ++i) { - exitNodes[i] = group[i]; - } - } - enterNodes.update = updateNodes; - enterNodes.parentNode = updateNodes.parentNode = exitNodes.parentNode = group.parentNode; - enter.push(enterNodes); - update.push(updateNodes); - exit.push(exitNodes); - } - var enter = d3_selection_enter([]), update = d3_selection([]), exit = d3_selection([]); - if (typeof value === "function") { - while (++i < n) { - bind(group = this[i], value.call(group, group.parentNode.__data__, i)); - } - } else { - while (++i < n) { - bind(group = this[i], value); - } - } - update.enter = function() { - return enter; - }; - update.exit = function() { - return exit; - }; - return update; - }; - function d3_selection_dataNode(data) { - return { - __data__: data - }; - } - d3_selectionPrototype.datum = function(value) { - return arguments.length ? this.property("__data__", value) : this.property("__data__"); - }; - d3_selectionPrototype.filter = function(filter) { - var subgroups = [], subgroup, group, node; - if (typeof filter !== "function") filter = d3_selection_filter(filter); - for (var j = 0, m = this.length; j < m; j++) { - subgroups.push(subgroup = []); - subgroup.parentNode = (group = this[j]).parentNode; - for (var i = 0, n = group.length; i < n; i++) { - if ((node = group[i]) && filter.call(node, node.__data__, i, j)) { - subgroup.push(node); - } - } - } - return d3_selection(subgroups); - }; - function d3_selection_filter(selector) { - return function() { - return d3_selectMatches(this, selector); - }; - } - d3_selectionPrototype.order = function() { - for (var j = -1, m = this.length; ++j < m; ) { - for (var group = this[j], i = group.length - 1, next = group[i], node; --i >= 0; ) { - if (node = group[i]) { - if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next); - next = node; - } - } - } - return this; - }; - d3_selectionPrototype.sort = function(comparator) { - comparator = d3_selection_sortComparator.apply(this, arguments); - for (var j = -1, m = this.length; ++j < m; ) this[j].sort(comparator); - return this.order(); - }; - function d3_selection_sortComparator(comparator) { - if (!arguments.length) comparator = d3_ascending; - return function(a, b) { - return a && b ? comparator(a.__data__, b.__data__) : !a - !b; - }; - } - d3_selectionPrototype.each = function(callback) { - return d3_selection_each(this, function(node, i, j) { - callback.call(node, node.__data__, i, j); - }); - }; - function d3_selection_each(groups, callback) { - for (var j = 0, m = groups.length; j < m; j++) { - for (var group = groups[j], i = 0, n = group.length, node; i < n; i++) { - if (node = group[i]) callback(node, i, j); - } - } - return groups; - } - d3_selectionPrototype.call = function(callback) { - var args = d3_array(arguments); - callback.apply(args[0] = this, args); - return this; - }; - d3_selectionPrototype.empty = function() { - return !this.node(); - }; - d3_selectionPrototype.node = function() { - for (var j = 0, m = this.length; j < m; j++) { - for (var group = this[j], i = 0, n = group.length; i < n; i++) { - var node = group[i]; - if (node) return node; - } - } - return null; - }; - d3_selectionPrototype.size = function() { - var n = 0; - d3_selection_each(this, function() { - ++n; - }); - return n; - }; - function d3_selection_enter(selection) { - d3_subclass(selection, d3_selection_enterPrototype); - return selection; - } - var d3_selection_enterPrototype = []; - d3.selection.enter = d3_selection_enter; - d3.selection.enter.prototype = d3_selection_enterPrototype; - d3_selection_enterPrototype.append = d3_selectionPrototype.append; - d3_selection_enterPrototype.empty = d3_selectionPrototype.empty; - d3_selection_enterPrototype.node = d3_selectionPrototype.node; - d3_selection_enterPrototype.call = d3_selectionPrototype.call; - d3_selection_enterPrototype.size = d3_selectionPrototype.size; - d3_selection_enterPrototype.select = function(selector) { - var subgroups = [], subgroup, subnode, upgroup, group, node; - for (var j = -1, m = this.length; ++j < m; ) { - upgroup = (group = this[j]).update; - subgroups.push(subgroup = []); - subgroup.parentNode = group.parentNode; - for (var i = -1, n = group.length; ++i < n; ) { - if (node = group[i]) { - subgroup.push(upgroup[i] = subnode = selector.call(group.parentNode, node.__data__, i, j)); - subnode.__data__ = node.__data__; - } else { - subgroup.push(null); - } - } - } - return d3_selection(subgroups); - }; - d3_selection_enterPrototype.insert = function(name, before) { - if (arguments.length < 2) before = d3_selection_enterInsertBefore(this); - return d3_selectionPrototype.insert.call(this, name, before); - }; - function d3_selection_enterInsertBefore(enter) { - var i0, j0; - return function(d, i, j) { - var group = enter[j].update, n = group.length, node; - if (j != j0) j0 = j, i0 = 0; - if (i >= i0) i0 = i + 1; - while (!(node = group[i0]) && ++i0 < n) ; - return node; - }; - } - d3.select = function(node) { - var group; - if (typeof node === "string") { - group = [ d3_select(node, d3_document) ]; - group.parentNode = d3_document.documentElement; - } else { - group = [ node ]; - group.parentNode = d3_documentElement(node); - } - return d3_selection([ group ]); - }; - d3.selectAll = function(nodes) { - var group; - if (typeof nodes === "string") { - group = d3_array(d3_selectAll(nodes, d3_document)); - group.parentNode = d3_document.documentElement; - } else { - group = d3_array(nodes); - group.parentNode = null; - } - return d3_selection([ group ]); - }; - d3_selectionPrototype.on = function(type, listener, capture) { - var n = arguments.length; - if (n < 3) { - if (typeof type !== "string") { - if (n < 2) listener = false; - for (capture in type) this.each(d3_selection_on(capture, type[capture], listener)); - return this; - } - if (n < 2) return (n = this.node()["__on" + type]) && n._; - capture = false; - } - return this.each(d3_selection_on(type, listener, capture)); - }; - function d3_selection_on(type, listener, capture) { - var name = "__on" + type, i = type.indexOf("."), wrap = d3_selection_onListener; - if (i > 0) type = type.slice(0, i); - var filter = d3_selection_onFilters.get(type); - if (filter) type = filter, wrap = d3_selection_onFilter; - function onRemove() { - var l = this[name]; - if (l) { - this.removeEventListener(type, l, l.$); - delete this[name]; - } - } - function onAdd() { - var l = wrap(listener, d3_array(arguments)); - onRemove.call(this); - this.addEventListener(type, this[name] = l, l.$ = capture); - l._ = listener; - } - function removeAll() { - var re = new RegExp("^__on([^.]+)" + d3.requote(type) + "$"), match; - for (var name in this) { - if (match = name.match(re)) { - var l = this[name]; - this.removeEventListener(match[1], l, l.$); - delete this[name]; - } - } - } - return i ? listener ? onAdd : onRemove : listener ? d3_noop : removeAll; - } - var d3_selection_onFilters = d3.map({ - mouseenter: "mouseover", - mouseleave: "mouseout" - }); - if (d3_document) { - d3_selection_onFilters.forEach(function(k) { - if ("on" + k in d3_document) d3_selection_onFilters.remove(k); - }); - } - function d3_selection_onListener(listener, argumentz) { - return function(e) { - var o = d3.event; - d3.event = e; - argumentz[0] = this.__data__; - try { - listener.apply(this, argumentz); - } finally { - d3.event = o; - } - }; - } - function d3_selection_onFilter(listener, argumentz) { - var l = d3_selection_onListener(listener, argumentz); - return function(e) { - var target = this, related = e.relatedTarget; - if (!related || related !== target && !(related.compareDocumentPosition(target) & 8)) { - l.call(target, e); - } - }; - } - var d3_event_dragSelect, d3_event_dragId = 0; - function d3_event_dragSuppress(node) { - var name = ".dragsuppress-" + ++d3_event_dragId, click = "click" + name, w = d3.select(d3_window(node)).on("touchmove" + name, d3_eventPreventDefault).on("dragstart" + name, d3_eventPreventDefault).on("selectstart" + name, d3_eventPreventDefault); - if (d3_event_dragSelect == null) { - d3_event_dragSelect = "onselectstart" in node ? false : d3_vendorSymbol(node.style, "userSelect"); - } - if (d3_event_dragSelect) { - var style = d3_documentElement(node).style, select = style[d3_event_dragSelect]; - style[d3_event_dragSelect] = "none"; - } - return function(suppressClick) { - w.on(name, null); - if (d3_event_dragSelect) style[d3_event_dragSelect] = select; - if (suppressClick) { - var off = function() { - w.on(click, null); - }; - w.on(click, function() { - d3_eventPreventDefault(); - off(); - }, true); - setTimeout(off, 0); - } - }; - } - d3.mouse = function(container) { - return d3_mousePoint(container, d3_eventSource()); - }; - var d3_mouse_bug44083 = this.navigator && /WebKit/.test(this.navigator.userAgent) ? -1 : 0; - function d3_mousePoint(container, e) { - if (e.changedTouches) e = e.changedTouches[0]; - var svg = container.ownerSVGElement || container; - if (svg.createSVGPoint) { - var point = svg.createSVGPoint(); - if (d3_mouse_bug44083 < 0) { - var window = d3_window(container); - if (window.scrollX || window.scrollY) { - svg = d3.select("body").append("svg").style({ - position: "absolute", - top: 0, - left: 0, - margin: 0, - padding: 0, - border: "none" - }, "important"); - var ctm = svg[0][0].getScreenCTM(); - d3_mouse_bug44083 = !(ctm.f || ctm.e); - svg.remove(); - } - } - if (d3_mouse_bug44083) point.x = e.pageX, point.y = e.pageY; else point.x = e.clientX, - point.y = e.clientY; - point = point.matrixTransform(container.getScreenCTM().inverse()); - return [ point.x, point.y ]; - } - var rect = container.getBoundingClientRect(); - return [ e.clientX - rect.left - container.clientLeft, e.clientY - rect.top - container.clientTop ]; - } - d3.touch = function(container, touches, identifier) { - if (arguments.length < 3) identifier = touches, touches = d3_eventSource().changedTouches; - if (touches) for (var i = 0, n = touches.length, touch; i < n; ++i) { - if ((touch = touches[i]).identifier === identifier) { - return d3_mousePoint(container, touch); - } - } - }; - d3.behavior.drag = function() { - var event = d3_eventDispatch(drag, "drag", "dragstart", "dragend"), origin = null, mousedown = dragstart(d3_noop, d3.mouse, d3_window, "mousemove", "mouseup"), touchstart = dragstart(d3_behavior_dragTouchId, d3.touch, d3_identity, "touchmove", "touchend"); - function drag() { - this.on("mousedown.drag", mousedown).on("touchstart.drag", touchstart); - } - function dragstart(id, position, subject, move, end) { - return function() { - var that = this, target = d3.event.target.correspondingElement || d3.event.target, parent = that.parentNode, dispatch = event.of(that, arguments), dragged = 0, dragId = id(), dragName = ".drag" + (dragId == null ? "" : "-" + dragId), dragOffset, dragSubject = d3.select(subject(target)).on(move + dragName, moved).on(end + dragName, ended), dragRestore = d3_event_dragSuppress(target), position0 = position(parent, dragId); - if (origin) { - dragOffset = origin.apply(that, arguments); - dragOffset = [ dragOffset.x - position0[0], dragOffset.y - position0[1] ]; - } else { - dragOffset = [ 0, 0 ]; - } - dispatch({ - type: "dragstart" - }); - function moved() { - var position1 = position(parent, dragId), dx, dy; - if (!position1) return; - dx = position1[0] - position0[0]; - dy = position1[1] - position0[1]; - dragged |= dx | dy; - position0 = position1; - dispatch({ - type: "drag", - x: position1[0] + dragOffset[0], - y: position1[1] + dragOffset[1], - dx: dx, - dy: dy - }); - } - function ended() { - if (!position(parent, dragId)) return; - dragSubject.on(move + dragName, null).on(end + dragName, null); - dragRestore(dragged); - dispatch({ - type: "dragend" - }); - } - }; - } - drag.origin = function(x) { - if (!arguments.length) return origin; - origin = x; - return drag; - }; - return d3.rebind(drag, event, "on"); - }; - function d3_behavior_dragTouchId() { - return d3.event.changedTouches[0].identifier; - } - d3.touches = function(container, touches) { - if (arguments.length < 2) touches = d3_eventSource().touches; - return touches ? d3_array(touches).map(function(touch) { - var point = d3_mousePoint(container, touch); - point.identifier = touch.identifier; - return point; - }) : []; - }; - var ε = 1e-6, ε2 = ε * ε, π = Math.PI, τ = 2 * π, τε = τ - ε, halfπ = π / 2, d3_radians = π / 180, d3_degrees = 180 / π; - function d3_sgn(x) { - return x > 0 ? 1 : x < 0 ? -1 : 0; - } - function d3_cross2d(a, b, c) { - return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]); - } - function d3_acos(x) { - return x > 1 ? 0 : x < -1 ? π : Math.acos(x); - } - function d3_asin(x) { - return x > 1 ? halfπ : x < -1 ? -halfπ : Math.asin(x); - } - function d3_sinh(x) { - return ((x = Math.exp(x)) - 1 / x) / 2; - } - function d3_cosh(x) { - return ((x = Math.exp(x)) + 1 / x) / 2; - } - function d3_tanh(x) { - return ((x = Math.exp(2 * x)) - 1) / (x + 1); - } - function d3_haversin(x) { - return (x = Math.sin(x / 2)) * x; - } - var ρ = Math.SQRT2, ρ2 = 2, ρ4 = 4; - d3.interpolateZoom = function(p0, p1) { - var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], ux1 = p1[0], uy1 = p1[1], w1 = p1[2], dx = ux1 - ux0, dy = uy1 - uy0, d2 = dx * dx + dy * dy, i, S; - if (d2 < ε2) { - S = Math.log(w1 / w0) / ρ; - i = function(t) { - return [ ux0 + t * dx, uy0 + t * dy, w0 * Math.exp(ρ * t * S) ]; - }; - } else { - var d1 = Math.sqrt(d2), b0 = (w1 * w1 - w0 * w0 + ρ4 * d2) / (2 * w0 * ρ2 * d1), b1 = (w1 * w1 - w0 * w0 - ρ4 * d2) / (2 * w1 * ρ2 * d1), r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1); - S = (r1 - r0) / ρ; - i = function(t) { - var s = t * S, coshr0 = d3_cosh(r0), u = w0 / (ρ2 * d1) * (coshr0 * d3_tanh(ρ * s + r0) - d3_sinh(r0)); - return [ ux0 + u * dx, uy0 + u * dy, w0 * coshr0 / d3_cosh(ρ * s + r0) ]; - }; - } - i.duration = S * 1e3; - return i; - }; - d3.behavior.zoom = function() { - var view = { - x: 0, - y: 0, - k: 1 - }, translate0, center0, center, size = [ 960, 500 ], scaleExtent = d3_behavior_zoomInfinity, duration = 250, zooming = 0, mousedown = "mousedown.zoom", mousemove = "mousemove.zoom", mouseup = "mouseup.zoom", mousewheelTimer, touchstart = "touchstart.zoom", touchtime, event = d3_eventDispatch(zoom, "zoomstart", "zoom", "zoomend"), x0, x1, y0, y1; - if (!d3_behavior_zoomWheel) { - d3_behavior_zoomWheel = "onwheel" in d3_document ? (d3_behavior_zoomDelta = function() { - return -d3.event.deltaY * (d3.event.deltaMode ? 120 : 1); - }, "wheel") : "onmousewheel" in d3_document ? (d3_behavior_zoomDelta = function() { - return d3.event.wheelDelta; - }, "mousewheel") : (d3_behavior_zoomDelta = function() { - return -d3.event.detail; - }, "MozMousePixelScroll"); - } - function zoom(g) { - g.on(mousedown, mousedowned).on(d3_behavior_zoomWheel + ".zoom", mousewheeled).on("dblclick.zoom", dblclicked).on(touchstart, touchstarted); - } - zoom.event = function(g) { - g.each(function() { - var dispatch = event.of(this, arguments), view1 = view; - if (d3_transitionInheritId) { - d3.select(this).transition().each("start.zoom", function() { - view = this.__chart__ || { - x: 0, - y: 0, - k: 1 - }; - zoomstarted(dispatch); - }).tween("zoom:zoom", function() { - var dx = size[0], dy = size[1], cx = center0 ? center0[0] : dx / 2, cy = center0 ? center0[1] : dy / 2, i = d3.interpolateZoom([ (cx - view.x) / view.k, (cy - view.y) / view.k, dx / view.k ], [ (cx - view1.x) / view1.k, (cy - view1.y) / view1.k, dx / view1.k ]); - return function(t) { - var l = i(t), k = dx / l[2]; - this.__chart__ = view = { - x: cx - l[0] * k, - y: cy - l[1] * k, - k: k - }; - zoomed(dispatch); - }; - }).each("interrupt.zoom", function() { - zoomended(dispatch); - }).each("end.zoom", function() { - zoomended(dispatch); - }); - } else { - this.__chart__ = view; - zoomstarted(dispatch); - zoomed(dispatch); - zoomended(dispatch); - } - }); - }; - zoom.translate = function(_) { - if (!arguments.length) return [ view.x, view.y ]; - view = { - x: +_[0], - y: +_[1], - k: view.k - }; - rescale(); - return zoom; - }; - zoom.scale = function(_) { - if (!arguments.length) return view.k; - view = { - x: view.x, - y: view.y, - k: null - }; - scaleTo(+_); - rescale(); - return zoom; - }; - zoom.scaleExtent = function(_) { - if (!arguments.length) return scaleExtent; - scaleExtent = _ == null ? d3_behavior_zoomInfinity : [ +_[0], +_[1] ]; - return zoom; - }; - zoom.center = function(_) { - if (!arguments.length) return center; - center = _ && [ +_[0], +_[1] ]; - return zoom; - }; - zoom.size = function(_) { - if (!arguments.length) return size; - size = _ && [ +_[0], +_[1] ]; - return zoom; - }; - zoom.duration = function(_) { - if (!arguments.length) return duration; - duration = +_; - return zoom; - }; - zoom.x = function(z) { - if (!arguments.length) return x1; - x1 = z; - x0 = z.copy(); - view = { - x: 0, - y: 0, - k: 1 - }; - return zoom; - }; - zoom.y = function(z) { - if (!arguments.length) return y1; - y1 = z; - y0 = z.copy(); - view = { - x: 0, - y: 0, - k: 1 - }; - return zoom; - }; - function location(p) { - return [ (p[0] - view.x) / view.k, (p[1] - view.y) / view.k ]; - } - function point(l) { - return [ l[0] * view.k + view.x, l[1] * view.k + view.y ]; - } - function scaleTo(s) { - view.k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], s)); - } - function translateTo(p, l) { - l = point(l); - view.x += p[0] - l[0]; - view.y += p[1] - l[1]; - } - function zoomTo(that, p, l, k) { - that.__chart__ = { - x: view.x, - y: view.y, - k: view.k - }; - scaleTo(Math.pow(2, k)); - translateTo(center0 = p, l); - that = d3.select(that); - if (duration > 0) that = that.transition().duration(duration); - that.call(zoom.event); - } - function rescale() { - if (x1) x1.domain(x0.range().map(function(x) { - return (x - view.x) / view.k; - }).map(x0.invert)); - if (y1) y1.domain(y0.range().map(function(y) { - return (y - view.y) / view.k; - }).map(y0.invert)); - } - function zoomstarted(dispatch) { - if (!zooming++) dispatch({ - type: "zoomstart" - }); - } - function zoomed(dispatch) { - rescale(); - dispatch({ - type: "zoom", - scale: view.k, - translate: [ view.x, view.y ] - }); - } - function zoomended(dispatch) { - if (!--zooming) dispatch({ - type: "zoomend" - }), center0 = null; - } - function mousedowned() { - var that = this, dispatch = event.of(that, arguments), dragged = 0, subject = d3.select(d3_window(that)).on(mousemove, moved).on(mouseup, ended), location0 = location(d3.mouse(that)), dragRestore = d3_event_dragSuppress(that); - d3_selection_interrupt.call(that); - zoomstarted(dispatch); - function moved() { - dragged = 1; - translateTo(d3.mouse(that), location0); - zoomed(dispatch); - } - function ended() { - subject.on(mousemove, null).on(mouseup, null); - dragRestore(dragged); - zoomended(dispatch); - } - } - function touchstarted() { - var that = this, dispatch = event.of(that, arguments), locations0 = {}, distance0 = 0, scale0, zoomName = ".zoom-" + d3.event.changedTouches[0].identifier, touchmove = "touchmove" + zoomName, touchend = "touchend" + zoomName, targets = [], subject = d3.select(that), dragRestore = d3_event_dragSuppress(that); - started(); - zoomstarted(dispatch); - subject.on(mousedown, null).on(touchstart, started); - function relocate() { - var touches = d3.touches(that); - scale0 = view.k; - touches.forEach(function(t) { - if (t.identifier in locations0) locations0[t.identifier] = location(t); - }); - return touches; - } - function started() { - var target = d3.event.target; - d3.select(target).on(touchmove, moved).on(touchend, ended); - targets.push(target); - var changed = d3.event.changedTouches; - for (var i = 0, n = changed.length; i < n; ++i) { - locations0[changed[i].identifier] = null; - } - var touches = relocate(), now = Date.now(); - if (touches.length === 1) { - if (now - touchtime < 500) { - var p = touches[0]; - zoomTo(that, p, locations0[p.identifier], Math.floor(Math.log(view.k) / Math.LN2) + 1); - d3_eventPreventDefault(); - } - touchtime = now; - } else if (touches.length > 1) { - var p = touches[0], q = touches[1], dx = p[0] - q[0], dy = p[1] - q[1]; - distance0 = dx * dx + dy * dy; - } - } - function moved() { - var touches = d3.touches(that), p0, l0, p1, l1; - d3_selection_interrupt.call(that); - for (var i = 0, n = touches.length; i < n; ++i, l1 = null) { - p1 = touches[i]; - if (l1 = locations0[p1.identifier]) { - if (l0) break; - p0 = p1, l0 = l1; - } - } - if (l1) { - var distance1 = (distance1 = p1[0] - p0[0]) * distance1 + (distance1 = p1[1] - p0[1]) * distance1, scale1 = distance0 && Math.sqrt(distance1 / distance0); - p0 = [ (p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2 ]; - l0 = [ (l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2 ]; - scaleTo(scale1 * scale0); - } - touchtime = null; - translateTo(p0, l0); - zoomed(dispatch); - } - function ended() { - if (d3.event.touches.length) { - var changed = d3.event.changedTouches; - for (var i = 0, n = changed.length; i < n; ++i) { - delete locations0[changed[i].identifier]; - } - for (var identifier in locations0) { - return void relocate(); - } - } - d3.selectAll(targets).on(zoomName, null); - subject.on(mousedown, mousedowned).on(touchstart, touchstarted); - dragRestore(); - zoomended(dispatch); - } - } - function mousewheeled() { - var dispatch = event.of(this, arguments); - if (mousewheelTimer) clearTimeout(mousewheelTimer); else d3_selection_interrupt.call(this), - translate0 = location(center0 = center || d3.mouse(this)), zoomstarted(dispatch); - mousewheelTimer = setTimeout(function() { - mousewheelTimer = null; - zoomended(dispatch); - }, 50); - d3_eventPreventDefault(); - scaleTo(Math.pow(2, d3_behavior_zoomDelta() * .002) * view.k); - translateTo(center0, translate0); - zoomed(dispatch); - } - function dblclicked() { - var p = d3.mouse(this), k = Math.log(view.k) / Math.LN2; - zoomTo(this, p, location(p), d3.event.shiftKey ? Math.ceil(k) - 1 : Math.floor(k) + 1); - } - return d3.rebind(zoom, event, "on"); - }; - var d3_behavior_zoomInfinity = [ 0, Infinity ], d3_behavior_zoomDelta, d3_behavior_zoomWheel; - d3.color = d3_color; - function d3_color() {} - d3_color.prototype.toString = function() { - return this.rgb() + ""; - }; - d3.hsl = d3_hsl; - function d3_hsl(h, s, l) { - return this instanceof d3_hsl ? void (this.h = +h, this.s = +s, this.l = +l) : arguments.length < 2 ? h instanceof d3_hsl ? new d3_hsl(h.h, h.s, h.l) : d3_rgb_parse("" + h, d3_rgb_hsl, d3_hsl) : new d3_hsl(h, s, l); - } - var d3_hslPrototype = d3_hsl.prototype = new d3_color(); - d3_hslPrototype.brighter = function(k) { - k = Math.pow(.7, arguments.length ? k : 1); - return new d3_hsl(this.h, this.s, this.l / k); - }; - d3_hslPrototype.darker = function(k) { - k = Math.pow(.7, arguments.length ? k : 1); - return new d3_hsl(this.h, this.s, k * this.l); - }; - d3_hslPrototype.rgb = function() { - return d3_hsl_rgb(this.h, this.s, this.l); - }; - function d3_hsl_rgb(h, s, l) { - var m1, m2; - h = isNaN(h) ? 0 : (h %= 360) < 0 ? h + 360 : h; - s = isNaN(s) ? 0 : s < 0 ? 0 : s > 1 ? 1 : s; - l = l < 0 ? 0 : l > 1 ? 1 : l; - m2 = l <= .5 ? l * (1 + s) : l + s - l * s; - m1 = 2 * l - m2; - function v(h) { - if (h > 360) h -= 360; else if (h < 0) h += 360; - if (h < 60) return m1 + (m2 - m1) * h / 60; - if (h < 180) return m2; - if (h < 240) return m1 + (m2 - m1) * (240 - h) / 60; - return m1; - } - function vv(h) { - return Math.round(v(h) * 255); - } - return new d3_rgb(vv(h + 120), vv(h), vv(h - 120)); - } - d3.hcl = d3_hcl; - function d3_hcl(h, c, l) { - return this instanceof d3_hcl ? void (this.h = +h, this.c = +c, this.l = +l) : arguments.length < 2 ? h instanceof d3_hcl ? new d3_hcl(h.h, h.c, h.l) : h instanceof d3_lab ? d3_lab_hcl(h.l, h.a, h.b) : d3_lab_hcl((h = d3_rgb_lab((h = d3.rgb(h)).r, h.g, h.b)).l, h.a, h.b) : new d3_hcl(h, c, l); - } - var d3_hclPrototype = d3_hcl.prototype = new d3_color(); - d3_hclPrototype.brighter = function(k) { - return new d3_hcl(this.h, this.c, Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1))); - }; - d3_hclPrototype.darker = function(k) { - return new d3_hcl(this.h, this.c, Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1))); - }; - d3_hclPrototype.rgb = function() { - return d3_hcl_lab(this.h, this.c, this.l).rgb(); - }; - function d3_hcl_lab(h, c, l) { - if (isNaN(h)) h = 0; - if (isNaN(c)) c = 0; - return new d3_lab(l, Math.cos(h *= d3_radians) * c, Math.sin(h) * c); - } - d3.lab = d3_lab; - function d3_lab(l, a, b) { - return this instanceof d3_lab ? void (this.l = +l, this.a = +a, this.b = +b) : arguments.length < 2 ? l instanceof d3_lab ? new d3_lab(l.l, l.a, l.b) : l instanceof d3_hcl ? d3_hcl_lab(l.h, l.c, l.l) : d3_rgb_lab((l = d3_rgb(l)).r, l.g, l.b) : new d3_lab(l, a, b); - } - var d3_lab_K = 18; - var d3_lab_X = .95047, d3_lab_Y = 1, d3_lab_Z = 1.08883; - var d3_labPrototype = d3_lab.prototype = new d3_color(); - d3_labPrototype.brighter = function(k) { - return new d3_lab(Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)), this.a, this.b); - }; - d3_labPrototype.darker = function(k) { - return new d3_lab(Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)), this.a, this.b); - }; - d3_labPrototype.rgb = function() { - return d3_lab_rgb(this.l, this.a, this.b); - }; - function d3_lab_rgb(l, a, b) { - var y = (l + 16) / 116, x = y + a / 500, z = y - b / 200; - x = d3_lab_xyz(x) * d3_lab_X; - y = d3_lab_xyz(y) * d3_lab_Y; - z = d3_lab_xyz(z) * d3_lab_Z; - return new d3_rgb(d3_xyz_rgb(3.2404542 * x - 1.5371385 * y - .4985314 * z), d3_xyz_rgb(-.969266 * x + 1.8760108 * y + .041556 * z), d3_xyz_rgb(.0556434 * x - .2040259 * y + 1.0572252 * z)); - } - function d3_lab_hcl(l, a, b) { - return l > 0 ? new d3_hcl(Math.atan2(b, a) * d3_degrees, Math.sqrt(a * a + b * b), l) : new d3_hcl(NaN, NaN, l); - } - function d3_lab_xyz(x) { - return x > .206893034 ? x * x * x : (x - 4 / 29) / 7.787037; - } - function d3_xyz_lab(x) { - return x > .008856 ? Math.pow(x, 1 / 3) : 7.787037 * x + 4 / 29; - } - function d3_xyz_rgb(r) { - return Math.round(255 * (r <= .00304 ? 12.92 * r : 1.055 * Math.pow(r, 1 / 2.4) - .055)); - } - d3.rgb = d3_rgb; - function d3_rgb(r, g, b) { - return this instanceof d3_rgb ? void (this.r = ~~r, this.g = ~~g, this.b = ~~b) : arguments.length < 2 ? r instanceof d3_rgb ? new d3_rgb(r.r, r.g, r.b) : d3_rgb_parse("" + r, d3_rgb, d3_hsl_rgb) : new d3_rgb(r, g, b); - } - function d3_rgbNumber(value) { - return new d3_rgb(value >> 16, value >> 8 & 255, value & 255); - } - function d3_rgbString(value) { - return d3_rgbNumber(value) + ""; - } - var d3_rgbPrototype = d3_rgb.prototype = new d3_color(); - d3_rgbPrototype.brighter = function(k) { - k = Math.pow(.7, arguments.length ? k : 1); - var r = this.r, g = this.g, b = this.b, i = 30; - if (!r && !g && !b) return new d3_rgb(i, i, i); - if (r && r < i) r = i; - if (g && g < i) g = i; - if (b && b < i) b = i; - return new d3_rgb(Math.min(255, r / k), Math.min(255, g / k), Math.min(255, b / k)); - }; - d3_rgbPrototype.darker = function(k) { - k = Math.pow(.7, arguments.length ? k : 1); - return new d3_rgb(k * this.r, k * this.g, k * this.b); - }; - d3_rgbPrototype.hsl = function() { - return d3_rgb_hsl(this.r, this.g, this.b); - }; - d3_rgbPrototype.toString = function() { - return "#" + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b); - }; - function d3_rgb_hex(v) { - return v < 16 ? "0" + Math.max(0, v).toString(16) : Math.min(255, v).toString(16); - } - function d3_rgb_parse(format, rgb, hsl) { - var r = 0, g = 0, b = 0, m1, m2, color; - m1 = /([a-z]+)\((.*)\)/.exec(format = format.toLowerCase()); - if (m1) { - m2 = m1[2].split(","); - switch (m1[1]) { - case "hsl": - { - return hsl(parseFloat(m2[0]), parseFloat(m2[1]) / 100, parseFloat(m2[2]) / 100); - } - - case "rgb": - { - return rgb(d3_rgb_parseNumber(m2[0]), d3_rgb_parseNumber(m2[1]), d3_rgb_parseNumber(m2[2])); - } - } - } - if (color = d3_rgb_names.get(format)) { - return rgb(color.r, color.g, color.b); - } - if (format != null && format.charAt(0) === "#" && !isNaN(color = parseInt(format.slice(1), 16))) { - if (format.length === 4) { - r = (color & 3840) >> 4; - r = r >> 4 | r; - g = color & 240; - g = g >> 4 | g; - b = color & 15; - b = b << 4 | b; - } else if (format.length === 7) { - r = (color & 16711680) >> 16; - g = (color & 65280) >> 8; - b = color & 255; - } - } - return rgb(r, g, b); - } - function d3_rgb_hsl(r, g, b) { - var min = Math.min(r /= 255, g /= 255, b /= 255), max = Math.max(r, g, b), d = max - min, h, s, l = (max + min) / 2; - if (d) { - s = l < .5 ? d / (max + min) : d / (2 - max - min); - if (r == max) h = (g - b) / d + (g < b ? 6 : 0); else if (g == max) h = (b - r) / d + 2; else h = (r - g) / d + 4; - h *= 60; - } else { - h = NaN; - s = l > 0 && l < 1 ? 0 : h; - } - return new d3_hsl(h, s, l); - } - function d3_rgb_lab(r, g, b) { - r = d3_rgb_xyz(r); - g = d3_rgb_xyz(g); - b = d3_rgb_xyz(b); - var x = d3_xyz_lab((.4124564 * r + .3575761 * g + .1804375 * b) / d3_lab_X), y = d3_xyz_lab((.2126729 * r + .7151522 * g + .072175 * b) / d3_lab_Y), z = d3_xyz_lab((.0193339 * r + .119192 * g + .9503041 * b) / d3_lab_Z); - return d3_lab(116 * y - 16, 500 * (x - y), 200 * (y - z)); - } - function d3_rgb_xyz(r) { - return (r /= 255) <= .04045 ? r / 12.92 : Math.pow((r + .055) / 1.055, 2.4); - } - function d3_rgb_parseNumber(c) { - var f = parseFloat(c); - return c.charAt(c.length - 1) === "%" ? Math.round(f * 2.55) : f; - } - var d3_rgb_names = d3.map({ - 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 - }); - d3_rgb_names.forEach(function(key, value) { - d3_rgb_names.set(key, d3_rgbNumber(value)); - }); - function d3_functor(v) { - return typeof v === "function" ? v : function() { - return v; - }; - } - d3.functor = d3_functor; - d3.xhr = d3_xhrType(d3_identity); - function d3_xhrType(response) { - return function(url, mimeType, callback) { - if (arguments.length === 2 && typeof mimeType === "function") callback = mimeType, - mimeType = null; - return d3_xhr(url, mimeType, response, callback); - }; - } - function d3_xhr(url, mimeType, response, callback) { - var xhr = {}, dispatch = d3.dispatch("beforesend", "progress", "load", "error"), headers = {}, request = new XMLHttpRequest(), responseType = null; - if (this.XDomainRequest && !("withCredentials" in request) && /^(http(s)?:)?\/\//.test(url)) request = new XDomainRequest(); - "onload" in request ? request.onload = request.onerror = respond : request.onreadystatechange = function() { - request.readyState > 3 && respond(); - }; - function respond() { - var status = request.status, result; - if (!status && d3_xhrHasResponse(request) || status >= 200 && status < 300 || status === 304) { - try { - result = response.call(xhr, request); - } catch (e) { - dispatch.error.call(xhr, e); - return; - } - dispatch.load.call(xhr, result); - } else { - dispatch.error.call(xhr, request); - } - } - request.onprogress = function(event) { - var o = d3.event; - d3.event = event; - try { - dispatch.progress.call(xhr, request); - } finally { - d3.event = o; - } - }; - xhr.header = function(name, value) { - name = (name + "").toLowerCase(); - if (arguments.length < 2) return headers[name]; - if (value == null) delete headers[name]; else headers[name] = value + ""; - return xhr; - }; - xhr.mimeType = function(value) { - if (!arguments.length) return mimeType; - mimeType = value == null ? null : value + ""; - return xhr; - }; - xhr.responseType = function(value) { - if (!arguments.length) return responseType; - responseType = value; - return xhr; - }; - xhr.response = function(value) { - response = value; - return xhr; - }; - [ "get", "post" ].forEach(function(method) { - xhr[method] = function() { - return xhr.send.apply(xhr, [ method ].concat(d3_array(arguments))); - }; - }); - xhr.send = function(method, data, callback) { - if (arguments.length === 2 && typeof data === "function") callback = data, data = null; - request.open(method, url, true); - if (mimeType != null && !("accept" in headers)) headers["accept"] = mimeType + ",*/*"; - if (request.setRequestHeader) for (var name in headers) request.setRequestHeader(name, headers[name]); - if (mimeType != null && request.overrideMimeType) request.overrideMimeType(mimeType); - if (responseType != null) request.responseType = responseType; - if (callback != null) xhr.on("error", callback).on("load", function(request) { - callback(null, request); - }); - dispatch.beforesend.call(xhr, request); - request.send(data == null ? null : data); - return xhr; - }; - xhr.abort = function() { - request.abort(); - return xhr; - }; - d3.rebind(xhr, dispatch, "on"); - return callback == null ? xhr : xhr.get(d3_xhr_fixCallback(callback)); - } - function d3_xhr_fixCallback(callback) { - return callback.length === 1 ? function(error, request) { - callback(error == null ? request : null); - } : callback; - } - function d3_xhrHasResponse(request) { - var type = request.responseType; - return type && type !== "text" ? request.response : request.responseText; - } - d3.dsv = function(delimiter, mimeType) { - var reFormat = new RegExp('["' + delimiter + "\n]"), delimiterCode = delimiter.charCodeAt(0); - function dsv(url, row, callback) { - if (arguments.length < 3) callback = row, row = null; - var xhr = d3_xhr(url, mimeType, row == null ? response : typedResponse(row), callback); - xhr.row = function(_) { - return arguments.length ? xhr.response((row = _) == null ? response : typedResponse(_)) : row; - }; - return xhr; - } - function response(request) { - return dsv.parse(request.responseText); - } - function typedResponse(f) { - return function(request) { - return dsv.parse(request.responseText, f); - }; - } - dsv.parse = function(text, f) { - var o; - return dsv.parseRows(text, function(row, i) { - if (o) return o(row, i - 1); - var a = new Function("d", "return {" + row.map(function(name, i) { - return JSON.stringify(name) + ": d[" + i + "]"; - }).join(",") + "}"); - o = f ? function(row, i) { - return f(a(row), i); - } : a; - }); - }; - dsv.parseRows = function(text, f) { - var EOL = {}, EOF = {}, rows = [], N = text.length, I = 0, n = 0, t, eol; - function token() { - if (I >= N) return EOF; - if (eol) return eol = false, EOL; - var j = I; - if (text.charCodeAt(j) === 34) { - var i = j; - while (i++ < N) { - if (text.charCodeAt(i) === 34) { - if (text.charCodeAt(i + 1) !== 34) break; - ++i; - } - } - I = i + 2; - var c = text.charCodeAt(i + 1); - if (c === 13) { - eol = true; - if (text.charCodeAt(i + 2) === 10) ++I; - } else if (c === 10) { - eol = true; - } - return text.slice(j + 1, i).replace(/""/g, '"'); - } - while (I < N) { - var c = text.charCodeAt(I++), k = 1; - if (c === 10) eol = true; else if (c === 13) { - eol = true; - if (text.charCodeAt(I) === 10) ++I, ++k; - } else if (c !== delimiterCode) continue; - return text.slice(j, I - k); - } - return text.slice(j); - } - while ((t = token()) !== EOF) { - var a = []; - while (t !== EOL && t !== EOF) { - a.push(t); - t = token(); - } - if (f && (a = f(a, n++)) == null) continue; - rows.push(a); - } - return rows; - }; - dsv.format = function(rows) { - if (Array.isArray(rows[0])) return dsv.formatRows(rows); - var fieldSet = new d3_Set(), fields = []; - rows.forEach(function(row) { - for (var field in row) { - if (!fieldSet.has(field)) { - fields.push(fieldSet.add(field)); - } - } - }); - return [ fields.map(formatValue).join(delimiter) ].concat(rows.map(function(row) { - return fields.map(function(field) { - return formatValue(row[field]); - }).join(delimiter); - })).join("\n"); - }; - dsv.formatRows = function(rows) { - return rows.map(formatRow).join("\n"); - }; - function formatRow(row) { - return row.map(formatValue).join(delimiter); - } - function formatValue(text) { - return reFormat.test(text) ? '"' + text.replace(/\"/g, '""') + '"' : text; - } - return dsv; - }; - d3.csv = d3.dsv(",", "text/csv"); - d3.tsv = d3.dsv(" ", "text/tab-separated-values"); - var d3_timer_queueHead, d3_timer_queueTail, d3_timer_interval, d3_timer_timeout, d3_timer_frame = this[d3_vendorSymbol(this, "requestAnimationFrame")] || function(callback) { - setTimeout(callback, 17); - }; - d3.timer = function() { - d3_timer.apply(this, arguments); - }; - function d3_timer(callback, delay, then) { - var n = arguments.length; - if (n < 2) delay = 0; - if (n < 3) then = Date.now(); - var time = then + delay, timer = { - c: callback, - t: time, - n: null - }; - if (d3_timer_queueTail) d3_timer_queueTail.n = timer; else d3_timer_queueHead = timer; - d3_timer_queueTail = timer; - if (!d3_timer_interval) { - d3_timer_timeout = clearTimeout(d3_timer_timeout); - d3_timer_interval = 1; - d3_timer_frame(d3_timer_step); - } - return timer; - } - function d3_timer_step() { - var now = d3_timer_mark(), delay = d3_timer_sweep() - now; - if (delay > 24) { - if (isFinite(delay)) { - clearTimeout(d3_timer_timeout); - d3_timer_timeout = setTimeout(d3_timer_step, delay); - } - d3_timer_interval = 0; - } else { - d3_timer_interval = 1; - d3_timer_frame(d3_timer_step); - } - } - d3.timer.flush = function() { - d3_timer_mark(); - d3_timer_sweep(); - }; - function d3_timer_mark() { - var now = Date.now(), timer = d3_timer_queueHead; - while (timer) { - if (now >= timer.t && timer.c(now - timer.t)) timer.c = null; - timer = timer.n; - } - return now; - } - function d3_timer_sweep() { - var t0, t1 = d3_timer_queueHead, time = Infinity; - while (t1) { - if (t1.c) { - if (t1.t < time) time = t1.t; - t1 = (t0 = t1).n; - } else { - t1 = t0 ? t0.n = t1.n : d3_timer_queueHead = t1.n; - } - } - d3_timer_queueTail = t0; - return time; - } - function d3_format_precision(x, p) { - return p - (x ? Math.ceil(Math.log(x) / Math.LN10) : 1); - } - d3.round = function(x, n) { - return n ? Math.round(x * (n = Math.pow(10, n))) / n : Math.round(x); - }; - var d3_formatPrefixes = [ "y", "z", "a", "f", "p", "n", "µ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y" ].map(d3_formatPrefix); - d3.formatPrefix = function(value, precision) { - var i = 0; - if (value = +value) { - if (value < 0) value *= -1; - if (precision) value = d3.round(value, d3_format_precision(value, precision)); - i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10); - i = Math.max(-24, Math.min(24, Math.floor((i - 1) / 3) * 3)); - } - return d3_formatPrefixes[8 + i / 3]; - }; - function d3_formatPrefix(d, i) { - var k = Math.pow(10, abs(8 - i) * 3); - return { - scale: i > 8 ? function(d) { - return d / k; - } : function(d) { - return d * k; - }, - symbol: d - }; - } - function d3_locale_numberFormat(locale) { - var locale_decimal = locale.decimal, locale_thousands = locale.thousands, locale_grouping = locale.grouping, locale_currency = locale.currency, formatGroup = locale_grouping && locale_thousands ? function(value, width) { - var i = value.length, t = [], j = 0, g = locale_grouping[0], length = 0; - while (i > 0 && g > 0) { - if (length + g + 1 > width) g = Math.max(1, width - length); - t.push(value.substring(i -= g, i + g)); - if ((length += g + 1) > width) break; - g = locale_grouping[j = (j + 1) % locale_grouping.length]; - } - return t.reverse().join(locale_thousands); - } : d3_identity; - return function(specifier) { - var match = d3_format_re.exec(specifier), fill = match[1] || " ", align = match[2] || ">", sign = match[3] || "-", symbol = match[4] || "", zfill = match[5], width = +match[6], comma = match[7], precision = match[8], type = match[9], scale = 1, prefix = "", suffix = "", integer = false, exponent = true; - if (precision) precision = +precision.substring(1); - if (zfill || fill === "0" && align === "=") { - zfill = fill = "0"; - align = "="; - } - switch (type) { - case "n": - comma = true; - type = "g"; - break; - - case "%": - scale = 100; - suffix = "%"; - type = "f"; - break; - - case "p": - scale = 100; - suffix = "%"; - type = "r"; - break; - - case "b": - case "o": - case "x": - case "X": - if (symbol === "#") prefix = "0" + type.toLowerCase(); - - case "c": - exponent = false; - - case "d": - integer = true; - precision = 0; - break; - - case "s": - scale = -1; - type = "r"; - break; - } - if (symbol === "$") prefix = locale_currency[0], suffix = locale_currency[1]; - if (type == "r" && !precision) type = "g"; - if (precision != null) { - if (type == "g") precision = Math.max(1, Math.min(21, precision)); else if (type == "e" || type == "f") precision = Math.max(0, Math.min(20, precision)); - } - type = d3_format_types.get(type) || d3_format_typeDefault; - var zcomma = zfill && comma; - return function(value) { - var fullSuffix = suffix; - if (integer && value % 1) return ""; - var negative = value < 0 || value === 0 && 1 / value < 0 ? (value = -value, "-") : sign === "-" ? "" : sign; - if (scale < 0) { - var unit = d3.formatPrefix(value, precision); - value = unit.scale(value); - fullSuffix = unit.symbol + suffix; - } else { - value *= scale; - } - value = type(value, precision); - var i = value.lastIndexOf("."), before, after; - if (i < 0) { - var j = exponent ? value.lastIndexOf("e") : -1; - if (j < 0) before = value, after = ""; else before = value.substring(0, j), after = value.substring(j); - } else { - before = value.substring(0, i); - after = locale_decimal + value.substring(i + 1); - } - if (!zfill && comma) before = formatGroup(before, Infinity); - var length = prefix.length + before.length + after.length + (zcomma ? 0 : negative.length), padding = length < width ? new Array(length = width - length + 1).join(fill) : ""; - if (zcomma) before = formatGroup(padding + before, padding.length ? width - after.length : Infinity); - negative += prefix; - value = before + after; - return (align === "<" ? negative + value + padding : align === ">" ? padding + negative + value : align === "^" ? padding.substring(0, length >>= 1) + negative + value + padding.substring(length) : negative + (zcomma ? value : padding + value)) + fullSuffix; - }; - }; - } - var d3_format_re = /(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i; - var d3_format_types = d3.map({ - b: function(x) { - return x.toString(2); - }, - c: function(x) { - return String.fromCharCode(x); - }, - o: function(x) { - return x.toString(8); - }, - x: function(x) { - return x.toString(16); - }, - X: function(x) { - return x.toString(16).toUpperCase(); - }, - g: function(x, p) { - return x.toPrecision(p); - }, - e: function(x, p) { - return x.toExponential(p); - }, - f: function(x, p) { - return x.toFixed(p); - }, - r: function(x, p) { - return (x = d3.round(x, d3_format_precision(x, p))).toFixed(Math.max(0, Math.min(20, d3_format_precision(x * (1 + 1e-15), p)))); - } - }); - function d3_format_typeDefault(x) { - return x + ""; - } - var d3_time = d3.time = {}, d3_date = Date; - function d3_date_utc() { - this._ = new Date(arguments.length > 1 ? Date.UTC.apply(this, arguments) : arguments[0]); - } - d3_date_utc.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() { - d3_time_prototype.setUTCDate.apply(this._, arguments); - }, - setDay: function() { - d3_time_prototype.setUTCDay.apply(this._, arguments); - }, - setFullYear: function() { - d3_time_prototype.setUTCFullYear.apply(this._, arguments); - }, - setHours: function() { - d3_time_prototype.setUTCHours.apply(this._, arguments); - }, - setMilliseconds: function() { - d3_time_prototype.setUTCMilliseconds.apply(this._, arguments); - }, - setMinutes: function() { - d3_time_prototype.setUTCMinutes.apply(this._, arguments); - }, - setMonth: function() { - d3_time_prototype.setUTCMonth.apply(this._, arguments); - }, - setSeconds: function() { - d3_time_prototype.setUTCSeconds.apply(this._, arguments); - }, - setTime: function() { - d3_time_prototype.setTime.apply(this._, arguments); - } - }; - var d3_time_prototype = Date.prototype; - function d3_time_interval(local, step, number) { - function round(date) { - var d0 = local(date), d1 = offset(d0, 1); - return date - d0 < d1 - date ? d0 : d1; - } - function ceil(date) { - step(date = local(new d3_date(date - 1)), 1); - return date; - } - function offset(date, k) { - step(date = new d3_date(+date), k); - return date; - } - function range(t0, t1, dt) { - var time = ceil(t0), times = []; - if (dt > 1) { - while (time < t1) { - if (!(number(time) % dt)) times.push(new Date(+time)); - step(time, 1); - } - } else { - while (time < t1) times.push(new Date(+time)), step(time, 1); - } - return times; - } - function range_utc(t0, t1, dt) { - try { - d3_date = d3_date_utc; - var utc = new d3_date_utc(); - utc._ = t0; - return range(utc, t1, dt); - } finally { - d3_date = Date; - } - } - local.floor = local; - local.round = round; - local.ceil = ceil; - local.offset = offset; - local.range = range; - var utc = local.utc = d3_time_interval_utc(local); - utc.floor = utc; - utc.round = d3_time_interval_utc(round); - utc.ceil = d3_time_interval_utc(ceil); - utc.offset = d3_time_interval_utc(offset); - utc.range = range_utc; - return local; - } - function d3_time_interval_utc(method) { - return function(date, k) { - try { - d3_date = d3_date_utc; - var utc = new d3_date_utc(); - utc._ = date; - return method(utc, k)._; - } finally { - d3_date = Date; - } - }; - } - d3_time.year = d3_time_interval(function(date) { - date = d3_time.day(date); - date.setMonth(0, 1); - return date; - }, function(date, offset) { - date.setFullYear(date.getFullYear() + offset); - }, function(date) { - return date.getFullYear(); - }); - d3_time.years = d3_time.year.range; - d3_time.years.utc = d3_time.year.utc.range; - d3_time.day = d3_time_interval(function(date) { - var day = new d3_date(2e3, 0); - day.setFullYear(date.getFullYear(), date.getMonth(), date.getDate()); - return day; - }, function(date, offset) { - date.setDate(date.getDate() + offset); - }, function(date) { - return date.getDate() - 1; - }); - d3_time.days = d3_time.day.range; - d3_time.days.utc = d3_time.day.utc.range; - d3_time.dayOfYear = function(date) { - var year = d3_time.year(date); - return Math.floor((date - year - (date.getTimezoneOffset() - year.getTimezoneOffset()) * 6e4) / 864e5); - }; - [ "sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday" ].forEach(function(day, i) { - i = 7 - i; - var interval = d3_time[day] = d3_time_interval(function(date) { - (date = d3_time.day(date)).setDate(date.getDate() - (date.getDay() + i) % 7); - return date; - }, function(date, offset) { - date.setDate(date.getDate() + Math.floor(offset) * 7); - }, function(date) { - var day = d3_time.year(date).getDay(); - return Math.floor((d3_time.dayOfYear(date) + (day + i) % 7) / 7) - (day !== i); - }); - d3_time[day + "s"] = interval.range; - d3_time[day + "s"].utc = interval.utc.range; - d3_time[day + "OfYear"] = function(date) { - var day = d3_time.year(date).getDay(); - return Math.floor((d3_time.dayOfYear(date) + (day + i) % 7) / 7); - }; - }); - d3_time.week = d3_time.sunday; - d3_time.weeks = d3_time.sunday.range; - d3_time.weeks.utc = d3_time.sunday.utc.range; - d3_time.weekOfYear = d3_time.sundayOfYear; - function d3_locale_timeFormat(locale) { - var locale_dateTime = locale.dateTime, locale_date = locale.date, locale_time = locale.time, locale_periods = locale.periods, locale_days = locale.days, locale_shortDays = locale.shortDays, locale_months = locale.months, locale_shortMonths = locale.shortMonths; - function d3_time_format(template) { - var n = template.length; - function format(date) { - var string = [], i = -1, j = 0, c, p, f; - while (++i < n) { - if (template.charCodeAt(i) === 37) { - string.push(template.slice(j, i)); - if ((p = d3_time_formatPads[c = template.charAt(++i)]) != null) c = template.charAt(++i); - if (f = d3_time_formats[c]) c = f(date, p == null ? c === "e" ? " " : "0" : p); - string.push(c); - j = i + 1; - } - } - string.push(template.slice(j, i)); - return string.join(""); - } - format.parse = function(string) { - var d = { - y: 1900, - m: 0, - d: 1, - H: 0, - M: 0, - S: 0, - L: 0, - Z: null - }, i = d3_time_parse(d, template, string, 0); - if (i != string.length) return null; - if ("p" in d) d.H = d.H % 12 + d.p * 12; - var localZ = d.Z != null && d3_date !== d3_date_utc, date = new (localZ ? d3_date_utc : d3_date)(); - if ("j" in d) date.setFullYear(d.y, 0, d.j); else if ("W" in d || "U" in d) { - if (!("w" in d)) d.w = "W" in d ? 1 : 0; - date.setFullYear(d.y, 0, 1); - date.setFullYear(d.y, 0, "W" in d ? (d.w + 6) % 7 + d.W * 7 - (date.getDay() + 5) % 7 : d.w + d.U * 7 - (date.getDay() + 6) % 7); - } else date.setFullYear(d.y, d.m, d.d); - date.setHours(d.H + (d.Z / 100 | 0), d.M + d.Z % 100, d.S, d.L); - return localZ ? date._ : date; - }; - format.toString = function() { - return template; - }; - return format; - } - function d3_time_parse(date, template, string, j) { - var c, p, t, i = 0, n = template.length, m = string.length; - while (i < n) { - if (j >= m) return -1; - c = template.charCodeAt(i++); - if (c === 37) { - t = template.charAt(i++); - p = d3_time_parsers[t in d3_time_formatPads ? template.charAt(i++) : t]; - if (!p || (j = p(date, string, j)) < 0) return -1; - } else if (c != string.charCodeAt(j++)) { - return -1; - } - } - return j; - } - d3_time_format.utc = function(template) { - var local = d3_time_format(template); - function format(date) { - try { - d3_date = d3_date_utc; - var utc = new d3_date(); - utc._ = date; - return local(utc); - } finally { - d3_date = Date; - } - } - format.parse = function(string) { - try { - d3_date = d3_date_utc; - var date = local.parse(string); - return date && date._; - } finally { - d3_date = Date; - } - }; - format.toString = local.toString; - return format; - }; - d3_time_format.multi = d3_time_format.utc.multi = d3_time_formatMulti; - var d3_time_periodLookup = d3.map(), d3_time_dayRe = d3_time_formatRe(locale_days), d3_time_dayLookup = d3_time_formatLookup(locale_days), d3_time_dayAbbrevRe = d3_time_formatRe(locale_shortDays), d3_time_dayAbbrevLookup = d3_time_formatLookup(locale_shortDays), d3_time_monthRe = d3_time_formatRe(locale_months), d3_time_monthLookup = d3_time_formatLookup(locale_months), d3_time_monthAbbrevRe = d3_time_formatRe(locale_shortMonths), d3_time_monthAbbrevLookup = d3_time_formatLookup(locale_shortMonths); - locale_periods.forEach(function(p, i) { - d3_time_periodLookup.set(p.toLowerCase(), i); - }); - var d3_time_formats = { - a: function(d) { - return locale_shortDays[d.getDay()]; - }, - A: function(d) { - return locale_days[d.getDay()]; - }, - b: function(d) { - return locale_shortMonths[d.getMonth()]; - }, - B: function(d) { - return locale_months[d.getMonth()]; - }, - c: d3_time_format(locale_dateTime), - d: function(d, p) { - return d3_time_formatPad(d.getDate(), p, 2); - }, - e: function(d, p) { - return d3_time_formatPad(d.getDate(), p, 2); - }, - H: function(d, p) { - return d3_time_formatPad(d.getHours(), p, 2); - }, - I: function(d, p) { - return d3_time_formatPad(d.getHours() % 12 || 12, p, 2); - }, - j: function(d, p) { - return d3_time_formatPad(1 + d3_time.dayOfYear(d), p, 3); - }, - L: function(d, p) { - return d3_time_formatPad(d.getMilliseconds(), p, 3); - }, - m: function(d, p) { - return d3_time_formatPad(d.getMonth() + 1, p, 2); - }, - M: function(d, p) { - return d3_time_formatPad(d.getMinutes(), p, 2); - }, - p: function(d) { - return locale_periods[+(d.getHours() >= 12)]; - }, - S: function(d, p) { - return d3_time_formatPad(d.getSeconds(), p, 2); - }, - U: function(d, p) { - return d3_time_formatPad(d3_time.sundayOfYear(d), p, 2); - }, - w: function(d) { - return d.getDay(); - }, - W: function(d, p) { - return d3_time_formatPad(d3_time.mondayOfYear(d), p, 2); - }, - x: d3_time_format(locale_date), - X: d3_time_format(locale_time), - y: function(d, p) { - return d3_time_formatPad(d.getFullYear() % 100, p, 2); - }, - Y: function(d, p) { - return d3_time_formatPad(d.getFullYear() % 1e4, p, 4); - }, - Z: d3_time_zone, - "%": function() { - return "%"; - } - }; - var d3_time_parsers = { - a: d3_time_parseWeekdayAbbrev, - A: d3_time_parseWeekday, - b: d3_time_parseMonthAbbrev, - B: d3_time_parseMonth, - c: d3_time_parseLocaleFull, - d: d3_time_parseDay, - e: d3_time_parseDay, - H: d3_time_parseHour24, - I: d3_time_parseHour24, - j: d3_time_parseDayOfYear, - L: d3_time_parseMilliseconds, - m: d3_time_parseMonthNumber, - M: d3_time_parseMinutes, - p: d3_time_parseAmPm, - S: d3_time_parseSeconds, - U: d3_time_parseWeekNumberSunday, - w: d3_time_parseWeekdayNumber, - W: d3_time_parseWeekNumberMonday, - x: d3_time_parseLocaleDate, - X: d3_time_parseLocaleTime, - y: d3_time_parseYear, - Y: d3_time_parseFullYear, - Z: d3_time_parseZone, - "%": d3_time_parseLiteralPercent - }; - function d3_time_parseWeekdayAbbrev(date, string, i) { - d3_time_dayAbbrevRe.lastIndex = 0; - var n = d3_time_dayAbbrevRe.exec(string.slice(i)); - return n ? (date.w = d3_time_dayAbbrevLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; - } - function d3_time_parseWeekday(date, string, i) { - d3_time_dayRe.lastIndex = 0; - var n = d3_time_dayRe.exec(string.slice(i)); - return n ? (date.w = d3_time_dayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; - } - function d3_time_parseMonthAbbrev(date, string, i) { - d3_time_monthAbbrevRe.lastIndex = 0; - var n = d3_time_monthAbbrevRe.exec(string.slice(i)); - return n ? (date.m = d3_time_monthAbbrevLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; - } - function d3_time_parseMonth(date, string, i) { - d3_time_monthRe.lastIndex = 0; - var n = d3_time_monthRe.exec(string.slice(i)); - return n ? (date.m = d3_time_monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; - } - function d3_time_parseLocaleFull(date, string, i) { - return d3_time_parse(date, d3_time_formats.c.toString(), string, i); - } - function d3_time_parseLocaleDate(date, string, i) { - return d3_time_parse(date, d3_time_formats.x.toString(), string, i); - } - function d3_time_parseLocaleTime(date, string, i) { - return d3_time_parse(date, d3_time_formats.X.toString(), string, i); - } - function d3_time_parseAmPm(date, string, i) { - var n = d3_time_periodLookup.get(string.slice(i, i += 2).toLowerCase()); - return n == null ? -1 : (date.p = n, i); - } - return d3_time_format; - } - var d3_time_formatPads = { - "-": "", - _: " ", - "0": "0" - }, d3_time_numberRe = /^\s*\d+/, d3_time_percentRe = /^%/; - function d3_time_formatPad(value, fill, width) { - var sign = value < 0 ? "-" : "", string = (sign ? -value : value) + "", length = string.length; - return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string); - } - function d3_time_formatRe(names) { - return new RegExp("^(?:" + names.map(d3.requote).join("|") + ")", "i"); - } - function d3_time_formatLookup(names) { - var map = new d3_Map(), i = -1, n = names.length; - while (++i < n) map.set(names[i].toLowerCase(), i); - return map; - } - function d3_time_parseWeekdayNumber(date, string, i) { - d3_time_numberRe.lastIndex = 0; - var n = d3_time_numberRe.exec(string.slice(i, i + 1)); - return n ? (date.w = +n[0], i + n[0].length) : -1; - } - function d3_time_parseWeekNumberSunday(date, string, i) { - d3_time_numberRe.lastIndex = 0; - var n = d3_time_numberRe.exec(string.slice(i)); - return n ? (date.U = +n[0], i + n[0].length) : -1; - } - function d3_time_parseWeekNumberMonday(date, string, i) { - d3_time_numberRe.lastIndex = 0; - var n = d3_time_numberRe.exec(string.slice(i)); - return n ? (date.W = +n[0], i + n[0].length) : -1; - } - function d3_time_parseFullYear(date, string, i) { - d3_time_numberRe.lastIndex = 0; - var n = d3_time_numberRe.exec(string.slice(i, i + 4)); - return n ? (date.y = +n[0], i + n[0].length) : -1; - } - function d3_time_parseYear(date, string, i) { - d3_time_numberRe.lastIndex = 0; - var n = d3_time_numberRe.exec(string.slice(i, i + 2)); - return n ? (date.y = d3_time_expandYear(+n[0]), i + n[0].length) : -1; - } - function d3_time_parseZone(date, string, i) { - return /^[+-]\d{4}$/.test(string = string.slice(i, i + 5)) ? (date.Z = -string, - i + 5) : -1; - } - function d3_time_expandYear(d) { - return d + (d > 68 ? 1900 : 2e3); - } - function d3_time_parseMonthNumber(date, string, i) { - d3_time_numberRe.lastIndex = 0; - var n = d3_time_numberRe.exec(string.slice(i, i + 2)); - return n ? (date.m = n[0] - 1, i + n[0].length) : -1; - } - function d3_time_parseDay(date, string, i) { - d3_time_numberRe.lastIndex = 0; - var n = d3_time_numberRe.exec(string.slice(i, i + 2)); - return n ? (date.d = +n[0], i + n[0].length) : -1; - } - function d3_time_parseDayOfYear(date, string, i) { - d3_time_numberRe.lastIndex = 0; - var n = d3_time_numberRe.exec(string.slice(i, i + 3)); - return n ? (date.j = +n[0], i + n[0].length) : -1; - } - function d3_time_parseHour24(date, string, i) { - d3_time_numberRe.lastIndex = 0; - var n = d3_time_numberRe.exec(string.slice(i, i + 2)); - return n ? (date.H = +n[0], i + n[0].length) : -1; - } - function d3_time_parseMinutes(date, string, i) { - d3_time_numberRe.lastIndex = 0; - var n = d3_time_numberRe.exec(string.slice(i, i + 2)); - return n ? (date.M = +n[0], i + n[0].length) : -1; - } - function d3_time_parseSeconds(date, string, i) { - d3_time_numberRe.lastIndex = 0; - var n = d3_time_numberRe.exec(string.slice(i, i + 2)); - return n ? (date.S = +n[0], i + n[0].length) : -1; - } - function d3_time_parseMilliseconds(date, string, i) { - d3_time_numberRe.lastIndex = 0; - var n = d3_time_numberRe.exec(string.slice(i, i + 3)); - return n ? (date.L = +n[0], i + n[0].length) : -1; - } - function d3_time_zone(d) { - var z = d.getTimezoneOffset(), zs = z > 0 ? "-" : "+", zh = abs(z) / 60 | 0, zm = abs(z) % 60; - return zs + d3_time_formatPad(zh, "0", 2) + d3_time_formatPad(zm, "0", 2); - } - function d3_time_parseLiteralPercent(date, string, i) { - d3_time_percentRe.lastIndex = 0; - var n = d3_time_percentRe.exec(string.slice(i, i + 1)); - return n ? i + n[0].length : -1; - } - function d3_time_formatMulti(formats) { - var n = formats.length, i = -1; - while (++i < n) formats[i][0] = this(formats[i][0]); - return function(date) { - var i = 0, f = formats[i]; - while (!f[1](date)) f = formats[++i]; - return f[0](date); - }; - } - d3.locale = function(locale) { - return { - numberFormat: d3_locale_numberFormat(locale), - timeFormat: d3_locale_timeFormat(locale) - }; - }; - var d3_locale_enUS = d3.locale({ - decimal: ".", - thousands: ",", - grouping: [ 3 ], - currency: [ "$", "" ], - dateTime: "%a %b %e %X %Y", - date: "%m/%d/%Y", - time: "%H:%M:%S", - 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" ] - }); - d3.format = d3_locale_enUS.numberFormat; - d3.geo = {}; - function d3_adder() {} - d3_adder.prototype = { - s: 0, - t: 0, - add: function(y) { - d3_adderSum(y, this.t, d3_adderTemp); - d3_adderSum(d3_adderTemp.s, this.s, this); - if (this.s) this.t += d3_adderTemp.t; else this.s = d3_adderTemp.t; - }, - reset: function() { - this.s = this.t = 0; - }, - valueOf: function() { - return this.s; - } - }; - var d3_adderTemp = new d3_adder(); - function d3_adderSum(a, b, o) { - var x = o.s = a + b, bv = x - a, av = x - bv; - o.t = a - av + (b - bv); - } - d3.geo.stream = function(object, listener) { - if (object && d3_geo_streamObjectType.hasOwnProperty(object.type)) { - d3_geo_streamObjectType[object.type](object, listener); - } else { - d3_geo_streamGeometry(object, listener); - } - }; - function d3_geo_streamGeometry(geometry, listener) { - if (geometry && d3_geo_streamGeometryType.hasOwnProperty(geometry.type)) { - d3_geo_streamGeometryType[geometry.type](geometry, listener); - } - } - var d3_geo_streamObjectType = { - Feature: function(feature, listener) { - d3_geo_streamGeometry(feature.geometry, listener); - }, - FeatureCollection: function(object, listener) { - var features = object.features, i = -1, n = features.length; - while (++i < n) d3_geo_streamGeometry(features[i].geometry, listener); - } - }; - var d3_geo_streamGeometryType = { - Sphere: function(object, listener) { - listener.sphere(); - }, - Point: function(object, listener) { - object = object.coordinates; - listener.point(object[0], object[1], object[2]); - }, - MultiPoint: function(object, listener) { - var coordinates = object.coordinates, i = -1, n = coordinates.length; - while (++i < n) object = coordinates[i], listener.point(object[0], object[1], object[2]); - }, - LineString: function(object, listener) { - d3_geo_streamLine(object.coordinates, listener, 0); - }, - MultiLineString: function(object, listener) { - var coordinates = object.coordinates, i = -1, n = coordinates.length; - while (++i < n) d3_geo_streamLine(coordinates[i], listener, 0); - }, - Polygon: function(object, listener) { - d3_geo_streamPolygon(object.coordinates, listener); - }, - MultiPolygon: function(object, listener) { - var coordinates = object.coordinates, i = -1, n = coordinates.length; - while (++i < n) d3_geo_streamPolygon(coordinates[i], listener); - }, - GeometryCollection: function(object, listener) { - var geometries = object.geometries, i = -1, n = geometries.length; - while (++i < n) d3_geo_streamGeometry(geometries[i], listener); - } - }; - function d3_geo_streamLine(coordinates, listener, closed) { - var i = -1, n = coordinates.length - closed, coordinate; - listener.lineStart(); - while (++i < n) coordinate = coordinates[i], listener.point(coordinate[0], coordinate[1], coordinate[2]); - listener.lineEnd(); - } - function d3_geo_streamPolygon(coordinates, listener) { - var i = -1, n = coordinates.length; - listener.polygonStart(); - while (++i < n) d3_geo_streamLine(coordinates[i], listener, 1); - listener.polygonEnd(); - } - d3.geo.area = function(object) { - d3_geo_areaSum = 0; - d3.geo.stream(object, d3_geo_area); - return d3_geo_areaSum; - }; - var d3_geo_areaSum, d3_geo_areaRingSum = new d3_adder(); - var d3_geo_area = { - sphere: function() { - d3_geo_areaSum += 4 * π; - }, - point: d3_noop, - lineStart: d3_noop, - lineEnd: d3_noop, - polygonStart: function() { - d3_geo_areaRingSum.reset(); - d3_geo_area.lineStart = d3_geo_areaRingStart; - }, - polygonEnd: function() { - var area = 2 * d3_geo_areaRingSum; - d3_geo_areaSum += area < 0 ? 4 * π + area : area; - d3_geo_area.lineStart = d3_geo_area.lineEnd = d3_geo_area.point = d3_noop; - } - }; - function d3_geo_areaRingStart() { - var λ00, φ00, λ0, cosφ0, sinφ0; - d3_geo_area.point = function(λ, φ) { - d3_geo_area.point = nextPoint; - λ0 = (λ00 = λ) * d3_radians, cosφ0 = Math.cos(φ = (φ00 = φ) * d3_radians / 2 + π / 4), - sinφ0 = Math.sin(φ); - }; - function nextPoint(λ, φ) { - λ *= d3_radians; - φ = φ * d3_radians / 2 + π / 4; - var dλ = λ - λ0, sdλ = dλ >= 0 ? 1 : -1, adλ = sdλ * dλ, cosφ = Math.cos(φ), sinφ = Math.sin(φ), k = sinφ0 * sinφ, u = cosφ0 * cosφ + k * Math.cos(adλ), v = k * sdλ * Math.sin(adλ); - d3_geo_areaRingSum.add(Math.atan2(v, u)); - λ0 = λ, cosφ0 = cosφ, sinφ0 = sinφ; - } - d3_geo_area.lineEnd = function() { - nextPoint(λ00, φ00); - }; - } - function d3_geo_cartesian(spherical) { - var λ = spherical[0], φ = spherical[1], cosφ = Math.cos(φ); - return [ cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ) ]; - } - function d3_geo_cartesianDot(a, b) { - return a[0] * b[0] + a[1] * b[1] + a[2] * b[2]; - } - function d3_geo_cartesianCross(a, b) { - return [ a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0] ]; - } - function d3_geo_cartesianAdd(a, b) { - a[0] += b[0]; - a[1] += b[1]; - a[2] += b[2]; - } - function d3_geo_cartesianScale(vector, k) { - return [ vector[0] * k, vector[1] * k, vector[2] * k ]; - } - function d3_geo_cartesianNormalize(d) { - var l = Math.sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]); - d[0] /= l; - d[1] /= l; - d[2] /= l; - } - function d3_geo_spherical(cartesian) { - return [ Math.atan2(cartesian[1], cartesian[0]), d3_asin(cartesian[2]) ]; - } - function d3_geo_sphericalEqual(a, b) { - return abs(a[0] - b[0]) < ε && abs(a[1] - b[1]) < ε; - } - d3.geo.bounds = function() { - var λ0, φ0, λ1, φ1, λ_, λ__, φ__, p0, dλSum, ranges, range; - var bound = { - point: point, - lineStart: lineStart, - lineEnd: lineEnd, - polygonStart: function() { - bound.point = ringPoint; - bound.lineStart = ringStart; - bound.lineEnd = ringEnd; - dλSum = 0; - d3_geo_area.polygonStart(); - }, - polygonEnd: function() { - d3_geo_area.polygonEnd(); - bound.point = point; - bound.lineStart = lineStart; - bound.lineEnd = lineEnd; - if (d3_geo_areaRingSum < 0) λ0 = -(λ1 = 180), φ0 = -(φ1 = 90); else if (dλSum > ε) φ1 = 90; else if (dλSum < -ε) φ0 = -90; - range[0] = λ0, range[1] = λ1; - } - }; - function point(λ, φ) { - ranges.push(range = [ λ0 = λ, λ1 = λ ]); - if (φ < φ0) φ0 = φ; - if (φ > φ1) φ1 = φ; - } - function linePoint(λ, φ) { - var p = d3_geo_cartesian([ λ * d3_radians, φ * d3_radians ]); - if (p0) { - var normal = d3_geo_cartesianCross(p0, p), equatorial = [ normal[1], -normal[0], 0 ], inflection = d3_geo_cartesianCross(equatorial, normal); - d3_geo_cartesianNormalize(inflection); - inflection = d3_geo_spherical(inflection); - var dλ = λ - λ_, s = dλ > 0 ? 1 : -1, λi = inflection[0] * d3_degrees * s, antimeridian = abs(dλ) > 180; - if (antimeridian ^ (s * λ_ < λi && λi < s * λ)) { - var φi = inflection[1] * d3_degrees; - if (φi > φ1) φ1 = φi; - } else if (λi = (λi + 360) % 360 - 180, antimeridian ^ (s * λ_ < λi && λi < s * λ)) { - var φi = -inflection[1] * d3_degrees; - if (φi < φ0) φ0 = φi; - } else { - if (φ < φ0) φ0 = φ; - if (φ > φ1) φ1 = φ; - } - if (antimeridian) { - if (λ < λ_) { - if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ; - } else { - if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ; - } - } else { - if (λ1 >= λ0) { - if (λ < λ0) λ0 = λ; - if (λ > λ1) λ1 = λ; - } else { - if (λ > λ_) { - if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ; - } else { - if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ; - } - } - } - } else { - point(λ, φ); - } - p0 = p, λ_ = λ; - } - function lineStart() { - bound.point = linePoint; - } - function lineEnd() { - range[0] = λ0, range[1] = λ1; - bound.point = point; - p0 = null; - } - function ringPoint(λ, φ) { - if (p0) { - var dλ = λ - λ_; - dλSum += abs(dλ) > 180 ? dλ + (dλ > 0 ? 360 : -360) : dλ; - } else λ__ = λ, φ__ = φ; - d3_geo_area.point(λ, φ); - linePoint(λ, φ); - } - function ringStart() { - d3_geo_area.lineStart(); - } - function ringEnd() { - ringPoint(λ__, φ__); - d3_geo_area.lineEnd(); - if (abs(dλSum) > ε) λ0 = -(λ1 = 180); - range[0] = λ0, range[1] = λ1; - p0 = null; - } - function angle(λ0, λ1) { - return (λ1 -= λ0) < 0 ? λ1 + 360 : λ1; - } - function compareRanges(a, b) { - return a[0] - b[0]; - } - function withinRange(x, range) { - return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x; - } - return function(feature) { - φ1 = λ1 = -(λ0 = φ0 = Infinity); - ranges = []; - d3.geo.stream(feature, bound); - var n = ranges.length; - if (n) { - ranges.sort(compareRanges); - for (var i = 1, a = ranges[0], b, merged = [ a ]; i < n; ++i) { - b = ranges[i]; - if (withinRange(b[0], a) || withinRange(b[1], a)) { - if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1]; - if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0]; - } else { - merged.push(a = b); - } - } - var best = -Infinity, dλ; - for (var n = merged.length - 1, i = 0, a = merged[n], b; i <= n; a = b, ++i) { - b = merged[i]; - if ((dλ = angle(a[1], b[0])) > best) best = dλ, λ0 = b[0], λ1 = a[1]; - } - } - ranges = range = null; - return λ0 === Infinity || φ0 === Infinity ? [ [ NaN, NaN ], [ NaN, NaN ] ] : [ [ λ0, φ0 ], [ λ1, φ1 ] ]; - }; - }(); - d3.geo.centroid = function(object) { - d3_geo_centroidW0 = d3_geo_centroidW1 = d3_geo_centroidX0 = d3_geo_centroidY0 = d3_geo_centroidZ0 = d3_geo_centroidX1 = d3_geo_centroidY1 = d3_geo_centroidZ1 = d3_geo_centroidX2 = d3_geo_centroidY2 = d3_geo_centroidZ2 = 0; - d3.geo.stream(object, d3_geo_centroid); - var x = d3_geo_centroidX2, y = d3_geo_centroidY2, z = d3_geo_centroidZ2, m = x * x + y * y + z * z; - if (m < ε2) { - x = d3_geo_centroidX1, y = d3_geo_centroidY1, z = d3_geo_centroidZ1; - if (d3_geo_centroidW1 < ε) x = d3_geo_centroidX0, y = d3_geo_centroidY0, z = d3_geo_centroidZ0; - m = x * x + y * y + z * z; - if (m < ε2) return [ NaN, NaN ]; - } - return [ Math.atan2(y, x) * d3_degrees, d3_asin(z / Math.sqrt(m)) * d3_degrees ]; - }; - var d3_geo_centroidW0, d3_geo_centroidW1, d3_geo_centroidX0, d3_geo_centroidY0, d3_geo_centroidZ0, d3_geo_centroidX1, d3_geo_centroidY1, d3_geo_centroidZ1, d3_geo_centroidX2, d3_geo_centroidY2, d3_geo_centroidZ2; - var d3_geo_centroid = { - sphere: d3_noop, - point: d3_geo_centroidPoint, - lineStart: d3_geo_centroidLineStart, - lineEnd: d3_geo_centroidLineEnd, - polygonStart: function() { - d3_geo_centroid.lineStart = d3_geo_centroidRingStart; - }, - polygonEnd: function() { - d3_geo_centroid.lineStart = d3_geo_centroidLineStart; - } - }; - function d3_geo_centroidPoint(λ, φ) { - λ *= d3_radians; - var cosφ = Math.cos(φ *= d3_radians); - d3_geo_centroidPointXYZ(cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ)); - } - function d3_geo_centroidPointXYZ(x, y, z) { - ++d3_geo_centroidW0; - d3_geo_centroidX0 += (x - d3_geo_centroidX0) / d3_geo_centroidW0; - d3_geo_centroidY0 += (y - d3_geo_centroidY0) / d3_geo_centroidW0; - d3_geo_centroidZ0 += (z - d3_geo_centroidZ0) / d3_geo_centroidW0; - } - function d3_geo_centroidLineStart() { - var x0, y0, z0; - d3_geo_centroid.point = function(λ, φ) { - λ *= d3_radians; - var cosφ = Math.cos(φ *= d3_radians); - x0 = cosφ * Math.cos(λ); - y0 = cosφ * Math.sin(λ); - z0 = Math.sin(φ); - d3_geo_centroid.point = nextPoint; - d3_geo_centroidPointXYZ(x0, y0, z0); - }; - function nextPoint(λ, φ) { - λ *= d3_radians; - var cosφ = Math.cos(φ *= d3_radians), x = cosφ * Math.cos(λ), y = cosφ * Math.sin(λ), z = Math.sin(φ), w = Math.atan2(Math.sqrt((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z); - d3_geo_centroidW1 += w; - d3_geo_centroidX1 += w * (x0 + (x0 = x)); - d3_geo_centroidY1 += w * (y0 + (y0 = y)); - d3_geo_centroidZ1 += w * (z0 + (z0 = z)); - d3_geo_centroidPointXYZ(x0, y0, z0); - } - } - function d3_geo_centroidLineEnd() { - d3_geo_centroid.point = d3_geo_centroidPoint; - } - function d3_geo_centroidRingStart() { - var λ00, φ00, x0, y0, z0; - d3_geo_centroid.point = function(λ, φ) { - λ00 = λ, φ00 = φ; - d3_geo_centroid.point = nextPoint; - λ *= d3_radians; - var cosφ = Math.cos(φ *= d3_radians); - x0 = cosφ * Math.cos(λ); - y0 = cosφ * Math.sin(λ); - z0 = Math.sin(φ); - d3_geo_centroidPointXYZ(x0, y0, z0); - }; - d3_geo_centroid.lineEnd = function() { - nextPoint(λ00, φ00); - d3_geo_centroid.lineEnd = d3_geo_centroidLineEnd; - d3_geo_centroid.point = d3_geo_centroidPoint; - }; - function nextPoint(λ, φ) { - λ *= d3_radians; - var cosφ = Math.cos(φ *= d3_radians), x = cosφ * Math.cos(λ), y = cosφ * Math.sin(λ), z = Math.sin(φ), cx = y0 * z - z0 * y, cy = z0 * x - x0 * z, cz = x0 * y - y0 * x, m = Math.sqrt(cx * cx + cy * cy + cz * cz), u = x0 * x + y0 * y + z0 * z, v = m && -d3_acos(u) / m, w = Math.atan2(m, u); - d3_geo_centroidX2 += v * cx; - d3_geo_centroidY2 += v * cy; - d3_geo_centroidZ2 += v * cz; - d3_geo_centroidW1 += w; - d3_geo_centroidX1 += w * (x0 + (x0 = x)); - d3_geo_centroidY1 += w * (y0 + (y0 = y)); - d3_geo_centroidZ1 += w * (z0 + (z0 = z)); - d3_geo_centroidPointXYZ(x0, y0, z0); - } - } - function d3_geo_compose(a, b) { - function compose(x, y) { - return x = a(x, y), b(x[0], x[1]); - } - if (a.invert && b.invert) compose.invert = function(x, y) { - return x = b.invert(x, y), x && a.invert(x[0], x[1]); - }; - return compose; - } - function d3_true() { - return true; - } - function d3_geo_clipPolygon(segments, compare, clipStartInside, interpolate, listener) { - var subject = [], clip = []; - segments.forEach(function(segment) { - if ((n = segment.length - 1) <= 0) return; - var n, p0 = segment[0], p1 = segment[n]; - if (d3_geo_sphericalEqual(p0, p1)) { - listener.lineStart(); - for (var i = 0; i < n; ++i) listener.point((p0 = segment[i])[0], p0[1]); - listener.lineEnd(); - return; - } - var a = new d3_geo_clipPolygonIntersection(p0, segment, null, true), b = new d3_geo_clipPolygonIntersection(p0, null, a, false); - a.o = b; - subject.push(a); - clip.push(b); - a = new d3_geo_clipPolygonIntersection(p1, segment, null, false); - b = new d3_geo_clipPolygonIntersection(p1, null, a, true); - a.o = b; - subject.push(a); - clip.push(b); - }); - clip.sort(compare); - d3_geo_clipPolygonLinkCircular(subject); - d3_geo_clipPolygonLinkCircular(clip); - if (!subject.length) return; - for (var i = 0, entry = clipStartInside, n = clip.length; i < n; ++i) { - clip[i].e = entry = !entry; - } - var start = subject[0], points, point; - while (1) { - var current = start, isSubject = true; - while (current.v) if ((current = current.n) === start) return; - points = current.z; - listener.lineStart(); - do { - current.v = current.o.v = true; - if (current.e) { - if (isSubject) { - for (var i = 0, n = points.length; i < n; ++i) listener.point((point = points[i])[0], point[1]); - } else { - interpolate(current.x, current.n.x, 1, listener); - } - current = current.n; - } else { - if (isSubject) { - points = current.p.z; - for (var i = points.length - 1; i >= 0; --i) listener.point((point = points[i])[0], point[1]); - } else { - interpolate(current.x, current.p.x, -1, listener); - } - current = current.p; - } - current = current.o; - points = current.z; - isSubject = !isSubject; - } while (!current.v); - listener.lineEnd(); - } - } - function d3_geo_clipPolygonLinkCircular(array) { - if (!(n = array.length)) return; - var n, i = 0, a = array[0], b; - while (++i < n) { - a.n = b = array[i]; - b.p = a; - a = b; - } - a.n = b = array[0]; - b.p = a; - } - function d3_geo_clipPolygonIntersection(point, points, other, entry) { - this.x = point; - this.z = points; - this.o = other; - this.e = entry; - this.v = false; - this.n = this.p = null; - } - function d3_geo_clip(pointVisible, clipLine, interpolate, clipStart) { - return function(rotate, listener) { - var line = clipLine(listener), rotatedClipStart = rotate.invert(clipStart[0], clipStart[1]); - var clip = { - point: point, - lineStart: lineStart, - lineEnd: lineEnd, - polygonStart: function() { - clip.point = pointRing; - clip.lineStart = ringStart; - clip.lineEnd = ringEnd; - segments = []; - polygon = []; - }, - polygonEnd: function() { - clip.point = point; - clip.lineStart = lineStart; - clip.lineEnd = lineEnd; - segments = d3.merge(segments); - var clipStartInside = d3_geo_pointInPolygon(rotatedClipStart, polygon); - if (segments.length) { - if (!polygonStarted) listener.polygonStart(), polygonStarted = true; - d3_geo_clipPolygon(segments, d3_geo_clipSort, clipStartInside, interpolate, listener); - } else if (clipStartInside) { - if (!polygonStarted) listener.polygonStart(), polygonStarted = true; - listener.lineStart(); - interpolate(null, null, 1, listener); - listener.lineEnd(); - } - if (polygonStarted) listener.polygonEnd(), polygonStarted = false; - segments = polygon = null; - }, - sphere: function() { - listener.polygonStart(); - listener.lineStart(); - interpolate(null, null, 1, listener); - listener.lineEnd(); - listener.polygonEnd(); - } - }; - function point(λ, φ) { - var point = rotate(λ, φ); - if (pointVisible(λ = point[0], φ = point[1])) listener.point(λ, φ); - } - function pointLine(λ, φ) { - var point = rotate(λ, φ); - line.point(point[0], point[1]); - } - function lineStart() { - clip.point = pointLine; - line.lineStart(); - } - function lineEnd() { - clip.point = point; - line.lineEnd(); - } - var segments; - var buffer = d3_geo_clipBufferListener(), ringListener = clipLine(buffer), polygonStarted = false, polygon, ring; - function pointRing(λ, φ) { - ring.push([ λ, φ ]); - var point = rotate(λ, φ); - ringListener.point(point[0], point[1]); - } - function ringStart() { - ringListener.lineStart(); - ring = []; - } - function ringEnd() { - pointRing(ring[0][0], ring[0][1]); - ringListener.lineEnd(); - var clean = ringListener.clean(), ringSegments = buffer.buffer(), segment, n = ringSegments.length; - ring.pop(); - polygon.push(ring); - ring = null; - if (!n) return; - if (clean & 1) { - segment = ringSegments[0]; - var n = segment.length - 1, i = -1, point; - if (n > 0) { - if (!polygonStarted) listener.polygonStart(), polygonStarted = true; - listener.lineStart(); - while (++i < n) listener.point((point = segment[i])[0], point[1]); - listener.lineEnd(); - } - return; - } - if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift())); - segments.push(ringSegments.filter(d3_geo_clipSegmentLength1)); - } - return clip; - }; - } - function d3_geo_clipSegmentLength1(segment) { - return segment.length > 1; - } - function d3_geo_clipBufferListener() { - var lines = [], line; - return { - lineStart: function() { - lines.push(line = []); - }, - point: function(λ, φ) { - line.push([ λ, φ ]); - }, - lineEnd: d3_noop, - buffer: function() { - var buffer = lines; - lines = []; - line = null; - return buffer; - }, - rejoin: function() { - if (lines.length > 1) lines.push(lines.pop().concat(lines.shift())); - } - }; - } - function d3_geo_clipSort(a, b) { - return ((a = a.x)[0] < 0 ? a[1] - halfπ - ε : halfπ - a[1]) - ((b = b.x)[0] < 0 ? b[1] - halfπ - ε : halfπ - b[1]); - } - var d3_geo_clipAntimeridian = d3_geo_clip(d3_true, d3_geo_clipAntimeridianLine, d3_geo_clipAntimeridianInterpolate, [ -π, -π / 2 ]); - function d3_geo_clipAntimeridianLine(listener) { - var λ0 = NaN, φ0 = NaN, sλ0 = NaN, clean; - return { - lineStart: function() { - listener.lineStart(); - clean = 1; - }, - point: function(λ1, φ1) { - var sλ1 = λ1 > 0 ? π : -π, dλ = abs(λ1 - λ0); - if (abs(dλ - π) < ε) { - listener.point(λ0, φ0 = (φ0 + φ1) / 2 > 0 ? halfπ : -halfπ); - listener.point(sλ0, φ0); - listener.lineEnd(); - listener.lineStart(); - listener.point(sλ1, φ0); - listener.point(λ1, φ0); - clean = 0; - } else if (sλ0 !== sλ1 && dλ >= π) { - if (abs(λ0 - sλ0) < ε) λ0 -= sλ0 * ε; - if (abs(λ1 - sλ1) < ε) λ1 -= sλ1 * ε; - φ0 = d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1); - listener.point(sλ0, φ0); - listener.lineEnd(); - listener.lineStart(); - listener.point(sλ1, φ0); - clean = 0; - } - listener.point(λ0 = λ1, φ0 = φ1); - sλ0 = sλ1; - }, - lineEnd: function() { - listener.lineEnd(); - λ0 = φ0 = NaN; - }, - clean: function() { - return 2 - clean; - } - }; - } - function d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1) { - var cosφ0, cosφ1, sinλ0_λ1 = Math.sin(λ0 - λ1); - return abs(sinλ0_λ1) > ε ? Math.atan((Math.sin(φ0) * (cosφ1 = Math.cos(φ1)) * Math.sin(λ1) - Math.sin(φ1) * (cosφ0 = Math.cos(φ0)) * Math.sin(λ0)) / (cosφ0 * cosφ1 * sinλ0_λ1)) : (φ0 + φ1) / 2; - } - function d3_geo_clipAntimeridianInterpolate(from, to, direction, listener) { - var φ; - if (from == null) { - φ = direction * halfπ; - listener.point(-π, φ); - listener.point(0, φ); - listener.point(π, φ); - listener.point(π, 0); - listener.point(π, -φ); - listener.point(0, -φ); - listener.point(-π, -φ); - listener.point(-π, 0); - listener.point(-π, φ); - } else if (abs(from[0] - to[0]) > ε) { - var s = from[0] < to[0] ? π : -π; - φ = direction * s / 2; - listener.point(-s, φ); - listener.point(0, φ); - listener.point(s, φ); - } else { - listener.point(to[0], to[1]); - } - } - function d3_geo_pointInPolygon(point, polygon) { - var meridian = point[0], parallel = point[1], meridianNormal = [ Math.sin(meridian), -Math.cos(meridian), 0 ], polarAngle = 0, winding = 0; - d3_geo_areaRingSum.reset(); - for (var i = 0, n = polygon.length; i < n; ++i) { - var ring = polygon[i], m = ring.length; - if (!m) continue; - var point0 = ring[0], λ0 = point0[0], φ0 = point0[1] / 2 + π / 4, sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), j = 1; - while (true) { - if (j === m) j = 0; - point = ring[j]; - var λ = point[0], φ = point[1] / 2 + π / 4, sinφ = Math.sin(φ), cosφ = Math.cos(φ), dλ = λ - λ0, sdλ = dλ >= 0 ? 1 : -1, adλ = sdλ * dλ, antimeridian = adλ > π, k = sinφ0 * sinφ; - d3_geo_areaRingSum.add(Math.atan2(k * sdλ * Math.sin(adλ), cosφ0 * cosφ + k * Math.cos(adλ))); - polarAngle += antimeridian ? dλ + sdλ * τ : dλ; - if (antimeridian ^ λ0 >= meridian ^ λ >= meridian) { - var arc = d3_geo_cartesianCross(d3_geo_cartesian(point0), d3_geo_cartesian(point)); - d3_geo_cartesianNormalize(arc); - var intersection = d3_geo_cartesianCross(meridianNormal, arc); - d3_geo_cartesianNormalize(intersection); - var φarc = (antimeridian ^ dλ >= 0 ? -1 : 1) * d3_asin(intersection[2]); - if (parallel > φarc || parallel === φarc && (arc[0] || arc[1])) { - winding += antimeridian ^ dλ >= 0 ? 1 : -1; - } - } - if (!j++) break; - λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ, point0 = point; - } - } - return (polarAngle < -ε || polarAngle < ε && d3_geo_areaRingSum < -ε) ^ winding & 1; - } - function d3_geo_clipCircle(radius) { - var cr = Math.cos(radius), smallRadius = cr > 0, notHemisphere = abs(cr) > ε, interpolate = d3_geo_circleInterpolate(radius, 6 * d3_radians); - return d3_geo_clip(visible, clipLine, interpolate, smallRadius ? [ 0, -radius ] : [ -π, radius - π ]); - function visible(λ, φ) { - return Math.cos(λ) * Math.cos(φ) > cr; - } - function clipLine(listener) { - var point0, c0, v0, v00, clean; - return { - lineStart: function() { - v00 = v0 = false; - clean = 1; - }, - point: function(λ, φ) { - var point1 = [ λ, φ ], point2, v = visible(λ, φ), c = smallRadius ? v ? 0 : code(λ, φ) : v ? code(λ + (λ < 0 ? π : -π), φ) : 0; - if (!point0 && (v00 = v0 = v)) listener.lineStart(); - if (v !== v0) { - point2 = intersect(point0, point1); - if (d3_geo_sphericalEqual(point0, point2) || d3_geo_sphericalEqual(point1, point2)) { - point1[0] += ε; - point1[1] += ε; - v = visible(point1[0], point1[1]); - } - } - if (v !== v0) { - clean = 0; - if (v) { - listener.lineStart(); - point2 = intersect(point1, point0); - listener.point(point2[0], point2[1]); - } else { - point2 = intersect(point0, point1); - listener.point(point2[0], point2[1]); - listener.lineEnd(); - } - point0 = point2; - } else if (notHemisphere && point0 && smallRadius ^ v) { - var t; - if (!(c & c0) && (t = intersect(point1, point0, true))) { - clean = 0; - if (smallRadius) { - listener.lineStart(); - listener.point(t[0][0], t[0][1]); - listener.point(t[1][0], t[1][1]); - listener.lineEnd(); - } else { - listener.point(t[1][0], t[1][1]); - listener.lineEnd(); - listener.lineStart(); - listener.point(t[0][0], t[0][1]); - } - } - } - if (v && (!point0 || !d3_geo_sphericalEqual(point0, point1))) { - listener.point(point1[0], point1[1]); - } - point0 = point1, v0 = v, c0 = c; - }, - lineEnd: function() { - if (v0) listener.lineEnd(); - point0 = null; - }, - clean: function() { - return clean | (v00 && v0) << 1; - } - }; - } - function intersect(a, b, two) { - var pa = d3_geo_cartesian(a), pb = d3_geo_cartesian(b); - var n1 = [ 1, 0, 0 ], n2 = d3_geo_cartesianCross(pa, pb), n2n2 = d3_geo_cartesianDot(n2, n2), n1n2 = n2[0], determinant = n2n2 - n1n2 * n1n2; - if (!determinant) return !two && a; - var c1 = cr * n2n2 / determinant, c2 = -cr * n1n2 / determinant, n1xn2 = d3_geo_cartesianCross(n1, n2), A = d3_geo_cartesianScale(n1, c1), B = d3_geo_cartesianScale(n2, c2); - d3_geo_cartesianAdd(A, B); - var u = n1xn2, w = d3_geo_cartesianDot(A, u), uu = d3_geo_cartesianDot(u, u), t2 = w * w - uu * (d3_geo_cartesianDot(A, A) - 1); - if (t2 < 0) return; - var t = Math.sqrt(t2), q = d3_geo_cartesianScale(u, (-w - t) / uu); - d3_geo_cartesianAdd(q, A); - q = d3_geo_spherical(q); - if (!two) return q; - var λ0 = a[0], λ1 = b[0], φ0 = a[1], φ1 = b[1], z; - if (λ1 < λ0) z = λ0, λ0 = λ1, λ1 = z; - var δλ = λ1 - λ0, polar = abs(δλ - π) < ε, meridian = polar || δλ < ε; - if (!polar && φ1 < φ0) z = φ0, φ0 = φ1, φ1 = z; - if (meridian ? polar ? φ0 + φ1 > 0 ^ q[1] < (abs(q[0] - λ0) < ε ? φ0 : φ1) : φ0 <= q[1] && q[1] <= φ1 : δλ > π ^ (λ0 <= q[0] && q[0] <= λ1)) { - var q1 = d3_geo_cartesianScale(u, (-w + t) / uu); - d3_geo_cartesianAdd(q1, A); - return [ q, d3_geo_spherical(q1) ]; - } - } - function code(λ, φ) { - var r = smallRadius ? radius : π - radius, code = 0; - if (λ < -r) code |= 1; else if (λ > r) code |= 2; - if (φ < -r) code |= 4; else if (φ > r) code |= 8; - return code; - } - } - function d3_geom_clipLine(x0, y0, x1, y1) { - return function(line) { - var a = line.a, b = line.b, ax = a.x, ay = a.y, bx = b.x, by = b.y, t0 = 0, t1 = 1, dx = bx - ax, dy = by - ay, r; - r = x0 - ax; - if (!dx && r > 0) return; - r /= dx; - if (dx < 0) { - if (r < t0) return; - if (r < t1) t1 = r; - } else if (dx > 0) { - if (r > t1) return; - if (r > t0) t0 = r; - } - r = x1 - ax; - if (!dx && r < 0) return; - r /= dx; - if (dx < 0) { - if (r > t1) return; - if (r > t0) t0 = r; - } else if (dx > 0) { - if (r < t0) return; - if (r < t1) t1 = r; - } - r = y0 - ay; - if (!dy && r > 0) return; - r /= dy; - if (dy < 0) { - if (r < t0) return; - if (r < t1) t1 = r; - } else if (dy > 0) { - if (r > t1) return; - if (r > t0) t0 = r; - } - r = y1 - ay; - if (!dy && r < 0) return; - r /= dy; - if (dy < 0) { - if (r > t1) return; - if (r > t0) t0 = r; - } else if (dy > 0) { - if (r < t0) return; - if (r < t1) t1 = r; - } - if (t0 > 0) line.a = { - x: ax + t0 * dx, - y: ay + t0 * dy - }; - if (t1 < 1) line.b = { - x: ax + t1 * dx, - y: ay + t1 * dy - }; - return line; - }; - } - var d3_geo_clipExtentMAX = 1e9; - d3.geo.clipExtent = function() { - var x0, y0, x1, y1, stream, clip, clipExtent = { - stream: function(output) { - if (stream) stream.valid = false; - stream = clip(output); - stream.valid = true; - return stream; - }, - extent: function(_) { - if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ]; - clip = d3_geo_clipExtent(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]); - if (stream) stream.valid = false, stream = null; - return clipExtent; - } - }; - return clipExtent.extent([ [ 0, 0 ], [ 960, 500 ] ]); - }; - function d3_geo_clipExtent(x0, y0, x1, y1) { - return function(listener) { - var listener_ = listener, bufferListener = d3_geo_clipBufferListener(), clipLine = d3_geom_clipLine(x0, y0, x1, y1), segments, polygon, ring; - var clip = { - point: point, - lineStart: lineStart, - lineEnd: lineEnd, - polygonStart: function() { - listener = bufferListener; - segments = []; - polygon = []; - clean = true; - }, - polygonEnd: function() { - listener = listener_; - segments = d3.merge(segments); - var clipStartInside = insidePolygon([ x0, y1 ]), inside = clean && clipStartInside, visible = segments.length; - if (inside || visible) { - listener.polygonStart(); - if (inside) { - listener.lineStart(); - interpolate(null, null, 1, listener); - listener.lineEnd(); - } - if (visible) { - d3_geo_clipPolygon(segments, compare, clipStartInside, interpolate, listener); - } - listener.polygonEnd(); - } - segments = polygon = ring = null; + + // Add alpha channel to the map + alpha[0] = Math.min(Math.max(alpha[0], 0), 1); + alpha[1] = Math.min(Math.max(alpha[1], 0), 1); + + var steps = cmap.map(function(c, i) { + var index = cmap[i].index + + var rgba = cmap[i].rgb.slice(); + + // if user supplies their own map use it + if (rgba.length === 4 && rgba[3] >= 0 && rgba[3] <= 1) { + return rgba } - }; - function insidePolygon(p) { - var wn = 0, n = polygon.length, y = p[1]; - for (var i = 0; i < n; ++i) { - for (var j = 1, v = polygon[i], m = v.length, a = v[0], b; j < m; ++j) { - b = v[j]; - if (a[1] <= y) { - if (b[1] > y && d3_cross2d(a, b, p) > 0) ++wn; - } else { - if (b[1] <= y && d3_cross2d(a, b, p) < 0) --wn; - } - a = b; - } + rgba[3] = alpha[0] + (alpha[1] - alpha[0])*index; + + return rgba + }) + + + /* + * map increasing linear values between indicies to + * linear steps in colorvalues + */ + var colors = [] + for (i = 0; i < indicies.length-1; ++i) { + nsteps = indicies[i+1] - indicies[i]; + fromrgba = steps[i]; + torgba = steps[i+1]; + + for (var j = 0; j < nsteps; j++) { + var amt = j / nsteps + colors.push([ + Math.round(lerp(fromrgba[0], torgba[0], amt)), + Math.round(lerp(fromrgba[1], torgba[1], amt)), + Math.round(lerp(fromrgba[2], torgba[2], amt)), + lerp(fromrgba[3], torgba[3], amt) + ]) } - return wn !== 0; - } - function interpolate(from, to, direction, listener) { - var a = 0, a1 = 0; - if (from == null || (a = corner(from, direction)) !== (a1 = corner(to, direction)) || comparePoints(from, to) < 0 ^ direction > 0) { - do { - listener.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0); - } while ((a = (a + direction + 4) % 4) !== a1); + } + + //add 1 step as last value + colors.push(cmap[cmap.length - 1].rgb.concat(alpha[1])) + + if (format === 'hex') colors = colors.map( rgb2hex ); + else if (format === 'rgbaString') colors = colors.map( rgbaStr ); + else if (format === 'float') colors = colors.map( rgb2float ); + + return colors; +}; + +function rgb2float (rgba) { + return [ + rgba[0] / 255, + rgba[1] / 255, + rgba[2] / 255, + rgba[3] + ] +} + +function rgb2hex (rgba) { + var dig, hex = '#'; + for (var i = 0; i < 3; ++i) { + dig = rgba[i]; + dig = dig.toString(16); + hex += ('00' + dig).substr( dig.length ); + } + return hex; +} + +function rgbaStr (rgba) { + return 'rgba(' + rgba.join(',') + ')'; +} + +},{"./colorScale":132,"lerp":456}],134:[function(_dereq_,module,exports){ +"use strict" + +module.exports = compareAngle + +var orient = _dereq_("robust-orientation") +var sgn = _dereq_("signum") +var twoSum = _dereq_("two-sum") +var robustProduct = _dereq_("robust-product") +var robustSum = _dereq_("robust-sum") + +function testInterior(a, b, c) { + var x0 = twoSum(a[0], -b[0]) + var y0 = twoSum(a[1], -b[1]) + var x1 = twoSum(c[0], -b[0]) + var y1 = twoSum(c[1], -b[1]) + + var d = robustSum( + robustProduct(x0, x1), + robustProduct(y0, y1)) + + return d[d.length-1] >= 0 +} + +function compareAngle(a, b, c, d) { + var bcd = orient(b, c, d) + if(bcd === 0) { + //Handle degenerate cases + var sabc = sgn(orient(a, b, c)) + var sabd = sgn(orient(a, b, d)) + if(sabc === sabd) { + if(sabc === 0) { + var ic = testInterior(a, b, c) + var id = testInterior(a, b, d) + if(ic === id) { + return 0 + } else if(ic) { + return 1 } else { - listener.point(to[0], to[1]); + return -1 } } - function pointVisible(x, y) { - return x0 <= x && x <= x1 && y0 <= y && y <= y1; - } - function point(x, y) { - if (pointVisible(x, y)) listener.point(x, y); - } - var x__, y__, v__, x_, y_, v_, first, clean; - function lineStart() { - clip.point = linePoint; - if (polygon) polygon.push(ring = []); - first = true; - v_ = false; - x_ = y_ = NaN; - } - function lineEnd() { - if (segments) { - linePoint(x__, y__); - if (v__ && v_) bufferListener.rejoin(); - segments.push(bufferListener.buffer()); - } - clip.point = point; - if (v_) listener.lineEnd(); + return 0 + } else if(sabd === 0) { + if(sabc > 0) { + return -1 + } else if(testInterior(a, b, d)) { + return -1 + } else { + return 1 } - function linePoint(x, y) { - x = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, x)); - y = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, y)); - var v = pointVisible(x, y); - if (polygon) ring.push([ x, y ]); - if (first) { - x__ = x, y__ = y, v__ = v; - first = false; - if (v) { - listener.lineStart(); - listener.point(x, y); - } - } else { - if (v && v_) listener.point(x, y); else { - var l = { - a: { - x: x_, - y: y_ - }, - b: { - x: x, - y: y - } - }; - if (clipLine(l)) { - if (!v_) { - listener.lineStart(); - listener.point(l.a.x, l.a.y); - } - listener.point(l.b.x, l.b.y); - if (!v) listener.lineEnd(); - clean = false; - } else if (v) { - listener.lineStart(); - listener.point(x, y); - clean = false; - } - } - } - x_ = x, y_ = y, v_ = v; + } else if(sabc === 0) { + if(sabd > 0) { + return 1 + } else if(testInterior(a, b, c)) { + return 1 + } else { + return -1 } - return clip; - }; - function corner(p, direction) { - return abs(p[0] - x0) < ε ? direction > 0 ? 0 : 3 : abs(p[0] - x1) < ε ? direction > 0 ? 2 : 1 : abs(p[1] - y0) < ε ? direction > 0 ? 1 : 0 : direction > 0 ? 3 : 2; } - function compare(a, b) { - return comparePoints(a.x, b.x); + return sgn(sabd - sabc) + } + var abc = orient(a, b, c) + if(abc > 0) { + if(bcd > 0 && orient(a, b, d) > 0) { + return 1 } - function comparePoints(a, b) { - var ca = corner(a, 1), cb = corner(b, 1); - return ca !== cb ? ca - cb : ca === 0 ? b[1] - a[1] : ca === 1 ? a[0] - b[0] : ca === 2 ? a[1] - b[1] : b[0] - a[0]; + return -1 + } else if(abc < 0) { + if(bcd > 0 || orient(a, b, d) > 0) { + return 1 } - } - function d3_geo_conic(projectAt) { - var φ0 = 0, φ1 = π / 3, m = d3_geo_projectionMutator(projectAt), p = m(φ0, φ1); - p.parallels = function(_) { - if (!arguments.length) return [ φ0 / π * 180, φ1 / π * 180 ]; - return m(φ0 = _[0] * π / 180, φ1 = _[1] * π / 180); - }; - return p; - } - function d3_geo_conicEqualArea(φ0, φ1) { - var sinφ0 = Math.sin(φ0), n = (sinφ0 + Math.sin(φ1)) / 2, C = 1 + sinφ0 * (2 * n - sinφ0), ρ0 = Math.sqrt(C) / n; - function forward(λ, φ) { - var ρ = Math.sqrt(C - 2 * n * Math.sin(φ)) / n; - return [ ρ * Math.sin(λ *= n), ρ0 - ρ * Math.cos(λ) ]; + return -1 + } else { + var abd = orient(a, b, d) + if(abd > 0) { + return 1 + } else { + if(testInterior(a, b, c)) { + return 1 + } else { + return -1 + } } - forward.invert = function(x, y) { - var ρ0_y = ρ0 - y; - return [ Math.atan2(x, ρ0_y) / n, d3_asin((C - (x * x + ρ0_y * ρ0_y) * n * n) / (2 * n)) ]; - }; - return forward; } - (d3.geo.conicEqualArea = function() { - return d3_geo_conic(d3_geo_conicEqualArea); - }).raw = d3_geo_conicEqualArea; - d3.geo.albers = function() { - return d3.geo.conicEqualArea().rotate([ 96, 0 ]).center([ -.6, 38.7 ]).parallels([ 29.5, 45.5 ]).scale(1070); - }; - d3.geo.albersUsa = function() { - var lower48 = d3.geo.albers(); - var alaska = d3.geo.conicEqualArea().rotate([ 154, 0 ]).center([ -2, 58.5 ]).parallels([ 55, 65 ]); - var hawaii = d3.geo.conicEqualArea().rotate([ 157, 0 ]).center([ -3, 19.9 ]).parallels([ 8, 18 ]); - var point, pointStream = { - point: function(x, y) { - point = [ x, y ]; +} +},{"robust-orientation":542,"robust-product":543,"robust-sum":547,"signum":549,"two-sum":599}],135:[function(_dereq_,module,exports){ +module.exports = compareCells + +var min = Math.min + +function compareInt(a, b) { + return a - b +} + +function compareCells(a, b) { + var n = a.length + , t = a.length - b.length + if(t) { + return t + } + switch(n) { + case 0: + return 0 + case 1: + return a[0] - b[0] + case 2: + return (a[0]+a[1]-b[0]-b[1]) || + min(a[0],a[1]) - min(b[0],b[1]) + case 3: + var l1 = a[0]+a[1] + , m1 = b[0]+b[1] + t = l1+a[2] - (m1+b[2]) + if(t) { + return t } - }, lower48Point, alaskaPoint, hawaiiPoint; - function albersUsa(coordinates) { - var x = coordinates[0], y = coordinates[1]; - point = null; - (lower48Point(x, y), point) || (alaskaPoint(x, y), point) || hawaiiPoint(x, y); - return point; - } - albersUsa.invert = function(coordinates) { - var k = lower48.scale(), t = lower48.translate(), x = (coordinates[0] - t[0]) / k, y = (coordinates[1] - t[1]) / k; - return (y >= .12 && y < .234 && x >= -.425 && x < -.214 ? alaska : y >= .166 && y < .234 && x >= -.214 && x < -.115 ? hawaii : lower48).invert(coordinates); - }; - albersUsa.stream = function(stream) { - var lower48Stream = lower48.stream(stream), alaskaStream = alaska.stream(stream), hawaiiStream = hawaii.stream(stream); - return { - point: function(x, y) { - lower48Stream.point(x, y); - alaskaStream.point(x, y); - hawaiiStream.point(x, y); - }, - sphere: function() { - lower48Stream.sphere(); - alaskaStream.sphere(); - hawaiiStream.sphere(); - }, - lineStart: function() { - lower48Stream.lineStart(); - alaskaStream.lineStart(); - hawaiiStream.lineStart(); - }, - lineEnd: function() { - lower48Stream.lineEnd(); - alaskaStream.lineEnd(); - hawaiiStream.lineEnd(); - }, - polygonStart: function() { - lower48Stream.polygonStart(); - alaskaStream.polygonStart(); - hawaiiStream.polygonStart(); - }, - polygonEnd: function() { - lower48Stream.polygonEnd(); - alaskaStream.polygonEnd(); - hawaiiStream.polygonEnd(); + var l0 = min(a[0], a[1]) + , m0 = min(b[0], b[1]) + return min(l0, a[2]) - min(m0, b[2]) || + min(l0+a[2], l1) - min(m0+b[2], m1) + case 4: + var aw=a[0], ax=a[1], ay=a[2], az=a[3] + , bw=b[0], bx=b[1], by=b[2], bz=b[3] + return (aw+ax+ay+az)-(bw+bx+by+bz) || + min(aw,ax,ay,az)-min(bw,bx,by,bz,bw) || + min(aw+ax,aw+ay,aw+az,ax+ay,ax+az,ay+az) - + min(bw+bx,bw+by,bw+bz,bx+by,bx+bz,by+bz) || + min(aw+ax+ay,aw+ax+az,aw+ay+az,ax+ay+az) - + min(bw+bx+by,bw+bx+bz,bw+by+bz,bx+by+bz) + default: + var as = a.slice().sort(compareInt) + var bs = b.slice().sort(compareInt) + for(var i=0; i points[hi][0]) { + hi = i } - d3_geo_pathArea.lineEnd = function() { - nextPoint(x00, y00); - }; } - var d3_geo_pathBoundsX0, d3_geo_pathBoundsY0, d3_geo_pathBoundsX1, d3_geo_pathBoundsY1; - var d3_geo_pathBounds = { - point: d3_geo_pathBoundsPoint, - lineStart: d3_noop, - lineEnd: d3_noop, - polygonStart: d3_noop, - polygonEnd: d3_noop - }; - function d3_geo_pathBoundsPoint(x, y) { - if (x < d3_geo_pathBoundsX0) d3_geo_pathBoundsX0 = x; - if (x > d3_geo_pathBoundsX1) d3_geo_pathBoundsX1 = x; - if (y < d3_geo_pathBoundsY0) d3_geo_pathBoundsY0 = y; - if (y > d3_geo_pathBoundsY1) d3_geo_pathBoundsY1 = y; + if(lo < hi) { + return [[lo], [hi]] + } else if(lo > hi) { + return [[hi], [lo]] + } else { + return [[lo]] } - function d3_geo_pathBuffer() { - var pointCircle = d3_geo_pathBufferCircle(4.5), buffer = []; - var stream = { - point: point, - lineStart: function() { - stream.point = pointLineStart; - }, - lineEnd: lineEnd, - polygonStart: function() { - stream.lineEnd = lineEndPolygon; - }, - polygonEnd: function() { - stream.lineEnd = lineEnd; - stream.point = point; - }, - pointRadius: function(_) { - pointCircle = d3_geo_pathBufferCircle(_); - return stream; - }, - result: function() { - if (buffer.length) { - var result = buffer.join(""); - buffer = []; - return result; +} +},{}],139:[function(_dereq_,module,exports){ +'use strict' + +module.exports = convexHull2D + +var monotoneHull = _dereq_('monotone-convex-hull-2d') + +function convexHull2D(points) { + var hull = monotoneHull(points) + var h = hull.length + if(h <= 2) { + return [] + } + var edges = new Array(h) + var a = hull[h-1] + for(var i=0; i= front[k]) { + x += 1 + } } + c[j] = x } - }; - function point(x, y) { - buffer.push("M", x, ",", y, pointCircle); - } - function pointLineStart(x, y) { - buffer.push("M", x, ",", y); - stream.point = pointLine; - } - function pointLine(x, y) { - buffer.push("L", x, ",", y); - } - function lineEnd() { - stream.point = point; - } - function lineEndPolygon() { - buffer.push("Z"); } - return stream; - } - function d3_geo_pathBufferCircle(radius) { - return "m0," + radius + "a" + radius + "," + radius + " 0 1,1 0," + -2 * radius + "a" + radius + "," + radius + " 0 1,1 0," + 2 * radius + "z"; } - var d3_geo_pathCentroid = { - point: d3_geo_pathCentroidPoint, - lineStart: d3_geo_pathCentroidLineStart, - lineEnd: d3_geo_pathCentroidLineEnd, - polygonStart: function() { - d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidRingStart; - }, - polygonEnd: function() { - d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint; - d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidLineStart; - d3_geo_pathCentroid.lineEnd = d3_geo_pathCentroidLineEnd; + return cells +} + +function convexHullnD(points, d) { + try { + return ich(points, true) + } catch(e) { + //If point set is degenerate, try to find a basis and rerun it + var ah = aff(points) + if(ah.length <= d) { + //No basis, no try + return [] } - }; - function d3_geo_pathCentroidPoint(x, y) { - d3_geo_centroidX0 += x; - d3_geo_centroidY0 += y; - ++d3_geo_centroidZ0; + var npoints = permute(points, ah) + var nhull = ich(npoints, true) + return invPermute(nhull, ah) } - function d3_geo_pathCentroidLineStart() { - var x0, y0; - d3_geo_pathCentroid.point = function(x, y) { - d3_geo_pathCentroid.point = nextPoint; - d3_geo_pathCentroidPoint(x0 = x, y0 = y); - }; - function nextPoint(x, y) { - var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy); - d3_geo_centroidX1 += z * (x0 + x) / 2; - d3_geo_centroidY1 += z * (y0 + y) / 2; - d3_geo_centroidZ1 += z; - d3_geo_pathCentroidPoint(x0 = x, y0 = y); +} +},{"affine-hull":69,"incremental-convex-hull":442}],141:[function(_dereq_,module,exports){ +module.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|ç)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|é)union', + ROU: 'r(o|u|ou)mania', + RUS: '\\brussia|soviet.?union|u\\.?s\\.?s\\.?r|socialist.?republics', + RWA: 'rwanda', + BLM: 'barth(e|é)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|ã)o.?tom(e|é)', + 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' +} + +},{}],142:[function(_dereq_,module,exports){ +module.exports=[ + "xx-small", + "x-small", + "small", + "medium", + "large", + "x-large", + "xx-large", + "larger", + "smaller" +] + +},{}],143:[function(_dereq_,module,exports){ +module.exports=[ + "normal", + "condensed", + "semi-condensed", + "extra-condensed", + "ultra-condensed", + "expanded", + "semi-expanded", + "extra-expanded", + "ultra-expanded" +] + +},{}],144:[function(_dereq_,module,exports){ +module.exports=[ + "normal", + "italic", + "oblique" +] + +},{}],145:[function(_dereq_,module,exports){ +module.exports=[ + "normal", + "bold", + "bolder", + "lighter", + "100", + "200", + "300", + "400", + "500", + "600", + "700", + "800", + "900" +] + +},{}],146:[function(_dereq_,module,exports){ +'use strict' + +module.exports = { + parse: _dereq_('./parse'), + stringify: _dereq_('./stringify') +} + +},{"./parse":148,"./stringify":149}],147:[function(_dereq_,module,exports){ +'use strict' + +var sizes = _dereq_('css-font-size-keywords') + +module.exports = { + isSize: function isSize(value) { + return /^[\d\.]/.test(value) + || value.indexOf('/') !== -1 + || sizes.indexOf(value) !== -1 + } +} + +},{"css-font-size-keywords":142}],148:[function(_dereq_,module,exports){ +'use strict' + +var unquote = _dereq_('unquote') +var globalKeywords = _dereq_('css-global-keywords') +var systemFontKeywords = _dereq_('css-system-font-keywords') +var fontWeightKeywords = _dereq_('css-font-weight-keywords') +var fontStyleKeywords = _dereq_('css-font-style-keywords') +var fontStretchKeywords = _dereq_('css-font-stretch-keywords') +var splitBy = _dereq_('string-split-by') +var isSize = _dereq_('./lib/util').isSize + + +module.exports = parseFont + + +var cache = parseFont.cache = {} + + +function parseFont (value) { + if (typeof value !== 'string') throw new Error('Font argument must be a string.') + + if (cache[value]) return cache[value] + + if (value === '') { + throw new Error('Cannot parse an empty string.') + } + + if (systemFontKeywords.indexOf(value) !== -1) { + return cache[value] = {system: value} + } + + var font = { + style: 'normal', + variant: 'normal', + weight: 'normal', + stretch: 'normal', + lineHeight: 'normal', + size: '1rem', + family: ['serif'] + } + + var tokens = splitBy(value, /\s+/) + var token + + while (token = tokens.shift()) { + if (globalKeywords.indexOf(token) !== -1) { + ['style', 'variant', 'weight', 'stretch'].forEach(function(prop) { + font[prop] = token + }) + + return cache[value] = font + } + + if (fontStyleKeywords.indexOf(token) !== -1) { + font.style = token + continue + } + + if (token === 'normal' || token === 'small-caps') { + font.variant = token + continue + } + + if (fontStretchKeywords.indexOf(token) !== -1) { + font.stretch = token + continue + } + + if (fontWeightKeywords.indexOf(token) !== -1) { + font.weight = token + continue + } + + + if (isSize(token)) { + var parts = splitBy(token, '/') + font.size = parts[0] + if (parts[1] != null) { + font.lineHeight = parseLineHeight(parts[1]) + } + else if (tokens[0] === '/') { + tokens.shift() + font.lineHeight = parseLineHeight(tokens.shift()) + } + + if (!tokens.length) { + throw new Error('Missing required font-family.') + } + font.family = splitBy(tokens.join(' '), /\s*,\s*/).map(unquote) + + return cache[value] = font + } + + throw new Error('Unknown or unsupported font token: ' + token) + } + + throw new Error('Missing required font-size.') +} + + +function parseLineHeight(value) { + var parsed = parseFloat(value) + if (parsed.toString() === value) { + return parsed + } + return value +} + +},{"./lib/util":147,"css-font-stretch-keywords":143,"css-font-style-keywords":144,"css-font-weight-keywords":145,"css-global-keywords":150,"css-system-font-keywords":151,"string-split-by":583,"unquote":614}],149:[function(_dereq_,module,exports){ +'use strict' + +var pick = _dereq_('pick-by-alias') +var isSize = _dereq_('./lib/util').isSize + +var globals = a2o(_dereq_('css-global-keywords')) +var systems = a2o(_dereq_('css-system-font-keywords')) +var weights = a2o(_dereq_('css-font-weight-keywords')) +var styles = a2o(_dereq_('css-font-style-keywords')) +var stretches = a2o(_dereq_('css-font-stretch-keywords')) + +var variants = {'normal': 1, 'small-caps': 1} +var fams = { + 'serif': 1, + 'sans-serif': 1, + 'monospace': 1, + 'cursive': 1, + 'fantasy': 1, + 'system-ui': 1 +} + +var defaults = { + style: 'normal', + variant: 'normal', + weight: 'normal', + stretch: 'normal', + size: '1rem', + lineHeight: 'normal', + family: 'serif' +} + +module.exports = function stringifyFont (o) { + o = pick(o, { + style: 'style fontstyle fontStyle font-style slope distinction', + variant: 'variant font-variant fontVariant fontvariant var capitalization', + weight: 'weight w font-weight fontWeight fontweight', + stretch: 'stretch font-stretch fontStretch fontstretch width', + size: 'size s font-size fontSize fontsize height em emSize', + lineHeight: 'lh line-height lineHeight lineheight leading', + family: 'font family fontFamily font-family fontfamily type typeface face', + system: 'system reserved default global', + }) + + if (o.system) { + if (o.system) verify(o.system, systems) + return o.system + } + + verify(o.style, styles) + verify(o.variant, variants) + verify(o.weight, weights) + verify(o.stretch, stretches) + + // default root value is medium, but by default it's inherited + if (o.size == null) o.size = defaults.size + if (typeof o.size === 'number') o.size += 'px' + + if (!isSize) throw Error('Bad size value `' + o.size + '`') + + // many user-agents use serif, we don't detect that for consistency + if (!o.family) o.family = defaults.family + if (Array.isArray(o.family)) { + if (!o.family.length) o.family = [defaults.family] + o.family = o.family.map(function (f) { + return fams[f] ? f : '"' + f + '"' + }).join(', ') + } + + // [ [ <'font-style'> || || <'font-weight'> || <'font-stretch'> ]? <'font-size'> [ / <'line-height'> ]? <'font-family'> ] + var result = [] + + result.push(o.style) + if (o.variant !== o.style) result.push(o.variant) + + if (o.weight !== o.variant && + o.weight !== o.style) result.push(o.weight) + + if (o.stretch !== o.weight && + o.stretch !== o.variant && + o.stretch !== o.style) result.push(o.stretch) + + result.push(o.size + (o.lineHeight == null || o.lineHeight === 'normal' || (o.lineHeight + '' === '1') ? '' : ('/' + o.lineHeight))) + result.push(o.family) + + return result.filter(Boolean).join(' ') +} + +function verify (value, values) { + if (value && !values[value] && !globals[value]) throw Error('Unknown keyword `' + value +'`') + + return value +} + + +// ['a', 'b'] -> {a: true, b: true} +function a2o (a) { + var o = {} + for (var i = 0; i < a.length; i++) { + o[a[i]] = 1 + } + return o +} + +},{"./lib/util":147,"css-font-stretch-keywords":143,"css-font-style-keywords":144,"css-font-weight-keywords":145,"css-global-keywords":150,"css-system-font-keywords":151,"pick-by-alias":495}],150:[function(_dereq_,module,exports){ +module.exports=[ + "inherit", + "initial", + "unset" +] + +},{}],151:[function(_dereq_,module,exports){ +module.exports=[ + "caption", + "icon", + "menu", + "message-box", + "small-caption", + "status-bar" +] + +},{}],152:[function(_dereq_,module,exports){ +"use strict" + +function dcubicHermite(p0, v0, p1, v1, t, f) { + var dh00 = 6*t*t-6*t, + dh10 = 3*t*t-4*t + 1, + dh01 = -6*t*t+6*t, + dh11 = 3*t*t-2*t + if(p0.length) { + if(!f) { + f = new Array(p0.length) } - } - function d3_geo_pathCentroidLineEnd() { - d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint; - } - function d3_geo_pathCentroidRingStart() { - var x00, y00, x0, y0; - d3_geo_pathCentroid.point = function(x, y) { - d3_geo_pathCentroid.point = nextPoint; - d3_geo_pathCentroidPoint(x00 = x0 = x, y00 = y0 = y); - }; - function nextPoint(x, y) { - var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy); - d3_geo_centroidX1 += z * (x0 + x) / 2; - d3_geo_centroidY1 += z * (y0 + y) / 2; - d3_geo_centroidZ1 += z; - z = y0 * x - x0 * y; - d3_geo_centroidX2 += z * (x0 + x); - d3_geo_centroidY2 += z * (y0 + y); - d3_geo_centroidZ2 += z * 3; - d3_geo_pathCentroidPoint(x0 = x, y0 = y); + for(var i=p0.length-1; i>=0; --i) { + f[i] = dh00*p0[i] + dh10*v0[i] + dh01*p1[i] + dh11*v1[i] } - d3_geo_pathCentroid.lineEnd = function() { - nextPoint(x00, y00); - }; + return f } - function d3_geo_pathContext(context) { - var pointRadius = 4.5; - var stream = { - point: point, - lineStart: function() { - stream.point = pointLineStart; - }, - lineEnd: lineEnd, - polygonStart: function() { - stream.lineEnd = lineEndPolygon; - }, - polygonEnd: function() { - stream.lineEnd = lineEnd; - stream.point = point; - }, - pointRadius: function(_) { - pointRadius = _; - return stream; - }, - result: d3_noop - }; - function point(x, y) { - context.moveTo(x + pointRadius, y); - context.arc(x, y, pointRadius, 0, τ); - } - function pointLineStart(x, y) { - context.moveTo(x, y); - stream.point = pointLine; - } - function pointLine(x, y) { - context.lineTo(x, y); - } - function lineEnd() { - stream.point = point; + return dh00*p0 + dh10*v0 + dh01*p1[i] + dh11*v1 +} + +function cubicHermite(p0, v0, p1, v1, t, f) { + var ti = (t-1), t2 = t*t, ti2 = ti*ti, + h00 = (1+2*t)*ti2, + h10 = t*ti2, + h01 = t2*(3-2*t), + h11 = t2*ti + if(p0.length) { + if(!f) { + f = new Array(p0.length) } - function lineEndPolygon() { - context.closePath(); + for(var i=p0.length-1; i>=0; --i) { + f[i] = h00*p0[i] + h10*v0[i] + h01*p1[i] + h11*v1[i] } - return stream; + return f } - function d3_geo_resample(project) { - var δ2 = .5, cosMinDistance = Math.cos(30 * d3_radians), maxDepth = 16; - function resample(stream) { - return (maxDepth ? resampleRecursive : resampleNone)(stream); - } - function resampleNone(stream) { - return d3_geo_transformPoint(stream, function(x, y) { - x = project(x, y); - stream.point(x[0], x[1]); - }); - } - function resampleRecursive(stream) { - var λ00, φ00, x00, y00, a00, b00, c00, λ0, x0, y0, a0, b0, c0; - var resample = { - point: point, - lineStart: lineStart, - lineEnd: lineEnd, - polygonStart: function() { - stream.polygonStart(); - resample.lineStart = ringStart; - }, - polygonEnd: function() { - stream.polygonEnd(); - resample.lineStart = lineStart; - } - }; - function point(x, y) { - x = project(x, y); - stream.point(x[0], x[1]); + return h00*p0 + h10*v0 + h01*p1 + h11*v1 +} + +module.exports = cubicHermite +module.exports.derivative = dcubicHermite +},{}],153:[function(_dereq_,module,exports){ +"use strict" + +var createThunk = _dereq_("./lib/thunk.js") + +function Procedure() { + 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 = false +} + +function compileCwise(user_args) { + //Create procedure + var proc = new Procedure() + + //Parse blocks + proc.pre = user_args.pre + proc.body = user_args.body + proc.post = user_args.post + + //Parse arguments + var proc_args = user_args.args.slice(0) + proc.argTypes = proc_args + for(var i=0; i0) { + throw new Error("cwise: pre() block may not reference array args") } - function lineStart() { - x0 = NaN; - resample.point = linePoint; - stream.lineStart(); + if(i < proc.post.args.length && proc.post.args[i].count>0) { + throw new Error("cwise: post() block may not reference array args") } - function linePoint(λ, φ) { - var c = d3_geo_cartesian([ λ, φ ]), p = project(λ, φ); - resampleLineTo(x0, y0, λ0, a0, b0, c0, x0 = p[0], y0 = p[1], λ0 = λ, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream); - stream.point(x0, y0); + } else if(arg_type === "scalar") { + proc.scalarArgs.push(i) + proc.shimArgs.push("scalar" + i) + } else if(arg_type === "index") { + proc.indexArgs.push(i) + if(i < proc.pre.args.length && proc.pre.args[i].count > 0) { + throw new Error("cwise: pre() block may not reference array index") } - function lineEnd() { - resample.point = point; - stream.lineEnd(); + if(i < proc.body.args.length && proc.body.args[i].lvalue) { + throw new Error("cwise: body() block may not write to array index") } - function ringStart() { - lineStart(); - resample.point = ringPoint; - resample.lineEnd = ringEnd; + if(i < proc.post.args.length && proc.post.args[i].count > 0) { + throw new Error("cwise: post() block may not reference array index") } - function ringPoint(λ, φ) { - linePoint(λ00 = λ, φ00 = φ), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0; - resample.point = linePoint; + } else if(arg_type === "shape") { + proc.shapeArgs.push(i) + if(i < proc.pre.args.length && proc.pre.args[i].lvalue) { + throw new Error("cwise: pre() block may not write to array shape") } - function ringEnd() { - resampleLineTo(x0, y0, λ0, a0, b0, c0, x00, y00, λ00, a00, b00, c00, maxDepth, stream); - resample.lineEnd = lineEnd; - lineEnd(); + if(i < proc.body.args.length && proc.body.args[i].lvalue) { + throw new Error("cwise: body() block may not write to array shape") } - return resample; - } - function resampleLineTo(x0, y0, λ0, a0, b0, c0, x1, y1, λ1, a1, b1, c1, depth, stream) { - var dx = x1 - x0, dy = y1 - y0, d2 = dx * dx + dy * dy; - if (d2 > 4 * δ2 && depth--) { - var a = a0 + a1, b = b0 + b1, c = c0 + c1, m = Math.sqrt(a * a + b * b + c * c), φ2 = Math.asin(c /= m), λ2 = abs(abs(c) - 1) < ε || abs(λ0 - λ1) < ε ? (λ0 + λ1) / 2 : Math.atan2(b, a), p = project(λ2, φ2), x2 = p[0], y2 = p[1], dx2 = x2 - x0, dy2 = y2 - y0, dz = dy * dx2 - dx * dy2; - if (dz * dz / d2 > δ2 || abs((dx * dx2 + dy * dy2) / d2 - .5) > .3 || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { - resampleLineTo(x0, y0, λ0, a0, b0, c0, x2, y2, λ2, a /= m, b /= m, c, depth, stream); - stream.point(x2, y2); - resampleLineTo(x2, y2, λ2, a, b, c, x1, y1, λ1, a1, b1, c1, depth, stream); - } + if(i < proc.post.args.length && proc.post.args[i].lvalue) { + throw new Error("cwise: post() block may not write to array shape") } + } else if(typeof arg_type === "object" && arg_type.offset) { + proc.argTypes[i] = "offset" + proc.offsetArgs.push({ array: arg_type.array, offset:arg_type.offset }) + proc.offsetArgIndex.push(i) + } else { + throw new Error("cwise: Unknown argument type " + proc_args[i]) } - resample.precision = function(_) { - if (!arguments.length) return Math.sqrt(δ2); - maxDepth = (δ2 = _ * _) > 0 && 16; - return resample; - }; - return resample; } - d3.geo.path = function() { - var pointRadius = 4.5, projection, context, projectStream, contextStream, cacheStream; - function path(object) { - if (object) { - if (typeof pointRadius === "function") contextStream.pointRadius(+pointRadius.apply(this, arguments)); - if (!cacheStream || !cacheStream.valid) cacheStream = projectStream(contextStream); - d3.geo.stream(object, cacheStream); - } - return contextStream.result(); - } - path.area = function(object) { - d3_geo_pathAreaSum = 0; - d3.geo.stream(object, projectStream(d3_geo_pathArea)); - return d3_geo_pathAreaSum; - }; - path.centroid = function(object) { - d3_geo_centroidX0 = d3_geo_centroidY0 = d3_geo_centroidZ0 = d3_geo_centroidX1 = d3_geo_centroidY1 = d3_geo_centroidZ1 = d3_geo_centroidX2 = d3_geo_centroidY2 = d3_geo_centroidZ2 = 0; - d3.geo.stream(object, projectStream(d3_geo_pathCentroid)); - return d3_geo_centroidZ2 ? [ d3_geo_centroidX2 / d3_geo_centroidZ2, d3_geo_centroidY2 / d3_geo_centroidZ2 ] : d3_geo_centroidZ1 ? [ d3_geo_centroidX1 / d3_geo_centroidZ1, d3_geo_centroidY1 / d3_geo_centroidZ1 ] : d3_geo_centroidZ0 ? [ d3_geo_centroidX0 / d3_geo_centroidZ0, d3_geo_centroidY0 / d3_geo_centroidZ0 ] : [ NaN, NaN ]; - }; - path.bounds = function(object) { - d3_geo_pathBoundsX1 = d3_geo_pathBoundsY1 = -(d3_geo_pathBoundsX0 = d3_geo_pathBoundsY0 = Infinity); - d3.geo.stream(object, projectStream(d3_geo_pathBounds)); - return [ [ d3_geo_pathBoundsX0, d3_geo_pathBoundsY0 ], [ d3_geo_pathBoundsX1, d3_geo_pathBoundsY1 ] ]; - }; - path.projection = function(_) { - if (!arguments.length) return projection; - projectStream = (projection = _) ? _.stream || d3_geo_pathProjectStream(_) : d3_identity; - return reset(); - }; - path.context = function(_) { - if (!arguments.length) return context; - contextStream = (context = _) == null ? new d3_geo_pathBuffer() : new d3_geo_pathContext(_); - if (typeof pointRadius !== "function") contextStream.pointRadius(pointRadius); - return reset(); - }; - path.pointRadius = function(_) { - if (!arguments.length) return pointRadius; - pointRadius = typeof _ === "function" ? _ : (contextStream.pointRadius(+_), +_); - return path; - }; - function reset() { - cacheStream = null; - return path; - } - return path.projection(d3.geo.albersUsa()).context(null); - }; - function d3_geo_pathProjectStream(project) { - var resample = d3_geo_resample(function(x, y) { - return project([ x * d3_degrees, y * d3_degrees ]); - }); - return function(stream) { - return d3_geo_projectionRadians(resample(stream)); - }; + + //Make sure at least one array argument was specified + if(proc.arrayArgs.length <= 0) { + throw new Error("cwise: No array arguments specified") } - d3.geo.transform = function(methods) { - return { - stream: function(stream) { - var transform = new d3_geo_transform(stream); - for (var k in methods) transform[k] = methods[k]; - return transform; - } - }; - }; - function d3_geo_transform(stream) { - this.stream = stream; + + //Make sure arguments are correct + if(proc.pre.args.length > proc_args.length) { + throw new Error("cwise: Too many arguments in pre() block") } - d3_geo_transform.prototype = { - point: function(x, y) { - this.stream.point(x, y); - }, - sphere: function() { - this.stream.sphere(); - }, - lineStart: function() { - this.stream.lineStart(); - }, - lineEnd: function() { - this.stream.lineEnd(); - }, - polygonStart: function() { - this.stream.polygonStart(); - }, - polygonEnd: function() { - this.stream.polygonEnd(); - } - }; - function d3_geo_transformPoint(stream, point) { - return { - point: point, - sphere: function() { - stream.sphere(); - }, - lineStart: function() { - stream.lineStart(); - }, - lineEnd: function() { - stream.lineEnd(); - }, - polygonStart: function() { - stream.polygonStart(); - }, - polygonEnd: function() { - stream.polygonEnd(); - } - }; + if(proc.body.args.length > proc_args.length) { + throw new Error("cwise: Too many arguments in body() block") } - d3.geo.projection = d3_geo_projection; - d3.geo.projectionMutator = d3_geo_projectionMutator; - function d3_geo_projection(project) { - return d3_geo_projectionMutator(function() { - return project; - })(); + if(proc.post.args.length > proc_args.length) { + throw new Error("cwise: Too many arguments in post() block") } - function d3_geo_projectionMutator(projectAt) { - var project, rotate, projectRotate, projectResample = d3_geo_resample(function(x, y) { - x = project(x, y); - return [ x[0] * k + δx, δy - x[1] * k ]; - }), k = 150, x = 480, y = 250, λ = 0, φ = 0, δλ = 0, δφ = 0, δγ = 0, δx, δy, preclip = d3_geo_clipAntimeridian, postclip = d3_identity, clipAngle = null, clipExtent = null, stream; - function projection(point) { - point = projectRotate(point[0] * d3_radians, point[1] * d3_radians); - return [ point[0] * k + δx, δy - point[1] * k ]; - } - function invert(point) { - point = projectRotate.invert((point[0] - δx) / k, (δy - point[1]) / k); - return point && [ point[0] * d3_degrees, point[1] * d3_degrees ]; + + //Check debug flag + proc.debug = !!user_args.printCode || !!user_args.debug + + //Retrieve name + proc.funcName = user_args.funcName || "cwise" + + //Read in block size + proc.blockSize = user_args.blockSize || 64 + + return createThunk(proc) +} + +module.exports = compileCwise + +},{"./lib/thunk.js":155}],154:[function(_dereq_,module,exports){ +"use strict" + +var uniq = _dereq_("uniq") + +// This function generates very simple loops analogous to how you typically traverse arrays (the outermost loop corresponds to the slowest changing index, the innermost loop to the fastest changing index) +// TODO: If two arrays have the same strides (and offsets) there is potential for decreasing the number of "pointers" and related variables. The drawback is that the type signature would become more specific and that there would thus be less potential for caching, but it might still be worth it, especially when dealing with large numbers of arguments. +function innerFill(order, proc, body) { + var dimension = order.length + , nargs = proc.arrayArgs.length + , has_index = proc.indexArgs.length>0 + , code = [] + , vars = [] + , idx=0, pidx=0, i, j + for(i=0; i 2 ? _[2] % 360 * d3_radians : 0; - return reset(); - }; - d3.rebind(projection, projectResample, "precision"); - function reset() { - projectRotate = d3_geo_compose(rotate = d3_geo_rotation(δλ, δφ, δγ), project); - var center = project(λ, φ); - δx = x - center[0] * k; - δy = y + center[1] * k; - return invalidate(); + } + if (vars.length > 0) { + code.push("var " + vars.join(",")) + } + //Scan loop + for(i=dimension-1; i>=0; --i) { // Start at largest stride and work your way inwards + idx = order[i] + code.push(["for(i",i,"=0;i",i," 0) { + code.push(["index[",pidx,"]-=s",pidx].join("")) + } + code.push(["++index[",idx,"]"].join("")) } - return function() { - project = projectAt.apply(this, arguments); - projection.invert = project.invert && invert; - return reset(); - }; - } - function d3_geo_projectionRadians(stream) { - return d3_geo_transformPoint(stream, function(x, y) { - stream.point(x * d3_radians, y * d3_radians); - }); + code.push("}") } - function d3_geo_equirectangular(λ, φ) { - return [ λ, φ ]; + return code.join("\n") +} + +// Generate "outer" loops that loop over blocks of data, applying "inner" loops to the blocks by manipulating the local variables in such a way that the inner loop only "sees" the current block. +// TODO: If this is used, then the previous declaration (done by generateCwiseOp) of s* is essentially unnecessary. +// I believe the s* are not used elsewhere (in particular, I don't think they're used in the pre/post parts and "shape" is defined independently), so it would be possible to make defining the s* dependent on what loop method is being used. +function outerFill(matched, order, proc, body) { + var dimension = order.length + , nargs = proc.arrayArgs.length + , blockSize = proc.blockSize + , has_index = proc.indexArgs.length > 0 + , code = [] + for(var i=0; i 2 ? rotate[2] * d3_radians : 0); - function forward(coordinates) { - coordinates = rotate(coordinates[0] * d3_radians, coordinates[1] * d3_radians); - return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates; + //Generate loops for unmatched dimensions + // The order in which these dimensions are traversed is fairly arbitrary (from small stride to large stride, for the first argument) + // TODO: It would be nice if the order in which these loops are placed would also be somehow "optimal" (at the very least we should check that it really doesn't hurt us if they're not). + for(var i=matched; i0;){"].join("")) // Iterate back to front + code.push(["if(j",i,"<",blockSize,"){"].join("")) // Either decrease j by blockSize (s = blockSize), or set it to zero (after setting s = j). + code.push(["s",order[i],"=j",i].join("")) + code.push(["j",i,"=0"].join("")) + code.push(["}else{s",order[i],"=",blockSize].join("")) + code.push(["j",i,"-=",blockSize,"}"].join("")) + if(has_index) { + code.push(["index[",order[i],"]=j",i].join("")) } - forward.invert = function(coordinates) { - coordinates = rotate.invert(coordinates[0] * d3_radians, coordinates[1] * d3_radians); - return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates; - }; - return forward; - }; - function d3_geo_identityRotation(λ, φ) { - return [ λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ ]; } - d3_geo_identityRotation.invert = d3_geo_equirectangular; - function d3_geo_rotation(δλ, δφ, δγ) { - return δλ ? δφ || δγ ? d3_geo_compose(d3_geo_rotationλ(δλ), d3_geo_rotationφγ(δφ, δγ)) : d3_geo_rotationλ(δλ) : δφ || δγ ? d3_geo_rotationφγ(δφ, δγ) : d3_geo_identityRotation; - } - function d3_geo_forwardRotationλ(δλ) { - return function(λ, φ) { - return λ += δλ, [ λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ ]; - }; + for(var i=0; i 0 ? from < to : from > to) from += direction * τ; - } else { - from = radius + direction * τ; - to = radius - .5 * step; - } - for (var point, t = from; direction > 0 ? t > to : t < to; t -= step) { - listener.point((point = d3_geo_spherical([ cr, -sr * Math.cos(t), -sr * Math.sin(t) ]))[0], point[1]); - } - }; } - function d3_geo_circleAngle(cr, point) { - var a = d3_geo_cartesian(point); - a[0] -= cr; - d3_geo_cartesianNormalize(a); - var angle = d3_acos(-a[1]); - return ((-a[2] < 0 ? -angle : angle) + 2 * Math.PI - ε) % (2 * Math.PI); - } - d3.geo.distance = function(a, b) { - var Δλ = (b[0] - a[0]) * d3_radians, φ0 = a[1] * d3_radians, φ1 = b[1] * d3_radians, sinΔλ = Math.sin(Δλ), cosΔλ = Math.cos(Δλ), sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), sinφ1 = Math.sin(φ1), cosφ1 = Math.cos(φ1), t; - return Math.atan2(Math.sqrt((t = cosφ1 * sinΔλ) * t + (t = cosφ0 * sinφ1 - sinφ0 * cosφ1 * cosΔλ) * t), sinφ0 * sinφ1 + cosφ0 * cosφ1 * cosΔλ); - }; - d3.geo.graticule = function() { - var x1, x0, X1, X0, y1, y0, Y1, Y0, dx = 10, dy = dx, DX = 90, DY = 360, x, y, X, Y, precision = 2.5; - function graticule() { - return { - type: "MultiLineString", - coordinates: lines() - }; + return [pre.join("\n"), code, post.join("\n")].join("\n").trim() +} + +function typeSummary(dtypes) { + var summary = new Array(dtypes.length) + var allEqual = true + for(var i=0; i ε; - }).map(x)).concat(d3.range(Math.ceil(y0 / dy) * dy, y1, dy).filter(function(y) { - return abs(y % DY) > ε; - }).map(y)); + if(t.charAt(0) === 0) { + summary[i] = "u" + t.charAt(1) + digits + } else { + summary[i] = t.charAt(0) + digits + } + if(i > 0) { + allEqual = allEqual && summary[i] === summary[i-1] } - graticule.lines = function() { - return lines().map(function(coordinates) { - return { - type: "LineString", - coordinates: coordinates - }; - }); - }; - graticule.outline = function() { - return { - type: "Polygon", - coordinates: [ X(X0).concat(Y(Y1).slice(1), X(X1).reverse().slice(1), Y(Y0).reverse().slice(1)) ] - }; - }; - graticule.extent = function(_) { - if (!arguments.length) return graticule.minorExtent(); - return graticule.majorExtent(_).minorExtent(_); - }; - graticule.majorExtent = function(_) { - if (!arguments.length) return [ [ X0, Y0 ], [ X1, Y1 ] ]; - X0 = +_[0][0], X1 = +_[1][0]; - Y0 = +_[0][1], Y1 = +_[1][1]; - if (X0 > X1) _ = X0, X0 = X1, X1 = _; - if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _; - return graticule.precision(precision); - }; - graticule.minorExtent = function(_) { - if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ]; - x0 = +_[0][0], x1 = +_[1][0]; - y0 = +_[0][1], y1 = +_[1][1]; - if (x0 > x1) _ = x0, x0 = x1, x1 = _; - if (y0 > y1) _ = y0, y0 = y1, y1 = _; - return graticule.precision(precision); - }; - graticule.step = function(_) { - if (!arguments.length) return graticule.minorStep(); - return graticule.majorStep(_).minorStep(_); - }; - graticule.majorStep = function(_) { - if (!arguments.length) return [ DX, DY ]; - DX = +_[0], DY = +_[1]; - return graticule; - }; - graticule.minorStep = function(_) { - if (!arguments.length) return [ dx, dy ]; - dx = +_[0], dy = +_[1]; - return graticule; - }; - graticule.precision = function(_) { - if (!arguments.length) return precision; - precision = +_; - x = d3_geo_graticuleX(y0, y1, 90); - y = d3_geo_graticuleY(x0, x1, precision); - X = d3_geo_graticuleX(Y0, Y1, 90); - Y = d3_geo_graticuleY(X0, X1, precision); - return graticule; - }; - return graticule.majorExtent([ [ -180, -90 + ε ], [ 180, 90 - ε ] ]).minorExtent([ [ -180, -80 - ε ], [ 180, 80 + ε ] ]); - }; - function d3_geo_graticuleX(y0, y1, dy) { - var y = d3.range(y0, y1 - ε, dy).concat(y1); - return function(x) { - return y.map(function(y) { - return [ x, y ]; - }); - }; - } - function d3_geo_graticuleY(x0, x1, dx) { - var x = d3.range(x0, x1 - ε, dx).concat(x1); - return function(y) { - return x.map(function(x) { - return [ x, y ]; - }); - }; } - function d3_source(d) { - return d.source; + if(allEqual) { + return summary[0] } - function d3_target(d) { - return d.target; + return summary.join("") +} + +//Generates a cwise operator +function generateCWiseOp(proc, typesig) { + + //Compute dimension + // Arrays get put first in typesig, and there are two entries per array (dtype and order), so this gets the number of dimensions in the first array arg. + var dimension = (typesig[1].length - Math.abs(proc.arrayBlockIndices[0]))|0 + var orders = new Array(proc.arrayArgs.length) + var dtypes = new Array(proc.arrayArgs.length) + for(var i=0; i 0) { + vars.push("shape=SS.slice(0)") // Makes the shape over which we iterate available to the user defined functions (so you can use width/height for example) + } + if(proc.indexArgs.length > 0) { + // Prepare an array to keep track of the (logical) indices, initialized to dimension zeroes. + var zeros = new Array(dimension) + for(var i=0; i 0) { - if (φ < -halfπ + ε) φ = -halfπ + ε; + for(var i=0; i halfπ - ε) φ = halfπ - ε; + init_string.push([off_arg.offset[j], "*t", off_arg.array, "p", j].join("")) } - var ρ = F / Math.pow(t(φ), n); - return [ ρ * Math.sin(n * λ), F - ρ * Math.cos(n * λ) ]; } - forward.invert = function(x, y) { - var ρ0_y = F - y, ρ = d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y); - return [ Math.atan2(x, ρ0_y) / n, 2 * Math.atan(Math.pow(F / ρ, 1 / n)) - halfπ ]; - }; - return forward; - } - (d3.geo.conicConformal = function() { - return d3_geo_conic(d3_geo_conicConformal); - }).raw = d3_geo_conicConformal; - function d3_geo_conicEquidistant(φ0, φ1) { - var cosφ0 = Math.cos(φ0), n = φ0 === φ1 ? Math.sin(φ0) : (cosφ0 - Math.cos(φ1)) / (φ1 - φ0), G = cosφ0 / n + φ0; - if (abs(n) < ε) return d3_geo_equirectangular; - function forward(λ, φ) { - var ρ = G - φ; - return [ ρ * Math.sin(n * λ), G - ρ * Math.cos(n * λ) ]; + if(init_string.length === 0) { + vars.push("q" + i + "=0") + } else { + vars.push(["q", i, "=", init_string.join("+")].join("")) } - forward.invert = function(x, y) { - var ρ0_y = G - y; - return [ Math.atan2(x, ρ0_y) / n, G - d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y) ]; - }; - return forward; } - (d3.geo.conicEquidistant = function() { - return d3_geo_conic(d3_geo_conicEquidistant); - }).raw = d3_geo_conicEquidistant; - var d3_geo_gnomonic = d3_geo_azimuthal(function(cosλcosφ) { - return 1 / cosλcosφ; - }, Math.atan); - (d3.geo.gnomonic = function() { - return d3_geo_projection(d3_geo_gnomonic); - }).raw = d3_geo_gnomonic; - function d3_geo_mercator(λ, φ) { - return [ λ, Math.log(Math.tan(π / 4 + φ / 2)) ]; + + //Prepare this variables + var thisVars = uniq([].concat(proc.pre.thisVars) + .concat(proc.body.thisVars) + .concat(proc.post.thisVars)) + vars = vars.concat(thisVars) + if (vars.length > 0) { + code.push("var " + vars.join(",")) } - d3_geo_mercator.invert = function(x, y) { - return [ x, 2 * Math.atan(Math.exp(y)) - halfπ ]; - }; - function d3_geo_mercatorProjection(project) { - var m = d3_geo_projection(project), scale = m.scale, translate = m.translate, clipExtent = m.clipExtent, clipAuto; - m.scale = function() { - var v = scale.apply(m, arguments); - return v === m ? clipAuto ? m.clipExtent(null) : m : v; - }; - m.translate = function() { - var v = translate.apply(m, arguments); - return v === m ? clipAuto ? m.clipExtent(null) : m : v; - }; - m.clipExtent = function(_) { - var v = clipExtent.apply(m, arguments); - if (v === m) { - if (clipAuto = _ == null) { - var k = π * scale(), t = translate(); - clipExtent([ [ t[0] - k, t[1] - k ], [ t[0] + k, t[1] + k ] ]); - } - } else if (clipAuto) { - v = null; - } - return v; - }; - return m.clipExtent(null); + for(var i=0; i 3) { + code.push(processBlock(proc.pre, proc, dtypes)) } - d3_geo_transverseMercator.invert = function(x, y) { - return [ -y, 2 * Math.atan(Math.exp(x)) - halfπ ]; - }; - (d3.geo.transverseMercator = function() { - var projection = d3_geo_mercatorProjection(d3_geo_transverseMercator), center = projection.center, rotate = projection.rotate; - projection.center = function(_) { - return _ ? center([ -_[1], _[0] ]) : (_ = center(), [ _[1], -_[0] ]); - }; - projection.rotate = function(_) { - return _ ? rotate([ _[0], _[1], _.length > 2 ? _[2] + 90 : 90 ]) : (_ = rotate(), - [ _[0], _[1], _[2] - 90 ]); - }; - return rotate([ 0, 0, 90 ]); - }).raw = d3_geo_transverseMercator; - d3.geom = {}; - function d3_geom_pointX(d) { - return d[0]; + + //Process body + var body = processBlock(proc.body, proc, dtypes) + var matched = countMatches(loopOrders) + if(matched < dimension) { + code.push(outerFill(matched, loopOrders[0], proc, body)) // TODO: Rather than passing loopOrders[0], it might be interesting to look at passing an order that represents the majority of the arguments for example. + } else { + code.push(innerFill(loopOrders[0], proc, body)) } - function d3_geom_pointY(d) { - return d[1]; + + //Inline epilog + if(proc.post.body.length > 3) { + code.push(processBlock(proc.post, proc, dtypes)) } - d3.geom.hull = function(vertices) { - var x = d3_geom_pointX, y = d3_geom_pointY; - if (arguments.length) return hull(vertices); - function hull(data) { - if (data.length < 3) return []; - var fx = d3_functor(x), fy = d3_functor(y), i, n = data.length, points = [], flippedPoints = []; - for (i = 0; i < n; i++) { - points.push([ +fx.call(this, data[i], i), +fy.call(this, data[i], i), i ]); + + if(proc.debug) { + console.log("-----Generated cwise routine for ", typesig, ":\n" + code.join("\n") + "\n----------") + } + + var loopName = [(proc.funcName||"unnamed"), "_cwise_loop_", orders[0].join("s"),"m",matched,typeSummary(dtypes)].join("") + var f = new Function(["function ",loopName,"(", arglist.join(","),"){", code.join("\n"),"} return ", loopName].join("")) + return f() +} +module.exports = generateCWiseOp + +},{"uniq":613}],155:[function(_dereq_,module,exports){ +"use strict" + +// The function below is called when constructing a cwise function object, and does the following: +// A function object is constructed which accepts as argument a compilation function and returns another function. +// It is this other function that is eventually returned by createThunk, and this function is the one that actually +// checks whether a certain pattern of arguments has already been used before and compiles new loops as needed. +// The compilation passed to the first function object is used for compiling new functions. +// Once this function object is created, it is called with compile as argument, where the first argument of compile +// is bound to "proc" (essentially containing a preprocessed version of the user arguments to cwise). +// So createThunk roughly works like this: +// function createThunk(proc) { +// var thunk = function(compileBound) { +// var CACHED = {} +// return function(arrays and scalars) { +// if (dtype and order of arrays in CACHED) { +// var func = CACHED[dtype and order of arrays] +// } else { +// var func = CACHED[dtype and order of arrays] = compileBound(dtype and order of arrays) +// } +// return func(arrays and scalars) +// } +// } +// return thunk(compile.bind1(proc)) +// } + +var compile = _dereq_("./compile.js") + +function createThunk(proc) { + var code = ["'use strict'", "var CACHED={}"] + var vars = [] + var thunkName = proc.funcName + "_cwise_thunk" + + //Build thunk + code.push(["return function ", thunkName, "(", proc.shimArgs.join(","), "){"].join("")) + var typesig = [] + var string_typesig = [] + var proc_args = [["array",proc.arrayArgs[0],".shape.slice(", // Slice shape so that we only retain the shape over which we iterate (which gets passed to the cwise operator as SS). + Math.max(0,proc.arrayBlockIndices[0]),proc.arrayBlockIndices[0]<0?(","+proc.arrayBlockIndices[0]+")"):")"].join("")] + var shapeLengthConditions = [], shapeConditions = [] + // Process array arguments + for(var i=0; i0) { // Gather conditions to check for shape equality (ignoring block indices) + shapeLengthConditions.push("array" + proc.arrayArgs[0] + ".shape.length===array" + j + ".shape.length+" + (Math.abs(proc.arrayBlockIndices[0])-Math.abs(proc.arrayBlockIndices[i]))) + shapeConditions.push("array" + proc.arrayArgs[0] + ".shape[shapeIndex+" + Math.max(0,proc.arrayBlockIndices[0]) + "]===array" + j + ".shape[shapeIndex+" + Math.max(0,proc.arrayBlockIndices[i]) + "]") + } + } + // Check for shape equality + if (proc.arrayArgs.length > 1) { + code.push("if (!(" + shapeLengthConditions.join(" && ") + ")) throw new Error('cwise: Arrays do not all have the same dimensionality!')") + code.push("for(var shapeIndex=array" + proc.arrayArgs[0] + ".shape.length-" + Math.abs(proc.arrayBlockIndices[0]) + "; shapeIndex-->0;) {") + code.push("if (!(" + shapeConditions.join(" && ") + ")) throw new Error('cwise: Arrays do not all have the same shape!')") + code.push("}") + } + // Process scalar arguments + for(var i=0; i b ? 1 : a >= b ? 0 : NaN; +} + +function bisector(compare) { + if (compare.length === 1) compare = ascendingComparator(compare); + return { + left: function(a, x, lo, hi) { + if (lo == null) lo = 0; + if (hi == null) hi = a.length; + while (lo < hi) { + var mid = lo + hi >>> 1; + if (compare(a[mid], x) < 0) lo = mid + 1; + else hi = mid; } - points.sort(d3_geom_hullOrder); - for (i = 0; i < n; i++) flippedPoints.push([ points[i][0], -points[i][1] ]); - var upper = d3_geom_hullUpper(points), lower = d3_geom_hullUpper(flippedPoints); - var skipLeft = lower[0] === upper[0], skipRight = lower[lower.length - 1] === upper[upper.length - 1], polygon = []; - for (i = upper.length - 1; i >= 0; --i) polygon.push(data[points[upper[i]][2]]); - for (i = +skipLeft; i < lower.length - skipRight; ++i) polygon.push(data[points[lower[i]][2]]); - return polygon; + return lo; + }, + right: function(a, x, lo, hi) { + if (lo == null) lo = 0; + if (hi == null) hi = a.length; + while (lo < hi) { + var mid = lo + hi >>> 1; + if (compare(a[mid], x) > 0) hi = mid; + else lo = mid + 1; + } + return lo; } - hull.x = function(_) { - return arguments.length ? (x = _, hull) : x; - }; - hull.y = function(_) { - return arguments.length ? (y = _, hull) : y; - }; - return hull; }; - function d3_geom_hullUpper(points) { - var n = points.length, hull = [ 0, 1 ], hs = 2; - for (var i = 2; i < n; i++) { - while (hs > 1 && d3_cross2d(points[hull[hs - 2]], points[hull[hs - 1]], points[i]) <= 0) --hs; - hull[hs++] = i; +} + +function ascendingComparator(f) { + return function(d, x) { + return ascending(f(d), x); + }; +} + +var ascendingBisect = bisector(ascending); +var bisectRight = ascendingBisect.right; +var bisectLeft = ascendingBisect.left; + +function pairs(array, f) { + if (f == null) f = pair; + var i = 0, n = array.length - 1, p = array[0], pairs = new Array(n < 0 ? 0 : n); + while (i < n) pairs[i] = f(p, p = array[++i]); + return pairs; +} + +function pair(a, b) { + return [a, b]; +} + +function cross(values0, values1, reduce) { + var n0 = values0.length, + n1 = values1.length, + values = new Array(n0 * n1), + i0, + i1, + i, + value0; + + if (reduce == null) reduce = pair; + + for (i0 = i = 0; i0 < n0; ++i0) { + for (value0 = values0[i0], i1 = 0; i1 < n1; ++i1, ++i) { + values[i] = reduce(value0, values1[i1]); } - return hull.slice(0, hs); - } - function d3_geom_hullOrder(a, b) { - return a[0] - b[0] || a[1] - b[1]; } - d3.geom.polygon = function(coordinates) { - d3_subclass(coordinates, d3_geom_polygonPrototype); - return coordinates; - }; - var d3_geom_polygonPrototype = d3.geom.polygon.prototype = []; - d3_geom_polygonPrototype.area = function() { - var i = -1, n = this.length, a, b = this[n - 1], area = 0; + + return values; +} + +function descending(a, b) { + return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN; +} + +function number(x) { + return x === null ? NaN : +x; +} + +function variance(values, valueof) { + var n = values.length, + m = 0, + i = -1, + mean = 0, + value, + delta, + sum = 0; + + if (valueof == null) { while (++i < n) { - a = b; - b = this[i]; - area += a[1] * b[0] - a[0] * b[1]; + if (!isNaN(value = number(values[i]))) { + delta = value - mean; + mean += delta / ++m; + sum += delta * (value - mean); + } } - return area * .5; - }; - d3_geom_polygonPrototype.centroid = function(k) { - var i = -1, n = this.length, x = 0, y = 0, a, b = this[n - 1], c; - if (!arguments.length) k = -1 / (6 * this.area()); + } + + else { while (++i < n) { - a = b; - b = this[i]; - c = a[0] * b[1] - b[0] * a[1]; - x += (a[0] + b[0]) * c; - y += (a[1] + b[1]) * c; + if (!isNaN(value = number(valueof(values[i], i, values)))) { + delta = value - mean; + mean += delta / ++m; + sum += delta * (value - mean); + } } - return [ x * k, y * k ]; - }; - d3_geom_polygonPrototype.clip = function(subject) { - var input, closed = d3_geom_polygonClosed(subject), i = -1, n = this.length - d3_geom_polygonClosed(this), j, m, a = this[n - 1], b, c, d; - while (++i < n) { - input = subject.slice(); - subject.length = 0; - b = this[i]; - c = input[(m = input.length - closed) - 1]; - j = -1; - while (++j < m) { - d = input[j]; - if (d3_geom_polygonInside(d, a, b)) { - if (!d3_geom_polygonInside(c, a, b)) { - subject.push(d3_geom_polygonIntersect(c, d, a, b)); + } + + if (m > 1) return sum / (m - 1); +} + +function deviation(array, f) { + var v = variance(array, f); + return v ? Math.sqrt(v) : v; +} + +function extent(values, valueof) { + var n = values.length, + i = -1, + value, + min, + max; + + if (valueof == null) { + while (++i < n) { // Find the first comparable value. + if ((value = values[i]) != null && value >= value) { + min = max = value; + while (++i < n) { // Compare the remaining values. + if ((value = values[i]) != null) { + if (min > value) min = value; + if (max < value) max = value; } - subject.push(d); - } else if (d3_geom_polygonInside(c, a, b)) { - subject.push(d3_geom_polygonIntersect(c, d, a, b)); } - c = d; } - if (closed) subject.push(subject[0]); - a = b; } - return subject; - }; - function d3_geom_polygonInside(p, a, b) { - return (b[0] - a[0]) * (p[1] - a[1]) < (b[1] - a[1]) * (p[0] - a[0]); - } - function d3_geom_polygonIntersect(c, d, a, b) { - var x1 = c[0], x3 = a[0], x21 = d[0] - x1, x43 = b[0] - x3, y1 = c[1], y3 = a[1], y21 = d[1] - y1, y43 = b[1] - y3, ua = (x43 * (y1 - y3) - y43 * (x1 - x3)) / (y43 * x21 - x43 * y21); - return [ x1 + ua * x21, y1 + ua * y21 ]; - } - function d3_geom_polygonClosed(coordinates) { - var a = coordinates[0], b = coordinates[coordinates.length - 1]; - return !(a[0] - b[0] || a[1] - b[1]); } - var d3_geom_voronoiEdges, d3_geom_voronoiCells, d3_geom_voronoiBeaches, d3_geom_voronoiBeachPool = [], d3_geom_voronoiFirstCircle, d3_geom_voronoiCircles, d3_geom_voronoiCirclePool = []; - function d3_geom_voronoiBeach() { - d3_geom_voronoiRedBlackNode(this); - this.edge = this.site = this.circle = null; + + else { + while (++i < n) { // Find the first comparable value. + if ((value = valueof(values[i], i, values)) != null && value >= value) { + min = max = value; + while (++i < n) { // Compare the remaining values. + if ((value = valueof(values[i], i, values)) != null) { + if (min > value) min = value; + if (max < value) max = value; + } + } + } + } } - function d3_geom_voronoiCreateBeach(site) { - var beach = d3_geom_voronoiBeachPool.pop() || new d3_geom_voronoiBeach(); - beach.site = site; - return beach; + + return [min, max]; +} + +var array = Array.prototype; + +var slice = array.slice; +var map = array.map; + +function constant(x) { + return function() { + return x; + }; +} + +function identity(x) { + return x; +} + +function range(start, stop, step) { + start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step; + + var i = -1, + n = Math.max(0, Math.ceil((stop - start) / step)) | 0, + range = new Array(n); + + while (++i < n) { + range[i] = start + i * step; } - function d3_geom_voronoiDetachBeach(beach) { - d3_geom_voronoiDetachCircle(beach); - d3_geom_voronoiBeaches.remove(beach); - d3_geom_voronoiBeachPool.push(beach); - d3_geom_voronoiRedBlackNode(beach); + + return range; +} + +var e10 = Math.sqrt(50), + e5 = Math.sqrt(10), + e2 = Math.sqrt(2); + +function ticks(start, stop, count) { + var reverse, + i = -1, + n, + ticks, + step; + + stop = +stop, start = +start, count = +count; + if (start === stop && count > 0) return [start]; + if (reverse = stop < start) n = start, start = stop, stop = n; + if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return []; + + if (step > 0) { + start = Math.ceil(start / step); + stop = Math.floor(stop / step); + ticks = new Array(n = Math.ceil(stop - start + 1)); + while (++i < n) ticks[i] = (start + i) * step; + } else { + start = Math.floor(start * step); + stop = Math.ceil(stop * step); + ticks = new Array(n = Math.ceil(start - stop + 1)); + while (++i < n) ticks[i] = (start - i) / step; } - function d3_geom_voronoiRemoveBeach(beach) { - var circle = beach.circle, x = circle.x, y = circle.cy, vertex = { - x: x, - y: y - }, previous = beach.P, next = beach.N, disappearing = [ beach ]; - d3_geom_voronoiDetachBeach(beach); - var lArc = previous; - while (lArc.circle && abs(x - lArc.circle.x) < ε && abs(y - lArc.circle.cy) < ε) { - previous = lArc.P; - disappearing.unshift(lArc); - d3_geom_voronoiDetachBeach(lArc); - lArc = previous; + + if (reverse) ticks.reverse(); + + return ticks; +} + +function tickIncrement(start, stop, count) { + var step = (stop - start) / Math.max(0, count), + power = Math.floor(Math.log(step) / Math.LN10), + error = step / Math.pow(10, power); + return power >= 0 + ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power) + : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1); +} + +function tickStep(start, stop, count) { + var step0 = Math.abs(stop - start) / Math.max(0, count), + step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)), + error = step0 / step1; + if (error >= e10) step1 *= 10; + else if (error >= e5) step1 *= 5; + else if (error >= e2) step1 *= 2; + return stop < start ? -step1 : step1; +} + +function sturges(values) { + return Math.ceil(Math.log(values.length) / Math.LN2) + 1; +} + +function histogram() { + var value = identity, + domain = extent, + threshold = sturges; + + function histogram(data) { + var i, + n = data.length, + x, + values = new Array(n); + + for (i = 0; i < n; ++i) { + values[i] = value(data[i], i, data); } - disappearing.unshift(lArc); - d3_geom_voronoiDetachCircle(lArc); - var rArc = next; - while (rArc.circle && abs(x - rArc.circle.x) < ε && abs(y - rArc.circle.cy) < ε) { - next = rArc.N; - disappearing.push(rArc); - d3_geom_voronoiDetachBeach(rArc); - rArc = next; + + var xz = domain(values), + x0 = xz[0], + x1 = xz[1], + tz = threshold(values, x0, x1); + + // Convert number of thresholds into uniform thresholds. + if (!Array.isArray(tz)) { + tz = tickStep(x0, x1, tz); + tz = range(Math.ceil(x0 / tz) * tz, x1, tz); // exclusive } - disappearing.push(rArc); - d3_geom_voronoiDetachCircle(rArc); - var nArcs = disappearing.length, iArc; - for (iArc = 1; iArc < nArcs; ++iArc) { - rArc = disappearing[iArc]; - lArc = disappearing[iArc - 1]; - d3_geom_voronoiSetEdgeEnd(rArc.edge, lArc.site, rArc.site, vertex); + + // Remove any thresholds outside the domain. + var m = tz.length; + while (tz[0] <= x0) tz.shift(), --m; + while (tz[m - 1] > x1) tz.pop(), --m; + + var bins = new Array(m + 1), + bin; + + // Initialize bins. + for (i = 0; i <= m; ++i) { + bin = bins[i] = []; + bin.x0 = i > 0 ? tz[i - 1] : x0; + bin.x1 = i < m ? tz[i] : x1; } - lArc = disappearing[0]; - rArc = disappearing[nArcs - 1]; - rArc.edge = d3_geom_voronoiCreateEdge(lArc.site, rArc.site, null, vertex); - d3_geom_voronoiAttachCircle(lArc); - d3_geom_voronoiAttachCircle(rArc); + + // Assign data to bins by value, ignoring any outside the domain. + for (i = 0; i < n; ++i) { + x = values[i]; + if (x0 <= x && x <= x1) { + bins[bisectRight(tz, x, 0, m)].push(data[i]); + } + } + + return bins; } - function d3_geom_voronoiAddBeach(site) { - var x = site.x, directrix = site.y, lArc, rArc, dxl, dxr, node = d3_geom_voronoiBeaches._; - while (node) { - dxl = d3_geom_voronoiLeftBreakPoint(node, directrix) - x; - if (dxl > ε) node = node.L; else { - dxr = x - d3_geom_voronoiRightBreakPoint(node, directrix); - if (dxr > ε) { - if (!node.R) { - lArc = node; - break; - } - node = node.R; - } else { - if (dxl > -ε) { - lArc = node.P; - rArc = node; - } else if (dxr > -ε) { - lArc = node; - rArc = node.N; - } else { - lArc = rArc = node; + + histogram.value = function(_) { + return arguments.length ? (value = typeof _ === "function" ? _ : constant(_), histogram) : value; + }; + + histogram.domain = function(_) { + return arguments.length ? (domain = typeof _ === "function" ? _ : constant([_[0], _[1]]), histogram) : domain; + }; + + histogram.thresholds = function(_) { + return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), histogram) : threshold; + }; + + return histogram; +} + +function quantile(values, p, valueof) { + if (valueof == null) valueof = number; + if (!(n = values.length)) return; + if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values); + if (p >= 1) return +valueof(values[n - 1], n - 1, values); + var n, + i = (n - 1) * p, + i0 = Math.floor(i), + value0 = +valueof(values[i0], i0, values), + value1 = +valueof(values[i0 + 1], i0 + 1, values); + return value0 + (value1 - value0) * (i - i0); +} + +function freedmanDiaconis(values, min, max) { + values = map.call(values, number).sort(ascending); + return Math.ceil((max - min) / (2 * (quantile(values, 0.75) - quantile(values, 0.25)) * Math.pow(values.length, -1 / 3))); +} + +function scott(values, min, max) { + return Math.ceil((max - min) / (3.5 * deviation(values) * Math.pow(values.length, -1 / 3))); +} + +function max(values, valueof) { + var n = values.length, + i = -1, + value, + max; + + if (valueof == null) { + while (++i < n) { // Find the first comparable value. + if ((value = values[i]) != null && value >= value) { + max = value; + while (++i < n) { // Compare the remaining values. + if ((value = values[i]) != null && value > max) { + max = value; } - break; } } } - var newArc = d3_geom_voronoiCreateBeach(site); - d3_geom_voronoiBeaches.insert(lArc, newArc); - if (!lArc && !rArc) return; - if (lArc === rArc) { - d3_geom_voronoiDetachCircle(lArc); - rArc = d3_geom_voronoiCreateBeach(lArc.site); - d3_geom_voronoiBeaches.insert(newArc, rArc); - newArc.edge = rArc.edge = d3_geom_voronoiCreateEdge(lArc.site, newArc.site); - d3_geom_voronoiAttachCircle(lArc); - d3_geom_voronoiAttachCircle(rArc); - return; - } - if (!rArc) { - newArc.edge = d3_geom_voronoiCreateEdge(lArc.site, newArc.site); - return; - } - d3_geom_voronoiDetachCircle(lArc); - d3_geom_voronoiDetachCircle(rArc); - var lSite = lArc.site, ax = lSite.x, ay = lSite.y, bx = site.x - ax, by = site.y - ay, rSite = rArc.site, cx = rSite.x - ax, cy = rSite.y - ay, d = 2 * (bx * cy - by * cx), hb = bx * bx + by * by, hc = cx * cx + cy * cy, vertex = { - x: (cy * hb - by * hc) / d + ax, - y: (bx * hc - cx * hb) / d + ay - }; - d3_geom_voronoiSetEdgeEnd(rArc.edge, lSite, rSite, vertex); - newArc.edge = d3_geom_voronoiCreateEdge(lSite, site, null, vertex); - rArc.edge = d3_geom_voronoiCreateEdge(site, rSite, null, vertex); - d3_geom_voronoiAttachCircle(lArc); - d3_geom_voronoiAttachCircle(rArc); - } - function d3_geom_voronoiLeftBreakPoint(arc, directrix) { - var site = arc.site, rfocx = site.x, rfocy = site.y, pby2 = rfocy - directrix; - if (!pby2) return rfocx; - var lArc = arc.P; - if (!lArc) return -Infinity; - site = lArc.site; - var lfocx = site.x, lfocy = site.y, plby2 = lfocy - directrix; - if (!plby2) return lfocx; - var hl = lfocx - rfocx, aby2 = 1 / pby2 - 1 / plby2, b = hl / plby2; - if (aby2) return (-b + Math.sqrt(b * b - 2 * aby2 * (hl * hl / (-2 * plby2) - lfocy + plby2 / 2 + rfocy - pby2 / 2))) / aby2 + rfocx; - return (rfocx + lfocx) / 2; } - function d3_geom_voronoiRightBreakPoint(arc, directrix) { - var rArc = arc.N; - if (rArc) return d3_geom_voronoiLeftBreakPoint(rArc, directrix); - var site = arc.site; - return site.y === directrix ? site.x : Infinity; + + else { + while (++i < n) { // Find the first comparable value. + if ((value = valueof(values[i], i, values)) != null && value >= value) { + max = value; + while (++i < n) { // Compare the remaining values. + if ((value = valueof(values[i], i, values)) != null && value > max) { + max = value; + } + } + } + } } - function d3_geom_voronoiCell(site) { - this.site = site; - this.edges = []; + + return max; +} + +function mean(values, valueof) { + var n = values.length, + m = n, + i = -1, + value, + sum = 0; + + if (valueof == null) { + while (++i < n) { + if (!isNaN(value = number(values[i]))) sum += value; + else --m; + } } - d3_geom_voronoiCell.prototype.prepare = function() { - var halfEdges = this.edges, iHalfEdge = halfEdges.length, edge; - while (iHalfEdge--) { - edge = halfEdges[iHalfEdge].edge; - if (!edge.b || !edge.a) halfEdges.splice(iHalfEdge, 1); + + else { + while (++i < n) { + if (!isNaN(value = number(valueof(values[i], i, values)))) sum += value; + else --m; } - halfEdges.sort(d3_geom_voronoiHalfEdgeOrder); - return halfEdges.length; - }; - function d3_geom_voronoiCloseCells(extent) { - var x0 = extent[0][0], x1 = extent[1][0], y0 = extent[0][1], y1 = extent[1][1], x2, y2, x3, y3, cells = d3_geom_voronoiCells, iCell = cells.length, cell, iHalfEdge, halfEdges, nHalfEdges, start, end; - while (iCell--) { - cell = cells[iCell]; - if (!cell || !cell.prepare()) continue; - halfEdges = cell.edges; - nHalfEdges = halfEdges.length; - iHalfEdge = 0; - while (iHalfEdge < nHalfEdges) { - end = halfEdges[iHalfEdge].end(), x3 = end.x, y3 = end.y; - start = halfEdges[++iHalfEdge % nHalfEdges].start(), x2 = start.x, y2 = start.y; - if (abs(x3 - x2) > ε || abs(y3 - y2) > ε) { - halfEdges.splice(iHalfEdge, 0, new d3_geom_voronoiHalfEdge(d3_geom_voronoiCreateBorderEdge(cell.site, end, abs(x3 - x0) < ε && y1 - y3 > ε ? { - x: x0, - y: abs(x2 - x0) < ε ? y2 : y1 - } : abs(y3 - y1) < ε && x1 - x3 > ε ? { - x: abs(y2 - y1) < ε ? x2 : x1, - y: y1 - } : abs(x3 - x1) < ε && y3 - y0 > ε ? { - x: x1, - y: abs(x2 - x1) < ε ? y2 : y0 - } : abs(y3 - y0) < ε && x3 - x0 > ε ? { - x: abs(y2 - y0) < ε ? x2 : x0, - y: y0 - } : null), cell.site, null)); - ++nHalfEdges; - } + } + + if (m) return sum / m; +} + +function median(values, valueof) { + var n = values.length, + i = -1, + value, + numbers = []; + + if (valueof == null) { + while (++i < n) { + if (!isNaN(value = number(values[i]))) { + numbers.push(value); } } } - function d3_geom_voronoiHalfEdgeOrder(a, b) { - return b.angle - a.angle; + + else { + while (++i < n) { + if (!isNaN(value = number(valueof(values[i], i, values)))) { + numbers.push(value); + } + } } - function d3_geom_voronoiCircle() { - d3_geom_voronoiRedBlackNode(this); - this.x = this.y = this.arc = this.site = this.cy = null; + + return quantile(numbers.sort(ascending), 0.5); +} + +function merge(arrays) { + var n = arrays.length, + m, + i = -1, + j = 0, + merged, + array; + + while (++i < n) j += arrays[i].length; + merged = new Array(j); + + while (--n >= 0) { + array = arrays[n]; + m = array.length; + while (--m >= 0) { + merged[--j] = array[m]; + } } - function d3_geom_voronoiAttachCircle(arc) { - var lArc = arc.P, rArc = arc.N; - if (!lArc || !rArc) return; - var lSite = lArc.site, cSite = arc.site, rSite = rArc.site; - if (lSite === rSite) return; - var bx = cSite.x, by = cSite.y, ax = lSite.x - bx, ay = lSite.y - by, cx = rSite.x - bx, cy = rSite.y - by; - var d = 2 * (ax * cy - ay * cx); - if (d >= -ε2) return; - var ha = ax * ax + ay * ay, hc = cx * cx + cy * cy, x = (cy * ha - ay * hc) / d, y = (ax * hc - cx * ha) / d, cy = y + by; - var circle = d3_geom_voronoiCirclePool.pop() || new d3_geom_voronoiCircle(); - circle.arc = arc; - circle.site = cSite; - circle.x = x + bx; - circle.y = cy + Math.sqrt(x * x + y * y); - circle.cy = cy; - arc.circle = circle; - var before = null, node = d3_geom_voronoiCircles._; - while (node) { - if (circle.y < node.y || circle.y === node.y && circle.x <= node.x) { - if (node.L) node = node.L; else { - before = node.P; - break; + + return merged; +} + +function min(values, valueof) { + var n = values.length, + i = -1, + value, + min; + + if (valueof == null) { + while (++i < n) { // Find the first comparable value. + if ((value = values[i]) != null && value >= value) { + min = value; + while (++i < n) { // Compare the remaining values. + if ((value = values[i]) != null && min > value) { + min = value; + } } - } else { - if (node.R) node = node.R; else { - before = node; - break; + } + } + } + + else { + while (++i < n) { // Find the first comparable value. + if ((value = valueof(values[i], i, values)) != null && value >= value) { + min = value; + while (++i < n) { // Compare the remaining values. + if ((value = valueof(values[i], i, values)) != null && min > value) { + min = value; + } } } } - d3_geom_voronoiCircles.insert(before, circle); - if (!before) d3_geom_voronoiFirstCircle = circle; } - function d3_geom_voronoiDetachCircle(arc) { - var circle = arc.circle; - if (circle) { - if (!circle.P) d3_geom_voronoiFirstCircle = circle.N; - d3_geom_voronoiCircles.remove(circle); - d3_geom_voronoiCirclePool.push(circle); - d3_geom_voronoiRedBlackNode(circle); - arc.circle = null; + + return min; +} + +function permute(array, indexes) { + var i = indexes.length, permutes = new Array(i); + while (i--) permutes[i] = array[indexes[i]]; + return permutes; +} + +function scan(values, compare) { + if (!(n = values.length)) return; + var n, + i = 0, + j = 0, + xi, + xj = values[j]; + + if (compare == null) compare = ascending; + + while (++i < n) { + if (compare(xi = values[i], xj) < 0 || compare(xj, xj) !== 0) { + xj = xi, j = i; } } - function d3_geom_voronoiClipEdges(extent) { - var edges = d3_geom_voronoiEdges, clip = d3_geom_clipLine(extent[0][0], extent[0][1], extent[1][0], extent[1][1]), i = edges.length, e; - while (i--) { - e = edges[i]; - if (!d3_geom_voronoiConnectEdge(e, extent) || !clip(e) || abs(e.a.x - e.b.x) < ε && abs(e.a.y - e.b.y) < ε) { - e.a = e.b = null; - edges.splice(i, 1); - } + + if (compare(xj, xj) === 0) return j; +} + +function shuffle(array, i0, i1) { + var m = (i1 == null ? array.length : i1) - (i0 = i0 == null ? 0 : +i0), + t, + i; + + while (m) { + i = Math.random() * m-- | 0; + t = array[m + i0]; + array[m + i0] = array[i + i0]; + array[i + i0] = t; + } + + return array; +} + +function sum(values, valueof) { + var n = values.length, + i = -1, + value, + sum = 0; + + if (valueof == null) { + while (++i < n) { + if (value = +values[i]) sum += value; // Note: zero and null are equivalent. } } - function d3_geom_voronoiConnectEdge(edge, extent) { - var vb = edge.b; - if (vb) return true; - var va = edge.a, x0 = extent[0][0], x1 = extent[1][0], y0 = extent[0][1], y1 = extent[1][1], lSite = edge.l, rSite = edge.r, lx = lSite.x, ly = lSite.y, rx = rSite.x, ry = rSite.y, fx = (lx + rx) / 2, fy = (ly + ry) / 2, fm, fb; - if (ry === ly) { - if (fx < x0 || fx >= x1) return; - if (lx > rx) { - if (!va) va = { - x: fx, - y: y0 - }; else if (va.y >= y1) return; - vb = { - x: fx, - y: y1 - }; - } else { - if (!va) va = { - x: fx, - y: y1 - }; else if (va.y < y0) return; - vb = { - x: fx, - y: y0 - }; - } - } else { - fm = (lx - rx) / (ry - ly); - fb = fy - fm * fx; - if (fm < -1 || fm > 1) { - if (lx > rx) { - if (!va) va = { - x: (y0 - fb) / fm, - y: y0 - }; else if (va.y >= y1) return; - vb = { - x: (y1 - fb) / fm, - y: y1 - }; - } else { - if (!va) va = { - x: (y1 - fb) / fm, - y: y1 - }; else if (va.y < y0) return; - vb = { - x: (y0 - fb) / fm, - y: y0 - }; - } + + else { + while (++i < n) { + if (value = +valueof(values[i], i, values)) sum += value; + } + } + + return sum; +} + +function transpose(matrix) { + if (!(n = matrix.length)) return []; + for (var i = -1, m = min(matrix, length), transpose = new Array(m); ++i < m;) { + for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) { + row[j] = matrix[j][i]; + } + } + return transpose; +} + +function length(d) { + return d.length; +} + +function zip() { + return transpose(arguments); +} + +exports.bisect = bisectRight; +exports.bisectRight = bisectRight; +exports.bisectLeft = bisectLeft; +exports.ascending = ascending; +exports.bisector = bisector; +exports.cross = cross; +exports.descending = descending; +exports.deviation = deviation; +exports.extent = extent; +exports.histogram = histogram; +exports.thresholdFreedmanDiaconis = freedmanDiaconis; +exports.thresholdScott = scott; +exports.thresholdSturges = sturges; +exports.max = max; +exports.mean = mean; +exports.median = median; +exports.merge = merge; +exports.min = min; +exports.pairs = pairs; +exports.permute = permute; +exports.quantile = quantile; +exports.range = range; +exports.scan = scan; +exports.shuffle = shuffle; +exports.sum = sum; +exports.ticks = ticks; +exports.tickIncrement = tickIncrement; +exports.tickStep = tickStep; +exports.transpose = transpose; +exports.variance = variance; +exports.zip = zip; + +Object.defineProperty(exports, '__esModule', { value: true }); + +}))); + +},{}],159:[function(_dereq_,module,exports){ +// https://d3js.org/d3-collection/ v1.0.7 Copyright 2018 Mike Bostock +(function (global, factory) { +typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : +typeof define === 'function' && define.amd ? define(['exports'], factory) : +(factory((global.d3 = global.d3 || {}))); +}(this, (function (exports) { 'use strict'; + +var prefix = "$"; + +function Map() {} + +Map.prototype = map.prototype = { + constructor: Map, + has: function(key) { + return (prefix + key) in this; + }, + get: function(key) { + return this[prefix + key]; + }, + set: function(key, value) { + this[prefix + key] = value; + return this; + }, + remove: function(key) { + var property = prefix + key; + return property in this && delete this[property]; + }, + clear: function() { + for (var property in this) if (property[0] === prefix) delete this[property]; + }, + keys: function() { + var keys = []; + for (var property in this) if (property[0] === prefix) keys.push(property.slice(1)); + return keys; + }, + values: function() { + var values = []; + for (var property in this) if (property[0] === prefix) values.push(this[property]); + return values; + }, + entries: function() { + var entries = []; + for (var property in this) if (property[0] === prefix) entries.push({key: property.slice(1), value: this[property]}); + return entries; + }, + size: function() { + var size = 0; + for (var property in this) if (property[0] === prefix) ++size; + return size; + }, + empty: function() { + for (var property in this) if (property[0] === prefix) return false; + return true; + }, + each: function(f) { + for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this); + } +}; + +function map(object, f) { + var map = new Map; + + // Copy constructor. + if (object instanceof Map) object.each(function(value, key) { map.set(key, value); }); + + // Index array by numeric index or specified key function. + else if (Array.isArray(object)) { + var i = -1, + n = object.length, + o; + + if (f == null) while (++i < n) map.set(i, object[i]); + else while (++i < n) map.set(f(o = object[i], i, object), o); + } + + // Convert object to map. + else if (object) for (var key in object) map.set(key, object[key]); + + return map; +} + +function nest() { + var keys = [], + sortKeys = [], + sortValues, + rollup, + nest; + + function apply(array, depth, createResult, setResult) { + if (depth >= keys.length) { + if (sortValues != null) array.sort(sortValues); + return rollup != null ? rollup(array) : array; + } + + var i = -1, + n = array.length, + key = keys[depth++], + keyValue, + value, + valuesByKey = map(), + values, + result = createResult(); + + while (++i < n) { + if (values = valuesByKey.get(keyValue = key(value = array[i]) + "")) { + values.push(value); } else { - if (ly < ry) { - if (!va) va = { - x: x0, - y: fm * x0 + fb - }; else if (va.x >= x1) return; - vb = { - x: x1, - y: fm * x1 + fb - }; - } else { - if (!va) va = { - x: x1, - y: fm * x1 + fb - }; else if (va.x < x0) return; - vb = { - x: x0, - y: fm * x0 + fb - }; - } + valuesByKey.set(keyValue, [value]); } } - edge.a = va; - edge.b = vb; - return true; + + valuesByKey.each(function(values, key) { + setResult(result, key, apply(values, depth, createResult, setResult)); + }); + + return result; } - function d3_geom_voronoiEdge(lSite, rSite) { - this.l = lSite; - this.r = rSite; - this.a = this.b = null; + + function entries(map$$1, depth) { + if (++depth > keys.length) return map$$1; + var array, sortKey = sortKeys[depth - 1]; + if (rollup != null && depth >= keys.length) array = map$$1.entries(); + else array = [], map$$1.each(function(v, k) { array.push({key: k, values: entries(v, depth)}); }); + return sortKey != null ? array.sort(function(a, b) { return sortKey(a.key, b.key); }) : array; } - function d3_geom_voronoiCreateEdge(lSite, rSite, va, vb) { - var edge = new d3_geom_voronoiEdge(lSite, rSite); - d3_geom_voronoiEdges.push(edge); - if (va) d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, va); - if (vb) d3_geom_voronoiSetEdgeEnd(edge, rSite, lSite, vb); - d3_geom_voronoiCells[lSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge, lSite, rSite)); - d3_geom_voronoiCells[rSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge, rSite, lSite)); - return edge; + + return nest = { + object: function(array) { return apply(array, 0, createObject, setObject); }, + map: function(array) { return apply(array, 0, createMap, setMap); }, + entries: function(array) { return entries(apply(array, 0, createMap, setMap), 0); }, + key: function(d) { keys.push(d); return nest; }, + sortKeys: function(order) { sortKeys[keys.length - 1] = order; return nest; }, + sortValues: function(order) { sortValues = order; return nest; }, + rollup: function(f) { rollup = f; return nest; } + }; +} + +function createObject() { + return {}; +} + +function setObject(object, key, value) { + object[key] = value; +} + +function createMap() { + return map(); +} + +function setMap(map$$1, key, value) { + map$$1.set(key, value); +} + +function Set() {} + +var proto = map.prototype; + +Set.prototype = set.prototype = { + constructor: Set, + has: proto.has, + add: function(value) { + value += ""; + this[prefix + value] = value; + return this; + }, + remove: proto.remove, + clear: proto.clear, + values: proto.keys, + size: proto.size, + empty: proto.empty, + each: proto.each +}; + +function set(object, f) { + var set = new Set; + + // Copy constructor. + if (object instanceof Set) object.each(function(value) { set.add(value); }); + + // Otherwise, assume it’s an array. + else if (object) { + var i = -1, n = object.length; + if (f == null) while (++i < n) set.add(object[i]); + else while (++i < n) set.add(f(object[i], i, object)); } - function d3_geom_voronoiCreateBorderEdge(lSite, va, vb) { - var edge = new d3_geom_voronoiEdge(lSite, null); - edge.a = va; - edge.b = vb; - d3_geom_voronoiEdges.push(edge); - return edge; + + return set; +} + +function keys(map) { + var keys = []; + for (var key in map) keys.push(key); + return keys; +} + +function values(map) { + var values = []; + for (var key in map) values.push(map[key]); + return values; +} + +function entries(map) { + var entries = []; + for (var key in map) entries.push({key: key, value: map[key]}); + return entries; +} + +exports.nest = nest; +exports.set = set; +exports.map = map; +exports.keys = keys; +exports.values = values; +exports.entries = entries; + +Object.defineProperty(exports, '__esModule', { value: true }); + +}))); + +},{}],160:[function(_dereq_,module,exports){ +// https://d3js.org/d3-color/ v1.4.1 Copyright 2020 Mike Bostock +(function (global, factory) { +typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : +typeof define === 'function' && define.amd ? define(['exports'], factory) : +(global = global || self, factory(global.d3 = global.d3 || {})); +}(this, function (exports) { 'use strict'; + +function define(constructor, factory, prototype) { + constructor.prototype = factory.prototype = prototype; + prototype.constructor = constructor; +} + +function extend(parent, definition) { + var prototype = Object.create(parent.prototype); + for (var key in definition) prototype[key] = definition[key]; + return prototype; +} + +function Color() {} + +var darker = 0.7; +var brighter = 1 / darker; + +var reI = "\\s*([+-]?\\d+)\\s*", + reN = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*", + reP = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*", + reHex = /^#([0-9a-f]{3,8})$/, + reRgbInteger = new RegExp("^rgb\\(" + [reI, reI, reI] + "\\)$"), + reRgbPercent = new RegExp("^rgb\\(" + [reP, reP, reP] + "\\)$"), + reRgbaInteger = new RegExp("^rgba\\(" + [reI, reI, reI, reN] + "\\)$"), + reRgbaPercent = new RegExp("^rgba\\(" + [reP, reP, reP, reN] + "\\)$"), + reHslPercent = new RegExp("^hsl\\(" + [reN, reP, reP] + "\\)$"), + reHslaPercent = new RegExp("^hsla\\(" + [reN, reP, reP, reN] + "\\)$"); + +var named = { + aliceblue: 0xf0f8ff, + antiquewhite: 0xfaebd7, + aqua: 0x00ffff, + aquamarine: 0x7fffd4, + azure: 0xf0ffff, + beige: 0xf5f5dc, + bisque: 0xffe4c4, + black: 0x000000, + blanchedalmond: 0xffebcd, + blue: 0x0000ff, + blueviolet: 0x8a2be2, + brown: 0xa52a2a, + burlywood: 0xdeb887, + cadetblue: 0x5f9ea0, + chartreuse: 0x7fff00, + chocolate: 0xd2691e, + coral: 0xff7f50, + cornflowerblue: 0x6495ed, + cornsilk: 0xfff8dc, + crimson: 0xdc143c, + cyan: 0x00ffff, + darkblue: 0x00008b, + darkcyan: 0x008b8b, + darkgoldenrod: 0xb8860b, + darkgray: 0xa9a9a9, + darkgreen: 0x006400, + darkgrey: 0xa9a9a9, + darkkhaki: 0xbdb76b, + darkmagenta: 0x8b008b, + darkolivegreen: 0x556b2f, + darkorange: 0xff8c00, + darkorchid: 0x9932cc, + darkred: 0x8b0000, + darksalmon: 0xe9967a, + darkseagreen: 0x8fbc8f, + darkslateblue: 0x483d8b, + darkslategray: 0x2f4f4f, + darkslategrey: 0x2f4f4f, + darkturquoise: 0x00ced1, + darkviolet: 0x9400d3, + deeppink: 0xff1493, + deepskyblue: 0x00bfff, + dimgray: 0x696969, + dimgrey: 0x696969, + dodgerblue: 0x1e90ff, + firebrick: 0xb22222, + floralwhite: 0xfffaf0, + forestgreen: 0x228b22, + fuchsia: 0xff00ff, + gainsboro: 0xdcdcdc, + ghostwhite: 0xf8f8ff, + gold: 0xffd700, + goldenrod: 0xdaa520, + gray: 0x808080, + green: 0x008000, + greenyellow: 0xadff2f, + grey: 0x808080, + honeydew: 0xf0fff0, + hotpink: 0xff69b4, + indianred: 0xcd5c5c, + indigo: 0x4b0082, + ivory: 0xfffff0, + khaki: 0xf0e68c, + lavender: 0xe6e6fa, + lavenderblush: 0xfff0f5, + lawngreen: 0x7cfc00, + lemonchiffon: 0xfffacd, + lightblue: 0xadd8e6, + lightcoral: 0xf08080, + lightcyan: 0xe0ffff, + lightgoldenrodyellow: 0xfafad2, + lightgray: 0xd3d3d3, + lightgreen: 0x90ee90, + lightgrey: 0xd3d3d3, + lightpink: 0xffb6c1, + lightsalmon: 0xffa07a, + lightseagreen: 0x20b2aa, + lightskyblue: 0x87cefa, + lightslategray: 0x778899, + lightslategrey: 0x778899, + lightsteelblue: 0xb0c4de, + lightyellow: 0xffffe0, + lime: 0x00ff00, + limegreen: 0x32cd32, + linen: 0xfaf0e6, + magenta: 0xff00ff, + maroon: 0x800000, + mediumaquamarine: 0x66cdaa, + mediumblue: 0x0000cd, + mediumorchid: 0xba55d3, + mediumpurple: 0x9370db, + mediumseagreen: 0x3cb371, + mediumslateblue: 0x7b68ee, + mediumspringgreen: 0x00fa9a, + mediumturquoise: 0x48d1cc, + mediumvioletred: 0xc71585, + midnightblue: 0x191970, + mintcream: 0xf5fffa, + mistyrose: 0xffe4e1, + moccasin: 0xffe4b5, + navajowhite: 0xffdead, + navy: 0x000080, + oldlace: 0xfdf5e6, + olive: 0x808000, + olivedrab: 0x6b8e23, + orange: 0xffa500, + orangered: 0xff4500, + orchid: 0xda70d6, + palegoldenrod: 0xeee8aa, + palegreen: 0x98fb98, + paleturquoise: 0xafeeee, + palevioletred: 0xdb7093, + papayawhip: 0xffefd5, + peachpuff: 0xffdab9, + peru: 0xcd853f, + pink: 0xffc0cb, + plum: 0xdda0dd, + powderblue: 0xb0e0e6, + purple: 0x800080, + rebeccapurple: 0x663399, + red: 0xff0000, + rosybrown: 0xbc8f8f, + royalblue: 0x4169e1, + saddlebrown: 0x8b4513, + salmon: 0xfa8072, + sandybrown: 0xf4a460, + seagreen: 0x2e8b57, + seashell: 0xfff5ee, + sienna: 0xa0522d, + silver: 0xc0c0c0, + skyblue: 0x87ceeb, + slateblue: 0x6a5acd, + slategray: 0x708090, + slategrey: 0x708090, + snow: 0xfffafa, + springgreen: 0x00ff7f, + steelblue: 0x4682b4, + tan: 0xd2b48c, + teal: 0x008080, + thistle: 0xd8bfd8, + tomato: 0xff6347, + turquoise: 0x40e0d0, + violet: 0xee82ee, + wheat: 0xf5deb3, + white: 0xffffff, + whitesmoke: 0xf5f5f5, + yellow: 0xffff00, + yellowgreen: 0x9acd32 +}; + +define(Color, color, { + copy: function(channels) { + return Object.assign(new this.constructor, this, channels); + }, + displayable: function() { + return this.rgb().displayable(); + }, + hex: color_formatHex, // Deprecated! Use color.formatHex. + formatHex: color_formatHex, + formatHsl: color_formatHsl, + formatRgb: color_formatRgb, + toString: color_formatRgb +}); + +function color_formatHex() { + return this.rgb().formatHex(); +} + +function color_formatHsl() { + return hslConvert(this).formatHsl(); +} + +function color_formatRgb() { + return this.rgb().formatRgb(); +} + +function color(format) { + var m, l; + format = (format + "").trim().toLowerCase(); + return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000 + : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00 + : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000 + : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000 + : null) // invalid hex + : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0) + : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%) + : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1) + : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1) + : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%) + : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1) + : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins + : format === "transparent" ? new Rgb(NaN, NaN, NaN, 0) + : null; +} + +function rgbn(n) { + return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1); +} + +function rgba(r, g, b, a) { + if (a <= 0) r = g = b = NaN; + return new Rgb(r, g, b, a); +} + +function rgbConvert(o) { + if (!(o instanceof Color)) o = color(o); + if (!o) return new Rgb; + o = o.rgb(); + return new Rgb(o.r, o.g, o.b, o.opacity); +} + +function rgb(r, g, b, opacity) { + return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity); +} + +function Rgb(r, g, b, opacity) { + this.r = +r; + this.g = +g; + this.b = +b; + this.opacity = +opacity; +} + +define(Rgb, rgb, extend(Color, { + brighter: function(k) { + k = k == null ? brighter : Math.pow(brighter, k); + return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity); + }, + darker: function(k) { + k = k == null ? darker : Math.pow(darker, k); + return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity); + }, + rgb: function() { + return this; + }, + displayable: function() { + return (-0.5 <= this.r && this.r < 255.5) + && (-0.5 <= this.g && this.g < 255.5) + && (-0.5 <= this.b && this.b < 255.5) + && (0 <= this.opacity && this.opacity <= 1); + }, + hex: rgb_formatHex, // Deprecated! Use color.formatHex. + formatHex: rgb_formatHex, + formatRgb: rgb_formatRgb, + toString: rgb_formatRgb +})); + +function rgb_formatHex() { + return "#" + hex(this.r) + hex(this.g) + hex(this.b); +} + +function rgb_formatRgb() { + var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a)); + return (a === 1 ? "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)) + + (a === 1 ? ")" : ", " + a + ")"); +} + +function hex(value) { + value = Math.max(0, Math.min(255, Math.round(value) || 0)); + return (value < 16 ? "0" : "") + value.toString(16); +} + +function hsla(h, s, l, a) { + if (a <= 0) h = s = l = NaN; + else if (l <= 0 || l >= 1) h = s = NaN; + else if (s <= 0) h = NaN; + return new Hsl(h, s, l, a); +} + +function hslConvert(o) { + if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity); + if (!(o instanceof Color)) o = color(o); + if (!o) return new Hsl; + if (o instanceof Hsl) return o; + o = o.rgb(); + var r = o.r / 255, + g = o.g / 255, + b = o.b / 255, + min = Math.min(r, g, b), + max = Math.max(r, g, b), + h = NaN, + s = max - min, + l = (max + min) / 2; + if (s) { + if (r === max) h = (g - b) / s + (g < b) * 6; + else if (g === max) h = (b - r) / s + 2; + else h = (r - g) / s + 4; + s /= l < 0.5 ? max + min : 2 - max - min; + h *= 60; + } else { + s = l > 0 && l < 1 ? 0 : h; } - function d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, vertex) { - if (!edge.a && !edge.b) { - edge.a = vertex; - edge.l = lSite; - edge.r = rSite; - } else if (edge.l === rSite) { - edge.b = vertex; - } else { - edge.a = vertex; - } + return new Hsl(h, s, l, o.opacity); +} + +function hsl(h, s, l, opacity) { + return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity); +} + +function Hsl(h, s, l, opacity) { + this.h = +h; + this.s = +s; + this.l = +l; + this.opacity = +opacity; +} + +define(Hsl, hsl, extend(Color, { + brighter: function(k) { + k = k == null ? brighter : Math.pow(brighter, k); + return new Hsl(this.h, this.s, this.l * k, this.opacity); + }, + darker: function(k) { + k = k == null ? darker : Math.pow(darker, k); + return new Hsl(this.h, this.s, this.l * k, this.opacity); + }, + rgb: function() { + var h = this.h % 360 + (this.h < 0) * 360, + s = isNaN(h) || isNaN(this.s) ? 0 : this.s, + l = this.l, + m2 = l + (l < 0.5 ? l : 1 - l) * s, + m1 = 2 * l - m2; + return new Rgb( + hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2), + hsl2rgb(h, m1, m2), + hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2), + 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 a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a)); + return (a === 1 ? "hsl(" : "hsla(") + + (this.h || 0) + ", " + + (this.s || 0) * 100 + "%, " + + (this.l || 0) * 100 + "%" + + (a === 1 ? ")" : ", " + a + ")"); } - function d3_geom_voronoiHalfEdge(edge, lSite, rSite) { - var va = edge.a, vb = edge.b; - this.edge = edge; - this.site = lSite; - this.angle = rSite ? Math.atan2(rSite.y - lSite.y, rSite.x - lSite.x) : edge.l === lSite ? Math.atan2(vb.x - va.x, va.y - vb.y) : Math.atan2(va.x - vb.x, vb.y - va.y); +})); + +/* From FvD 13.37, CSS Color Module Level 3 */ +function hsl2rgb(h, m1, m2) { + return (h < 60 ? m1 + (m2 - m1) * h / 60 + : h < 180 ? m2 + : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 + : m1) * 255; +} + +var deg2rad = Math.PI / 180; +var rad2deg = 180 / Math.PI; + +// https://observablehq.com/@mbostock/lab-and-rgb +var K = 18, + Xn = 0.96422, + Yn = 1, + Zn = 0.82521, + t0 = 4 / 29, + t1 = 6 / 29, + t2 = 3 * t1 * t1, + t3 = t1 * t1 * t1; + +function labConvert(o) { + if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity); + if (o instanceof Hcl) return hcl2lab(o); + if (!(o instanceof Rgb)) o = rgbConvert(o); + var r = rgb2lrgb(o.r), + g = rgb2lrgb(o.g), + b = rgb2lrgb(o.b), + y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z; + if (r === g && g === b) x = z = y; else { + x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn); + z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn); + } + return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity); +} + +function gray(l, opacity) { + return new Lab(l, 0, 0, opacity == null ? 1 : opacity); +} + +function lab(l, a, b, opacity) { + return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity); +} + +function Lab(l, a, b, opacity) { + this.l = +l; + this.a = +a; + this.b = +b; + this.opacity = +opacity; +} + +define(Lab, lab, extend(Color, { + brighter: function(k) { + return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity); + }, + darker: function(k) { + return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity); + }, + rgb: function() { + var y = (this.l + 16) / 116, + x = isNaN(this.a) ? y : y + this.a / 500, + z = isNaN(this.b) ? y : y - this.b / 200; + x = Xn * lab2xyz(x); + y = Yn * lab2xyz(y); + z = Zn * lab2xyz(z); + return new Rgb( + lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z), + lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z), + lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z), + this.opacity + ); + } +})); + +function xyz2lab(t) { + return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0; +} + +function lab2xyz(t) { + return t > t1 ? t * t * t : t2 * (t - t0); +} + +function lrgb2rgb(x) { + return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055); +} + +function rgb2lrgb(x) { + return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4); +} + +function hclConvert(o) { + if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity); + if (!(o instanceof Lab)) o = labConvert(o); + if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity); + var h = Math.atan2(o.b, o.a) * rad2deg; + return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity); +} + +function lch(l, c, h, opacity) { + return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity); +} + +function hcl(h, c, l, opacity) { + return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity); +} + +function Hcl(h, c, l, opacity) { + this.h = +h; + this.c = +c; + this.l = +l; + this.opacity = +opacity; +} + +function hcl2lab(o) { + if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity); + var h = o.h * deg2rad; + return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity); +} + +define(Hcl, hcl, extend(Color, { + brighter: function(k) { + return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity); + }, + darker: function(k) { + return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity); + }, + rgb: function() { + return hcl2lab(this).rgb(); } - d3_geom_voronoiHalfEdge.prototype = { - start: function() { - return this.edge.l === this.site ? this.edge.a : this.edge.b; - }, - end: function() { - return this.edge.l === this.site ? this.edge.b : this.edge.a; - } - }; - function d3_geom_voronoiRedBlackTree() { - this._ = null; +})); + +var A = -0.14861, + B = +1.78277, + C = -0.29227, + D = -0.90649, + E = +1.97294, + ED = E * D, + EB = E * B, + BC_DA = B * C - D * A; + +function cubehelixConvert(o) { + if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity); + if (!(o instanceof Rgb)) o = rgbConvert(o); + var r = o.r / 255, + g = o.g / 255, + b = o.b / 255, + l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB), + bl = b - l, + k = (E * (g - l) - C * bl) / D, + s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1 + h = s ? Math.atan2(k, bl) * rad2deg - 120 : NaN; + return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity); +} + +function cubehelix(h, s, l, opacity) { + return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity); +} + +function Cubehelix(h, s, l, opacity) { + this.h = +h; + this.s = +s; + this.l = +l; + this.opacity = +opacity; +} + +define(Cubehelix, cubehelix, extend(Color, { + brighter: function(k) { + k = k == null ? brighter : Math.pow(brighter, k); + return new Cubehelix(this.h, this.s, this.l * k, this.opacity); + }, + darker: function(k) { + k = k == null ? darker : Math.pow(darker, k); + return new Cubehelix(this.h, this.s, this.l * k, this.opacity); + }, + rgb: function() { + var h = isNaN(this.h) ? 0 : (this.h + 120) * deg2rad, + l = +this.l, + a = isNaN(this.s) ? 0 : this.s * l * (1 - l), + cosh = Math.cos(h), + sinh = Math.sin(h); + return new Rgb( + 255 * (l + a * (A * cosh + B * sinh)), + 255 * (l + a * (C * cosh + D * sinh)), + 255 * (l + a * (E * cosh)), + this.opacity + ); } - function d3_geom_voronoiRedBlackNode(node) { - node.U = node.C = node.L = node.R = node.P = node.N = null; +})); + +exports.color = color; +exports.cubehelix = cubehelix; +exports.gray = gray; +exports.hcl = hcl; +exports.hsl = hsl; +exports.lab = lab; +exports.lch = lch; +exports.rgb = rgb; + +Object.defineProperty(exports, '__esModule', { value: true }); + +})); + +},{}],161:[function(_dereq_,module,exports){ +// https://d3js.org/d3-dispatch/ v1.0.6 Copyright 2019 Mike Bostock +(function (global, factory) { +typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : +typeof define === 'function' && define.amd ? define(['exports'], factory) : +(global = global || self, factory(global.d3 = global.d3 || {})); +}(this, function (exports) { 'use strict'; + +var noop = {value: function() {}}; + +function dispatch() { + for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) { + if (!(t = arguments[i] + "") || (t in _) || /[\s.]/.test(t)) throw new Error("illegal type: " + t); + _[t] = []; } - d3_geom_voronoiRedBlackTree.prototype = { - insert: function(after, node) { - var parent, grandpa, uncle; - if (after) { - node.P = after; - node.N = after.N; - if (after.N) after.N.P = node; - after.N = node; - if (after.R) { - after = after.R; - while (after.L) after = after.L; - after.L = node; - } else { - after.R = node; - } - parent = after; - } else if (this._) { - after = d3_geom_voronoiRedBlackFirst(this._); - node.P = null; - node.N = after; - after.P = after.L = node; - parent = after; - } else { - node.P = node.N = null; - this._ = node; - parent = null; - } - node.L = node.R = null; - node.U = parent; - node.C = true; - after = node; - while (parent && parent.C) { - grandpa = parent.U; - if (parent === grandpa.L) { - uncle = grandpa.R; - if (uncle && uncle.C) { - parent.C = uncle.C = false; - grandpa.C = true; - after = grandpa; - } else { - if (after === parent.R) { - d3_geom_voronoiRedBlackRotateLeft(this, parent); - after = parent; - parent = after.U; - } - parent.C = false; - grandpa.C = true; - d3_geom_voronoiRedBlackRotateRight(this, grandpa); - } - } else { - uncle = grandpa.L; - if (uncle && uncle.C) { - parent.C = uncle.C = false; - grandpa.C = true; - after = grandpa; - } else { - if (after === parent.L) { - d3_geom_voronoiRedBlackRotateRight(this, parent); - after = parent; - parent = after.U; - } - parent.C = false; - grandpa.C = true; - d3_geom_voronoiRedBlackRotateLeft(this, grandpa); - } - } - parent = after.U; - } - this._.C = false; - }, - remove: function(node) { - if (node.N) node.N.P = node.P; - if (node.P) node.P.N = node.N; - node.N = node.P = null; - var parent = node.U, sibling, left = node.L, right = node.R, next, red; - if (!left) next = right; else if (!right) next = left; else next = d3_geom_voronoiRedBlackFirst(right); - if (parent) { - if (parent.L === node) parent.L = next; else parent.R = next; - } else { - this._ = next; - } - if (left && right) { - red = next.C; - next.C = node.C; - next.L = left; - left.U = next; - if (next !== right) { - parent = next.U; - next.U = node.U; - node = next.R; - parent.L = node; - next.R = right; - right.U = next; - } else { - next.U = parent; - parent = next; - node = next.R; - } - } else { - red = node.C; - node = next; - } - if (node) node.U = parent; - if (red) return; - if (node && node.C) { - node.C = false; - return; - } - do { - if (node === this._) break; - if (node === parent.L) { - sibling = parent.R; - if (sibling.C) { - sibling.C = false; - parent.C = true; - d3_geom_voronoiRedBlackRotateLeft(this, parent); - sibling = parent.R; - } - if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) { - if (!sibling.R || !sibling.R.C) { - sibling.L.C = false; - sibling.C = true; - d3_geom_voronoiRedBlackRotateRight(this, sibling); - sibling = parent.R; - } - sibling.C = parent.C; - parent.C = sibling.R.C = false; - d3_geom_voronoiRedBlackRotateLeft(this, parent); - node = this._; - break; - } - } else { - sibling = parent.L; - if (sibling.C) { - sibling.C = false; - parent.C = true; - d3_geom_voronoiRedBlackRotateRight(this, parent); - sibling = parent.L; - } - if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) { - if (!sibling.L || !sibling.L.C) { - sibling.R.C = false; - sibling.C = true; - d3_geom_voronoiRedBlackRotateLeft(this, sibling); - sibling = parent.L; - } - sibling.C = parent.C; - parent.C = sibling.L.C = false; - d3_geom_voronoiRedBlackRotateRight(this, parent); - node = this._; - break; - } - } - sibling.C = true; - node = parent; - parent = parent.U; - } while (!node.C); - if (node) node.C = false; + return new Dispatch(_); +} + +function Dispatch(_) { + this._ = _; +} + +function parseTypenames(typenames, types) { + return typenames.trim().split(/^|\s+/).map(function(t) { + var name = "", i = t.indexOf("."); + if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i); + if (t && !types.hasOwnProperty(t)) throw new Error("unknown type: " + t); + return {type: t, name: name}; + }); +} + +Dispatch.prototype = dispatch.prototype = { + constructor: Dispatch, + on: function(typename, callback) { + var _ = this._, + T = parseTypenames(typename + "", _), + t, + i = -1, + n = T.length; + + // If no callback was specified, return the callback of the given type and name. + if (arguments.length < 2) { + while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t; + return; } - }; - function d3_geom_voronoiRedBlackRotateLeft(tree, node) { - var p = node, q = node.R, parent = p.U; - if (parent) { - if (parent.L === p) parent.L = q; else parent.R = q; - } else { - tree._ = q; + + // If a type was specified, set the callback for the given type and name. + // Otherwise, if a null callback was specified, remove callbacks of the given name. + if (callback != null && typeof callback !== "function") throw new Error("invalid callback: " + callback); + while (++i < n) { + if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback); + else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null); } - q.U = parent; - p.U = q; - p.R = q.L; - if (p.R) p.R.U = p; - q.L = p; + + return this; + }, + copy: function() { + var copy = {}, _ = this._; + for (var t in _) copy[t] = _[t].slice(); + return new Dispatch(copy); + }, + call: function(type, that) { + if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2]; + if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type); + for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args); + }, + apply: function(type, that, args) { + if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type); + for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args); } - function d3_geom_voronoiRedBlackRotateRight(tree, node) { - var p = node, q = node.L, parent = p.U; - if (parent) { - if (parent.L === p) parent.L = q; else parent.R = q; - } else { - tree._ = q; +}; + +function get(type, name) { + for (var i = 0, n = type.length, c; i < n; ++i) { + if ((c = type[i]).name === name) { + return c.value; } - q.U = parent; - p.U = q; - p.L = q.R; - if (p.L) p.L.U = p; - q.R = p; - } - function d3_geom_voronoiRedBlackFirst(node) { - while (node.L) node = node.L; - return node; } - function d3_geom_voronoi(sites, bbox) { - var site = sites.sort(d3_geom_voronoiVertexOrder).pop(), x0, y0, circle; - d3_geom_voronoiEdges = []; - d3_geom_voronoiCells = new Array(sites.length); - d3_geom_voronoiBeaches = new d3_geom_voronoiRedBlackTree(); - d3_geom_voronoiCircles = new d3_geom_voronoiRedBlackTree(); - while (true) { - circle = d3_geom_voronoiFirstCircle; - if (site && (!circle || site.y < circle.y || site.y === circle.y && site.x < circle.x)) { - if (site.x !== x0 || site.y !== y0) { - d3_geom_voronoiCells[site.i] = new d3_geom_voronoiCell(site); - d3_geom_voronoiAddBeach(site); - x0 = site.x, y0 = site.y; - } - site = sites.pop(); - } else if (circle) { - d3_geom_voronoiRemoveBeach(circle.arc); - } else { - break; - } +} + +function set(type, name, callback) { + for (var i = 0, n = type.length; i < n; ++i) { + if (type[i].name === name) { + type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1)); + break; } - if (bbox) d3_geom_voronoiClipEdges(bbox), d3_geom_voronoiCloseCells(bbox); - var diagram = { - cells: d3_geom_voronoiCells, - edges: d3_geom_voronoiEdges - }; - d3_geom_voronoiBeaches = d3_geom_voronoiCircles = d3_geom_voronoiEdges = d3_geom_voronoiCells = null; - return diagram; - } - function d3_geom_voronoiVertexOrder(a, b) { - return b.y - a.y || b.x - a.x; } - d3.geom.voronoi = function(points) { - var x = d3_geom_pointX, y = d3_geom_pointY, fx = x, fy = y, clipExtent = d3_geom_voronoiClipExtent; - if (points) return voronoi(points); - function voronoi(data) { - var polygons = new Array(data.length), x0 = clipExtent[0][0], y0 = clipExtent[0][1], x1 = clipExtent[1][0], y1 = clipExtent[1][1]; - d3_geom_voronoi(sites(data), clipExtent).cells.forEach(function(cell, i) { - var edges = cell.edges, site = cell.site, polygon = polygons[i] = edges.length ? edges.map(function(e) { - var s = e.start(); - return [ s.x, s.y ]; - }) : site.x >= x0 && site.x <= x1 && site.y >= y0 && site.y <= y1 ? [ [ x0, y1 ], [ x1, y1 ], [ x1, y0 ], [ x0, y0 ] ] : []; - polygon.point = data[i]; - }); - return polygons; + if (callback != null) type.push({name: name, value: callback}); + return type; +} + +exports.dispatch = dispatch; + +Object.defineProperty(exports, '__esModule', { value: true }); + +})); + +},{}],162:[function(_dereq_,module,exports){ +// https://d3js.org/d3-force/ v1.2.1 Copyright 2019 Mike Bostock +(function (global, factory) { +typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, _dereq_('d3-quadtree'), _dereq_('d3-collection'), _dereq_('d3-dispatch'), _dereq_('d3-timer')) : +typeof define === 'function' && define.amd ? define(['exports', 'd3-quadtree', 'd3-collection', 'd3-dispatch', 'd3-timer'], factory) : +(factory((global.d3 = global.d3 || {}),global.d3,global.d3,global.d3,global.d3)); +}(this, (function (exports,d3Quadtree,d3Collection,d3Dispatch,d3Timer) { 'use strict'; + +function center(x, y) { + var nodes; + + if (x == null) x = 0; + if (y == null) y = 0; + + function force() { + var i, + n = nodes.length, + node, + sx = 0, + sy = 0; + + for (i = 0; i < n; ++i) { + node = nodes[i], sx += node.x, sy += node.y; } - function sites(data) { - return data.map(function(d, i) { - return { - x: Math.round(fx(d, i) / ε) * ε, - y: Math.round(fy(d, i) / ε) * ε, - i: i - }; - }); + + for (sx = sx / n - x, sy = sy / n - y, i = 0; i < n; ++i) { + node = nodes[i], node.x -= sx, node.y -= sy; } - voronoi.links = function(data) { - return d3_geom_voronoi(sites(data)).edges.filter(function(edge) { - return edge.l && edge.r; - }).map(function(edge) { - return { - source: data[edge.l.i], - target: data[edge.r.i] - }; - }); - }; - voronoi.triangles = function(data) { - var triangles = []; - d3_geom_voronoi(sites(data)).cells.forEach(function(cell, i) { - var site = cell.site, edges = cell.edges.sort(d3_geom_voronoiHalfEdgeOrder), j = -1, m = edges.length, e0, s0, e1 = edges[m - 1].edge, s1 = e1.l === site ? e1.r : e1.l; - while (++j < m) { - e0 = e1; - s0 = s1; - e1 = edges[j].edge; - s1 = e1.l === site ? e1.r : e1.l; - if (i < s0.i && i < s1.i && d3_geom_voronoiTriangleArea(site, s0, s1) < 0) { - triangles.push([ data[i], data[s0.i], data[s1.i] ]); - } - } - }); - return triangles; - }; - voronoi.x = function(_) { - return arguments.length ? (fx = d3_functor(x = _), voronoi) : x; - }; - voronoi.y = function(_) { - return arguments.length ? (fy = d3_functor(y = _), voronoi) : y; - }; - voronoi.clipExtent = function(_) { - if (!arguments.length) return clipExtent === d3_geom_voronoiClipExtent ? null : clipExtent; - clipExtent = _ == null ? d3_geom_voronoiClipExtent : _; - return voronoi; - }; - voronoi.size = function(_) { - if (!arguments.length) return clipExtent === d3_geom_voronoiClipExtent ? null : clipExtent && clipExtent[1]; - return voronoi.clipExtent(_ && [ [ 0, 0 ], _ ]); - }; - return voronoi; - }; - var d3_geom_voronoiClipExtent = [ [ -1e6, -1e6 ], [ 1e6, 1e6 ] ]; - function d3_geom_voronoiTriangleArea(a, b, c) { - return (a.x - c.x) * (b.y - a.y) - (a.x - b.x) * (c.y - a.y); } - d3.geom.delaunay = function(vertices) { - return d3.geom.voronoi().triangles(vertices); + + force.initialize = function(_) { + nodes = _; }; - d3.geom.quadtree = function(points, x1, y1, x2, y2) { - var x = d3_geom_pointX, y = d3_geom_pointY, compat; - if (compat = arguments.length) { - x = d3_geom_quadtreeCompatX; - y = d3_geom_quadtreeCompatY; - if (compat === 3) { - y2 = y1; - x2 = x1; - y1 = x1 = 0; - } - return quadtree(points); - } - function quadtree(data) { - var d, fx = d3_functor(x), fy = d3_functor(y), xs, ys, i, n, x1_, y1_, x2_, y2_; - if (x1 != null) { - x1_ = x1, y1_ = y1, x2_ = x2, y2_ = y2; - } else { - x2_ = y2_ = -(x1_ = y1_ = Infinity); - xs = [], ys = []; - n = data.length; - if (compat) for (i = 0; i < n; ++i) { - d = data[i]; - if (d.x < x1_) x1_ = d.x; - if (d.y < y1_) y1_ = d.y; - if (d.x > x2_) x2_ = d.x; - if (d.y > y2_) y2_ = d.y; - xs.push(d.x); - ys.push(d.y); - } else for (i = 0; i < n; ++i) { - var x_ = +fx(d = data[i], i), y_ = +fy(d, i); - if (x_ < x1_) x1_ = x_; - if (y_ < y1_) y1_ = y_; - if (x_ > x2_) x2_ = x_; - if (y_ > y2_) y2_ = y_; - xs.push(x_); - ys.push(y_); - } - } - var dx = x2_ - x1_, dy = y2_ - y1_; - if (dx > dy) y2_ = y1_ + dx; else x2_ = x1_ + dy; - function insert(n, d, x, y, x1, y1, x2, y2) { - if (isNaN(x) || isNaN(y)) return; - if (n.leaf) { - var nx = n.x, ny = n.y; - if (nx != null) { - if (abs(nx - x) + abs(ny - y) < .01) { - insertChild(n, d, x, y, x1, y1, x2, y2); - } else { - var nPoint = n.point; - n.x = n.y = n.point = null; - insertChild(n, nPoint, nx, ny, x1, y1, x2, y2); - insertChild(n, d, x, y, x1, y1, x2, y2); - } - } else { - n.x = x, n.y = y, n.point = d; - } - } else { - insertChild(n, d, x, y, x1, y1, x2, y2); - } - } - function insertChild(n, d, x, y, x1, y1, x2, y2) { - var xm = (x1 + x2) * .5, ym = (y1 + y2) * .5, right = x >= xm, below = y >= ym, i = below << 1 | right; - n.leaf = false; - n = n.nodes[i] || (n.nodes[i] = d3_geom_quadtreeNode()); - if (right) x1 = xm; else x2 = xm; - if (below) y1 = ym; else y2 = ym; - insert(n, d, x, y, x1, y1, x2, y2); - } - var root = d3_geom_quadtreeNode(); - root.add = function(d) { - insert(root, d, +fx(d, ++i), +fy(d, i), x1_, y1_, x2_, y2_); - }; - root.visit = function(f) { - d3_geom_quadtreeVisit(f, root, x1_, y1_, x2_, y2_); - }; - root.find = function(point) { - return d3_geom_quadtreeFind(root, point[0], point[1], x1_, y1_, x2_, y2_); - }; - i = -1; - if (x1 == null) { - while (++i < n) { - insert(root, data[i], xs[i], ys[i], x1_, y1_, x2_, y2_); - } - --i; - } else data.forEach(root.add); - xs = ys = data = d = null; - return root; - } - quadtree.x = function(_) { - return arguments.length ? (x = _, quadtree) : x; - }; - quadtree.y = function(_) { - return arguments.length ? (y = _, quadtree) : y; - }; - quadtree.extent = function(_) { - if (!arguments.length) return x1 == null ? null : [ [ x1, y1 ], [ x2, y2 ] ]; - if (_ == null) x1 = y1 = x2 = y2 = null; else x1 = +_[0][0], y1 = +_[0][1], x2 = +_[1][0], - y2 = +_[1][1]; - return quadtree; - }; - quadtree.size = function(_) { - if (!arguments.length) return x1 == null ? null : [ x2 - x1, y2 - y1 ]; - if (_ == null) x1 = y1 = x2 = y2 = null; else x1 = y1 = 0, x2 = +_[0], y2 = +_[1]; - return quadtree; - }; - return quadtree; + + force.x = function(_) { + return arguments.length ? (x = +_, force) : x; }; - function d3_geom_quadtreeCompatX(d) { - return d.x; - } - function d3_geom_quadtreeCompatY(d) { - return d.y; - } - function d3_geom_quadtreeNode() { - return { - leaf: true, - nodes: [], - point: null, - x: null, - y: null - }; - } - function d3_geom_quadtreeVisit(f, node, x1, y1, x2, y2) { - if (!f(node, x1, y1, x2, y2)) { - var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, children = node.nodes; - if (children[0]) d3_geom_quadtreeVisit(f, children[0], x1, y1, sx, sy); - if (children[1]) d3_geom_quadtreeVisit(f, children[1], sx, y1, x2, sy); - if (children[2]) d3_geom_quadtreeVisit(f, children[2], x1, sy, sx, y2); - if (children[3]) d3_geom_quadtreeVisit(f, children[3], sx, sy, x2, y2); - } - } - function d3_geom_quadtreeFind(root, x, y, x0, y0, x3, y3) { - var minDistance2 = Infinity, closestPoint; - (function find(node, x1, y1, x2, y2) { - if (x1 > x3 || y1 > y3 || x2 < x0 || y2 < y0) return; - if (point = node.point) { - var point, dx = x - node.x, dy = y - node.y, distance2 = dx * dx + dy * dy; - if (distance2 < minDistance2) { - var distance = Math.sqrt(minDistance2 = distance2); - x0 = x - distance, y0 = y - distance; - x3 = x + distance, y3 = y + distance; - closestPoint = point; - } - } - var children = node.nodes, xm = (x1 + x2) * .5, ym = (y1 + y2) * .5, right = x >= xm, below = y >= ym; - for (var i = below << 1 | right, j = i + 4; i < j; ++i) { - if (node = children[i & 3]) switch (i & 3) { - case 0: - find(node, x1, y1, xm, ym); - break; - case 1: - find(node, xm, y1, x2, ym); - break; + force.y = function(_) { + return arguments.length ? (y = +_, force) : y; + }; - case 2: - find(node, x1, ym, xm, y2); - break; + return force; +} - case 3: - find(node, xm, ym, x2, y2); - break; - } - } - })(root, x0, y0, x3, y3); - return closestPoint; - } - d3.interpolateRgb = d3_interpolateRgb; - function d3_interpolateRgb(a, b) { - a = d3.rgb(a); - b = d3.rgb(b); - var ar = a.r, ag = a.g, ab = a.b, br = b.r - ar, bg = b.g - ag, bb = b.b - ab; - return function(t) { - return "#" + d3_rgb_hex(Math.round(ar + br * t)) + d3_rgb_hex(Math.round(ag + bg * t)) + d3_rgb_hex(Math.round(ab + bb * t)); - }; - } - d3.interpolateObject = d3_interpolateObject; - function d3_interpolateObject(a, b) { - var i = {}, c = {}, k; - for (k in a) { - if (k in b) { - i[k] = d3_interpolate(a[k], b[k]); - } else { - c[k] = a[k]; +function constant(x) { + return function() { + return x; + }; +} + +function jiggle() { + return (Math.random() - 0.5) * 1e-6; +} + +function x(d) { + return d.x + d.vx; +} + +function y(d) { + return d.y + d.vy; +} + +function collide(radius) { + var nodes, + radii, + strength = 1, + iterations = 1; + + if (typeof radius !== "function") radius = constant(radius == null ? 1 : +radius); + + function force() { + var i, n = nodes.length, + tree, + node, + xi, + yi, + ri, + ri2; + + for (var k = 0; k < iterations; ++k) { + tree = d3Quadtree.quadtree(nodes, x, y).visitAfter(prepare); + for (i = 0; i < n; ++i) { + node = nodes[i]; + ri = radii[node.index], ri2 = ri * ri; + xi = node.x + node.vx; + yi = node.y + node.vy; + tree.visit(apply); } } - for (k in b) { - if (!(k in a)) { - c[k] = b[k]; + + function apply(quad, x0, y0, x1, y1) { + var data = quad.data, rj = quad.r, r = ri + rj; + if (data) { + if (data.index > node.index) { + var x = xi - data.x - data.vx, + y = yi - data.y - data.vy, + l = x * x + y * y; + if (l < r * r) { + if (x === 0) x = jiggle(), l += x * x; + if (y === 0) y = jiggle(), l += y * y; + l = (r - (l = Math.sqrt(l))) / l * strength; + node.vx += (x *= l) * (r = (rj *= rj) / (ri2 + rj)); + node.vy += (y *= l) * r; + data.vx -= x * (r = 1 - r); + data.vy -= y * r; + } + } + return; } + return x0 > xi + r || x1 < xi - r || y0 > yi + r || y1 < yi - r; } - return function(t) { - for (k in i) c[k] = i[k](t); - return c; - }; - } - d3.interpolateNumber = d3_interpolateNumber; - function d3_interpolateNumber(a, b) { - a = +a, b = +b; - return function(t) { - return a * (1 - t) + b * t; - }; } - d3.interpolateString = d3_interpolateString; - function d3_interpolateString(a, b) { - var bi = d3_interpolate_numberA.lastIndex = d3_interpolate_numberB.lastIndex = 0, am, bm, bs, i = -1, s = [], q = []; - a = a + "", b = b + ""; - while ((am = d3_interpolate_numberA.exec(a)) && (bm = d3_interpolate_numberB.exec(b))) { - if ((bs = bm.index) > bi) { - bs = b.slice(bi, bs); - if (s[i]) s[i] += bs; else s[++i] = bs; - } - if ((am = am[0]) === (bm = bm[0])) { - if (s[i]) s[i] += bm; else s[++i] = bm; - } else { - s[++i] = null; - q.push({ - i: i, - x: d3_interpolateNumber(am, bm) - }); + + function prepare(quad) { + if (quad.data) return quad.r = radii[quad.data.index]; + for (var i = quad.r = 0; i < 4; ++i) { + if (quad[i] && quad[i].r > quad.r) { + quad.r = quad[i].r; } - bi = d3_interpolate_numberB.lastIndex; - } - if (bi < b.length) { - bs = b.slice(bi); - if (s[i]) s[i] += bs; else s[++i] = bs; } - return s.length < 2 ? q[0] ? (b = q[0].x, function(t) { - return b(t) + ""; - }) : function() { - return b; - } : (b = q.length, function(t) { - for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t); - return s.join(""); - }); - } - var d3_interpolate_numberA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, d3_interpolate_numberB = new RegExp(d3_interpolate_numberA.source, "g"); - d3.interpolate = d3_interpolate; - function d3_interpolate(a, b) { - var i = d3.interpolators.length, f; - while (--i >= 0 && !(f = d3.interpolators[i](a, b))) ; - return f; } - d3.interpolators = [ function(a, b) { - var t = typeof b; - return (t === "string" ? d3_rgb_names.has(b.toLowerCase()) || /^(#|rgb\(|hsl\()/i.test(b) ? d3_interpolateRgb : d3_interpolateString : b instanceof d3_color ? d3_interpolateRgb : Array.isArray(b) ? d3_interpolateArray : t === "object" && isNaN(b) ? d3_interpolateObject : d3_interpolateNumber)(a, b); - } ]; - d3.interpolateArray = d3_interpolateArray; - function d3_interpolateArray(a, b) { - var x = [], c = [], na = a.length, nb = b.length, n0 = Math.min(a.length, b.length), i; - for (i = 0; i < n0; ++i) x.push(d3_interpolate(a[i], b[i])); - for (;i < na; ++i) c[i] = a[i]; - for (;i < nb; ++i) c[i] = b[i]; - return function(t) { - for (i = 0; i < n0; ++i) c[i] = x[i](t); - return c; - }; + + function initialize() { + if (!nodes) return; + var i, n = nodes.length, node; + radii = new Array(n); + for (i = 0; i < n; ++i) node = nodes[i], radii[node.index] = +radius(node, i, nodes); } - var d3_ease_default = function() { - return d3_identity; + + force.initialize = function(_) { + nodes = _; + initialize(); }; - var d3_ease = d3.map({ - linear: d3_ease_default, - poly: d3_ease_poly, - quad: function() { - return d3_ease_quad; - }, - cubic: function() { - return d3_ease_cubic; - }, - sin: function() { - return d3_ease_sin; - }, - exp: function() { - return d3_ease_exp; - }, - circle: function() { - return d3_ease_circle; - }, - elastic: d3_ease_elastic, - back: d3_ease_back, - bounce: function() { - return d3_ease_bounce; - } - }); - var d3_ease_mode = d3.map({ - "in": d3_identity, - out: d3_ease_reverse, - "in-out": d3_ease_reflect, - "out-in": function(f) { - return d3_ease_reflect(d3_ease_reverse(f)); - } - }); - d3.ease = function(name) { - var i = name.indexOf("-"), t = i >= 0 ? name.slice(0, i) : name, m = i >= 0 ? name.slice(i + 1) : "in"; - t = d3_ease.get(t) || d3_ease_default; - m = d3_ease_mode.get(m) || d3_identity; - return d3_ease_clamp(m(t.apply(null, d3_arraySlice.call(arguments, 1)))); + + force.iterations = function(_) { + return arguments.length ? (iterations = +_, force) : iterations; }; - function d3_ease_clamp(f) { - return function(t) { - return t <= 0 ? 0 : t >= 1 ? 1 : f(t); - }; - } - function d3_ease_reverse(f) { - return function(t) { - return 1 - f(1 - t); - }; - } - function d3_ease_reflect(f) { - return function(t) { - return .5 * (t < .5 ? f(2 * t) : 2 - f(2 - 2 * t)); - }; - } - function d3_ease_quad(t) { - return t * t; - } - function d3_ease_cubic(t) { - return t * t * t; - } - function d3_ease_cubicInOut(t) { - if (t <= 0) return 0; - if (t >= 1) return 1; - var t2 = t * t, t3 = t2 * t; - return 4 * (t < .5 ? t3 : 3 * (t - t2) + t3 - .75); - } - function d3_ease_poly(e) { - return function(t) { - return Math.pow(t, e); - }; - } - function d3_ease_sin(t) { - return 1 - Math.cos(t * halfπ); - } - function d3_ease_exp(t) { - return Math.pow(2, 10 * (t - 1)); - } - function d3_ease_circle(t) { - return 1 - Math.sqrt(1 - t * t); - } - function d3_ease_elastic(a, p) { - var s; - if (arguments.length < 2) p = .45; - if (arguments.length) s = p / τ * Math.asin(1 / a); else a = 1, s = p / 4; - return function(t) { - return 1 + a * Math.pow(2, -10 * t) * Math.sin((t - s) * τ / p); - }; - } - function d3_ease_back(s) { - if (!s) s = 1.70158; - return function(t) { - return t * t * ((s + 1) * t - s); - }; - } - function d3_ease_bounce(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; - } - d3.interpolateHcl = d3_interpolateHcl; - function d3_interpolateHcl(a, b) { - a = d3.hcl(a); - b = d3.hcl(b); - var ah = a.h, ac = a.c, al = a.l, bh = b.h - ah, bc = b.c - ac, bl = b.l - al; - if (isNaN(bc)) bc = 0, ac = isNaN(ac) ? b.c : ac; - if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah; else if (bh > 180) bh -= 360; else if (bh < -180) bh += 360; - return function(t) { - return d3_hcl_lab(ah + bh * t, ac + bc * t, al + bl * t) + ""; - }; - } - d3.interpolateHsl = d3_interpolateHsl; - function d3_interpolateHsl(a, b) { - a = d3.hsl(a); - b = d3.hsl(b); - var ah = a.h, as = a.s, al = a.l, bh = b.h - ah, bs = b.s - as, bl = b.l - al; - if (isNaN(bs)) bs = 0, as = isNaN(as) ? b.s : as; - if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah; else if (bh > 180) bh -= 360; else if (bh < -180) bh += 360; - return function(t) { - return d3_hsl_rgb(ah + bh * t, as + bs * t, al + bl * t) + ""; - }; - } - d3.interpolateLab = d3_interpolateLab; - function d3_interpolateLab(a, b) { - a = d3.lab(a); - b = d3.lab(b); - var al = a.l, aa = a.a, ab = a.b, bl = b.l - al, ba = b.a - aa, bb = b.b - ab; - return function(t) { - return d3_lab_rgb(al + bl * t, aa + ba * t, ab + bb * t) + ""; - }; - } - d3.interpolateRound = d3_interpolateRound; - function d3_interpolateRound(a, b) { - b -= a; - return function(t) { - return Math.round(a + b * t); - }; + + force.strength = function(_) { + return arguments.length ? (strength = +_, force) : strength; + }; + + force.radius = function(_) { + return arguments.length ? (radius = typeof _ === "function" ? _ : constant(+_), initialize(), force) : radius; + }; + + return force; +} + +function index(d) { + return d.index; +} + +function find(nodeById, nodeId) { + var node = nodeById.get(nodeId); + if (!node) throw new Error("missing: " + nodeId); + return node; +} + +function link(links) { + var id = index, + strength = defaultStrength, + strengths, + distance = constant(30), + distances, + nodes, + count, + bias, + iterations = 1; + + if (links == null) links = []; + + function defaultStrength(link) { + return 1 / Math.min(count[link.source.index], count[link.target.index]); } - d3.transform = function(string) { - var g = d3_document.createElementNS(d3.ns.prefix.svg, "g"); - return (d3.transform = function(string) { - if (string != null) { - g.setAttribute("transform", string); - var t = g.transform.baseVal.consolidate(); + + function force(alpha) { + for (var k = 0, n = links.length; k < iterations; ++k) { + for (var i = 0, link, source, target, x, y, l, b; i < n; ++i) { + link = links[i], source = link.source, target = link.target; + x = target.x + target.vx - source.x - source.vx || jiggle(); + y = target.y + target.vy - source.y - source.vy || jiggle(); + l = Math.sqrt(x * x + y * y); + l = (l - distances[i]) / l * alpha * strengths[i]; + x *= l, y *= l; + target.vx -= x * (b = bias[i]); + target.vy -= y * b; + source.vx += x * (b = 1 - b); + source.vy += y * b; } - return new d3_transform(t ? t.matrix : d3_transformIdentity); - })(string); - }; - function d3_transform(m) { - var r0 = [ m.a, m.b ], r1 = [ m.c, m.d ], kx = d3_transformNormalize(r0), kz = d3_transformDot(r0, r1), ky = d3_transformNormalize(d3_transformCombine(r1, r0, -kz)) || 0; - if (r0[0] * r1[1] < r1[0] * r0[1]) { - r0[0] *= -1; - r0[1] *= -1; - kx *= -1; - kz *= -1; } - this.rotate = (kx ? Math.atan2(r0[1], r0[0]) : Math.atan2(-r1[0], r1[1])) * d3_degrees; - this.translate = [ m.e, m.f ]; - this.scale = [ kx, ky ]; - this.skew = ky ? Math.atan2(kz, ky) * d3_degrees : 0; } - d3_transform.prototype.toString = function() { - return "translate(" + this.translate + ")rotate(" + this.rotate + ")skewX(" + this.skew + ")scale(" + this.scale + ")"; - }; - function d3_transformDot(a, b) { - return a[0] * b[0] + a[1] * b[1]; + + function initialize() { + if (!nodes) return; + + var i, + n = nodes.length, + m = links.length, + nodeById = d3Collection.map(nodes, id), + link; + + for (i = 0, count = new Array(n); i < m; ++i) { + link = links[i], link.index = i; + if (typeof link.source !== "object") link.source = find(nodeById, link.source); + if (typeof link.target !== "object") link.target = find(nodeById, link.target); + count[link.source.index] = (count[link.source.index] || 0) + 1; + count[link.target.index] = (count[link.target.index] || 0) + 1; + } + + for (i = 0, bias = new Array(m); i < m; ++i) { + link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]); + } + + strengths = new Array(m), initializeStrength(); + distances = new Array(m), initializeDistance(); } - function d3_transformNormalize(a) { - var k = Math.sqrt(d3_transformDot(a, a)); - if (k) { - a[0] /= k; - a[1] /= k; + + function initializeStrength() { + if (!nodes) return; + + for (var i = 0, n = links.length; i < n; ++i) { + strengths[i] = +strength(links[i], i, links); } - return k; } - function d3_transformCombine(a, b, k) { - a[0] += k * b[0]; - a[1] += k * b[1]; - return a; + + function initializeDistance() { + if (!nodes) return; + + for (var i = 0, n = links.length; i < n; ++i) { + distances[i] = +distance(links[i], i, links); + } } - var d3_transformIdentity = { - a: 1, - b: 0, - c: 0, - d: 1, - e: 0, - f: 0 + + force.initialize = function(_) { + nodes = _; + initialize(); }; - d3.interpolateTransform = d3_interpolateTransform; - function d3_interpolateTransformPop(s) { - return s.length ? s.pop() + "," : ""; - } - function d3_interpolateTranslate(ta, tb, s, q) { - if (ta[0] !== tb[0] || ta[1] !== tb[1]) { - var i = s.push("translate(", null, ",", null, ")"); - q.push({ - i: i - 4, - x: d3_interpolateNumber(ta[0], tb[0]) - }, { - i: i - 2, - x: d3_interpolateNumber(ta[1], tb[1]) - }); - } else if (tb[0] || tb[1]) { - s.push("translate(" + tb + ")"); + + force.links = function(_) { + return arguments.length ? (links = _, initialize(), force) : links; + }; + + force.id = function(_) { + return arguments.length ? (id = _, force) : id; + }; + + force.iterations = function(_) { + return arguments.length ? (iterations = +_, force) : iterations; + }; + + force.strength = function(_) { + return arguments.length ? (strength = typeof _ === "function" ? _ : constant(+_), initializeStrength(), force) : strength; + }; + + force.distance = function(_) { + return arguments.length ? (distance = typeof _ === "function" ? _ : constant(+_), initializeDistance(), force) : distance; + }; + + return force; +} + +function x$1(d) { + return d.x; +} + +function y$1(d) { + return d.y; +} + +var initialRadius = 10, + initialAngle = Math.PI * (3 - Math.sqrt(5)); + +function simulation(nodes) { + var simulation, + alpha = 1, + alphaMin = 0.001, + alphaDecay = 1 - Math.pow(alphaMin, 1 / 300), + alphaTarget = 0, + velocityDecay = 0.6, + forces = d3Collection.map(), + stepper = d3Timer.timer(step), + event = d3Dispatch.dispatch("tick", "end"); + + if (nodes == null) nodes = []; + + function step() { + tick(); + event.call("tick", simulation); + if (alpha < alphaMin) { + stepper.stop(); + event.call("end", simulation); } } - function d3_interpolateRotate(ra, rb, s, q) { - if (ra !== rb) { - if (ra - rb > 180) rb += 360; else if (rb - ra > 180) ra += 360; - q.push({ - i: s.push(d3_interpolateTransformPop(s) + "rotate(", null, ")") - 2, - x: d3_interpolateNumber(ra, rb) + + function tick(iterations) { + var i, n = nodes.length, node; + + if (iterations === undefined) iterations = 1; + + for (var k = 0; k < iterations; ++k) { + alpha += (alphaTarget - alpha) * alphaDecay; + + forces.each(function (force) { + force(alpha); }); - } else if (rb) { - s.push(d3_interpolateTransformPop(s) + "rotate(" + rb + ")"); + + for (i = 0; i < n; ++i) { + node = nodes[i]; + if (node.fx == null) node.x += node.vx *= velocityDecay; + else node.x = node.fx, node.vx = 0; + if (node.fy == null) node.y += node.vy *= velocityDecay; + else node.y = node.fy, node.vy = 0; + } } + + return simulation; } - function d3_interpolateSkew(wa, wb, s, q) { - if (wa !== wb) { - q.push({ - i: s.push(d3_interpolateTransformPop(s) + "skewX(", null, ")") - 2, - x: d3_interpolateNumber(wa, wb) - }); - } else if (wb) { - s.push(d3_interpolateTransformPop(s) + "skewX(" + wb + ")"); + + function initializeNodes() { + for (var i = 0, n = nodes.length, node; i < n; ++i) { + node = nodes[i], node.index = i; + if (node.fx != null) node.x = node.fx; + if (node.fy != null) node.y = node.fy; + if (isNaN(node.x) || isNaN(node.y)) { + var radius = initialRadius * Math.sqrt(i), angle = i * initialAngle; + node.x = radius * Math.cos(angle); + node.y = radius * Math.sin(angle); + } + if (isNaN(node.vx) || isNaN(node.vy)) { + node.vx = node.vy = 0; + } } } - function d3_interpolateScale(ka, kb, s, q) { - if (ka[0] !== kb[0] || ka[1] !== kb[1]) { - var i = s.push(d3_interpolateTransformPop(s) + "scale(", null, ",", null, ")"); - q.push({ - i: i - 4, - x: d3_interpolateNumber(ka[0], kb[0]) - }, { - i: i - 2, - x: d3_interpolateNumber(ka[1], kb[1]) - }); - } else if (kb[0] !== 1 || kb[1] !== 1) { - s.push(d3_interpolateTransformPop(s) + "scale(" + kb + ")"); + + function initializeForce(force) { + if (force.initialize) force.initialize(nodes); + return force; + } + + initializeNodes(); + + return simulation = { + tick: tick, + + restart: function() { + return stepper.restart(step), simulation; + }, + + stop: function() { + return stepper.stop(), simulation; + }, + + nodes: function(_) { + return arguments.length ? (nodes = _, initializeNodes(), forces.each(initializeForce), simulation) : nodes; + }, + + alpha: function(_) { + return arguments.length ? (alpha = +_, simulation) : alpha; + }, + + alphaMin: function(_) { + return arguments.length ? (alphaMin = +_, simulation) : alphaMin; + }, + + alphaDecay: function(_) { + return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay; + }, + + alphaTarget: function(_) { + return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget; + }, + + velocityDecay: function(_) { + return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay; + }, + + force: function(name, _) { + return arguments.length > 1 ? ((_ == null ? forces.remove(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name); + }, + + find: function(x, y, radius) { + var i = 0, + n = nodes.length, + dx, + dy, + d2, + node, + closest; + + if (radius == null) radius = Infinity; + else radius *= radius; + + for (i = 0; i < n; ++i) { + node = nodes[i]; + dx = x - node.x; + dy = y - node.y; + d2 = dx * dx + dy * dy; + if (d2 < radius) closest = node, radius = d2; + } + + return closest; + }, + + on: function(name, _) { + return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name); } + }; +} + +function manyBody() { + var nodes, + node, + alpha, + strength = constant(-30), + strengths, + distanceMin2 = 1, + distanceMax2 = Infinity, + theta2 = 0.81; + + function force(_) { + var i, n = nodes.length, tree = d3Quadtree.quadtree(nodes, x$1, y$1).visitAfter(accumulate); + for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply); } - function d3_interpolateTransform(a, b) { - var s = [], q = []; - a = d3.transform(a), b = d3.transform(b); - d3_interpolateTranslate(a.translate, b.translate, s, q); - d3_interpolateRotate(a.rotate, b.rotate, s, q); - d3_interpolateSkew(a.skew, b.skew, s, q); - d3_interpolateScale(a.scale, b.scale, s, q); - a = b = null; - return function(t) { - var i = -1, n = q.length, o; - while (++i < n) s[(o = q[i]).i] = o.x(t); - return s.join(""); - }; + + function initialize() { + if (!nodes) return; + var i, n = nodes.length, node; + strengths = new Array(n); + for (i = 0; i < n; ++i) node = nodes[i], strengths[node.index] = +strength(node, i, nodes); } - function d3_uninterpolateNumber(a, b) { - b = (b -= a = +a) || 1 / b; - return function(x) { - return (x - a) / b; - }; + + function accumulate(quad) { + var strength = 0, q, c, weight = 0, x, y, i; + + // For internal nodes, accumulate forces from child quadrants. + if (quad.length) { + for (x = y = i = 0; i < 4; ++i) { + if ((q = quad[i]) && (c = Math.abs(q.value))) { + strength += q.value, weight += c, x += c * q.x, y += c * q.y; + } + } + quad.x = x / weight; + quad.y = y / weight; + } + + // For leaf nodes, accumulate forces from coincident quadrants. + else { + q = quad; + q.x = q.data.x; + q.y = q.data.y; + do strength += strengths[q.data.index]; + while (q = q.next); + } + + quad.value = strength; } - function d3_uninterpolateClamp(a, b) { - b = (b -= a = +a) || 1 / b; - return function(x) { - return Math.max(0, Math.min(1, (x - a) / b)); - }; + + function apply(quad, x1, _, x2) { + if (!quad.value) return true; + + var x = quad.x - node.x, + y = quad.y - node.y, + w = x2 - x1, + l = x * x + y * y; + + // Apply the Barnes-Hut approximation if possible. + // Limit forces for very close nodes; randomize direction if coincident. + if (w * w / theta2 < l) { + if (l < distanceMax2) { + if (x === 0) x = jiggle(), l += x * x; + if (y === 0) y = jiggle(), l += y * y; + if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l); + node.vx += x * quad.value * alpha / l; + node.vy += y * quad.value * alpha / l; + } + return true; + } + + // Otherwise, process points directly. + else if (quad.length || l >= distanceMax2) return; + + // Limit forces for very close nodes; randomize direction if coincident. + if (quad.data !== node || quad.next) { + if (x === 0) x = jiggle(), l += x * x; + if (y === 0) y = jiggle(), l += y * y; + if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l); + } + + do if (quad.data !== node) { + w = strengths[quad.data.index] * alpha / l; + node.vx += x * w; + node.vy += y * w; + } while (quad = quad.next); } - d3.layout = {}; - d3.layout.bundle = function() { - return function(links) { - var paths = [], i = -1, n = links.length; - while (++i < n) paths.push(d3_layout_bundlePath(links[i])); - return paths; - }; + + force.initialize = function(_) { + nodes = _; + initialize(); }; - function d3_layout_bundlePath(link) { - var start = link.source, end = link.target, lca = d3_layout_bundleLeastCommonAncestor(start, end), points = [ start ]; - while (start !== lca) { - start = start.parent; - points.push(start); + + force.strength = function(_) { + return arguments.length ? (strength = typeof _ === "function" ? _ : constant(+_), initialize(), force) : strength; + }; + + force.distanceMin = function(_) { + return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2); + }; + + force.distanceMax = function(_) { + return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2); + }; + + force.theta = function(_) { + return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2); + }; + + return force; +} + +function radial(radius, x, y) { + var nodes, + strength = constant(0.1), + strengths, + radiuses; + + if (typeof radius !== "function") radius = constant(+radius); + if (x == null) x = 0; + if (y == null) y = 0; + + function force(alpha) { + for (var i = 0, n = nodes.length; i < n; ++i) { + var node = nodes[i], + dx = node.x - x || 1e-6, + dy = node.y - y || 1e-6, + r = Math.sqrt(dx * dx + dy * dy), + k = (radiuses[i] - r) * strengths[i] * alpha / r; + node.vx += dx * k; + node.vy += dy * k; } - var k = points.length; - while (end !== lca) { - points.splice(k, 0, end); - end = end.parent; + } + + function initialize() { + if (!nodes) return; + var i, n = nodes.length; + strengths = new Array(n); + radiuses = new Array(n); + for (i = 0; i < n; ++i) { + radiuses[i] = +radius(nodes[i], i, nodes); + strengths[i] = isNaN(radiuses[i]) ? 0 : +strength(nodes[i], i, nodes); } - return points; } - function d3_layout_bundleAncestors(node) { - var ancestors = [], parent = node.parent; - while (parent != null) { - ancestors.push(node); - node = parent; - parent = parent.parent; + + force.initialize = function(_) { + nodes = _, initialize(); + }; + + force.strength = function(_) { + return arguments.length ? (strength = typeof _ === "function" ? _ : constant(+_), initialize(), force) : strength; + }; + + force.radius = function(_) { + return arguments.length ? (radius = typeof _ === "function" ? _ : constant(+_), initialize(), force) : radius; + }; + + force.x = function(_) { + return arguments.length ? (x = +_, force) : x; + }; + + force.y = function(_) { + return arguments.length ? (y = +_, force) : y; + }; + + return force; +} + +function x$2(x) { + var strength = constant(0.1), + nodes, + strengths, + xz; + + if (typeof x !== "function") x = constant(x == null ? 0 : +x); + + function force(alpha) { + for (var i = 0, n = nodes.length, node; i < n; ++i) { + node = nodes[i], node.vx += (xz[i] - node.x) * strengths[i] * alpha; } - ancestors.push(node); - return ancestors; } - function d3_layout_bundleLeastCommonAncestor(a, b) { - if (a === b) return a; - var aNodes = d3_layout_bundleAncestors(a), bNodes = d3_layout_bundleAncestors(b), aNode = aNodes.pop(), bNode = bNodes.pop(), sharedNode = null; - while (aNode === bNode) { - sharedNode = aNode; - aNode = aNodes.pop(); - bNode = bNodes.pop(); + + function initialize() { + if (!nodes) return; + var i, n = nodes.length; + strengths = new Array(n); + xz = new Array(n); + for (i = 0; i < n; ++i) { + strengths[i] = isNaN(xz[i] = +x(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes); } - return sharedNode; } - d3.layout.chord = function() { - var chord = {}, chords, groups, matrix, n, padding = 0, sortGroups, sortSubgroups, sortChords; - function relayout() { - var subgroups = {}, groupSums = [], groupIndex = d3.range(n), subgroupIndex = [], k, x, x0, i, j; - chords = []; - groups = []; - k = 0, i = -1; - while (++i < n) { - x = 0, j = -1; - while (++j < n) { - x += matrix[i][j]; - } - groupSums.push(x); - subgroupIndex.push(d3.range(n)); - k += x; - } - if (sortGroups) { - groupIndex.sort(function(a, b) { - return sortGroups(groupSums[a], groupSums[b]); - }); - } - if (sortSubgroups) { - subgroupIndex.forEach(function(d, i) { - d.sort(function(a, b) { - return sortSubgroups(matrix[i][a], matrix[i][b]); - }); - }); - } - k = (τ - padding * n) / k; - x = 0, i = -1; - while (++i < n) { - x0 = x, j = -1; - while (++j < n) { - var di = groupIndex[i], dj = subgroupIndex[di][j], v = matrix[di][dj], a0 = x, a1 = x += v * k; - subgroups[di + "-" + dj] = { - index: di, - subindex: dj, - startAngle: a0, - endAngle: a1, - value: v - }; - } - groups[di] = { - index: di, - startAngle: x0, - endAngle: x, - value: groupSums[di] - }; - x += padding; - } - i = -1; - while (++i < n) { - j = i - 1; - while (++j < n) { - var source = subgroups[i + "-" + j], target = subgroups[j + "-" + i]; - if (source.value || target.value) { - chords.push(source.value < target.value ? { - source: target, - target: source - } : { - source: source, - target: target - }); - } - } - } - if (sortChords) resort(); + + force.initialize = function(_) { + nodes = _; + initialize(); + }; + + force.strength = function(_) { + return arguments.length ? (strength = typeof _ === "function" ? _ : constant(+_), initialize(), force) : strength; + }; + + force.x = function(_) { + return arguments.length ? (x = typeof _ === "function" ? _ : constant(+_), initialize(), force) : x; + }; + + return force; +} + +function y$2(y) { + var strength = constant(0.1), + nodes, + strengths, + yz; + + if (typeof y !== "function") y = constant(y == null ? 0 : +y); + + function force(alpha) { + for (var i = 0, n = nodes.length, node; i < n; ++i) { + node = nodes[i], node.vy += (yz[i] - node.y) * strengths[i] * alpha; } - function resort() { - chords.sort(function(a, b) { - return sortChords((a.source.value + a.target.value) / 2, (b.source.value + b.target.value) / 2); - }); + } + + function initialize() { + if (!nodes) return; + var i, n = nodes.length; + strengths = new Array(n); + yz = new Array(n); + for (i = 0; i < n; ++i) { + strengths[i] = isNaN(yz[i] = +y(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes); } - chord.matrix = function(x) { - if (!arguments.length) return matrix; - n = (matrix = x) && matrix.length; - chords = groups = null; - return chord; - }; - chord.padding = function(x) { - if (!arguments.length) return padding; - padding = x; - chords = groups = null; - return chord; - }; - chord.sortGroups = function(x) { - if (!arguments.length) return sortGroups; - sortGroups = x; - chords = groups = null; - return chord; - }; - chord.sortSubgroups = function(x) { - if (!arguments.length) return sortSubgroups; - sortSubgroups = x; - chords = null; - return chord; - }; - chord.sortChords = function(x) { - if (!arguments.length) return sortChords; - sortChords = x; - if (chords) resort(); - return chord; - }; - chord.chords = function() { - if (!chords) relayout(); - return chords; - }; - chord.groups = function() { - if (!groups) relayout(); - return groups; - }; - return chord; + } + + force.initialize = function(_) { + nodes = _; + initialize(); }; - d3.layout.force = function() { - var force = {}, event = d3.dispatch("start", "tick", "end"), timer, size = [ 1, 1 ], drag, alpha, friction = .9, linkDistance = d3_layout_forceLinkDistance, linkStrength = d3_layout_forceLinkStrength, charge = -30, chargeDistance2 = d3_layout_forceChargeDistance2, gravity = .1, theta2 = .64, nodes = [], links = [], distances, strengths, charges; - function repulse(node) { - return function(quad, x1, _, x2) { - if (quad.point !== node) { - var dx = quad.cx - node.x, dy = quad.cy - node.y, dw = x2 - x1, dn = dx * dx + dy * dy; - if (dw * dw / theta2 < dn) { - if (dn < chargeDistance2) { - var k = quad.charge / dn; - node.px -= dx * k; - node.py -= dy * k; - } - return true; - } - if (quad.point && dn && dn < chargeDistance2) { - var k = quad.pointCharge / dn; - node.px -= dx * k; - node.py -= dy * k; - } - } - return !quad.charge; - }; - } - force.tick = function() { - if ((alpha *= .99) < .005) { - timer = null; - event.end({ - type: "end", - alpha: alpha = 0 - }); - return true; - } - var n = nodes.length, m = links.length, q, i, o, s, t, l, k, x, y; - for (i = 0; i < m; ++i) { - o = links[i]; - s = o.source; - t = o.target; - x = t.x - s.x; - y = t.y - s.y; - if (l = x * x + y * y) { - l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l; - x *= l; - y *= l; - t.x -= x * (k = s.weight + t.weight ? s.weight / (s.weight + t.weight) : .5); - t.y -= y * k; - s.x += x * (k = 1 - k); - s.y += y * k; - } - } - if (k = alpha * gravity) { - x = size[0] / 2; - y = size[1] / 2; - i = -1; - if (k) while (++i < n) { - o = nodes[i]; - o.x += (x - o.x) * k; - o.y += (y - o.y) * k; - } - } - if (charge) { - d3_layout_forceAccumulate(q = d3.geom.quadtree(nodes), alpha, charges); - i = -1; - while (++i < n) { - if (!(o = nodes[i]).fixed) { - q.visit(repulse(o)); - } - } - } - i = -1; - while (++i < n) { - o = nodes[i]; - if (o.fixed) { - o.x = o.px; - o.y = o.py; - } else { - o.x -= (o.px - (o.px = o.x)) * friction; - o.y -= (o.py - (o.py = o.y)) * friction; - } - } - event.tick({ - type: "tick", - alpha: alpha - }); - }; - force.nodes = function(x) { - if (!arguments.length) return nodes; - nodes = x; - return force; - }; - force.links = function(x) { - if (!arguments.length) return links; - links = x; - return force; - }; - force.size = function(x) { - if (!arguments.length) return size; - size = x; - return force; - }; - force.linkDistance = function(x) { - if (!arguments.length) return linkDistance; - linkDistance = typeof x === "function" ? x : +x; - return force; - }; - force.distance = force.linkDistance; - force.linkStrength = function(x) { - if (!arguments.length) return linkStrength; - linkStrength = typeof x === "function" ? x : +x; - return force; - }; - force.friction = function(x) { - if (!arguments.length) return friction; - friction = +x; - return force; - }; - force.charge = function(x) { - if (!arguments.length) return charge; - charge = typeof x === "function" ? x : +x; - return force; - }; - force.chargeDistance = function(x) { - if (!arguments.length) return Math.sqrt(chargeDistance2); - chargeDistance2 = x * x; - return force; - }; - force.gravity = function(x) { - if (!arguments.length) return gravity; - gravity = +x; - return force; - }; - force.theta = function(x) { - if (!arguments.length) return Math.sqrt(theta2); - theta2 = x * x; - return force; - }; - force.alpha = function(x) { - if (!arguments.length) return alpha; - x = +x; - if (alpha) { - if (x > 0) { - alpha = x; - } else { - timer.c = null, timer.t = NaN, timer = null; - event.end({ - type: "end", - alpha: alpha = 0 - }); - } - } else if (x > 0) { - event.start({ - type: "start", - alpha: alpha = x - }); - timer = d3_timer(force.tick); - } - return force; - }; - force.start = function() { - var i, n = nodes.length, m = links.length, w = size[0], h = size[1], neighbors, o; - for (i = 0; i < n; ++i) { - (o = nodes[i]).index = i; - o.weight = 0; - } - for (i = 0; i < m; ++i) { - o = links[i]; - if (typeof o.source == "number") o.source = nodes[o.source]; - if (typeof o.target == "number") o.target = nodes[o.target]; - ++o.source.weight; - ++o.target.weight; - } - for (i = 0; i < n; ++i) { - o = nodes[i]; - if (isNaN(o.x)) o.x = position("x", w); - if (isNaN(o.y)) o.y = position("y", h); - if (isNaN(o.px)) o.px = o.x; - if (isNaN(o.py)) o.py = o.y; - } - distances = []; - if (typeof linkDistance === "function") for (i = 0; i < m; ++i) distances[i] = +linkDistance.call(this, links[i], i); else for (i = 0; i < m; ++i) distances[i] = linkDistance; - strengths = []; - if (typeof linkStrength === "function") for (i = 0; i < m; ++i) strengths[i] = +linkStrength.call(this, links[i], i); else for (i = 0; i < m; ++i) strengths[i] = linkStrength; - charges = []; - if (typeof charge === "function") for (i = 0; i < n; ++i) charges[i] = +charge.call(this, nodes[i], i); else for (i = 0; i < n; ++i) charges[i] = charge; - function position(dimension, size) { - if (!neighbors) { - neighbors = new Array(n); - for (j = 0; j < n; ++j) { - neighbors[j] = []; - } - for (j = 0; j < m; ++j) { - var o = links[j]; - neighbors[o.source.index].push(o.target); - neighbors[o.target.index].push(o.source); - } - } - var candidates = neighbors[i], j = -1, l = candidates.length, x; - while (++j < l) if (!isNaN(x = candidates[j][dimension])) return x; - return Math.random() * size; + + force.strength = function(_) { + return arguments.length ? (strength = typeof _ === "function" ? _ : constant(+_), initialize(), force) : strength; + }; + + force.y = function(_) { + return arguments.length ? (y = typeof _ === "function" ? _ : constant(+_), initialize(), force) : y; + }; + + return force; +} + +exports.forceCenter = center; +exports.forceCollide = collide; +exports.forceLink = link; +exports.forceManyBody = manyBody; +exports.forceRadial = radial; +exports.forceSimulation = simulation; +exports.forceX = x$2; +exports.forceY = y$2; + +Object.defineProperty(exports, '__esModule', { value: true }); + +}))); + +},{"d3-collection":159,"d3-dispatch":161,"d3-quadtree":166,"d3-timer":170}],163:[function(_dereq_,module,exports){ +// https://d3js.org/d3-hierarchy/ v1.1.9 Copyright 2019 Mike Bostock +(function (global, factory) { +typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : +typeof define === 'function' && define.amd ? define(['exports'], factory) : +(global = global || self, factory(global.d3 = global.d3 || {})); +}(this, function (exports) { 'use strict'; + +function defaultSeparation(a, b) { + return a.parent === b.parent ? 1 : 2; +} + +function meanX(children) { + return children.reduce(meanXReduce, 0) / children.length; +} + +function meanXReduce(x, c) { + return x + c.x; +} + +function maxY(children) { + return 1 + children.reduce(maxYReduce, 0); +} + +function maxYReduce(y, c) { + return Math.max(y, c.y); +} + +function leafLeft(node) { + var children; + while (children = node.children) node = children[0]; + return node; +} + +function leafRight(node) { + var children; + while (children = node.children) node = children[children.length - 1]; + return node; +} + +function cluster() { + var separation = defaultSeparation, + dx = 1, + dy = 1, + nodeSize = false; + + function cluster(root) { + var previousNode, + x = 0; + + // First walk, computing the initial x & y values. + root.eachAfter(function(node) { + var children = node.children; + if (children) { + node.x = meanX(children); + node.y = maxY(children); + } else { + node.x = previousNode ? x += separation(node, previousNode) : 0; + node.y = 0; + previousNode = node; + } + }); + + var left = leafLeft(root), + right = leafRight(root), + x0 = left.x - separation(left, right) / 2, + x1 = right.x + separation(right, left) / 2; + + // Second walk, normalizing x & y to the desired size. + return root.eachAfter(nodeSize ? function(node) { + node.x = (node.x - root.x) * dx; + node.y = (root.y - node.y) * dy; + } : function(node) { + node.x = (node.x - x0) / (x1 - x0) * dx; + node.y = (1 - (root.y ? node.y / root.y : 1)) * dy; + }); + } + + cluster.separation = function(x) { + return arguments.length ? (separation = x, cluster) : separation; + }; + + cluster.size = function(x) { + return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? null : [dx, dy]); + }; + + cluster.nodeSize = function(x) { + return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? [dx, dy] : null); + }; + + return cluster; +} + +function count(node) { + var sum = 0, + children = node.children, + i = children && children.length; + if (!i) sum = 1; + else while (--i >= 0) sum += children[i].value; + node.value = sum; +} + +function node_count() { + return this.eachAfter(count); +} + +function node_each(callback) { + var node = this, current, next = [node], children, i, n; + do { + current = next.reverse(), next = []; + while (node = current.pop()) { + callback(node), children = node.children; + if (children) for (i = 0, n = children.length; i < n; ++i) { + next.push(children[i]); } - return force.resume(); - }; - force.resume = function() { - return force.alpha(.1); - }; - force.stop = function() { - return force.alpha(0); - }; - force.drag = function() { - if (!drag) drag = d3.behavior.drag().origin(d3_identity).on("dragstart.force", d3_layout_forceDragstart).on("drag.force", dragmove).on("dragend.force", d3_layout_forceDragend); - if (!arguments.length) return drag; - this.on("mouseover.force", d3_layout_forceMouseover).on("mouseout.force", d3_layout_forceMouseout).call(drag); - }; - function dragmove(d) { - d.px = d3.event.x, d.py = d3.event.y; - force.resume(); } - return d3.rebind(force, event, "on"); - }; - function d3_layout_forceDragstart(d) { - d.fixed |= 2; + } while (next.length); + return this; +} + +function node_eachBefore(callback) { + var node = this, nodes = [node], children, i; + while (node = nodes.pop()) { + callback(node), children = node.children; + if (children) for (i = children.length - 1; i >= 0; --i) { + nodes.push(children[i]); + } } - function d3_layout_forceDragend(d) { - d.fixed &= ~6; + return this; +} + +function node_eachAfter(callback) { + var node = this, nodes = [node], next = [], children, i, n; + while (node = nodes.pop()) { + next.push(node), children = node.children; + if (children) for (i = 0, n = children.length; i < n; ++i) { + nodes.push(children[i]); + } } - function d3_layout_forceMouseover(d) { - d.fixed |= 4; - d.px = d.x, d.py = d.y; + while (node = next.pop()) { + callback(node); } - function d3_layout_forceMouseout(d) { - d.fixed &= ~4; + return this; +} + +function node_sum(value) { + return this.eachAfter(function(node) { + var sum = +value(node.data) || 0, + children = node.children, + i = children && children.length; + while (--i >= 0) sum += children[i].value; + node.value = sum; + }); +} + +function node_sort(compare) { + return this.eachBefore(function(node) { + if (node.children) { + node.children.sort(compare); + } + }); +} + +function node_path(end) { + var start = this, + ancestor = leastCommonAncestor(start, end), + nodes = [start]; + while (start !== ancestor) { + start = start.parent; + nodes.push(start); } - function d3_layout_forceAccumulate(quad, alpha, charges) { - var cx = 0, cy = 0; - quad.charge = 0; - if (!quad.leaf) { - var nodes = quad.nodes, n = nodes.length, i = -1, c; - while (++i < n) { - c = nodes[i]; - if (c == null) continue; - d3_layout_forceAccumulate(c, alpha, charges); - quad.charge += c.charge; - cx += c.charge * c.cx; - cy += c.charge * c.cy; - } + var k = nodes.length; + while (end !== ancestor) { + nodes.splice(k, 0, end); + end = end.parent; + } + return nodes; +} + +function leastCommonAncestor(a, b) { + if (a === b) return a; + var aNodes = a.ancestors(), + bNodes = b.ancestors(), + c = null; + a = aNodes.pop(); + b = bNodes.pop(); + while (a === b) { + c = a; + a = aNodes.pop(); + b = bNodes.pop(); + } + return c; +} + +function node_ancestors() { + var node = this, nodes = [node]; + while (node = node.parent) { + nodes.push(node); + } + return nodes; +} + +function node_descendants() { + var nodes = []; + this.each(function(node) { + nodes.push(node); + }); + return nodes; +} + +function node_leaves() { + var leaves = []; + this.eachBefore(function(node) { + if (!node.children) { + leaves.push(node); } - if (quad.point) { - if (!quad.leaf) { - quad.point.x += Math.random() - .5; - quad.point.y += Math.random() - .5; - } - var k = alpha * charges[quad.point.index]; - quad.charge += quad.pointCharge = k; - cx += k * quad.point.x; - cy += k * quad.point.y; + }); + return leaves; +} + +function node_links() { + var root = this, links = []; + root.each(function(node) { + if (node !== root) { // Don’t include the root’s parent, if any. + links.push({source: node.parent, target: node}); } - quad.cx = cx / quad.charge; - quad.cy = cy / quad.charge; - } - var d3_layout_forceLinkDistance = 20, d3_layout_forceLinkStrength = 1, d3_layout_forceChargeDistance2 = Infinity; - d3.layout.hierarchy = function() { - var sort = d3_layout_hierarchySort, children = d3_layout_hierarchyChildren, value = d3_layout_hierarchyValue; - function hierarchy(root) { - var stack = [ root ], nodes = [], node; - root.depth = 0; - while ((node = stack.pop()) != null) { - nodes.push(node); - if ((childs = children.call(hierarchy, node, node.depth)) && (n = childs.length)) { - var n, childs, child; - while (--n >= 0) { - stack.push(child = childs[n]); - child.parent = node; - child.depth = node.depth + 1; - } - if (value) node.value = 0; - node.children = childs; - } else { - if (value) node.value = +value.call(hierarchy, node, node.depth) || 0; - delete node.children; - } + }); + return links; +} + +function hierarchy(data, children) { + var root = new Node(data), + valued = +data.value && (root.value = data.value), + node, + nodes = [root], + child, + childs, + i, + n; + + if (children == null) children = defaultChildren; + + while (node = nodes.pop()) { + if (valued) node.value = +node.data.value; + if ((childs = children(node.data)) && (n = childs.length)) { + node.children = new Array(n); + for (i = n - 1; i >= 0; --i) { + nodes.push(child = node.children[i] = new Node(childs[i])); + child.parent = node; + child.depth = node.depth + 1; } - d3_layout_hierarchyVisitAfter(root, function(node) { - var childs, parent; - if (sort && (childs = node.children)) childs.sort(sort); - if (value && (parent = node.parent)) parent.value += node.value; - }); - return nodes; } - hierarchy.sort = function(x) { - if (!arguments.length) return sort; - sort = x; - return hierarchy; - }; - hierarchy.children = function(x) { - if (!arguments.length) return children; - children = x; - return hierarchy; - }; - hierarchy.value = function(x) { - if (!arguments.length) return value; - value = x; - return hierarchy; - }; - hierarchy.revalue = function(root) { - if (value) { - d3_layout_hierarchyVisitBefore(root, function(node) { - if (node.children) node.value = 0; - }); - d3_layout_hierarchyVisitAfter(root, function(node) { - var parent; - if (!node.children) node.value = +value.call(hierarchy, node, node.depth) || 0; - if (parent = node.parent) parent.value += node.value; - }); - } - return root; - }; - return hierarchy; - }; - function d3_layout_hierarchyRebind(object, hierarchy) { - d3.rebind(object, hierarchy, "sort", "children", "value"); - object.nodes = object; - object.links = d3_layout_hierarchyLinks; - return object; } - function d3_layout_hierarchyVisitBefore(node, callback) { - var nodes = [ node ]; - while ((node = nodes.pop()) != null) { - callback(node); - if ((children = node.children) && (n = children.length)) { - var n, children; - while (--n >= 0) nodes.push(children[n]); - } + + return root.eachBefore(computeHeight); +} + +function node_copy() { + return hierarchy(this).eachBefore(copyData); +} + +function defaultChildren(d) { + return d.children; +} + +function copyData(node) { + node.data = node.data.data; +} + +function computeHeight(node) { + var height = 0; + do node.height = height; + while ((node = node.parent) && (node.height < ++height)); +} + +function Node(data) { + this.data = data; + this.depth = + this.height = 0; + this.parent = null; +} + +Node.prototype = hierarchy.prototype = { + constructor: Node, + count: node_count, + each: node_each, + eachAfter: node_eachAfter, + eachBefore: node_eachBefore, + sum: node_sum, + sort: node_sort, + path: node_path, + ancestors: node_ancestors, + descendants: node_descendants, + leaves: node_leaves, + links: node_links, + copy: node_copy +}; + +var slice = Array.prototype.slice; + +function shuffle(array) { + var m = array.length, + t, + i; + + while (m) { + i = Math.random() * m-- | 0; + t = array[m]; + array[m] = array[i]; + array[i] = t; + } + + return array; +} + +function enclose(circles) { + var i = 0, n = (circles = shuffle(slice.call(circles))).length, B = [], p, e; + + while (i < n) { + p = circles[i]; + if (e && enclosesWeak(e, p)) ++i; + else e = encloseBasis(B = extendBasis(B, p)), i = 0; + } + + return e; +} + +function extendBasis(B, p) { + var i, j; + + if (enclosesWeakAll(p, B)) return [p]; + + // If we get here then B must have at least one element. + for (i = 0; i < B.length; ++i) { + if (enclosesNot(p, B[i]) + && enclosesWeakAll(encloseBasis2(B[i], p), B)) { + return [B[i], p]; } } - function d3_layout_hierarchyVisitAfter(node, callback) { - var nodes = [ node ], nodes2 = []; - while ((node = nodes.pop()) != null) { - nodes2.push(node); - if ((children = node.children) && (n = children.length)) { - var i = -1, n, children; - while (++i < n) nodes.push(children[i]); + + // If we get here then B must have at least two elements. + for (i = 0; i < B.length - 1; ++i) { + for (j = i + 1; j < B.length; ++j) { + if (enclosesNot(encloseBasis2(B[i], B[j]), p) + && enclosesNot(encloseBasis2(B[i], p), B[j]) + && enclosesNot(encloseBasis2(B[j], p), B[i]) + && enclosesWeakAll(encloseBasis3(B[i], B[j], p), B)) { + return [B[i], B[j], p]; } } - while ((node = nodes2.pop()) != null) { - callback(node); - } - } - function d3_layout_hierarchyChildren(d) { - return d.children; } - function d3_layout_hierarchyValue(d) { - return d.value; + + // If we get here then something is very wrong. + throw new Error; +} + +function enclosesNot(a, b) { + var dr = a.r - b.r, dx = b.x - a.x, dy = b.y - a.y; + return dr < 0 || dr * dr < dx * dx + dy * dy; +} + +function enclosesWeak(a, b) { + var dr = a.r - b.r + 1e-6, dx = b.x - a.x, dy = b.y - a.y; + return dr > 0 && dr * dr > dx * dx + dy * dy; +} + +function enclosesWeakAll(a, B) { + for (var i = 0; i < B.length; ++i) { + if (!enclosesWeak(a, B[i])) { + return false; + } } - function d3_layout_hierarchySort(a, b) { - return b.value - a.value; + return true; +} + +function encloseBasis(B) { + switch (B.length) { + case 1: return encloseBasis1(B[0]); + case 2: return encloseBasis2(B[0], B[1]); + case 3: return encloseBasis3(B[0], B[1], B[2]); } - function d3_layout_hierarchyLinks(nodes) { - return d3.merge(nodes.map(function(parent) { - return (parent.children || []).map(function(child) { - return { - source: parent, - target: child - }; - }); - })); +} + +function encloseBasis1(a) { + return { + x: a.x, + y: a.y, + r: a.r + }; +} + +function encloseBasis2(a, b) { + var x1 = a.x, y1 = a.y, r1 = a.r, + x2 = b.x, y2 = b.y, r2 = b.r, + x21 = x2 - x1, y21 = y2 - y1, r21 = r2 - r1, + l = Math.sqrt(x21 * x21 + y21 * y21); + return { + x: (x1 + x2 + x21 / l * r21) / 2, + y: (y1 + y2 + y21 / l * r21) / 2, + r: (l + r1 + r2) / 2 + }; +} + +function encloseBasis3(a, b, c) { + var x1 = a.x, y1 = a.y, r1 = a.r, + x2 = b.x, y2 = b.y, r2 = b.r, + x3 = c.x, y3 = c.y, r3 = c.r, + a2 = x1 - x2, + a3 = x1 - x3, + b2 = y1 - y2, + b3 = y1 - y3, + c2 = r2 - r1, + c3 = r3 - r1, + d1 = x1 * x1 + y1 * y1 - r1 * r1, + d2 = d1 - x2 * x2 - y2 * y2 + r2 * r2, + d3 = d1 - x3 * x3 - y3 * y3 + r3 * r3, + ab = a3 * b2 - a2 * b3, + xa = (b2 * d3 - b3 * d2) / (ab * 2) - x1, + xb = (b3 * c2 - b2 * c3) / ab, + ya = (a3 * d2 - a2 * d3) / (ab * 2) - y1, + yb = (a2 * c3 - a3 * c2) / ab, + A = xb * xb + yb * yb - 1, + B = 2 * (r1 + xa * xb + ya * yb), + C = xa * xa + ya * ya - r1 * r1, + r = -(A ? (B + Math.sqrt(B * B - 4 * A * C)) / (2 * A) : C / B); + return { + x: x1 + xa + xb * r, + y: y1 + ya + yb * r, + r: r + }; +} + +function place(b, a, c) { + var dx = b.x - a.x, x, a2, + dy = b.y - a.y, y, b2, + d2 = dx * dx + dy * dy; + if (d2) { + a2 = a.r + c.r, a2 *= a2; + b2 = b.r + c.r, b2 *= b2; + if (a2 > b2) { + x = (d2 + b2 - a2) / (2 * d2); + y = Math.sqrt(Math.max(0, b2 / d2 - x * x)); + c.x = b.x - x * dx - y * dy; + c.y = b.y - x * dy + y * dx; + } else { + x = (d2 + a2 - b2) / (2 * d2); + y = Math.sqrt(Math.max(0, a2 / d2 - x * x)); + c.x = a.x + x * dx - y * dy; + c.y = a.y + x * dy + y * dx; + } + } else { + c.x = a.x + c.r; + c.y = a.y; } - d3.layout.partition = function() { - var hierarchy = d3.layout.hierarchy(), size = [ 1, 1 ]; - function position(node, x, dx, dy) { - var children = node.children; - node.x = x; - node.y = node.depth * dy; - node.dx = dx; - node.dy = dy; - if (children && (n = children.length)) { - var i = -1, n, c, d; - dx = node.value ? dx / node.value : 0; - while (++i < n) { - position(c = children[i], x, d = c.value * dx, dy); - x += d; +} + +function intersects(a, b) { + var dr = a.r + b.r - 1e-6, dx = b.x - a.x, dy = b.y - a.y; + return dr > 0 && dr * dr > dx * dx + dy * dy; +} + +function score(node) { + var a = node._, + b = node.next._, + ab = a.r + b.r, + dx = (a.x * b.r + b.x * a.r) / ab, + dy = (a.y * b.r + b.y * a.r) / ab; + return dx * dx + dy * dy; +} + +function Node$1(circle) { + this._ = circle; + this.next = null; + this.previous = null; +} + +function packEnclose(circles) { + if (!(n = circles.length)) return 0; + + var a, b, c, n, aa, ca, i, j, k, sj, sk; + + // Place the first circle. + a = circles[0], a.x = 0, a.y = 0; + if (!(n > 1)) return a.r; + + // Place the second circle. + b = circles[1], a.x = -b.r, b.x = a.r, b.y = 0; + if (!(n > 2)) return a.r + b.r; + + // Place the third circle. + place(b, a, c = circles[2]); + + // Initialize the front-chain using the first three circles a, b and c. + a = new Node$1(a), b = new Node$1(b), c = new Node$1(c); + a.next = c.previous = b; + b.next = a.previous = c; + c.next = b.previous = a; + + // Attempt to place each remaining circle… + pack: for (i = 3; i < n; ++i) { + place(a._, b._, c = circles[i]), c = new Node$1(c); + + // Find the closest intersecting circle on the front-chain, if any. + // “Closeness” is determined by linear distance along the front-chain. + // “Ahead” or “behind” is likewise determined by linear distance. + j = b.next, k = a.previous, sj = b._.r, sk = a._.r; + do { + if (sj <= sk) { + if (intersects(j._, c._)) { + b = j, a.next = b, b.previous = a, --i; + continue pack; } + sj += j._.r, j = j.next; + } else { + if (intersects(k._, c._)) { + a = k, a.next = b, b.previous = a, --i; + continue pack; + } + sk += k._.r, k = k.previous; } - } - function depth(node) { - var children = node.children, d = 0; - if (children && (n = children.length)) { - var i = -1, n; - while (++i < n) d = Math.max(d, depth(children[i])); + } while (j !== k.next); + + // Success! Insert the new circle c between a and b. + c.previous = a, c.next = b, a.next = b.previous = b = c; + + // Compute the new closest circle pair to the centroid. + aa = score(a); + while ((c = c.next) !== b) { + if ((ca = score(c)) < aa) { + a = c, aa = ca; } - return 1 + d; } - function partition(d, i) { - var nodes = hierarchy.call(this, d, i); - position(nodes[0], 0, size[0], size[1] / depth(nodes[0])); - return nodes; + b = a.next; + } + + // Compute the enclosing circle of the front chain. + a = [b._], c = b; while ((c = c.next) !== b) a.push(c._); c = enclose(a); + + // Translate the circles to put the enclosing circle around the origin. + for (i = 0; i < n; ++i) a = circles[i], a.x -= c.x, a.y -= c.y; + + return c.r; +} + +function siblings(circles) { + packEnclose(circles); + return circles; +} + +function optional(f) { + return f == null ? null : required(f); +} + +function required(f) { + if (typeof f !== "function") throw new Error; + return f; +} + +function constantZero() { + return 0; +} + +function constant(x) { + return function() { + return x; + }; +} + +function defaultRadius(d) { + return Math.sqrt(d.value); +} + +function index() { + var radius = null, + dx = 1, + dy = 1, + padding = constantZero; + + function pack(root) { + root.x = dx / 2, root.y = dy / 2; + if (radius) { + root.eachBefore(radiusLeaf(radius)) + .eachAfter(packChildren(padding, 0.5)) + .eachBefore(translateChild(1)); + } else { + root.eachBefore(radiusLeaf(defaultRadius)) + .eachAfter(packChildren(constantZero, 1)) + .eachAfter(packChildren(padding, root.r / Math.min(dx, dy))) + .eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r))); } - partition.size = function(x) { - if (!arguments.length) return size; - size = x; - return partition; - }; - return d3_layout_hierarchyRebind(partition, hierarchy); + return root; + } + + pack.radius = function(x) { + return arguments.length ? (radius = optional(x), pack) : radius; }; - d3.layout.pie = function() { - var value = Number, sort = d3_layout_pieSortByValue, startAngle = 0, endAngle = τ, padAngle = 0; - function pie(data) { - var n = data.length, values = data.map(function(d, i) { - return +value.call(pie, d, i); - }), a = +(typeof startAngle === "function" ? startAngle.apply(this, arguments) : startAngle), da = (typeof endAngle === "function" ? endAngle.apply(this, arguments) : endAngle) - a, p = Math.min(Math.abs(da) / n, +(typeof padAngle === "function" ? padAngle.apply(this, arguments) : padAngle)), pa = p * (da < 0 ? -1 : 1), sum = d3.sum(values), k = sum ? (da - n * pa) / sum : 0, index = d3.range(n), arcs = [], v; - if (sort != null) index.sort(sort === d3_layout_pieSortByValue ? function(i, j) { - return values[j] - values[i]; - } : function(i, j) { - return sort(data[i], data[j]); - }); - index.forEach(function(i) { - arcs[i] = { - data: data[i], - value: v = values[i], - startAngle: a, - endAngle: a += v * k + pa, - padAngle: p - }; - }); - return arcs; + + pack.size = function(x) { + return arguments.length ? (dx = +x[0], dy = +x[1], pack) : [dx, dy]; + }; + + pack.padding = function(x) { + return arguments.length ? (padding = typeof x === "function" ? x : constant(+x), pack) : padding; + }; + + return pack; +} + +function radiusLeaf(radius) { + return function(node) { + if (!node.children) { + node.r = Math.max(0, +radius(node) || 0); } - pie.value = function(_) { - if (!arguments.length) return value; - value = _; - return pie; - }; - pie.sort = function(_) { - if (!arguments.length) return sort; - sort = _; - return pie; - }; - pie.startAngle = function(_) { - if (!arguments.length) return startAngle; - startAngle = _; - return pie; - }; - pie.endAngle = function(_) { - if (!arguments.length) return endAngle; - endAngle = _; - return pie; - }; - pie.padAngle = function(_) { - if (!arguments.length) return padAngle; - padAngle = _; - return pie; + }; +} + +function packChildren(padding, k) { + return function(node) { + if (children = node.children) { + var children, + i, + n = children.length, + r = padding(node) * k || 0, + e; + + if (r) for (i = 0; i < n; ++i) children[i].r += r; + e = packEnclose(children); + if (r) for (i = 0; i < n; ++i) children[i].r -= r; + node.r = e + r; + } + }; +} + +function translateChild(k) { + return function(node) { + var parent = node.parent; + node.r *= k; + if (parent) { + node.x = parent.x + k * node.x; + node.y = parent.y + k * node.y; + } + }; +} + +function roundNode(node) { + node.x0 = Math.round(node.x0); + node.y0 = Math.round(node.y0); + node.x1 = Math.round(node.x1); + node.y1 = Math.round(node.y1); +} + +function treemapDice(parent, x0, y0, x1, y1) { + var nodes = parent.children, + node, + i = -1, + n = nodes.length, + k = parent.value && (x1 - x0) / parent.value; + + while (++i < n) { + node = nodes[i], node.y0 = y0, node.y1 = y1; + node.x0 = x0, node.x1 = x0 += node.value * k; + } +} + +function partition() { + var dx = 1, + dy = 1, + padding = 0, + round = false; + + function partition(root) { + var n = root.height + 1; + root.x0 = + root.y0 = padding; + root.x1 = dx; + root.y1 = dy / n; + root.eachBefore(positionNode(dy, n)); + if (round) root.eachBefore(roundNode); + return root; + } + + function positionNode(dy, n) { + return function(node) { + if (node.children) { + treemapDice(node, node.x0, dy * (node.depth + 1) / n, node.x1, dy * (node.depth + 2) / n); + } + var x0 = node.x0, + y0 = node.y0, + x1 = node.x1 - padding, + y1 = node.y1 - padding; + if (x1 < x0) x0 = x1 = (x0 + x1) / 2; + if (y1 < y0) y0 = y1 = (y0 + y1) / 2; + node.x0 = x0; + node.y0 = y0; + node.x1 = x1; + node.y1 = y1; }; - return pie; + } + + partition.round = function(x) { + return arguments.length ? (round = !!x, partition) : round; }; - var d3_layout_pieSortByValue = {}; - d3.layout.stack = function() { - var values = d3_identity, order = d3_layout_stackOrderDefault, offset = d3_layout_stackOffsetZero, out = d3_layout_stackOut, x = d3_layout_stackX, y = d3_layout_stackY; - function stack(data, index) { - if (!(n = data.length)) return data; - var series = data.map(function(d, i) { - return values.call(stack, d, i); + + partition.size = function(x) { + return arguments.length ? (dx = +x[0], dy = +x[1], partition) : [dx, dy]; + }; + + partition.padding = function(x) { + return arguments.length ? (padding = +x, partition) : padding; + }; + + return partition; +} + +var keyPrefix = "$", // Protect against keys like “__proto__”. + preroot = {depth: -1}, + ambiguous = {}; + +function defaultId(d) { + return d.id; +} + +function defaultParentId(d) { + return d.parentId; +} + +function stratify() { + var id = defaultId, + parentId = defaultParentId; + + function stratify(data) { + var d, + i, + n = data.length, + root, + parent, + node, + nodes = new Array(n), + nodeId, + nodeKey, + nodeByKey = {}; + + for (i = 0; i < n; ++i) { + d = data[i], node = nodes[i] = new Node(d); + if ((nodeId = id(d, i, data)) != null && (nodeId += "")) { + nodeKey = keyPrefix + (node.id = nodeId); + nodeByKey[nodeKey] = nodeKey in nodeByKey ? ambiguous : node; + } + } + + for (i = 0; i < n; ++i) { + node = nodes[i], nodeId = parentId(data[i], i, data); + if (nodeId == null || !(nodeId += "")) { + if (root) throw new Error("multiple roots"); + root = node; + } else { + parent = nodeByKey[keyPrefix + nodeId]; + if (!parent) throw new Error("missing: " + nodeId); + if (parent === ambiguous) throw new Error("ambiguous: " + nodeId); + if (parent.children) parent.children.push(node); + else parent.children = [node]; + node.parent = parent; + } + } + + if (!root) throw new Error("no root"); + root.parent = preroot; + root.eachBefore(function(node) { node.depth = node.parent.depth + 1; --n; }).eachBefore(computeHeight); + root.parent = null; + if (n > 0) throw new Error("cycle"); + + return root; + } + + stratify.id = function(x) { + return arguments.length ? (id = required(x), stratify) : id; + }; + + stratify.parentId = function(x) { + return arguments.length ? (parentId = required(x), stratify) : parentId; + }; + + return stratify; +} + +function defaultSeparation$1(a, b) { + return a.parent === b.parent ? 1 : 2; +} + +// function radialSeparation(a, b) { +// return (a.parent === b.parent ? 1 : 2) / a.depth; +// } + +// This function is used to traverse the left contour of a subtree (or +// subforest). It returns the successor of v on this contour. This successor is +// either given by the leftmost child of v or by the thread of v. The function +// returns null if and only if v is on the highest level of its subtree. +function nextLeft(v) { + var children = v.children; + return children ? children[0] : v.t; +} + +// This function works analogously to nextLeft. +function nextRight(v) { + var children = v.children; + return children ? children[children.length - 1] : v.t; +} + +// Shifts the current subtree rooted at w+. This is done by increasing +// prelim(w+) and mod(w+) by shift. +function moveSubtree(wm, wp, shift) { + var change = shift / (wp.i - wm.i); + wp.c -= change; + wp.s += shift; + wm.c += change; + wp.z += shift; + wp.m += shift; +} + +// All other shifts, applied to the smaller subtrees between w- and w+, are +// performed by this function. To prepare the shifts, we have to adjust +// change(w+), shift(w+), and change(w-). +function executeShifts(v) { + var shift = 0, + change = 0, + children = v.children, + i = children.length, + w; + while (--i >= 0) { + w = children[i]; + w.z += shift; + w.m += shift; + shift += w.s + (change += w.c); + } +} + +// If vi-’s ancestor is a sibling of v, returns vi-’s ancestor. Otherwise, +// returns the specified (default) ancestor. +function nextAncestor(vim, v, ancestor) { + return vim.a.parent === v.parent ? vim.a : ancestor; +} + +function TreeNode(node, i) { + this._ = node; + this.parent = null; + this.children = null; + this.A = null; // default ancestor + this.a = this; // ancestor + this.z = 0; // prelim + this.m = 0; // mod + this.c = 0; // change + this.s = 0; // shift + this.t = null; // thread + this.i = i; // number +} + +TreeNode.prototype = Object.create(Node.prototype); + +function treeRoot(root) { + var tree = new TreeNode(root, 0), + node, + nodes = [tree], + child, + children, + i, + n; + + while (node = nodes.pop()) { + if (children = node._.children) { + node.children = new Array(n = children.length); + for (i = n - 1; i >= 0; --i) { + nodes.push(child = node.children[i] = new TreeNode(children[i], i)); + child.parent = node; + } + } + } + + (tree.parent = new TreeNode(null, 0)).children = [tree]; + return tree; +} + +// Node-link tree diagram using the Reingold-Tilford "tidy" algorithm +function tree() { + var separation = defaultSeparation$1, + dx = 1, + dy = 1, + nodeSize = null; + + function tree(root) { + var t = treeRoot(root); + + // Compute the layout using Buchheim et al.’s algorithm. + t.eachAfter(firstWalk), t.parent.m = -t.z; + t.eachBefore(secondWalk); + + // If a fixed node size is specified, scale x and y. + if (nodeSize) root.eachBefore(sizeNode); + + // If a fixed tree size is specified, scale x and y based on the extent. + // Compute the left-most, right-most, and depth-most nodes for extents. + else { + var left = root, + right = root, + bottom = root; + root.eachBefore(function(node) { + if (node.x < left.x) left = node; + if (node.x > right.x) right = node; + if (node.depth > bottom.depth) bottom = node; }); - var points = series.map(function(d) { - return d.map(function(v, i) { - return [ x.call(stack, v, i), y.call(stack, v, i) ]; - }); + var s = left === right ? 1 : separation(left, right) / 2, + tx = s - left.x, + kx = dx / (right.x + s + tx), + ky = dy / (bottom.depth || 1); + root.eachBefore(function(node) { + node.x = (node.x + tx) * kx; + node.y = node.depth * ky; }); - var orders = order.call(stack, points, index); - series = d3.permute(series, orders); - points = d3.permute(points, orders); - var offsets = offset.call(stack, points, index); - var m = series[0].length, n, i, j, o; - for (j = 0; j < m; ++j) { - out.call(stack, series[0][j], o = offsets[j], points[0][j][1]); - for (i = 1; i < n; ++i) { - out.call(stack, series[i][j], o += points[i - 1][j][1], points[i][j][1]); - } + } + + return root; + } + + // Computes a preliminary x-coordinate for v. Before that, FIRST WALK is + // applied recursively to the children of v, as well as the function + // APPORTION. After spacing out the children by calling EXECUTE SHIFTS, the + // node v is placed to the midpoint of its outermost children. + function firstWalk(v) { + var children = v.children, + siblings = v.parent.children, + w = v.i ? siblings[v.i - 1] : null; + if (children) { + executeShifts(v); + var midpoint = (children[0].z + children[children.length - 1].z) / 2; + if (w) { + v.z = w.z + separation(v._, w._); + v.m = v.z - midpoint; + } else { + v.z = midpoint; } - return data; + } else if (w) { + v.z = w.z + separation(v._, w._); } - stack.values = function(x) { - if (!arguments.length) return values; - values = x; - return stack; - }; - stack.order = function(x) { - if (!arguments.length) return order; - order = typeof x === "function" ? x : d3_layout_stackOrders.get(x) || d3_layout_stackOrderDefault; - return stack; - }; - stack.offset = function(x) { - if (!arguments.length) return offset; - offset = typeof x === "function" ? x : d3_layout_stackOffsets.get(x) || d3_layout_stackOffsetZero; - return stack; - }; - stack.x = function(z) { - if (!arguments.length) return x; - x = z; - return stack; - }; - stack.y = function(z) { - if (!arguments.length) return y; - y = z; - return stack; - }; - stack.out = function(z) { - if (!arguments.length) return out; - out = z; - return stack; - }; - return stack; - }; - function d3_layout_stackX(d) { - return d.x; - } - function d3_layout_stackY(d) { - return d.y; + v.parent.A = apportion(v, w, v.parent.A || siblings[0]); } - function d3_layout_stackOut(d, y0, y) { - d.y0 = y0; - d.y = y; + + // Computes all real x-coordinates by summing up the modifiers recursively. + function secondWalk(v) { + v._.x = v.z + v.parent.m; + v.m += v.parent.m; } - var d3_layout_stackOrders = d3.map({ - "inside-out": function(data) { - var n = data.length, i, j, max = data.map(d3_layout_stackMaxIndex), sums = data.map(d3_layout_stackReduceSum), index = d3.range(n).sort(function(a, b) { - return max[a] - max[b]; - }), top = 0, bottom = 0, tops = [], bottoms = []; - for (i = 0; i < n; ++i) { - j = index[i]; - if (top < bottom) { - top += sums[j]; - tops.push(j); - } else { - bottom += sums[j]; - bottoms.push(j); - } - } - return bottoms.reverse().concat(tops); - }, - reverse: function(data) { - return d3.range(data.length).reverse(); - }, - "default": d3_layout_stackOrderDefault - }); - var d3_layout_stackOffsets = d3.map({ - silhouette: function(data) { - var n = data.length, m = data[0].length, sums = [], max = 0, i, j, o, y0 = []; - for (j = 0; j < m; ++j) { - for (i = 0, o = 0; i < n; i++) o += data[i][j][1]; - if (o > max) max = o; - sums.push(o); - } - for (j = 0; j < m; ++j) { - y0[j] = (max - sums[j]) / 2; - } - return y0; - }, - wiggle: function(data) { - var n = data.length, x = data[0], m = x.length, i, j, k, s1, s2, s3, dx, o, o0, y0 = []; - y0[0] = o = o0 = 0; - for (j = 1; j < m; ++j) { - for (i = 0, s1 = 0; i < n; ++i) s1 += data[i][j][1]; - for (i = 0, s2 = 0, dx = x[j][0] - x[j - 1][0]; i < n; ++i) { - for (k = 0, s3 = (data[i][j][1] - data[i][j - 1][1]) / (2 * dx); k < i; ++k) { - s3 += (data[k][j][1] - data[k][j - 1][1]) / dx; - } - s2 += s3 * data[i][j][1]; + + // The core of the algorithm. Here, a new subtree is combined with the + // previous subtrees. Threads are used to traverse the inside and outside + // contours of the left and right subtree up to the highest common level. The + // vertices used for the traversals are vi+, vi-, vo-, and vo+, where the + // superscript o means outside and i means inside, the subscript - means left + // subtree and + means right subtree. For summing up the modifiers along the + // contour, we use respective variables si+, si-, so-, and so+. Whenever two + // nodes of the inside contours conflict, we compute the left one of the + // greatest uncommon ancestors using the function ANCESTOR and call MOVE + // SUBTREE to shift the subtree and prepare the shifts of smaller subtrees. + // Finally, we add a new thread (if necessary). + function apportion(v, w, ancestor) { + if (w) { + var vip = v, + vop = v, + vim = w, + vom = vip.parent.children[0], + sip = vip.m, + sop = vop.m, + sim = vim.m, + som = vom.m, + shift; + while (vim = nextRight(vim), vip = nextLeft(vip), vim && vip) { + vom = nextLeft(vom); + vop = nextRight(vop); + vop.a = v; + shift = vim.z + sim - vip.z - sip + separation(vim._, vip._); + if (shift > 0) { + moveSubtree(nextAncestor(vim, v, ancestor), v, shift); + sip += shift; + sop += shift; } - y0[j] = o -= s1 ? s2 / s1 * dx : 0; - if (o < o0) o0 = o; + sim += vim.m; + sip += vip.m; + som += vom.m; + sop += vop.m; } - for (j = 0; j < m; ++j) y0[j] -= o0; - return y0; - }, - expand: function(data) { - var n = data.length, m = data[0].length, k = 1 / n, i, j, o, y0 = []; - for (j = 0; j < m; ++j) { - for (i = 0, o = 0; i < n; i++) o += data[i][j][1]; - if (o) for (i = 0; i < n; i++) data[i][j][1] /= o; else for (i = 0; i < n; i++) data[i][j][1] = k; + if (vim && !nextRight(vop)) { + vop.t = vim; + vop.m += sim - sop; } - for (j = 0; j < m; ++j) y0[j] = 0; - return y0; - }, - zero: d3_layout_stackOffsetZero - }); - function d3_layout_stackOrderDefault(data) { - return d3.range(data.length); - } - function d3_layout_stackOffsetZero(data) { - var j = -1, m = data[0].length, y0 = []; - while (++j < m) y0[j] = 0; - return y0; - } - function d3_layout_stackMaxIndex(array) { - var i = 1, j = 0, v = array[0][1], k, n = array.length; - for (;i < n; ++i) { - if ((k = array[i][1]) > v) { - j = i; - v = k; + if (vip && !nextLeft(vom)) { + vom.t = vip; + vom.m += sip - som; + ancestor = v; } } - return j; - } - function d3_layout_stackReduceSum(d) { - return d.reduce(d3_layout_stackSum, 0); + return ancestor; } - function d3_layout_stackSum(p, d) { - return p + d[1]; + + function sizeNode(node) { + node.x *= dx; + node.y = node.depth * dy; } - d3.layout.histogram = function() { - var frequency = true, valuer = Number, ranger = d3_layout_histogramRange, binner = d3_layout_histogramBinSturges; - function histogram(data, i) { - var bins = [], values = data.map(valuer, this), range = ranger.call(this, values, i), thresholds = binner.call(this, range, values, i), bin, i = -1, n = values.length, m = thresholds.length - 1, k = frequency ? 1 : 1 / n, x; - while (++i < m) { - bin = bins[i] = []; - bin.dx = thresholds[i + 1] - (bin.x = thresholds[i]); - bin.y = 0; - } - if (m > 0) { - i = -1; - while (++i < n) { - x = values[i]; - if (x >= range[0] && x <= range[1]) { - bin = bins[d3.bisect(thresholds, x, 1, m) - 1]; - bin.y += k; - bin.push(data[i]); - } - } - } - return bins; - } - histogram.value = function(x) { - if (!arguments.length) return valuer; - valuer = x; - return histogram; - }; - histogram.range = function(x) { - if (!arguments.length) return ranger; - ranger = d3_functor(x); - return histogram; - }; - histogram.bins = function(x) { - if (!arguments.length) return binner; - binner = typeof x === "number" ? function(range) { - return d3_layout_histogramBinFixed(range, x); - } : d3_functor(x); - return histogram; - }; - histogram.frequency = function(x) { - if (!arguments.length) return frequency; - frequency = !!x; - return histogram; - }; - return histogram; + + tree.separation = function(x) { + return arguments.length ? (separation = x, tree) : separation; }; - function d3_layout_histogramBinSturges(range, values) { - return d3_layout_histogramBinFixed(range, Math.ceil(Math.log(values.length) / Math.LN2 + 1)); + + tree.size = function(x) { + return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], tree) : (nodeSize ? null : [dx, dy]); + }; + + tree.nodeSize = function(x) { + return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], tree) : (nodeSize ? [dx, dy] : null); + }; + + return tree; +} + +function treemapSlice(parent, x0, y0, x1, y1) { + var nodes = parent.children, + node, + i = -1, + n = nodes.length, + k = parent.value && (y1 - y0) / parent.value; + + while (++i < n) { + node = nodes[i], node.x0 = x0, node.x1 = x1; + node.y0 = y0, node.y1 = y0 += node.value * k; } - function d3_layout_histogramBinFixed(range, n) { - var x = -1, b = +range[0], m = (range[1] - b) / n, f = []; - while (++x <= n) f[x] = m * x + b; - return f; +} + +var phi = (1 + Math.sqrt(5)) / 2; + +function squarifyRatio(ratio, parent, x0, y0, x1, y1) { + var rows = [], + nodes = parent.children, + row, + nodeValue, + i0 = 0, + i1 = 0, + n = nodes.length, + dx, dy, + value = parent.value, + sumValue, + minValue, + maxValue, + newRatio, + minRatio, + alpha, + beta; + + while (i0 < n) { + dx = x1 - x0, dy = y1 - y0; + + // Find the next non-empty node. + do sumValue = nodes[i1++].value; while (!sumValue && i1 < n); + minValue = maxValue = sumValue; + alpha = Math.max(dy / dx, dx / dy) / (value * ratio); + beta = sumValue * sumValue * alpha; + minRatio = Math.max(maxValue / beta, beta / minValue); + + // Keep adding nodes while the aspect ratio maintains or improves. + for (; i1 < n; ++i1) { + sumValue += nodeValue = nodes[i1].value; + if (nodeValue < minValue) minValue = nodeValue; + if (nodeValue > maxValue) maxValue = nodeValue; + beta = sumValue * sumValue * alpha; + newRatio = Math.max(maxValue / beta, beta / minValue); + if (newRatio > minRatio) { sumValue -= nodeValue; break; } + minRatio = newRatio; + } + + // Position and record the row orientation. + rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)}); + if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1); + else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1); + value -= sumValue, i0 = i1; } - function d3_layout_histogramRange(values) { - return [ d3.min(values), d3.max(values) ]; + + return rows; +} + +var squarify = (function custom(ratio) { + + function squarify(parent, x0, y0, x1, y1) { + squarifyRatio(ratio, parent, x0, y0, x1, y1); } - d3.layout.pack = function() { - var hierarchy = d3.layout.hierarchy().sort(d3_layout_packSort), padding = 0, size = [ 1, 1 ], radius; - function pack(d, i) { - var nodes = hierarchy.call(this, d, i), root = nodes[0], w = size[0], h = size[1], r = radius == null ? Math.sqrt : typeof radius === "function" ? radius : function() { - return radius; - }; - root.x = root.y = 0; - d3_layout_hierarchyVisitAfter(root, function(d) { - d.r = +r(d.value); - }); - d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings); - if (padding) { - var dr = padding * (radius ? 1 : Math.max(2 * root.r / w, 2 * root.r / h)) / 2; - d3_layout_hierarchyVisitAfter(root, function(d) { - d.r += dr; - }); - d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings); - d3_layout_hierarchyVisitAfter(root, function(d) { - d.r -= dr; - }); - } - d3_layout_packTransform(root, w / 2, h / 2, radius ? 1 : 1 / Math.max(2 * root.r / w, 2 * root.r / h)); - return nodes; - } - pack.size = function(_) { - if (!arguments.length) return size; - size = _; - return pack; - }; - pack.radius = function(_) { - if (!arguments.length) return radius; - radius = _ == null || typeof _ === "function" ? _ : +_; - return pack; - }; - pack.padding = function(_) { - if (!arguments.length) return padding; - padding = +_; - return pack; - }; - return d3_layout_hierarchyRebind(pack, hierarchy); + + squarify.ratio = function(x) { + return custom((x = +x) > 1 ? x : 1); }; - function d3_layout_packSort(a, b) { - return a.value - b.value; - } - function d3_layout_packInsert(a, b) { - var c = a._pack_next; - a._pack_next = b; - b._pack_prev = a; - b._pack_next = c; - c._pack_prev = b; + + return squarify; +})(phi); + +function index$1() { + var tile = squarify, + round = false, + dx = 1, + dy = 1, + paddingStack = [0], + paddingInner = constantZero, + paddingTop = constantZero, + paddingRight = constantZero, + paddingBottom = constantZero, + paddingLeft = constantZero; + + function treemap(root) { + root.x0 = + root.y0 = 0; + root.x1 = dx; + root.y1 = dy; + root.eachBefore(positionNode); + paddingStack = [0]; + if (round) root.eachBefore(roundNode); + return root; } - function d3_layout_packSplice(a, b) { - a._pack_next = b; - b._pack_prev = a; + + function positionNode(node) { + var p = paddingStack[node.depth], + x0 = node.x0 + p, + y0 = node.y0 + p, + x1 = node.x1 - p, + y1 = node.y1 - p; + if (x1 < x0) x0 = x1 = (x0 + x1) / 2; + if (y1 < y0) y0 = y1 = (y0 + y1) / 2; + node.x0 = x0; + node.y0 = y0; + node.x1 = x1; + node.y1 = y1; + if (node.children) { + p = paddingStack[node.depth + 1] = paddingInner(node) / 2; + x0 += paddingLeft(node) - p; + y0 += paddingTop(node) - p; + x1 -= paddingRight(node) - p; + y1 -= paddingBottom(node) - p; + if (x1 < x0) x0 = x1 = (x0 + x1) / 2; + if (y1 < y0) y0 = y1 = (y0 + y1) / 2; + tile(node, x0, y0, x1, y1); + } } - function d3_layout_packIntersects(a, b) { - var dx = b.x - a.x, dy = b.y - a.y, dr = a.r + b.r; - return .999 * dr * dr > dx * dx + dy * dy; + + treemap.round = function(x) { + return arguments.length ? (round = !!x, treemap) : round; + }; + + treemap.size = function(x) { + return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy]; + }; + + treemap.tile = function(x) { + return arguments.length ? (tile = required(x), treemap) : tile; + }; + + treemap.padding = function(x) { + return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner(); + }; + + treemap.paddingInner = function(x) { + return arguments.length ? (paddingInner = typeof x === "function" ? x : constant(+x), treemap) : paddingInner; + }; + + treemap.paddingOuter = function(x) { + return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop(); + }; + + treemap.paddingTop = function(x) { + return arguments.length ? (paddingTop = typeof x === "function" ? x : constant(+x), treemap) : paddingTop; + }; + + treemap.paddingRight = function(x) { + return arguments.length ? (paddingRight = typeof x === "function" ? x : constant(+x), treemap) : paddingRight; + }; + + treemap.paddingBottom = function(x) { + return arguments.length ? (paddingBottom = typeof x === "function" ? x : constant(+x), treemap) : paddingBottom; + }; + + treemap.paddingLeft = function(x) { + return arguments.length ? (paddingLeft = typeof x === "function" ? x : constant(+x), treemap) : paddingLeft; + }; + + return treemap; +} + +function binary(parent, x0, y0, x1, y1) { + var nodes = parent.children, + i, n = nodes.length, + sum, sums = new Array(n + 1); + + for (sums[0] = sum = i = 0; i < n; ++i) { + sums[i + 1] = sum += nodes[i].value; } - function d3_layout_packSiblings(node) { - if (!(nodes = node.children) || !(n = nodes.length)) return; - var nodes, xMin = Infinity, xMax = -Infinity, yMin = Infinity, yMax = -Infinity, a, b, c, i, j, k, n; - function bound(node) { - xMin = Math.min(node.x - node.r, xMin); - xMax = Math.max(node.x + node.r, xMax); - yMin = Math.min(node.y - node.r, yMin); - yMax = Math.max(node.y + node.r, yMax); + + partition(0, n, parent.value, x0, y0, x1, y1); + + function partition(i, j, value, x0, y0, x1, y1) { + if (i >= j - 1) { + var node = nodes[i]; + node.x0 = x0, node.y0 = y0; + node.x1 = x1, node.y1 = y1; + return; } - nodes.forEach(d3_layout_packLink); - a = nodes[0]; - a.x = -a.r; - a.y = 0; - bound(a); - if (n > 1) { - b = nodes[1]; - b.x = b.r; - b.y = 0; - bound(b); - if (n > 2) { - c = nodes[2]; - d3_layout_packPlace(a, b, c); - bound(c); - d3_layout_packInsert(a, c); - a._pack_prev = c; - d3_layout_packInsert(c, b); - b = a._pack_next; - for (i = 3; i < n; i++) { - d3_layout_packPlace(a, b, c = nodes[i]); - var isect = 0, s1 = 1, s2 = 1; - for (j = b._pack_next; j !== b; j = j._pack_next, s1++) { - if (d3_layout_packIntersects(j, c)) { - isect = 1; - break; - } - } - if (isect == 1) { - for (k = a._pack_prev; k !== j._pack_prev; k = k._pack_prev, s2++) { - if (d3_layout_packIntersects(k, c)) { - break; - } - } - } - if (isect) { - if (s1 < s2 || s1 == s2 && b.r < a.r) d3_layout_packSplice(a, b = j); else d3_layout_packSplice(a = k, b); - i--; - } else { - d3_layout_packInsert(a, c); - b = c; - bound(c); - } - } - } + + var valueOffset = sums[i], + valueTarget = (value / 2) + valueOffset, + k = i + 1, + hi = j - 1; + + while (k < hi) { + var mid = k + hi >>> 1; + if (sums[mid] < valueTarget) k = mid + 1; + else hi = mid; } - var cx = (xMin + xMax) / 2, cy = (yMin + yMax) / 2, cr = 0; - for (i = 0; i < n; i++) { - c = nodes[i]; - c.x -= cx; - c.y -= cy; - cr = Math.max(cr, c.r + Math.sqrt(c.x * c.x + c.y * c.y)); + + if ((valueTarget - sums[k - 1]) < (sums[k] - valueTarget) && i + 1 < k) --k; + + var valueLeft = sums[k] - valueOffset, + valueRight = value - valueLeft; + + if ((x1 - x0) > (y1 - y0)) { + var xk = (x0 * valueRight + x1 * valueLeft) / value; + partition(i, k, valueLeft, x0, y0, xk, y1); + partition(k, j, valueRight, xk, y0, x1, y1); + } else { + var yk = (y0 * valueRight + y1 * valueLeft) / value; + partition(i, k, valueLeft, x0, y0, x1, yk); + partition(k, j, valueRight, x0, yk, x1, y1); } - node.r = cr; - nodes.forEach(d3_layout_packUnlink); } - function d3_layout_packLink(node) { - node._pack_next = node._pack_prev = node; +} + +function sliceDice(parent, x0, y0, x1, y1) { + (parent.depth & 1 ? treemapSlice : treemapDice)(parent, x0, y0, x1, y1); +} + +var resquarify = (function custom(ratio) { + + function resquarify(parent, x0, y0, x1, y1) { + if ((rows = parent._squarify) && (rows.ratio === ratio)) { + var rows, + row, + nodes, + i, + j = -1, + n, + m = rows.length, + value = parent.value; + + while (++j < m) { + row = rows[j], nodes = row.children; + for (i = row.value = 0, n = nodes.length; i < n; ++i) row.value += nodes[i].value; + if (row.dice) treemapDice(row, x0, y0, x1, y0 += (y1 - y0) * row.value / value); + else treemapSlice(row, x0, y0, x0 += (x1 - x0) * row.value / value, y1); + value -= row.value; + } + } else { + parent._squarify = rows = squarifyRatio(ratio, parent, x0, y0, x1, y1); + rows.ratio = ratio; + } } - function d3_layout_packUnlink(node) { - delete node._pack_next; - delete node._pack_prev; + + resquarify.ratio = function(x) { + return custom((x = +x) > 1 ? x : 1); + }; + + return resquarify; +})(phi); + +exports.cluster = cluster; +exports.hierarchy = hierarchy; +exports.pack = index; +exports.packEnclose = enclose; +exports.packSiblings = siblings; +exports.partition = partition; +exports.stratify = stratify; +exports.tree = tree; +exports.treemap = index$1; +exports.treemapBinary = binary; +exports.treemapDice = treemapDice; +exports.treemapResquarify = resquarify; +exports.treemapSlice = treemapSlice; +exports.treemapSliceDice = sliceDice; +exports.treemapSquarify = squarify; + +Object.defineProperty(exports, '__esModule', { value: true }); + +})); + +},{}],164:[function(_dereq_,module,exports){ +// https://d3js.org/d3-interpolate/ v1.4.0 Copyright 2019 Mike Bostock +(function (global, factory) { +typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, _dereq_('d3-color')) : +typeof define === 'function' && define.amd ? define(['exports', 'd3-color'], factory) : +(global = global || self, factory(global.d3 = global.d3 || {}, global.d3)); +}(this, function (exports, d3Color) { 'use strict'; + +function basis(t1, v0, v1, v2, v3) { + var t2 = t1 * t1, t3 = t2 * t1; + return ((1 - 3 * t1 + 3 * t2 - t3) * v0 + + (4 - 6 * t2 + 3 * t3) * v1 + + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2 + + t3 * v3) / 6; +} + +function basis$1(values) { + var n = values.length - 1; + return function(t) { + var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n), + v1 = values[i], + v2 = values[i + 1], + v0 = i > 0 ? values[i - 1] : 2 * v1 - v2, + v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1; + return basis((t - i / n) * n, v0, v1, v2, v3); + }; +} + +function basisClosed(values) { + var n = values.length; + return function(t) { + var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n), + v0 = values[(i + n - 1) % n], + v1 = values[i % n], + v2 = values[(i + 1) % n], + v3 = values[(i + 2) % n]; + return basis((t - i / n) * n, v0, v1, v2, v3); + }; +} + +function constant(x) { + return function() { + return x; + }; +} + +function linear(a, d) { + return function(t) { + return a + t * d; + }; +} + +function exponential(a, b, y) { + return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) { + return Math.pow(a + t * b, y); + }; +} + +function hue(a, b) { + var d = b - a; + return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a); +} + +function gamma(y) { + return (y = +y) === 1 ? nogamma : function(a, b) { + return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a); + }; +} + +function nogamma(a, b) { + var d = b - a; + return d ? linear(a, d) : constant(isNaN(a) ? b : a); +} + +var rgb = (function rgbGamma(y) { + var color = gamma(y); + + function rgb(start, end) { + var r = color((start = d3Color.rgb(start)).r, (end = d3Color.rgb(end)).r), + g = color(start.g, end.g), + b = color(start.b, end.b), + opacity = nogamma(start.opacity, end.opacity); + return function(t) { + start.r = r(t); + start.g = g(t); + start.b = b(t); + start.opacity = opacity(t); + return start + ""; + }; } - function d3_layout_packTransform(node, x, y, k) { - var children = node.children; - node.x = x += k * node.x; - node.y = y += k * node.y; - node.r *= k; - if (children) { - var i = -1, n = children.length; - while (++i < n) d3_layout_packTransform(children[i], x, y, k); + + rgb.gamma = rgbGamma; + + return rgb; +})(1); + +function rgbSpline(spline) { + return function(colors) { + var n = colors.length, + r = new Array(n), + g = new Array(n), + b = new Array(n), + i, color; + for (i = 0; i < n; ++i) { + color = d3Color.rgb(colors[i]); + r[i] = color.r || 0; + g[i] = color.g || 0; + b[i] = color.b || 0; } - } - function d3_layout_packPlace(a, b, c) { - var db = a.r + c.r, dx = b.x - a.x, dy = b.y - a.y; - if (db && (dx || dy)) { - var da = b.r + c.r, dc = dx * dx + dy * dy; - da *= da; - db *= db; - var x = .5 + (db - da) / (2 * dc), y = Math.sqrt(Math.max(0, 2 * da * (db + dc) - (db -= dc) * db - da * da)) / (2 * dc); - c.x = a.x + x * dx + y * dy; - c.y = a.y + x * dy - y * dx; + r = spline(r); + g = spline(g); + b = spline(b); + color.opacity = 1; + return function(t) { + color.r = r(t); + color.g = g(t); + color.b = b(t); + return color + ""; + }; + }; +} + +var rgbBasis = rgbSpline(basis$1); +var rgbBasisClosed = rgbSpline(basisClosed); + +function numberArray(a, b) { + if (!b) b = []; + var n = a ? Math.min(b.length, a.length) : 0, + c = b.slice(), + i; + return function(t) { + for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t; + return c; + }; +} + +function isNumberArray(x) { + return ArrayBuffer.isView(x) && !(x instanceof DataView); +} + +function array(a, b) { + return (isNumberArray(b) ? numberArray : genericArray)(a, b); +} + +function genericArray(a, b) { + var nb = b ? b.length : 0, + na = a ? Math.min(nb, a.length) : 0, + x = new Array(na), + c = new Array(nb), + i; + + for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]); + for (; i < nb; ++i) c[i] = b[i]; + + return function(t) { + for (i = 0; i < na; ++i) c[i] = x[i](t); + return c; + }; +} + +function date(a, b) { + var d = new Date; + return a = +a, b = +b, function(t) { + return d.setTime(a * (1 - t) + b * t), d; + }; +} + +function number(a, b) { + return a = +a, b = +b, function(t) { + return a * (1 - t) + b * t; + }; +} + +function object(a, b) { + var i = {}, + c = {}, + k; + + if (a === null || typeof a !== "object") a = {}; + if (b === null || typeof b !== "object") b = {}; + + for (k in b) { + if (k in a) { + i[k] = value(a[k], b[k]); } else { - c.x = a.x + db; - c.y = a.y; + c[k] = b[k]; } } - d3.layout.tree = function() { - var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ], nodeSize = null; - function tree(d, i) { - var nodes = hierarchy.call(this, d, i), root0 = nodes[0], root1 = wrapTree(root0); - d3_layout_hierarchyVisitAfter(root1, firstWalk), root1.parent.m = -root1.z; - d3_layout_hierarchyVisitBefore(root1, secondWalk); - if (nodeSize) d3_layout_hierarchyVisitBefore(root0, sizeNode); else { - var left = root0, right = root0, bottom = root0; - d3_layout_hierarchyVisitBefore(root0, function(node) { - if (node.x < left.x) left = node; - if (node.x > right.x) right = node; - if (node.depth > bottom.depth) bottom = node; - }); - var tx = separation(left, right) / 2 - left.x, kx = size[0] / (right.x + separation(right, left) / 2 + tx), ky = size[1] / (bottom.depth || 1); - d3_layout_hierarchyVisitBefore(root0, function(node) { - node.x = (node.x + tx) * kx; - node.y = node.depth * ky; - }); - } - return nodes; - } - function wrapTree(root0) { - var root1 = { - A: null, - children: [ root0 ] - }, queue = [ root1 ], node1; - while ((node1 = queue.pop()) != null) { - for (var children = node1.children, child, i = 0, n = children.length; i < n; ++i) { - queue.push((children[i] = child = { - _: children[i], - parent: node1, - children: (child = children[i].children) && child.slice() || [], - A: null, - a: null, - z: 0, - m: 0, - c: 0, - s: 0, - t: null, - i: i - }).a = child); - } - } - return root1.children[0]; - } - function firstWalk(v) { - var children = v.children, siblings = v.parent.children, w = v.i ? siblings[v.i - 1] : null; - if (children.length) { - d3_layout_treeShift(v); - var midpoint = (children[0].z + children[children.length - 1].z) / 2; - if (w) { - v.z = w.z + separation(v._, w._); - v.m = v.z - midpoint; - } else { - v.z = midpoint; - } - } else if (w) { - v.z = w.z + separation(v._, w._); - } - v.parent.A = apportion(v, w, v.parent.A || siblings[0]); - } - function secondWalk(v) { - v._.x = v.z + v.parent.m; - v.m += v.parent.m; - } - function apportion(v, w, ancestor) { - if (w) { - var vip = v, vop = v, vim = w, vom = vip.parent.children[0], sip = vip.m, sop = vop.m, sim = vim.m, som = vom.m, shift; - while (vim = d3_layout_treeRight(vim), vip = d3_layout_treeLeft(vip), vim && vip) { - vom = d3_layout_treeLeft(vom); - vop = d3_layout_treeRight(vop); - vop.a = v; - shift = vim.z + sim - vip.z - sip + separation(vim._, vip._); - if (shift > 0) { - d3_layout_treeMove(d3_layout_treeAncestor(vim, v, ancestor), v, shift); - sip += shift; - sop += shift; - } - sim += vim.m; - sip += vip.m; - som += vom.m; - sop += vop.m; - } - if (vim && !d3_layout_treeRight(vop)) { - vop.t = vim; - vop.m += sim - sop; - } - if (vip && !d3_layout_treeLeft(vom)) { - vom.t = vip; - vom.m += sip - som; - ancestor = v; - } - } - return ancestor; + + return function(t) { + for (k in i) c[k] = i[k](t); + return c; + }; +} + +var reA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, + reB = new RegExp(reA.source, "g"); + +function zero(b) { + return function() { + return b; + }; +} + +function one(b) { + return function(t) { + return b(t) + ""; + }; +} + +function string(a, b) { + var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b + am, // current match in a + bm, // current match in b + bs, // string preceding current number in b, if any + i = -1, // index in s + s = [], // string constants and placeholders + q = []; // number interpolators + + // Coerce inputs to strings. + a = a + "", b = b + ""; + + // Interpolate pairs of numbers in a & b. + while ((am = reA.exec(a)) + && (bm = reB.exec(b))) { + if ((bs = bm.index) > bi) { // a string precedes the next number in b + bs = b.slice(bi, bs); + if (s[i]) s[i] += bs; // coalesce with previous string + else s[++i] = bs; } - function sizeNode(node) { - node.x *= size[0]; - node.y = node.depth * size[1]; + if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match + if (s[i]) s[i] += bm; // coalesce with previous string + else s[++i] = bm; + } else { // interpolate non-matching numbers + s[++i] = null; + q.push({i: i, x: number(am, bm)}); } - tree.separation = function(x) { - if (!arguments.length) return separation; - separation = x; - return tree; - }; - tree.size = function(x) { - if (!arguments.length) return nodeSize ? null : size; - nodeSize = (size = x) == null ? sizeNode : null; - return tree; - }; - tree.nodeSize = function(x) { - if (!arguments.length) return nodeSize ? size : null; - nodeSize = (size = x) == null ? null : sizeNode; - return tree; - }; - return d3_layout_hierarchyRebind(tree, hierarchy); + bi = reB.lastIndex; + } + + // Add remains of b. + if (bi < b.length) { + bs = b.slice(bi); + if (s[i]) s[i] += bs; // coalesce with previous string + else s[++i] = bs; + } + + // Special optimization for only a single match. + // Otherwise, interpolate each of the numbers and rejoin the string. + return s.length < 2 ? (q[0] + ? one(q[0].x) + : zero(b)) + : (b = q.length, function(t) { + for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t); + return s.join(""); + }); +} + +function value(a, b) { + var t = typeof b, c; + return b == null || t === "boolean" ? constant(b) + : (t === "number" ? number + : t === "string" ? ((c = d3Color.color(b)) ? (b = c, rgb) : string) + : b instanceof d3Color.color ? rgb + : b instanceof Date ? date + : isNumberArray(b) ? numberArray + : Array.isArray(b) ? genericArray + : typeof b.valueOf !== "function" && typeof b.toString !== "function" || isNaN(b) ? object + : number)(a, b); +} + +function discrete(range) { + var n = range.length; + return function(t) { + return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))]; }; - function d3_layout_treeSeparation(a, b) { - return a.parent == b.parent ? 1 : 2; - } - function d3_layout_treeLeft(v) { - var children = v.children; - return children.length ? children[0] : v.t; - } - function d3_layout_treeRight(v) { - var children = v.children, n; - return (n = children.length) ? children[n - 1] : v.t; +} + +function hue$1(a, b) { + var i = hue(+a, +b); + return function(t) { + var x = i(t); + return x - 360 * Math.floor(x / 360); + }; +} + +function round(a, b) { + return a = +a, b = +b, function(t) { + return Math.round(a * (1 - t) + b * t); + }; +} + +var degrees = 180 / Math.PI; + +var identity = { + translateX: 0, + translateY: 0, + rotate: 0, + skewX: 0, + scaleX: 1, + scaleY: 1 +}; + +function decompose(a, b, c, d, e, f) { + var scaleX, scaleY, skewX; + if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX; + if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX; + if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY; + if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX; + return { + translateX: e, + translateY: f, + rotate: Math.atan2(b, a) * degrees, + skewX: Math.atan(skewX) * degrees, + scaleX: scaleX, + scaleY: scaleY + }; +} + +var cssNode, + cssRoot, + cssView, + svgNode; + +function parseCss(value) { + if (value === "none") return identity; + if (!cssNode) cssNode = document.createElement("DIV"), cssRoot = document.documentElement, cssView = document.defaultView; + cssNode.style.transform = value; + value = cssView.getComputedStyle(cssRoot.appendChild(cssNode), null).getPropertyValue("transform"); + cssRoot.removeChild(cssNode); + value = value.slice(7, -1).split(","); + return decompose(+value[0], +value[1], +value[2], +value[3], +value[4], +value[5]); +} + +function parseSvg(value) { + if (value == null) return identity; + if (!svgNode) svgNode = document.createElementNS("http://www.w3.org/2000/svg", "g"); + svgNode.setAttribute("transform", value); + if (!(value = svgNode.transform.baseVal.consolidate())) return identity; + value = value.matrix; + return decompose(value.a, value.b, value.c, value.d, value.e, value.f); +} + +function interpolateTransform(parse, pxComma, pxParen, degParen) { + + function pop(s) { + return s.length ? s.pop() + " " : ""; } - function d3_layout_treeMove(wm, wp, shift) { - var change = shift / (wp.i - wm.i); - wp.c -= change; - wp.s += shift; - wm.c += change; - wp.z += shift; - wp.m += shift; + + function translate(xa, ya, xb, yb, s, q) { + if (xa !== xb || ya !== yb) { + var i = s.push("translate(", null, pxComma, null, pxParen); + q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)}); + } else if (xb || yb) { + s.push("translate(" + xb + pxComma + yb + pxParen); + } } - function d3_layout_treeShift(v) { - var shift = 0, change = 0, children = v.children, i = children.length, w; - while (--i >= 0) { - w = children[i]; - w.z += shift; - w.m += shift; - shift += w.s + (change += w.c); + + function rotate(a, b, s, q) { + if (a !== b) { + if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path + q.push({i: s.push(pop(s) + "rotate(", null, degParen) - 2, x: number(a, b)}); + } else if (b) { + s.push(pop(s) + "rotate(" + b + degParen); } } - function d3_layout_treeAncestor(vim, v, ancestor) { - return vim.a.parent === v.parent ? vim.a : ancestor; + + function skewX(a, b, s, q) { + if (a !== b) { + q.push({i: s.push(pop(s) + "skewX(", null, degParen) - 2, x: number(a, b)}); + } else if (b) { + s.push(pop(s) + "skewX(" + b + degParen); + } } - d3.layout.cluster = function() { - var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ], nodeSize = false; - function cluster(d, i) { - var nodes = hierarchy.call(this, d, i), root = nodes[0], previousNode, x = 0; - d3_layout_hierarchyVisitAfter(root, function(node) { - var children = node.children; - if (children && children.length) { - node.x = d3_layout_clusterX(children); - node.y = d3_layout_clusterY(children); - } else { - node.x = previousNode ? x += separation(node, previousNode) : 0; - node.y = 0; - previousNode = node; - } - }); - var left = d3_layout_clusterLeft(root), right = d3_layout_clusterRight(root), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2; - d3_layout_hierarchyVisitAfter(root, nodeSize ? function(node) { - node.x = (node.x - root.x) * size[0]; - node.y = (root.y - node.y) * size[1]; - } : function(node) { - node.x = (node.x - x0) / (x1 - x0) * size[0]; - node.y = (1 - (root.y ? node.y / root.y : 1)) * size[1]; - }); - return nodes; + + function scale(xa, ya, xb, yb, s, q) { + if (xa !== xb || ya !== yb) { + var i = s.push(pop(s) + "scale(", null, ",", null, ")"); + q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)}); + } else if (xb !== 1 || yb !== 1) { + s.push(pop(s) + "scale(" + xb + "," + yb + ")"); } - cluster.separation = function(x) { - if (!arguments.length) return separation; - separation = x; - return cluster; - }; - cluster.size = function(x) { - if (!arguments.length) return nodeSize ? null : size; - nodeSize = (size = x) == null; - return cluster; - }; - cluster.nodeSize = function(x) { - if (!arguments.length) return nodeSize ? size : null; - nodeSize = (size = x) != null; - return cluster; + } + + return function(a, b) { + var s = [], // string constants and placeholders + q = []; // number interpolators + a = parse(a), b = parse(b); + translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q); + rotate(a.rotate, b.rotate, s, q); + skewX(a.skewX, b.skewX, s, q); + scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q); + a = b = null; // gc + return function(t) { + var i = -1, n = q.length, o; + while (++i < n) s[(o = q[i]).i] = o.x(t); + return s.join(""); }; - return d3_layout_hierarchyRebind(cluster, hierarchy); }; - function d3_layout_clusterY(children) { - return 1 + d3.max(children, function(child) { - return child.y; - }); +} + +var interpolateTransformCss = interpolateTransform(parseCss, "px, ", "px)", "deg)"); +var interpolateTransformSvg = interpolateTransform(parseSvg, ", ", ")", ")"); + +var rho = Math.SQRT2, + rho2 = 2, + rho4 = 4, + epsilon2 = 1e-12; + +function cosh(x) { + return ((x = Math.exp(x)) + 1 / x) / 2; +} + +function sinh(x) { + return ((x = Math.exp(x)) - 1 / x) / 2; +} + +function tanh(x) { + return ((x = Math.exp(2 * x)) - 1) / (x + 1); +} + +// p0 = [ux0, uy0, w0] +// p1 = [ux1, uy1, w1] +function zoom(p0, p1) { + var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], + ux1 = p1[0], uy1 = p1[1], w1 = p1[2], + dx = ux1 - ux0, + dy = uy1 - uy0, + d2 = dx * dx + dy * dy, + i, + S; + + // Special case for u0 ≅ u1. + if (d2 < epsilon2) { + S = Math.log(w1 / w0) / rho; + i = function(t) { + return [ + ux0 + t * dx, + uy0 + t * dy, + w0 * Math.exp(rho * t * S) + ]; + }; } - function d3_layout_clusterX(children) { - return children.reduce(function(x, child) { - return x + child.x; - }, 0) / children.length; + + // General case. + else { + var d1 = Math.sqrt(d2), + b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1), + b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1), + r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), + r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1); + S = (r1 - r0) / rho; + i = function(t) { + var s = t * S, + coshr0 = cosh(r0), + u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0)); + return [ + ux0 + u * dx, + uy0 + u * dy, + w0 * coshr0 / cosh(rho * s + r0) + ]; + }; } - function d3_layout_clusterLeft(node) { - var children = node.children; - return children && children.length ? d3_layout_clusterLeft(children[0]) : node; + + i.duration = S * 1000; + + return i; +} + +function hsl(hue) { + return function(start, end) { + var h = hue((start = d3Color.hsl(start)).h, (end = d3Color.hsl(end)).h), + s = nogamma(start.s, end.s), + l = nogamma(start.l, end.l), + opacity = nogamma(start.opacity, end.opacity); + return function(t) { + start.h = h(t); + start.s = s(t); + start.l = l(t); + start.opacity = opacity(t); + return start + ""; + }; } - function d3_layout_clusterRight(node) { - var children = node.children, n; - return children && (n = children.length) ? d3_layout_clusterRight(children[n - 1]) : node; +} + +var hsl$1 = hsl(hue); +var hslLong = hsl(nogamma); + +function lab(start, end) { + var l = nogamma((start = d3Color.lab(start)).l, (end = d3Color.lab(end)).l), + a = nogamma(start.a, end.a), + b = nogamma(start.b, end.b), + opacity = nogamma(start.opacity, end.opacity); + return function(t) { + start.l = l(t); + start.a = a(t); + start.b = b(t); + start.opacity = opacity(t); + return start + ""; + }; +} + +function hcl(hue) { + return function(start, end) { + var h = hue((start = d3Color.hcl(start)).h, (end = d3Color.hcl(end)).h), + c = nogamma(start.c, end.c), + l = nogamma(start.l, end.l), + opacity = nogamma(start.opacity, end.opacity); + return function(t) { + start.h = h(t); + start.c = c(t); + start.l = l(t); + start.opacity = opacity(t); + return start + ""; + }; } - d3.layout.treemap = function() { - var hierarchy = d3.layout.hierarchy(), round = Math.round, size = [ 1, 1 ], padding = null, pad = d3_layout_treemapPadNull, sticky = false, stickies, mode = "squarify", ratio = .5 * (1 + Math.sqrt(5)); - function scale(children, k) { - var i = -1, n = children.length, child, area; - while (++i < n) { - area = (child = children[i]).value * (k < 0 ? 0 : k); - child.area = isNaN(area) || area <= 0 ? 0 : area; - } +} + +var hcl$1 = hcl(hue); +var hclLong = hcl(nogamma); + +function cubehelix(hue) { + return (function cubehelixGamma(y) { + y = +y; + + function cubehelix(start, end) { + var h = hue((start = d3Color.cubehelix(start)).h, (end = d3Color.cubehelix(end)).h), + s = nogamma(start.s, end.s), + l = nogamma(start.l, end.l), + opacity = nogamma(start.opacity, end.opacity); + return function(t) { + start.h = h(t); + start.s = s(t); + start.l = l(Math.pow(t, y)); + start.opacity = opacity(t); + return start + ""; + }; } - function squarify(node) { - var children = node.children; - if (children && children.length) { - var rect = pad(node), row = [], remaining = children.slice(), child, best = Infinity, score, u = mode === "slice" ? rect.dx : mode === "dice" ? rect.dy : mode === "slice-dice" ? node.depth & 1 ? rect.dy : rect.dx : Math.min(rect.dx, rect.dy), n; - scale(remaining, rect.dx * rect.dy / node.value); - row.area = 0; - while ((n = remaining.length) > 0) { - row.push(child = remaining[n - 1]); - row.area += child.area; - if (mode !== "squarify" || (score = worst(row, u)) <= best) { - remaining.pop(); - best = score; - } else { - row.area -= row.pop().area; - position(row, u, rect, false); - u = Math.min(rect.dx, rect.dy); - row.length = row.area = 0; - best = Infinity; - } - } - if (row.length) { - position(row, u, rect, true); - row.length = row.area = 0; - } - children.forEach(squarify); - } + + cubehelix.gamma = cubehelixGamma; + + return cubehelix; + })(1); +} + +var cubehelix$1 = cubehelix(hue); +var cubehelixLong = cubehelix(nogamma); + +function piecewise(interpolate, values) { + var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n); + while (i < n) I[i] = interpolate(v, v = values[++i]); + return function(t) { + var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n))); + return I[i](t - i); + }; +} + +function quantize(interpolator, n) { + var samples = new Array(n); + for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1)); + return samples; +} + +exports.interpolate = value; +exports.interpolateArray = array; +exports.interpolateBasis = basis$1; +exports.interpolateBasisClosed = basisClosed; +exports.interpolateCubehelix = cubehelix$1; +exports.interpolateCubehelixLong = cubehelixLong; +exports.interpolateDate = date; +exports.interpolateDiscrete = discrete; +exports.interpolateHcl = hcl$1; +exports.interpolateHclLong = hclLong; +exports.interpolateHsl = hsl$1; +exports.interpolateHslLong = hslLong; +exports.interpolateHue = hue$1; +exports.interpolateLab = lab; +exports.interpolateNumber = number; +exports.interpolateNumberArray = numberArray; +exports.interpolateObject = object; +exports.interpolateRgb = rgb; +exports.interpolateRgbBasis = rgbBasis; +exports.interpolateRgbBasisClosed = rgbBasisClosed; +exports.interpolateRound = round; +exports.interpolateString = string; +exports.interpolateTransformCss = interpolateTransformCss; +exports.interpolateTransformSvg = interpolateTransformSvg; +exports.interpolateZoom = zoom; +exports.piecewise = piecewise; +exports.quantize = quantize; + +Object.defineProperty(exports, '__esModule', { value: true }); + +})); + +},{"d3-color":160}],165:[function(_dereq_,module,exports){ +// https://d3js.org/d3-path/ v1.0.9 Copyright 2019 Mike Bostock +(function (global, factory) { +typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : +typeof define === 'function' && define.amd ? define(['exports'], factory) : +(global = global || self, factory(global.d3 = global.d3 || {})); +}(this, function (exports) { 'use strict'; + +var pi = Math.PI, + tau = 2 * pi, + epsilon = 1e-6, + tauEpsilon = tau - epsilon; + +function Path() { + this._x0 = this._y0 = // start of current subpath + this._x1 = this._y1 = null; // end of current subpath + this._ = ""; +} + +function path() { + return new Path; +} + +Path.prototype = path.prototype = { + constructor: Path, + moveTo: function(x, y) { + this._ += "M" + (this._x0 = this._x1 = +x) + "," + (this._y0 = this._y1 = +y); + }, + closePath: function() { + if (this._x1 !== null) { + this._x1 = this._x0, this._y1 = this._y0; + this._ += "Z"; } - function stickify(node) { - var children = node.children; - if (children && children.length) { - var rect = pad(node), remaining = children.slice(), child, row = []; - scale(remaining, rect.dx * rect.dy / node.value); - row.area = 0; - while (child = remaining.pop()) { - row.push(child); - row.area += child.area; - if (child.z != null) { - position(row, child.z ? rect.dx : rect.dy, rect, !remaining.length); - row.length = row.area = 0; - } - } - children.forEach(stickify); - } + }, + lineTo: function(x, y) { + this._ += "L" + (this._x1 = +x) + "," + (this._y1 = +y); + }, + quadraticCurveTo: function(x1, y1, x, y) { + this._ += "Q" + (+x1) + "," + (+y1) + "," + (this._x1 = +x) + "," + (this._y1 = +y); + }, + bezierCurveTo: function(x1, y1, x2, y2, x, y) { + this._ += "C" + (+x1) + "," + (+y1) + "," + (+x2) + "," + (+y2) + "," + (this._x1 = +x) + "," + (this._y1 = +y); + }, + arcTo: function(x1, y1, x2, y2, r) { + x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r; + var x0 = this._x1, + y0 = this._y1, + x21 = x2 - x1, + y21 = y2 - y1, + x01 = x0 - x1, + y01 = y0 - y1, + l01_2 = x01 * x01 + y01 * y01; + + // Is the radius negative? Error. + if (r < 0) throw new Error("negative radius: " + r); + + // Is this path empty? Move to (x1,y1). + if (this._x1 === null) { + this._ += "M" + (this._x1 = x1) + "," + (this._y1 = y1); } - function worst(row, u) { - var s = row.area, r, rmax = 0, rmin = Infinity, i = -1, n = row.length; - while (++i < n) { - if (!(r = row[i].area)) continue; - if (r < rmin) rmin = r; - if (r > rmax) rmax = r; - } - s *= s; - u *= u; - return s ? Math.max(u * rmax * ratio / s, s / (u * rmin * ratio)) : Infinity; + + // Or, is (x1,y1) coincident with (x0,y0)? Do nothing. + else if (!(l01_2 > epsilon)); + + // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear? + // Equivalently, is (x1,y1) coincident with (x2,y2)? + // Or, is the radius zero? Line to (x1,y1). + else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) { + this._ += "L" + (this._x1 = x1) + "," + (this._y1 = y1); } - function position(row, u, rect, flush) { - var i = -1, n = row.length, x = rect.x, y = rect.y, v = u ? round(row.area / u) : 0, o; - if (u == rect.dx) { - if (flush || v > rect.dy) v = rect.dy; - while (++i < n) { - o = row[i]; - o.x = x; - o.y = y; - o.dy = v; - x += o.dx = Math.min(rect.x + rect.dx - x, v ? round(o.area / v) : 0); - } - o.z = true; - o.dx += rect.x + rect.dx - x; - rect.y += v; - rect.dy -= v; - } else { - if (flush || v > rect.dx) v = rect.dx; - while (++i < n) { - o = row[i]; - o.x = x; - o.y = y; - o.dx = v; - y += o.dy = Math.min(rect.y + rect.dy - y, v ? round(o.area / v) : 0); - } - o.z = false; - o.dy += rect.y + rect.dy - y; - rect.x += v; - rect.dx -= v; + + // Otherwise, draw an arc! + else { + var x20 = x2 - x0, + y20 = y2 - y0, + l21_2 = x21 * x21 + y21 * y21, + l20_2 = x20 * x20 + y20 * y20, + l21 = Math.sqrt(l21_2), + l01 = Math.sqrt(l01_2), + l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2), + t01 = l / l01, + t21 = l / l21; + + // If the start tangent is not coincident with (x0,y0), line to. + if (Math.abs(t01 - 1) > epsilon) { + this._ += "L" + (x1 + t01 * x01) + "," + (y1 + t01 * y01); } + + this._ += "A" + r + "," + r + ",0,0," + (+(y01 * x20 > x01 * y20)) + "," + (this._x1 = x1 + t21 * x21) + "," + (this._y1 = y1 + t21 * y21); } - function treemap(d) { - var nodes = stickies || hierarchy(d), root = nodes[0]; - root.x = root.y = 0; - if (root.value) root.dx = size[0], root.dy = size[1]; else root.dx = root.dy = 0; - if (stickies) hierarchy.revalue(root); - scale([ root ], root.dx * root.dy / root.value); - (stickies ? stickify : squarify)(root); - if (sticky) stickies = nodes; - return nodes; + }, + arc: function(x, y, r, a0, a1, ccw) { + x = +x, y = +y, r = +r, ccw = !!ccw; + var dx = r * Math.cos(a0), + dy = r * Math.sin(a0), + x0 = x + dx, + y0 = y + dy, + cw = 1 ^ ccw, + da = ccw ? a0 - a1 : a1 - a0; + + // Is the radius negative? Error. + if (r < 0) throw new Error("negative radius: " + r); + + // Is this path empty? Move to (x0,y0). + if (this._x1 === null) { + this._ += "M" + x0 + "," + y0; } - treemap.size = function(x) { - if (!arguments.length) return size; - size = x; - return treemap; - }; - treemap.padding = function(x) { - if (!arguments.length) return padding; - function padFunction(node) { - var p = x.call(treemap, node, node.depth); - return p == null ? d3_layout_treemapPadNull(node) : d3_layout_treemapPad(node, typeof p === "number" ? [ p, p, p, p ] : p); - } - function padConstant(node) { - return d3_layout_treemapPad(node, x); - } - var type; - pad = (padding = x) == null ? d3_layout_treemapPadNull : (type = typeof x) === "function" ? padFunction : type === "number" ? (x = [ x, x, x, x ], - padConstant) : padConstant; - return treemap; - }; - treemap.round = function(x) { - if (!arguments.length) return round != Number; - round = x ? Math.round : Number; - return treemap; - }; - treemap.sticky = function(x) { - if (!arguments.length) return sticky; - sticky = x; - stickies = null; - return treemap; - }; - treemap.ratio = function(x) { - if (!arguments.length) return ratio; - ratio = x; - return treemap; - }; - treemap.mode = function(x) { - if (!arguments.length) return mode; - mode = x + ""; - return treemap; - }; - return d3_layout_hierarchyRebind(treemap, hierarchy); - }; - function d3_layout_treemapPadNull(node) { - return { - x: node.x, - y: node.y, - dx: node.dx, - dy: node.dy - }; - } - function d3_layout_treemapPad(node, padding) { - var x = node.x + padding[3], y = node.y + padding[0], dx = node.dx - padding[1] - padding[3], dy = node.dy - padding[0] - padding[2]; - if (dx < 0) { - x += dx / 2; - dx = 0; + + // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0). + else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) { + this._ += "L" + x0 + "," + y0; } - if (dy < 0) { - y += dy / 2; - dy = 0; + + // Is this arc empty? We’re done. + if (!r) return; + + // Does the angle go the wrong way? Flip the direction. + if (da < 0) da = da % tau + tau; + + // Is this a complete circle? Draw two arcs to complete the circle. + if (da > tauEpsilon) { + this._ += "A" + r + "," + r + ",0,1," + cw + "," + (x - dx) + "," + (y - dy) + "A" + r + "," + r + ",0,1," + cw + "," + (this._x1 = x0) + "," + (this._y1 = y0); } - return { - x: x, - y: y, - dx: dx, - dy: dy - }; - } - d3.random = { - normal: function(µ, σ) { - var n = arguments.length; - if (n < 2) σ = 1; - if (n < 1) µ = 0; - return function() { - var x, y, r; - do { - x = Math.random() * 2 - 1; - y = Math.random() * 2 - 1; - r = x * x + y * y; - } while (!r || r > 1); - return µ + σ * x * Math.sqrt(-2 * Math.log(r) / r); - }; - }, - logNormal: function() { - var random = d3.random.normal.apply(d3, arguments); - return function() { - return Math.exp(random()); - }; - }, - bates: function(m) { - var random = d3.random.irwinHall(m); - return function() { - return random() / m; - }; - }, - irwinHall: function(m) { - return function() { - for (var s = 0, j = 0; j < m; j++) s += Math.random(); - return s; - }; + + // Is this arc non-empty? Draw an arc! + else if (da > epsilon) { + this._ += "A" + r + "," + r + ",0," + (+(da >= pi)) + "," + cw + "," + (this._x1 = x + r * Math.cos(a1)) + "," + (this._y1 = y + r * Math.sin(a1)); } - }; - d3.scale = {}; - function d3_scaleExtent(domain) { - var start = domain[0], stop = domain[domain.length - 1]; - return start < stop ? [ start, stop ] : [ stop, start ]; + }, + rect: function(x, y, w, h) { + this._ += "M" + (this._x0 = this._x1 = +x) + "," + (this._y0 = this._y1 = +y) + "h" + (+w) + "v" + (+h) + "h" + (-w) + "Z"; + }, + toString: function() { + return this._; } - function d3_scaleRange(scale) { - return scale.rangeExtent ? scale.rangeExtent() : d3_scaleExtent(scale.range()); +}; + +exports.path = path; + +Object.defineProperty(exports, '__esModule', { value: true }); + +})); + +},{}],166:[function(_dereq_,module,exports){ +// https://d3js.org/d3-quadtree/ v1.0.7 Copyright 2019 Mike Bostock +(function (global, factory) { +typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : +typeof define === 'function' && define.amd ? define(['exports'], factory) : +(global = global || self, factory(global.d3 = global.d3 || {})); +}(this, function (exports) { 'use strict'; + +function tree_add(d) { + var x = +this._x.call(null, d), + y = +this._y.call(null, d); + return add(this.cover(x, y), x, y, d); +} + +function add(tree, x, y, d) { + if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points + + var parent, + node = tree._root, + leaf = {data: d}, + x0 = tree._x0, + y0 = tree._y0, + x1 = tree._x1, + y1 = tree._y1, + xm, + ym, + xp, + yp, + right, + bottom, + i, + j; + + // If the tree is empty, initialize the root as a leaf. + if (!node) return tree._root = leaf, tree; + + // Find the existing leaf for the new point, or add it. + while (node.length) { + if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm; + if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym; + if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree; } - function d3_scale_bilinear(domain, range, uninterpolate, interpolate) { - var u = uninterpolate(domain[0], domain[1]), i = interpolate(range[0], range[1]); - return function(x) { - return i(u(x)); - }; + + // Is the new point is exactly coincident with the existing point? + xp = +tree._x.call(null, node.data); + yp = +tree._y.call(null, node.data); + if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree; + + // Otherwise, split the leaf node until the old and new point are separated. + do { + parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4); + if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm; + if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym; + } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm))); + return parent[j] = node, parent[i] = leaf, tree; +} + +function addAll(data) { + var d, i, n = data.length, + x, + y, + xz = new Array(n), + yz = new Array(n), + x0 = Infinity, + y0 = Infinity, + x1 = -Infinity, + y1 = -Infinity; + + // Compute the points and their extent. + for (i = 0; i < n; ++i) { + if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue; + xz[i] = x; + yz[i] = y; + if (x < x0) x0 = x; + if (x > x1) x1 = x; + if (y < y0) y0 = y; + if (y > y1) y1 = y; } - function d3_scale_nice(domain, nice) { - var i0 = 0, i1 = domain.length - 1, x0 = domain[i0], x1 = domain[i1], dx; - if (x1 < x0) { - dx = i0, i0 = i1, i1 = dx; - dx = x0, x0 = x1, x1 = dx; + + // If there were no (valid) points, abort. + if (x0 > x1 || y0 > y1) return this; + + // Expand the tree to cover the new points. + this.cover(x0, y0).cover(x1, y1); + + // Add the new points. + for (i = 0; i < n; ++i) { + add(this, xz[i], yz[i], data[i]); + } + + return this; +} + +function tree_cover(x, y) { + if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points + + var x0 = this._x0, + y0 = this._y0, + x1 = this._x1, + y1 = this._y1; + + // If the quadtree has no extent, initialize them. + // Integer extent are necessary so that if we later double the extent, + // the existing quadrant boundaries don’t change due to floating point error! + if (isNaN(x0)) { + x1 = (x0 = Math.floor(x)) + 1; + y1 = (y0 = Math.floor(y)) + 1; + } + + // Otherwise, double repeatedly to cover. + else { + var z = x1 - x0, + node = this._root, + parent, + i; + + while (x0 > x || x >= x1 || y0 > y || y >= y1) { + i = (y < y0) << 1 | (x < x0); + parent = new Array(4), parent[i] = node, node = parent, z *= 2; + switch (i) { + case 0: x1 = x0 + z, y1 = y0 + z; break; + case 1: x0 = x1 - z, y1 = y0 + z; break; + case 2: x1 = x0 + z, y0 = y1 - z; break; + case 3: x0 = x1 - z, y0 = y1 - z; break; + } } - domain[i0] = nice.floor(x0); - domain[i1] = nice.ceil(x1); - return domain; + + if (this._root && this._root.length) this._root = node; } - function d3_scale_niceStep(step) { - return step ? { - floor: function(x) { - return Math.floor(x / step) * step; - }, - ceil: function(x) { - return Math.ceil(x / step) * step; + + this._x0 = x0; + this._y0 = y0; + this._x1 = x1; + this._y1 = y1; + return this; +} + +function tree_data() { + var data = []; + this.visit(function(node) { + if (!node.length) do data.push(node.data); while (node = node.next) + }); + return data; +} + +function tree_extent(_) { + return arguments.length + ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1]) + : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]]; +} + +function Quad(node, x0, y0, x1, y1) { + this.node = node; + this.x0 = x0; + this.y0 = y0; + this.x1 = x1; + this.y1 = y1; +} + +function tree_find(x, y, radius) { + var data, + x0 = this._x0, + y0 = this._y0, + x1, + y1, + x2, + y2, + x3 = this._x1, + y3 = this._y1, + quads = [], + node = this._root, + q, + i; + + if (node) quads.push(new Quad(node, x0, y0, x3, y3)); + if (radius == null) radius = Infinity; + else { + x0 = x - radius, y0 = y - radius; + x3 = x + radius, y3 = y + radius; + radius *= radius; + } + + while (q = quads.pop()) { + + // Stop searching if this quadrant can’t contain a closer node. + if (!(node = q.node) + || (x1 = q.x0) > x3 + || (y1 = q.y0) > y3 + || (x2 = q.x1) < x0 + || (y2 = q.y1) < y0) continue; + + // Bisect the current quadrant. + if (node.length) { + var xm = (x1 + x2) / 2, + ym = (y1 + y2) / 2; + + quads.push( + new Quad(node[3], xm, ym, x2, y2), + new Quad(node[2], x1, ym, xm, y2), + new Quad(node[1], xm, y1, x2, ym), + new Quad(node[0], x1, y1, xm, ym) + ); + + // Visit the closest quadrant first. + if (i = (y >= ym) << 1 | (x >= xm)) { + q = quads[quads.length - 1]; + quads[quads.length - 1] = quads[quads.length - 1 - i]; + quads[quads.length - 1 - i] = q; } - } : d3_scale_niceIdentity; + } + + // Visit this point. (Visiting coincident points isn’t necessary!) + else { + var dx = x - +this._x.call(null, node.data), + dy = y - +this._y.call(null, node.data), + d2 = dx * dx + dy * dy; + if (d2 < radius) { + var d = Math.sqrt(radius = d2); + x0 = x - d, y0 = y - d; + x3 = x + d, y3 = y + d; + data = node.data; + } + } + } + + return data; +} + +function tree_remove(d) { + if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points + + var parent, + node = this._root, + retainer, + previous, + next, + x0 = this._x0, + y0 = this._y0, + x1 = this._x1, + y1 = this._y1, + x, + y, + xm, + ym, + right, + bottom, + i, + j; + + // If the tree is empty, initialize the root as a leaf. + if (!node) return this; + + // Find the leaf node for the point. + // While descending, also retain the deepest parent with a non-removed sibling. + if (node.length) while (true) { + if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm; + if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym; + if (!(parent = node, node = node[i = bottom << 1 | right])) return this; + if (!node.length) break; + if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i; + } + + // Find the point to remove. + while (node.data !== d) if (!(previous = node, node = node.next)) return this; + if (next = node.next) delete node.next; + + // If there are multiple coincident points, remove just the point. + if (previous) return (next ? previous.next = next : delete previous.next), this; + + // If this is the root point, remove it. + if (!parent) return this._root = next, this; + + // Remove this leaf. + next ? parent[i] = next : delete parent[i]; + + // If the parent now contains exactly one leaf, collapse superfluous parents. + if ((node = parent[0] || parent[1] || parent[2] || parent[3]) + && node === (parent[3] || parent[2] || parent[1] || parent[0]) + && !node.length) { + if (retainer) retainer[j] = node; + else this._root = node; } - var d3_scale_niceIdentity = { - floor: d3_identity, - ceil: d3_identity - }; - function d3_scale_polylinear(domain, range, uninterpolate, interpolate) { - var u = [], i = [], j = 0, k = Math.min(domain.length, range.length) - 1; - if (domain[k] < domain[0]) { - domain = domain.slice().reverse(); - range = range.slice().reverse(); - } - while (++j <= k) { - u.push(uninterpolate(domain[j - 1], domain[j])); - i.push(interpolate(range[j - 1], range[j])); + + return this; +} + +function removeAll(data) { + for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]); + return this; +} + +function tree_root() { + return this._root; +} + +function tree_size() { + var size = 0; + this.visit(function(node) { + if (!node.length) do ++size; while (node = node.next) + }); + return size; +} + +function tree_visit(callback) { + var quads = [], q, node = this._root, child, x0, y0, x1, y1; + if (node) quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1)); + while (q = quads.pop()) { + if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) { + var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2; + if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1)); + if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1)); + if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym)); + if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym)); } - return function(x) { - var j = d3.bisect(domain, x, 1, k) - 1; - return i[j](u[j](x)); - }; } - d3.scale.linear = function() { - return d3_scale_linear([ 0, 1 ], [ 0, 1 ], d3_interpolate, false); - }; - function d3_scale_linear(domain, range, interpolate, clamp) { - var output, input; - function rescale() { - var linear = Math.min(domain.length, range.length) > 2 ? d3_scale_polylinear : d3_scale_bilinear, uninterpolate = clamp ? d3_uninterpolateClamp : d3_uninterpolateNumber; - output = linear(domain, range, uninterpolate, interpolate); - input = linear(range, domain, uninterpolate, d3_interpolate); - return scale; - } - function scale(x) { - return output(x); + return this; +} + +function tree_visitAfter(callback) { + var quads = [], next = [], q; + if (this._root) quads.push(new Quad(this._root, this._x0, this._y0, this._x1, this._y1)); + while (q = quads.pop()) { + var node = q.node; + if (node.length) { + var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2; + if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym)); + if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym)); + if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1)); + if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1)); } - scale.invert = function(y) { - return input(y); - }; - scale.domain = function(x) { - if (!arguments.length) return domain; - domain = x.map(Number); - return rescale(); - }; - scale.range = function(x) { - if (!arguments.length) return range; - range = x; - return rescale(); - }; - scale.rangeRound = function(x) { - return scale.range(x).interpolate(d3_interpolateRound); - }; - scale.clamp = function(x) { - if (!arguments.length) return clamp; - clamp = x; - return rescale(); - }; - scale.interpolate = function(x) { - if (!arguments.length) return interpolate; - interpolate = x; - return rescale(); - }; - scale.ticks = function(m) { - return d3_scale_linearTicks(domain, m); - }; - scale.tickFormat = function(m, format) { - return d3_scale_linearTickFormat(domain, m, format); - }; - scale.nice = function(m) { - d3_scale_linearNice(domain, m); - return rescale(); - }; - scale.copy = function() { - return d3_scale_linear(domain, range, interpolate, clamp); - }; - return rescale(); - } - function d3_scale_linearRebind(scale, linear) { - return d3.rebind(scale, linear, "range", "rangeRound", "interpolate", "clamp"); - } - function d3_scale_linearNice(domain, m) { - d3_scale_nice(domain, d3_scale_niceStep(d3_scale_linearTickRange(domain, m)[2])); - d3_scale_nice(domain, d3_scale_niceStep(d3_scale_linearTickRange(domain, m)[2])); - return domain; - } - function d3_scale_linearTickRange(domain, m) { - if (m == null) m = 10; - var extent = d3_scaleExtent(domain), span = extent[1] - extent[0], step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10)), err = m / span * step; - if (err <= .15) step *= 10; else if (err <= .35) step *= 5; else if (err <= .75) step *= 2; - extent[0] = Math.ceil(extent[0] / step) * step; - extent[1] = Math.floor(extent[1] / step) * step + step * .5; - extent[2] = step; - return extent; + next.push(q); } - function d3_scale_linearTicks(domain, m) { - return d3.range.apply(d3, d3_scale_linearTickRange(domain, m)); + while (q = next.pop()) { + callback(q.node, q.x0, q.y0, q.x1, q.y1); } - function d3_scale_linearTickFormat(domain, m, format) { - var range = d3_scale_linearTickRange(domain, m); - if (format) { - var match = d3_format_re.exec(format); - match.shift(); - if (match[8] === "s") { - var prefix = d3.formatPrefix(Math.max(abs(range[0]), abs(range[1]))); - if (!match[7]) match[7] = "." + d3_scale_linearPrecision(prefix.scale(range[2])); - match[8] = "f"; - format = d3.format(match.join("")); - return function(d) { - return format(prefix.scale(d)) + prefix.symbol; - }; + return this; +} + +function defaultX(d) { + return d[0]; +} + +function tree_x(_) { + return arguments.length ? (this._x = _, this) : this._x; +} + +function defaultY(d) { + return d[1]; +} + +function tree_y(_) { + return arguments.length ? (this._y = _, this) : this._y; +} + +function quadtree(nodes, x, y) { + var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN); + return nodes == null ? tree : tree.addAll(nodes); +} + +function Quadtree(x, y, x0, y0, x1, y1) { + this._x = x; + this._y = y; + this._x0 = x0; + this._y0 = y0; + this._x1 = x1; + this._y1 = y1; + this._root = undefined; +} + +function leaf_copy(leaf) { + var copy = {data: leaf.data}, next = copy; + while (leaf = leaf.next) next = next.next = {data: leaf.data}; + return copy; +} + +var treeProto = quadtree.prototype = Quadtree.prototype; + +treeProto.copy = function() { + var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1), + node = this._root, + nodes, + child; + + if (!node) return copy; + + if (!node.length) return copy._root = leaf_copy(node), copy; + + nodes = [{source: node, target: copy._root = new Array(4)}]; + while (node = nodes.pop()) { + for (var i = 0; i < 4; ++i) { + if (child = node.source[i]) { + if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)}); + else node.target[i] = leaf_copy(child); } - if (!match[7]) match[7] = "." + d3_scale_linearFormatPrecision(match[8], range); - format = match.join(""); - } else { - format = ",." + d3_scale_linearPrecision(range[2]) + "f"; } - return d3.format(format); } - var d3_scale_linearFormatSignificant = { - s: 1, - g: 1, - p: 1, - r: 1, - e: 1 + + return copy; +}; + +treeProto.add = tree_add; +treeProto.addAll = addAll; +treeProto.cover = tree_cover; +treeProto.data = tree_data; +treeProto.extent = tree_extent; +treeProto.find = tree_find; +treeProto.remove = tree_remove; +treeProto.removeAll = removeAll; +treeProto.root = tree_root; +treeProto.size = tree_size; +treeProto.visit = tree_visit; +treeProto.visitAfter = tree_visitAfter; +treeProto.x = tree_x; +treeProto.y = tree_y; + +exports.quadtree = quadtree; + +Object.defineProperty(exports, '__esModule', { value: true }); + +})); + +},{}],167:[function(_dereq_,module,exports){ +// https://d3js.org/d3-shape/ v1.3.7 Copyright 2019 Mike Bostock +(function (global, factory) { +typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, _dereq_('d3-path')) : +typeof define === 'function' && define.amd ? define(['exports', 'd3-path'], factory) : +(global = global || self, factory(global.d3 = global.d3 || {}, global.d3)); +}(this, function (exports, d3Path) { 'use strict'; + +function constant(x) { + return function constant() { + return x; }; - function d3_scale_linearPrecision(value) { - return -Math.floor(Math.log(value) / Math.LN10 + .01); - } - function d3_scale_linearFormatPrecision(type, range) { - var p = d3_scale_linearPrecision(range[2]); - return type in d3_scale_linearFormatSignificant ? Math.abs(p - d3_scale_linearPrecision(Math.max(abs(range[0]), abs(range[1])))) + +(type !== "e") : p - (type === "%") * 2; - } - d3.scale.log = function() { - return d3_scale_log(d3.scale.linear().domain([ 0, 1 ]), 10, true, [ 1, 10 ]); +} + +var abs = Math.abs; +var atan2 = Math.atan2; +var cos = Math.cos; +var max = Math.max; +var min = Math.min; +var sin = Math.sin; +var sqrt = Math.sqrt; + +var epsilon = 1e-12; +var pi = Math.PI; +var halfPi = pi / 2; +var tau = 2 * pi; + +function acos(x) { + return x > 1 ? 0 : x < -1 ? pi : Math.acos(x); +} + +function asin(x) { + return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x); +} + +function arcInnerRadius(d) { + return d.innerRadius; +} + +function arcOuterRadius(d) { + return d.outerRadius; +} + +function arcStartAngle(d) { + return d.startAngle; +} + +function arcEndAngle(d) { + return d.endAngle; +} + +function arcPadAngle(d) { + return d && d.padAngle; // Note: optional! +} + +function intersect(x0, y0, x1, y1, x2, y2, x3, y3) { + var x10 = x1 - x0, y10 = y1 - y0, + x32 = x3 - x2, y32 = y3 - y2, + t = y32 * x10 - x32 * y10; + if (t * t < epsilon) return; + t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t; + return [x0 + t * x10, y0 + t * y10]; +} + +// Compute perpendicular offset line of length rc. +// http://mathworld.wolfram.com/Circle-LineIntersection.html +function cornerTangents(x0, y0, x1, y1, r1, rc, cw) { + var x01 = x0 - x1, + y01 = y0 - y1, + lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01), + ox = lo * y01, + oy = -lo * x01, + x11 = x0 + ox, + y11 = y0 + oy, + x10 = x1 + ox, + y10 = y1 + oy, + x00 = (x11 + x10) / 2, + y00 = (y11 + y10) / 2, + dx = x10 - x11, + dy = y10 - y11, + d2 = dx * dx + dy * dy, + r = r1 - rc, + D = x11 * y10 - x10 * y11, + d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)), + cx0 = (D * dy - dx * d) / d2, + cy0 = (-D * dx - dy * d) / d2, + cx1 = (D * dy + dx * d) / d2, + cy1 = (-D * dx + dy * d) / d2, + dx0 = cx0 - x00, + dy0 = cy0 - y00, + dx1 = cx1 - x00, + dy1 = cy1 - y00; + + // Pick the closer of the two intersection points. + // TODO Is there a faster way to determine which intersection to use? + if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1; + + return { + cx: cx0, + cy: cy0, + x01: -ox, + y01: -oy, + x11: cx0 * (r1 / r - 1), + y11: cy0 * (r1 / r - 1) }; - function d3_scale_log(linear, base, positive, domain) { - function log(x) { - return (positive ? Math.log(x < 0 ? 0 : x) : -Math.log(x > 0 ? 0 : -x)) / Math.log(base); - } - function pow(x) { - return positive ? Math.pow(base, x) : -Math.pow(base, -x); - } - function scale(x) { - return linear(log(x)); +} + +function arc() { + var innerRadius = arcInnerRadius, + outerRadius = arcOuterRadius, + cornerRadius = constant(0), + padRadius = null, + startAngle = arcStartAngle, + endAngle = arcEndAngle, + padAngle = arcPadAngle, + context = null; + + function arc() { + var buffer, + r, + r0 = +innerRadius.apply(this, arguments), + r1 = +outerRadius.apply(this, arguments), + a0 = startAngle.apply(this, arguments) - halfPi, + a1 = endAngle.apply(this, arguments) - halfPi, + da = abs(a1 - a0), + cw = a1 > a0; + + if (!context) context = buffer = d3Path.path(); + + // Ensure that the outer radius is always larger than the inner radius. + if (r1 < r0) r = r1, r1 = r0, r0 = r; + + // Is it a point? + if (!(r1 > epsilon)) context.moveTo(0, 0); + + // Or is it a circle or annulus? + else if (da > tau - epsilon) { + context.moveTo(r1 * cos(a0), r1 * sin(a0)); + context.arc(0, 0, r1, a0, a1, !cw); + if (r0 > epsilon) { + context.moveTo(r0 * cos(a1), r0 * sin(a1)); + context.arc(0, 0, r0, a1, a0, cw); + } } - scale.invert = function(x) { - return pow(linear.invert(x)); - }; - scale.domain = function(x) { - if (!arguments.length) return domain; - positive = x[0] >= 0; - linear.domain((domain = x.map(Number)).map(log)); - return scale; - }; - scale.base = function(_) { - if (!arguments.length) return base; - base = +_; - linear.domain(domain.map(log)); - return scale; - }; - scale.nice = function() { - var niced = d3_scale_nice(domain.map(log), positive ? Math : d3_scale_logNiceNegative); - linear.domain(niced); - domain = niced.map(pow); - return scale; - }; - scale.ticks = function() { - var extent = d3_scaleExtent(domain), ticks = [], u = extent[0], v = extent[1], i = Math.floor(log(u)), j = Math.ceil(log(v)), n = base % 1 ? 2 : base; - if (isFinite(j - i)) { - if (positive) { - for (;i < j; i++) for (var k = 1; k < n; k++) ticks.push(pow(i) * k); - ticks.push(pow(i)); - } else { - ticks.push(pow(i)); - for (;i++ < j; ) for (var k = n - 1; k > 0; k--) ticks.push(pow(i) * k); + + // Or is it a circular or annular sector? + else { + var a01 = a0, + a11 = a1, + a00 = a0, + a10 = a1, + da0 = da, + da1 = da, + ap = padAngle.apply(this, arguments) / 2, + rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)), + rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)), + rc0 = rc, + rc1 = rc, + t0, + t1; + + // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0. + if (rp > epsilon) { + var p0 = asin(rp / r0 * sin(ap)), + p1 = asin(rp / r1 * sin(ap)); + if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0; + else da0 = 0, a00 = a10 = (a0 + a1) / 2; + if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1; + else da1 = 0, a01 = a11 = (a0 + a1) / 2; + } + + var x01 = r1 * cos(a01), + y01 = r1 * sin(a01), + x10 = r0 * cos(a10), + y10 = r0 * sin(a10); + + // Apply rounded corners? + if (rc > epsilon) { + var x11 = r1 * cos(a11), + y11 = r1 * sin(a11), + x00 = r0 * cos(a00), + y00 = r0 * sin(a00), + oc; + + // Restrict the corner radius according to the sector angle. + if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) { + var ax = x01 - oc[0], + ay = y01 - oc[1], + bx = x11 - oc[0], + by = y11 - oc[1], + kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2), + lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]); + rc0 = min(rc, (r0 - lc) / (kc - 1)); + rc1 = min(rc, (r1 - lc) / (kc + 1)); } - for (i = 0; ticks[i] < u; i++) {} - for (j = ticks.length; ticks[j - 1] > v; j--) {} - ticks = ticks.slice(i, j); } - return ticks; - }; - scale.tickFormat = function(n, format) { - if (!arguments.length) return d3_scale_logFormat; - if (arguments.length < 2) format = d3_scale_logFormat; else if (typeof format !== "function") format = d3.format(format); - var k = Math.max(1, base * n / scale.ticks().length); - return function(d) { - var i = d / pow(Math.round(log(d))); - if (i * base < base - .5) i *= base; - return i <= k ? format(d) : ""; - }; - }; - scale.copy = function() { - return d3_scale_log(linear.copy(), base, positive, domain); - }; - return d3_scale_linearRebind(scale, linear); - } - var d3_scale_logFormat = d3.format(".0e"), d3_scale_logNiceNegative = { - floor: function(x) { - return -Math.ceil(-x); - }, - ceil: function(x) { - return -Math.floor(-x); + + // Is the sector collapsed to a line? + if (!(da1 > epsilon)) context.moveTo(x01, y01); + + // Does the sector’s outer ring have rounded corners? + else if (rc1 > epsilon) { + t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw); + t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw); + + context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01); + + // Have the corners merged? + if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw); + + // Otherwise, draw the two corners and the ring. + else { + context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw); + context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw); + context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw); + } + } + + // Or is the outer ring just a circular arc? + else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw); + + // Is there no inner ring, and it’s a circular sector? + // Or perhaps it’s an annular sector collapsed due to padding? + if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10); + + // Does the sector’s inner ring (or point) have rounded corners? + else if (rc0 > epsilon) { + t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw); + t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw); + + context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01); + + // Have the corners merged? + if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw); + + // Otherwise, draw the two corners and the ring. + else { + context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw); + context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw); + context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw); + } + } + + // Or is the inner ring just a circular arc? + else context.arc(0, 0, r0, a10, a00, cw); } + + context.closePath(); + + if (buffer) return context = null, buffer + "" || null; + } + + arc.centroid = function() { + var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2, + a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2; + return [cos(a) * r, sin(a) * r]; }; - d3.scale.pow = function() { - return d3_scale_pow(d3.scale.linear(), 1, [ 0, 1 ]); + + arc.innerRadius = function(_) { + return arguments.length ? (innerRadius = typeof _ === "function" ? _ : constant(+_), arc) : innerRadius; }; - function d3_scale_pow(linear, exponent, domain) { - var powp = d3_scale_powPow(exponent), powb = d3_scale_powPow(1 / exponent); - function scale(x) { - return linear(powp(x)); - } - scale.invert = function(x) { - return powb(linear.invert(x)); - }; - scale.domain = function(x) { - if (!arguments.length) return domain; - linear.domain((domain = x.map(Number)).map(powp)); - return scale; - }; - scale.ticks = function(m) { - return d3_scale_linearTicks(domain, m); - }; - scale.tickFormat = function(m, format) { - return d3_scale_linearTickFormat(domain, m, format); - }; - scale.nice = function(m) { - return scale.domain(d3_scale_linearNice(domain, m)); - }; - scale.exponent = function(x) { - if (!arguments.length) return exponent; - powp = d3_scale_powPow(exponent = x); - powb = d3_scale_powPow(1 / exponent); - linear.domain(domain.map(powp)); - return scale; - }; - scale.copy = function() { - return d3_scale_pow(linear.copy(), exponent, domain); - }; - return d3_scale_linearRebind(scale, linear); - } - function d3_scale_powPow(e) { - return function(x) { - return x < 0 ? -Math.pow(-x, e) : Math.pow(x, e); - }; - } - d3.scale.sqrt = function() { - return d3.scale.pow().exponent(.5); + + arc.outerRadius = function(_) { + return arguments.length ? (outerRadius = typeof _ === "function" ? _ : constant(+_), arc) : outerRadius; }; - d3.scale.ordinal = function() { - return d3_scale_ordinal([], { - t: "range", - a: [ [] ] - }); + + arc.cornerRadius = function(_) { + return arguments.length ? (cornerRadius = typeof _ === "function" ? _ : constant(+_), arc) : cornerRadius; }; - function d3_scale_ordinal(domain, ranger) { - var index, range, rangeBand; - function scale(x) { - return range[((index.get(x) || (ranger.t === "range" ? index.set(x, domain.push(x)) : NaN)) - 1) % range.length]; - } - function steps(start, step) { - return d3.range(domain.length).map(function(i) { - return start + step * i; - }); - } - scale.domain = function(x) { - if (!arguments.length) return domain; - domain = []; - index = new d3_Map(); - var i = -1, n = x.length, xi; - while (++i < n) if (!index.has(xi = x[i])) index.set(xi, domain.push(xi)); - return scale[ranger.t].apply(scale, ranger.a); - }; - scale.range = function(x) { - if (!arguments.length) return range; - range = x; - rangeBand = 0; - ranger = { - t: "range", - a: arguments - }; - return scale; - }; - scale.rangePoints = function(x, padding) { - if (arguments.length < 2) padding = 0; - var start = x[0], stop = x[1], step = domain.length < 2 ? (start = (start + stop) / 2, - 0) : (stop - start) / (domain.length - 1 + padding); - range = steps(start + step * padding / 2, step); - rangeBand = 0; - ranger = { - t: "rangePoints", - a: arguments - }; - return scale; - }; - scale.rangeRoundPoints = function(x, padding) { - if (arguments.length < 2) padding = 0; - var start = x[0], stop = x[1], step = domain.length < 2 ? (start = stop = Math.round((start + stop) / 2), - 0) : (stop - start) / (domain.length - 1 + padding) | 0; - range = steps(start + Math.round(step * padding / 2 + (stop - start - (domain.length - 1 + padding) * step) / 2), step); - rangeBand = 0; - ranger = { - t: "rangeRoundPoints", - a: arguments - }; - return scale; - }; - scale.rangeBands = function(x, padding, outerPadding) { - if (arguments.length < 2) padding = 0; - if (arguments.length < 3) outerPadding = padding; - var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = (stop - start) / (domain.length - padding + 2 * outerPadding); - range = steps(start + step * outerPadding, step); - if (reverse) range.reverse(); - rangeBand = step * (1 - padding); - ranger = { - t: "rangeBands", - a: arguments - }; - return scale; - }; - scale.rangeRoundBands = function(x, padding, outerPadding) { - if (arguments.length < 2) padding = 0; - if (arguments.length < 3) outerPadding = padding; - var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = Math.floor((stop - start) / (domain.length - padding + 2 * outerPadding)); - range = steps(start + Math.round((stop - start - (domain.length - padding) * step) / 2), step); - if (reverse) range.reverse(); - rangeBand = Math.round(step * (1 - padding)); - ranger = { - t: "rangeRoundBands", - a: arguments - }; - return scale; - }; - scale.rangeBand = function() { - return rangeBand; - }; - scale.rangeExtent = function() { - return d3_scaleExtent(ranger.a[0]); - }; - scale.copy = function() { - return d3_scale_ordinal(domain, ranger); - }; - return scale.domain(domain); - } - d3.scale.category10 = function() { - return d3.scale.ordinal().range(d3_category10); + + arc.padRadius = function(_) { + return arguments.length ? (padRadius = _ == null ? null : typeof _ === "function" ? _ : constant(+_), arc) : padRadius; }; - d3.scale.category20 = function() { - return d3.scale.ordinal().range(d3_category20); + + arc.startAngle = function(_) { + return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant(+_), arc) : startAngle; }; - d3.scale.category20b = function() { - return d3.scale.ordinal().range(d3_category20b); + + arc.endAngle = function(_) { + return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant(+_), arc) : endAngle; }; - d3.scale.category20c = function() { - return d3.scale.ordinal().range(d3_category20c); + + arc.padAngle = function(_) { + return arguments.length ? (padAngle = typeof _ === "function" ? _ : constant(+_), arc) : padAngle; }; - var d3_category10 = [ 2062260, 16744206, 2924588, 14034728, 9725885, 9197131, 14907330, 8355711, 12369186, 1556175 ].map(d3_rgbString); - var d3_category20 = [ 2062260, 11454440, 16744206, 16759672, 2924588, 10018698, 14034728, 16750742, 9725885, 12955861, 9197131, 12885140, 14907330, 16234194, 8355711, 13092807, 12369186, 14408589, 1556175, 10410725 ].map(d3_rgbString); - var d3_category20b = [ 3750777, 5395619, 7040719, 10264286, 6519097, 9216594, 11915115, 13556636, 9202993, 12426809, 15186514, 15190932, 8666169, 11356490, 14049643, 15177372, 8077683, 10834324, 13528509, 14589654 ].map(d3_rgbString); - var d3_category20c = [ 3244733, 7057110, 10406625, 13032431, 15095053, 16616764, 16625259, 16634018, 3253076, 7652470, 10607003, 13101504, 7695281, 10394312, 12369372, 14342891, 6513507, 9868950, 12434877, 14277081 ].map(d3_rgbString); - d3.scale.quantile = function() { - return d3_scale_quantile([], []); + + arc.context = function(_) { + return arguments.length ? ((context = _ == null ? null : _), arc) : context; }; - function d3_scale_quantile(domain, range) { - var thresholds; - function rescale() { - var k = 0, q = range.length; - thresholds = []; - while (++k < q) thresholds[k - 1] = d3.quantile(domain, k / q); - return scale; - } - function scale(x) { - if (!isNaN(x = +x)) return range[d3.bisect(thresholds, x)]; + + return arc; +} + +function Linear(context) { + this._context = context; +} + +Linear.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._point = 0; + }, + lineEnd: function() { + if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; + case 1: this._point = 2; // proceed + default: this._context.lineTo(x, y); break; } - scale.domain = function(x) { - if (!arguments.length) return domain; - domain = x.map(d3_number).filter(d3_numeric).sort(d3_ascending); - return rescale(); - }; - scale.range = function(x) { - if (!arguments.length) return range; - range = x; - return rescale(); - }; - scale.quantiles = function() { - return thresholds; - }; - scale.invertExtent = function(y) { - y = range.indexOf(y); - return y < 0 ? [ NaN, NaN ] : [ y > 0 ? thresholds[y - 1] : domain[0], y < thresholds.length ? thresholds[y] : domain[domain.length - 1] ]; - }; - scale.copy = function() { - return d3_scale_quantile(domain, range); - }; - return rescale(); } - d3.scale.quantize = function() { - return d3_scale_quantize(0, 1, [ 0, 1 ]); - }; - function d3_scale_quantize(x0, x1, range) { - var kx, i; - function scale(x) { - return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))]; - } - function rescale() { - kx = range.length / (x1 - x0); - i = range.length - 1; - return scale; +}; + +function curveLinear(context) { + return new Linear(context); +} + +function x(p) { + return p[0]; +} + +function y(p) { + return p[1]; +} + +function line() { + var x$1 = x, + y$1 = y, + defined = constant(true), + context = null, + curve = curveLinear, + output = null; + + function line(data) { + var i, + n = data.length, + d, + defined0 = false, + buffer; + + if (context == null) output = curve(buffer = d3Path.path()); + + for (i = 0; i <= n; ++i) { + if (!(i < n && defined(d = data[i], i, data)) === defined0) { + if (defined0 = !defined0) output.lineStart(); + else output.lineEnd(); + } + if (defined0) output.point(+x$1(d, i, data), +y$1(d, i, data)); } - scale.domain = function(x) { - if (!arguments.length) return [ x0, x1 ]; - x0 = +x[0]; - x1 = +x[x.length - 1]; - return rescale(); - }; - scale.range = function(x) { - if (!arguments.length) return range; - range = x; - return rescale(); - }; - scale.invertExtent = function(y) { - y = range.indexOf(y); - y = y < 0 ? NaN : y / kx + x0; - return [ y, y + 1 / kx ]; - }; - scale.copy = function() { - return d3_scale_quantize(x0, x1, range); - }; - return rescale(); + + if (buffer) return output = null, buffer + "" || null; } - d3.scale.threshold = function() { - return d3_scale_threshold([ .5 ], [ 0, 1 ]); + + line.x = function(_) { + return arguments.length ? (x$1 = typeof _ === "function" ? _ : constant(+_), line) : x$1; }; - function d3_scale_threshold(domain, range) { - function scale(x) { - if (x <= x) return range[d3.bisect(domain, x)]; - } - scale.domain = function(_) { - if (!arguments.length) return domain; - domain = _; - return scale; - }; - scale.range = function(_) { - if (!arguments.length) return range; - range = _; - return scale; - }; - scale.invertExtent = function(y) { - y = range.indexOf(y); - return [ domain[y - 1], domain[y] ]; - }; - scale.copy = function() { - return d3_scale_threshold(domain, range); - }; - return scale; - } - d3.scale.identity = function() { - return d3_scale_identity([ 0, 1 ]); + + line.y = function(_) { + return arguments.length ? (y$1 = typeof _ === "function" ? _ : constant(+_), line) : y$1; }; - function d3_scale_identity(domain) { - function identity(x) { - return +x; - } - identity.invert = identity; - identity.domain = identity.range = function(x) { - if (!arguments.length) return domain; - domain = x.map(identity); - return identity; - }; - identity.ticks = function(m) { - return d3_scale_linearTicks(domain, m); - }; - identity.tickFormat = function(m, format) { - return d3_scale_linearTickFormat(domain, m, format); - }; - identity.copy = function() { - return d3_scale_identity(domain); - }; - return identity; - } - d3.svg = {}; - function d3_zero() { - return 0; - } - d3.svg.arc = function() { - var innerRadius = d3_svg_arcInnerRadius, outerRadius = d3_svg_arcOuterRadius, cornerRadius = d3_zero, padRadius = d3_svg_arcAuto, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle, padAngle = d3_svg_arcPadAngle; - function arc() { - var r0 = Math.max(0, +innerRadius.apply(this, arguments)), r1 = Math.max(0, +outerRadius.apply(this, arguments)), a0 = startAngle.apply(this, arguments) - halfπ, a1 = endAngle.apply(this, arguments) - halfπ, da = Math.abs(a1 - a0), cw = a0 > a1 ? 0 : 1; - if (r1 < r0) rc = r1, r1 = r0, r0 = rc; - if (da >= τε) return circleSegment(r1, cw) + (r0 ? circleSegment(r0, 1 - cw) : "") + "Z"; - var rc, cr, rp, ap, p0 = 0, p1 = 0, x0, y0, x1, y1, x2, y2, x3, y3, path = []; - if (ap = (+padAngle.apply(this, arguments) || 0) / 2) { - rp = padRadius === d3_svg_arcAuto ? Math.sqrt(r0 * r0 + r1 * r1) : +padRadius.apply(this, arguments); - if (!cw) p1 *= -1; - if (r1) p1 = d3_asin(rp / r1 * Math.sin(ap)); - if (r0) p0 = d3_asin(rp / r0 * Math.sin(ap)); - } - if (r1) { - x0 = r1 * Math.cos(a0 + p1); - y0 = r1 * Math.sin(a0 + p1); - x1 = r1 * Math.cos(a1 - p1); - y1 = r1 * Math.sin(a1 - p1); - var l1 = Math.abs(a1 - a0 - 2 * p1) <= π ? 0 : 1; - if (p1 && d3_svg_arcSweep(x0, y0, x1, y1) === cw ^ l1) { - var h1 = (a0 + a1) / 2; - x0 = r1 * Math.cos(h1); - y0 = r1 * Math.sin(h1); - x1 = y1 = null; - } - } else { - x0 = y0 = 0; - } - if (r0) { - x2 = r0 * Math.cos(a1 - p0); - y2 = r0 * Math.sin(a1 - p0); - x3 = r0 * Math.cos(a0 + p0); - y3 = r0 * Math.sin(a0 + p0); - var l0 = Math.abs(a0 - a1 + 2 * p0) <= π ? 0 : 1; - if (p0 && d3_svg_arcSweep(x2, y2, x3, y3) === 1 - cw ^ l0) { - var h0 = (a0 + a1) / 2; - x2 = r0 * Math.cos(h0); - y2 = r0 * Math.sin(h0); - x3 = y3 = null; - } - } else { - x2 = y2 = 0; - } - if (da > ε && (rc = Math.min(Math.abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments))) > .001) { - cr = r0 < r1 ^ cw ? 0 : 1; - var rc1 = rc, rc0 = rc; - if (da < π) { - var oc = x3 == null ? [ x2, y2 ] : x1 == null ? [ x0, y0 ] : d3_geom_polygonIntersect([ x0, y0 ], [ x3, y3 ], [ x1, y1 ], [ x2, y2 ]), ax = x0 - oc[0], ay = y0 - oc[1], bx = x1 - oc[0], by = y1 - oc[1], kc = 1 / Math.sin(Math.acos((ax * bx + ay * by) / (Math.sqrt(ax * ax + ay * ay) * Math.sqrt(bx * bx + by * by))) / 2), lc = Math.sqrt(oc[0] * oc[0] + oc[1] * oc[1]); - rc0 = Math.min(rc, (r0 - lc) / (kc - 1)); - rc1 = Math.min(rc, (r1 - lc) / (kc + 1)); - } - if (x1 != null) { - var t30 = d3_svg_arcCornerTangents(x3 == null ? [ x2, y2 ] : [ x3, y3 ], [ x0, y0 ], r1, rc1, cw), t12 = d3_svg_arcCornerTangents([ x1, y1 ], [ x2, y2 ], r1, rc1, cw); - if (rc === rc1) { - path.push("M", t30[0], "A", rc1, ",", rc1, " 0 0,", cr, " ", t30[1], "A", r1, ",", r1, " 0 ", 1 - cw ^ d3_svg_arcSweep(t30[1][0], t30[1][1], t12[1][0], t12[1][1]), ",", cw, " ", t12[1], "A", rc1, ",", rc1, " 0 0,", cr, " ", t12[0]); - } else { - path.push("M", t30[0], "A", rc1, ",", rc1, " 0 1,", cr, " ", t12[0]); - } + + line.defined = function(_) { + return arguments.length ? (defined = typeof _ === "function" ? _ : constant(!!_), line) : defined; + }; + + line.curve = function(_) { + return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve; + }; + + line.context = function(_) { + return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context; + }; + + return line; +} + +function area() { + var x0 = x, + x1 = null, + y0 = constant(0), + y1 = y, + defined = constant(true), + context = null, + curve = curveLinear, + output = null; + + function area(data) { + var i, + j, + k, + n = data.length, + d, + defined0 = false, + buffer, + x0z = new Array(n), + y0z = new Array(n); + + if (context == null) output = curve(buffer = d3Path.path()); + + for (i = 0; i <= n; ++i) { + if (!(i < n && defined(d = data[i], i, data)) === defined0) { + if (defined0 = !defined0) { + j = i; + output.areaStart(); + output.lineStart(); } else { - path.push("M", x0, ",", y0); - } - if (x3 != null) { - var t03 = d3_svg_arcCornerTangents([ x0, y0 ], [ x3, y3 ], r0, -rc0, cw), t21 = d3_svg_arcCornerTangents([ x2, y2 ], x1 == null ? [ x0, y0 ] : [ x1, y1 ], r0, -rc0, cw); - if (rc === rc0) { - path.push("L", t21[0], "A", rc0, ",", rc0, " 0 0,", cr, " ", t21[1], "A", r0, ",", r0, " 0 ", cw ^ d3_svg_arcSweep(t21[1][0], t21[1][1], t03[1][0], t03[1][1]), ",", 1 - cw, " ", t03[1], "A", rc0, ",", rc0, " 0 0,", cr, " ", t03[0]); - } else { - path.push("L", t21[0], "A", rc0, ",", rc0, " 0 0,", cr, " ", t03[0]); + output.lineEnd(); + output.lineStart(); + for (k = i - 1; k >= j; --k) { + output.point(x0z[k], y0z[k]); } - } else { - path.push("L", x2, ",", y2); + output.lineEnd(); + output.areaEnd(); } - } else { - path.push("M", x0, ",", y0); - if (x1 != null) path.push("A", r1, ",", r1, " 0 ", l1, ",", cw, " ", x1, ",", y1); - path.push("L", x2, ",", y2); - if (x3 != null) path.push("A", r0, ",", r0, " 0 ", l0, ",", 1 - cw, " ", x3, ",", y3); } - path.push("Z"); - return path.join(""); - } - function circleSegment(r1, cw) { - return "M0," + r1 + "A" + r1 + "," + r1 + " 0 1," + cw + " 0," + -r1 + "A" + r1 + "," + r1 + " 0 1," + cw + " 0," + r1; + if (defined0) { + x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data); + output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]); + } } - arc.innerRadius = function(v) { - if (!arguments.length) return innerRadius; - innerRadius = d3_functor(v); - return arc; - }; - arc.outerRadius = function(v) { - if (!arguments.length) return outerRadius; - outerRadius = d3_functor(v); - return arc; - }; - arc.cornerRadius = function(v) { - if (!arguments.length) return cornerRadius; - cornerRadius = d3_functor(v); - return arc; - }; - arc.padRadius = function(v) { - if (!arguments.length) return padRadius; - padRadius = v == d3_svg_arcAuto ? d3_svg_arcAuto : d3_functor(v); - return arc; - }; - arc.startAngle = function(v) { - if (!arguments.length) return startAngle; - startAngle = d3_functor(v); - return arc; - }; - arc.endAngle = function(v) { - if (!arguments.length) return endAngle; - endAngle = d3_functor(v); - return arc; - }; - arc.padAngle = function(v) { - if (!arguments.length) return padAngle; - padAngle = d3_functor(v); - return arc; - }; - arc.centroid = function() { - var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2, a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - halfπ; - return [ Math.cos(a) * r, Math.sin(a) * r ]; - }; - return arc; - }; - var d3_svg_arcAuto = "auto"; - function d3_svg_arcInnerRadius(d) { - return d.innerRadius; - } - function d3_svg_arcOuterRadius(d) { - return d.outerRadius; - } - function d3_svg_arcStartAngle(d) { - return d.startAngle; + + if (buffer) return output = null, buffer + "" || null; } - function d3_svg_arcEndAngle(d) { - return d.endAngle; + + function arealine() { + return line().defined(defined).curve(curve).context(context); } - function d3_svg_arcPadAngle(d) { - return d && d.padAngle; + + area.x = function(_) { + return arguments.length ? (x0 = typeof _ === "function" ? _ : constant(+_), x1 = null, area) : x0; + }; + + area.x0 = function(_) { + return arguments.length ? (x0 = typeof _ === "function" ? _ : constant(+_), area) : x0; + }; + + area.x1 = function(_) { + return arguments.length ? (x1 = _ == null ? null : typeof _ === "function" ? _ : constant(+_), area) : x1; + }; + + area.y = function(_) { + return arguments.length ? (y0 = typeof _ === "function" ? _ : constant(+_), y1 = null, area) : y0; + }; + + area.y0 = function(_) { + return arguments.length ? (y0 = typeof _ === "function" ? _ : constant(+_), area) : y0; + }; + + area.y1 = function(_) { + return arguments.length ? (y1 = _ == null ? null : typeof _ === "function" ? _ : constant(+_), area) : y1; + }; + + area.lineX0 = + area.lineY0 = function() { + return arealine().x(x0).y(y0); + }; + + area.lineY1 = function() { + return arealine().x(x0).y(y1); + }; + + area.lineX1 = function() { + return arealine().x(x1).y(y0); + }; + + area.defined = function(_) { + return arguments.length ? (defined = typeof _ === "function" ? _ : constant(!!_), area) : defined; + }; + + area.curve = function(_) { + return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve; + }; + + area.context = function(_) { + return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context; + }; + + return area; +} + +function descending(a, b) { + return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN; +} + +function identity(d) { + return d; +} + +function pie() { + var value = identity, + sortValues = descending, + sort = null, + startAngle = constant(0), + endAngle = constant(tau), + padAngle = constant(0); + + function pie(data) { + var i, + n = data.length, + j, + k, + sum = 0, + index = new Array(n), + arcs = new Array(n), + a0 = +startAngle.apply(this, arguments), + da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)), + a1, + p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)), + pa = p * (da < 0 ? -1 : 1), + v; + + for (i = 0; i < n; ++i) { + if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) { + sum += v; + } + } + + // Optionally sort the arcs by previously-computed values or by data. + if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); }); + else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); }); + + // Compute the arcs! They are stored in the original data's order. + for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) { + j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = { + data: data[j], + index: i, + value: v, + startAngle: a0, + endAngle: a1, + padAngle: p + }; + } + + return arcs; } - function d3_svg_arcSweep(x0, y0, x1, y1) { - return (x0 - x1) * y0 - (y0 - y1) * x0 > 0 ? 0 : 1; + + pie.value = function(_) { + return arguments.length ? (value = typeof _ === "function" ? _ : constant(+_), pie) : value; + }; + + pie.sortValues = function(_) { + return arguments.length ? (sortValues = _, sort = null, pie) : sortValues; + }; + + pie.sort = function(_) { + return arguments.length ? (sort = _, sortValues = null, pie) : sort; + }; + + pie.startAngle = function(_) { + return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant(+_), pie) : startAngle; + }; + + pie.endAngle = function(_) { + return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant(+_), pie) : endAngle; + }; + + pie.padAngle = function(_) { + return arguments.length ? (padAngle = typeof _ === "function" ? _ : constant(+_), pie) : padAngle; + }; + + return pie; +} + +var curveRadialLinear = curveRadial(curveLinear); + +function Radial(curve) { + this._curve = curve; +} + +Radial.prototype = { + areaStart: function() { + this._curve.areaStart(); + }, + areaEnd: function() { + this._curve.areaEnd(); + }, + lineStart: function() { + this._curve.lineStart(); + }, + lineEnd: function() { + this._curve.lineEnd(); + }, + point: function(a, r) { + this._curve.point(r * Math.sin(a), r * -Math.cos(a)); } - function d3_svg_arcCornerTangents(p0, p1, r1, rc, cw) { - var x01 = p0[0] - p1[0], y01 = p0[1] - p1[1], lo = (cw ? rc : -rc) / Math.sqrt(x01 * x01 + y01 * y01), ox = lo * y01, oy = -lo * x01, x1 = p0[0] + ox, y1 = p0[1] + oy, x2 = p1[0] + ox, y2 = p1[1] + oy, x3 = (x1 + x2) / 2, y3 = (y1 + y2) / 2, dx = x2 - x1, dy = y2 - y1, d2 = dx * dx + dy * dy, r = r1 - rc, D = x1 * y2 - x2 * y1, d = (dy < 0 ? -1 : 1) * Math.sqrt(Math.max(0, r * r * d2 - D * D)), cx0 = (D * dy - dx * d) / d2, cy0 = (-D * dx - dy * d) / d2, cx1 = (D * dy + dx * d) / d2, cy1 = (-D * dx + dy * d) / d2, dx0 = cx0 - x3, dy0 = cy0 - y3, dx1 = cx1 - x3, dy1 = cy1 - y3; - if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1; - return [ [ cx0 - ox, cy0 - oy ], [ cx0 * r1 / r, cy0 * r1 / r ] ]; +}; + +function curveRadial(curve) { + + function radial(context) { + return new Radial(curve(context)); } - function d3_svg_line(projection) { - var x = d3_geom_pointX, y = d3_geom_pointY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, tension = .7; - function line(data) { - var segments = [], points = [], i = -1, n = data.length, d, fx = d3_functor(x), fy = d3_functor(y); - function segment() { - segments.push("M", interpolate(projection(points), tension)); - } - while (++i < n) { - if (defined.call(this, d = data[i], i)) { - points.push([ +fx.call(this, d, i), +fy.call(this, d, i) ]); - } else if (points.length) { - segment(); - points = []; - } - } - if (points.length) segment(); - return segments.length ? segments.join("") : null; - } - line.x = function(_) { - if (!arguments.length) return x; - x = _; - return line; - }; - line.y = function(_) { - if (!arguments.length) return y; - y = _; - return line; - }; - line.defined = function(_) { - if (!arguments.length) return defined; - defined = _; - return line; - }; - line.interpolate = function(_) { - if (!arguments.length) return interpolateKey; - if (typeof _ === "function") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key; - return line; - }; - line.tension = function(_) { - if (!arguments.length) return tension; - tension = _; - return line; - }; - return line; + + radial._curve = curve; + + return radial; +} + +function lineRadial(l) { + var c = l.curve; + + l.angle = l.x, delete l.x; + l.radius = l.y, delete l.y; + + l.curve = function(_) { + return arguments.length ? c(curveRadial(_)) : c()._curve; + }; + + return l; +} + +function lineRadial$1() { + return lineRadial(line().curve(curveRadialLinear)); +} + +function areaRadial() { + var a = area().curve(curveRadialLinear), + c = a.curve, + x0 = a.lineX0, + x1 = a.lineX1, + y0 = a.lineY0, + y1 = a.lineY1; + + a.angle = a.x, delete a.x; + a.startAngle = a.x0, delete a.x0; + a.endAngle = a.x1, delete a.x1; + a.radius = a.y, delete a.y; + a.innerRadius = a.y0, delete a.y0; + a.outerRadius = a.y1, delete a.y1; + a.lineStartAngle = function() { return lineRadial(x0()); }, delete a.lineX0; + a.lineEndAngle = function() { return lineRadial(x1()); }, delete a.lineX1; + a.lineInnerRadius = function() { return lineRadial(y0()); }, delete a.lineY0; + a.lineOuterRadius = function() { return lineRadial(y1()); }, delete a.lineY1; + + a.curve = function(_) { + return arguments.length ? c(curveRadial(_)) : c()._curve; + }; + + return a; +} + +function pointRadial(x, y) { + return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)]; +} + +var slice = Array.prototype.slice; + +function linkSource(d) { + return d.source; +} + +function linkTarget(d) { + return d.target; +} + +function link(curve) { + var source = linkSource, + target = linkTarget, + x$1 = x, + y$1 = y, + context = null; + + function link() { + var buffer, argv = slice.call(arguments), s = source.apply(this, argv), t = target.apply(this, argv); + if (!context) context = buffer = d3Path.path(); + curve(context, +x$1.apply(this, (argv[0] = s, argv)), +y$1.apply(this, argv), +x$1.apply(this, (argv[0] = t, argv)), +y$1.apply(this, argv)); + if (buffer) return context = null, buffer + "" || null; } - d3.svg.line = function() { - return d3_svg_line(d3_identity); + + link.source = function(_) { + return arguments.length ? (source = _, link) : source; }; - var d3_svg_lineInterpolators = d3.map({ - linear: d3_svg_lineLinear, - "linear-closed": d3_svg_lineLinearClosed, - step: d3_svg_lineStep, - "step-before": d3_svg_lineStepBefore, - "step-after": d3_svg_lineStepAfter, - basis: d3_svg_lineBasis, - "basis-open": d3_svg_lineBasisOpen, - "basis-closed": d3_svg_lineBasisClosed, - bundle: d3_svg_lineBundle, - cardinal: d3_svg_lineCardinal, - "cardinal-open": d3_svg_lineCardinalOpen, - "cardinal-closed": d3_svg_lineCardinalClosed, - monotone: d3_svg_lineMonotone - }); - d3_svg_lineInterpolators.forEach(function(key, value) { - value.key = key; - value.closed = /-closed$/.test(key); - }); - function d3_svg_lineLinear(points) { - return points.length > 1 ? points.join("L") : points + "Z"; + + link.target = function(_) { + return arguments.length ? (target = _, link) : target; + }; + + link.x = function(_) { + return arguments.length ? (x$1 = typeof _ === "function" ? _ : constant(+_), link) : x$1; + }; + + link.y = function(_) { + return arguments.length ? (y$1 = typeof _ === "function" ? _ : constant(+_), link) : y$1; + }; + + link.context = function(_) { + return arguments.length ? ((context = _ == null ? null : _), link) : context; + }; + + return link; +} + +function curveHorizontal(context, x0, y0, x1, y1) { + context.moveTo(x0, y0); + context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1); +} + +function curveVertical(context, x0, y0, x1, y1) { + context.moveTo(x0, y0); + context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1); +} + +function curveRadial$1(context, x0, y0, x1, y1) { + var p0 = pointRadial(x0, y0), + p1 = pointRadial(x0, y0 = (y0 + y1) / 2), + p2 = pointRadial(x1, y0), + p3 = pointRadial(x1, y1); + context.moveTo(p0[0], p0[1]); + context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]); +} + +function linkHorizontal() { + return link(curveHorizontal); +} + +function linkVertical() { + return link(curveVertical); +} + +function linkRadial() { + var l = link(curveRadial$1); + l.angle = l.x, delete l.x; + l.radius = l.y, delete l.y; + return l; +} + +var circle = { + draw: function(context, size) { + var r = Math.sqrt(size / pi); + context.moveTo(r, 0); + context.arc(0, 0, r, 0, tau); } - function d3_svg_lineLinearClosed(points) { - return points.join("L") + "Z"; +}; + +var cross = { + draw: function(context, size) { + var r = Math.sqrt(size / 5) / 2; + context.moveTo(-3 * r, -r); + context.lineTo(-r, -r); + context.lineTo(-r, -3 * r); + context.lineTo(r, -3 * r); + context.lineTo(r, -r); + context.lineTo(3 * r, -r); + context.lineTo(3 * r, r); + context.lineTo(r, r); + context.lineTo(r, 3 * r); + context.lineTo(-r, 3 * r); + context.lineTo(-r, r); + context.lineTo(-3 * r, r); + context.closePath(); } - function d3_svg_lineStep(points) { - var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ]; - while (++i < n) path.push("H", (p[0] + (p = points[i])[0]) / 2, "V", p[1]); - if (n > 1) path.push("H", p[0]); - return path.join(""); +}; + +var tan30 = Math.sqrt(1 / 3), + tan30_2 = tan30 * 2; + +var diamond = { + draw: function(context, size) { + var y = Math.sqrt(size / tan30_2), + x = y * tan30; + context.moveTo(0, -y); + context.lineTo(x, 0); + context.lineTo(0, y); + context.lineTo(-x, 0); + context.closePath(); } - function d3_svg_lineStepBefore(points) { - var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ]; - while (++i < n) path.push("V", (p = points[i])[1], "H", p[0]); - return path.join(""); +}; + +var ka = 0.89081309152928522810, + kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10), + kx = Math.sin(tau / 10) * kr, + ky = -Math.cos(tau / 10) * kr; + +var star = { + draw: function(context, size) { + var r = Math.sqrt(size * ka), + x = kx * r, + y = ky * r; + context.moveTo(0, -r); + context.lineTo(x, y); + for (var i = 1; i < 5; ++i) { + var a = tau * i / 5, + c = Math.cos(a), + s = Math.sin(a); + context.lineTo(s * r, -c * r); + context.lineTo(c * x - s * y, s * x + c * y); + } + context.closePath(); } - function d3_svg_lineStepAfter(points) { - var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ]; - while (++i < n) path.push("H", (p = points[i])[0], "V", p[1]); - return path.join(""); +}; + +var square = { + draw: function(context, size) { + var w = Math.sqrt(size), + x = -w / 2; + context.rect(x, x, w, w); } - function d3_svg_lineCardinalOpen(points, tension) { - return points.length < 4 ? d3_svg_lineLinear(points) : points[1] + d3_svg_lineHermite(points.slice(1, -1), d3_svg_lineCardinalTangents(points, tension)); +}; + +var sqrt3 = Math.sqrt(3); + +var triangle = { + draw: function(context, size) { + var y = -Math.sqrt(size / (sqrt3 * 3)); + context.moveTo(0, y * 2); + context.lineTo(-sqrt3 * y, -y); + context.lineTo(sqrt3 * y, -y); + context.closePath(); } - function d3_svg_lineCardinalClosed(points, tension) { - return points.length < 3 ? d3_svg_lineLinearClosed(points) : points[0] + d3_svg_lineHermite((points.push(points[0]), - points), d3_svg_lineCardinalTangents([ points[points.length - 2] ].concat(points, [ points[1] ]), tension)); +}; + +var c = -0.5, + s = Math.sqrt(3) / 2, + k = 1 / Math.sqrt(12), + a = (k / 2 + 1) * 3; + +var wye = { + draw: function(context, size) { + var r = Math.sqrt(size / a), + x0 = r / 2, + y0 = r * k, + x1 = x0, + y1 = r * k + r, + x2 = -x1, + y2 = y1; + context.moveTo(x0, y0); + context.lineTo(x1, y1); + context.lineTo(x2, y2); + context.lineTo(c * x0 - s * y0, s * x0 + c * y0); + context.lineTo(c * x1 - s * y1, s * x1 + c * y1); + context.lineTo(c * x2 - s * y2, s * x2 + c * y2); + context.lineTo(c * x0 + s * y0, c * y0 - s * x0); + context.lineTo(c * x1 + s * y1, c * y1 - s * x1); + context.lineTo(c * x2 + s * y2, c * y2 - s * x2); + context.closePath(); } - function d3_svg_lineCardinal(points, tension) { - return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineCardinalTangents(points, tension)); +}; + +var symbols = [ + circle, + cross, + diamond, + square, + star, + triangle, + wye +]; + +function symbol() { + var type = constant(circle), + size = constant(64), + context = null; + + function symbol() { + var buffer; + if (!context) context = buffer = d3Path.path(); + type.apply(this, arguments).draw(context, +size.apply(this, arguments)); + if (buffer) return context = null, buffer + "" || null; } - function d3_svg_lineHermite(points, tangents) { - if (tangents.length < 1 || points.length != tangents.length && points.length != tangents.length + 2) { - return d3_svg_lineLinear(points); + + symbol.type = function(_) { + return arguments.length ? (type = typeof _ === "function" ? _ : constant(_), symbol) : type; + }; + + symbol.size = function(_) { + return arguments.length ? (size = typeof _ === "function" ? _ : constant(+_), symbol) : size; + }; + + symbol.context = function(_) { + return arguments.length ? (context = _ == null ? null : _, symbol) : context; + }; + + return symbol; +} + +function noop() {} + +function point(that, x, y) { + that._context.bezierCurveTo( + (2 * that._x0 + that._x1) / 3, + (2 * that._y0 + that._y1) / 3, + (that._x0 + 2 * that._x1) / 3, + (that._y0 + 2 * that._y1) / 3, + (that._x0 + 4 * that._x1 + x) / 6, + (that._y0 + 4 * that._y1 + y) / 6 + ); +} + +function Basis(context) { + this._context = context; +} + +Basis.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: point(this, this._x1, this._y1); // proceed + case 2: this._context.lineTo(this._x1, this._y1); break; } - var quad = points.length != tangents.length, path = "", p0 = points[0], p = points[1], t0 = tangents[0], t = t0, pi = 1; - if (quad) { - path += "Q" + (p[0] - t0[0] * 2 / 3) + "," + (p[1] - t0[1] * 2 / 3) + "," + p[0] + "," + p[1]; - p0 = points[1]; - pi = 2; + if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); 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); // proceed + default: point(this, x, y); break; } - if (tangents.length > 1) { - t = tangents[1]; - p = points[pi]; - pi++; - path += "C" + (p0[0] + t0[0]) + "," + (p0[1] + t0[1]) + "," + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1]; - for (var i = 2; i < tangents.length; i++, pi++) { - p = points[pi]; - t = tangents[i]; - path += "S" + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1]; + this._x0 = this._x1, this._x1 = x; + this._y0 = this._y1, this._y1 = y; + } +}; + +function basis(context) { + return new Basis(context); +} + +function BasisClosed(context) { + this._context = context; +} + +BasisClosed.prototype = { + areaStart: noop, + areaEnd: noop, + 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); + break; } } - if (quad) { - var lp = points[pi]; - path += "Q" + (p[0] + t[0] * 2 / 3) + "," + (p[1] + t[1] * 2 / 3) + "," + lp[0] + "," + lp[1]; + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: this._point = 1; this._x2 = x, this._y2 = y; break; + case 1: this._point = 2; this._x3 = x, this._y3 = y; break; + case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break; + default: point(this, x, y); break; } - return path; + this._x0 = this._x1, this._x1 = x; + this._y0 = this._y1, this._y1 = y; } - function d3_svg_lineCardinalTangents(points, tension) { - var tangents = [], a = (1 - tension) / 2, p0, p1 = points[0], p2 = points[1], i = 1, n = points.length; - while (++i < n) { - p0 = p1; - p1 = p2; - p2 = points[i]; - tangents.push([ a * (p2[0] - p0[0]), a * (p2[1] - p0[1]) ]); +}; + +function basisClosed(context) { + return new BasisClosed(context); +} + +function BasisOpen(context) { + this._context = context; +} + +BasisOpen.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() { + if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: this._point = 1; break; + case 1: this._point = 2; break; + case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break; + case 3: this._point = 4; // proceed + default: point(this, x, y); break; } - return tangents; + this._x0 = this._x1, this._x1 = x; + this._y0 = this._y1, this._y1 = y; } - function d3_svg_lineBasis(points) { - if (points.length < 3) return d3_svg_lineLinear(points); - var i = 1, n = points.length, pi = points[0], x0 = pi[0], y0 = pi[1], px = [ x0, x0, x0, (pi = points[1])[0] ], py = [ y0, y0, y0, pi[1] ], path = [ x0, ",", y0, "L", d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ]; - points.push(points[n - 1]); - while (++i <= n) { - pi = points[i]; - px.shift(); - px.push(pi[0]); - py.shift(); - py.push(pi[1]); - d3_svg_lineBasisBezier(path, px, py); +}; + +function basisOpen(context) { + return new BasisOpen(context); +} + +function Bundle(context, beta) { + this._basis = new Basis(context); + this._beta = beta; +} + +Bundle.prototype = { + lineStart: function() { + this._x = []; + this._y = []; + this._basis.lineStart(); + }, + lineEnd: function() { + var x = this._x, + y = this._y, + j = x.length - 1; + + if (j > 0) { + var x0 = x[0], + y0 = y[0], + dx = x[j] - x0, + dy = y[j] - y0, + i = -1, + t; + + while (++i <= j) { + t = i / j; + this._basis.point( + this._beta * x[i] + (1 - this._beta) * (x0 + t * dx), + this._beta * y[i] + (1 - this._beta) * (y0 + t * dy) + ); + } } - points.pop(); - path.push("L", pi); - return path.join(""); + + this._x = this._y = null; + this._basis.lineEnd(); + }, + point: function(x, y) { + this._x.push(+x); + this._y.push(+y); } - function d3_svg_lineBasisOpen(points) { - if (points.length < 4) return d3_svg_lineLinear(points); - var path = [], i = -1, n = points.length, pi, px = [ 0 ], py = [ 0 ]; - while (++i < 3) { - pi = points[i]; - px.push(pi[0]); - py.push(pi[1]); +}; + +var bundle = (function custom(beta) { + + function bundle(context) { + return beta === 1 ? new Basis(context) : new Bundle(context, beta); + } + + bundle.beta = function(beta) { + return custom(+beta); + }; + + return bundle; +})(0.85); + +function point$1(that, x, y) { + that._context.bezierCurveTo( + that._x1 + that._k * (that._x2 - that._x0), + that._y1 + that._k * (that._y2 - that._y0), + that._x2 + that._k * (that._x1 - x), + that._y2 + that._k * (that._y1 - y), + that._x2, + that._y2 + ); +} + +function Cardinal(context, tension) { + this._context = context; + this._k = (1 - tension) / 6; +} + +Cardinal.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: point$1(this, this._x1, this._y1); break; } - path.push(d3_svg_lineDot4(d3_svg_lineBasisBezier3, px) + "," + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py)); - --i; - while (++i < n) { - pi = points[i]; - px.shift(); - px.push(pi[0]); - py.shift(); - py.push(pi[1]); - d3_svg_lineBasisBezier(path, px, py); + if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; + case 1: this._point = 2; this._x1 = x, this._y1 = y; break; + case 2: this._point = 3; // proceed + default: point$1(this, x, y); break; } - return path.join(""); + this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; + this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; } - function d3_svg_lineBasisClosed(points) { - var path, i = -1, n = points.length, m = n + 4, pi, px = [], py = []; - while (++i < 4) { - pi = points[i % n]; - px.push(pi[0]); - py.push(pi[1]); +}; + +var cardinal = (function custom(tension) { + + function cardinal(context) { + return new Cardinal(context, tension); + } + + cardinal.tension = function(tension) { + return custom(+tension); + }; + + return cardinal; +})(0); + +function CardinalClosed(context, tension) { + this._context = context; + this._k = (1 - tension) / 6; +} + +CardinalClosed.prototype = { + areaStart: noop, + areaEnd: noop, + 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); + break; + } } - path = [ d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ]; - --i; - while (++i < m) { - pi = points[i % n]; - px.shift(); - px.push(pi[0]); - py.shift(); - py.push(pi[1]); - d3_svg_lineBasisBezier(path, px, py); + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: this._point = 1; this._x3 = x, this._y3 = y; break; + case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break; + case 2: this._point = 3; this._x5 = x, this._y5 = y; break; + default: point$1(this, x, y); break; } - return path.join(""); + this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; + this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; } - function d3_svg_lineBundle(points, tension) { - var n = points.length - 1; - if (n) { - var x0 = points[0][0], y0 = points[0][1], dx = points[n][0] - x0, dy = points[n][1] - y0, i = -1, p, t; - while (++i <= n) { - p = points[i]; - t = i / n; - p[0] = tension * p[0] + (1 - tension) * (x0 + t * dx); - p[1] = tension * p[1] + (1 - tension) * (y0 + t * dy); - } +}; + +var cardinalClosed = (function custom(tension) { + + function cardinal(context) { + return new CardinalClosed(context, tension); + } + + cardinal.tension = function(tension) { + return custom(+tension); + }; + + return cardinal; +})(0); + +function CardinalOpen(context, tension) { + this._context = context; + this._k = (1 - tension) / 6; +} + +CardinalOpen.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() { + if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + 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; // proceed + default: point$1(this, x, y); break; } - return d3_svg_lineBasis(points); + this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; + this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; } - function d3_svg_lineDot4(a, b) { - return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3]; +}; + +var cardinalOpen = (function custom(tension) { + + function cardinal(context) { + return new CardinalOpen(context, tension); } - var d3_svg_lineBasisBezier1 = [ 0, 2 / 3, 1 / 3, 0 ], d3_svg_lineBasisBezier2 = [ 0, 1 / 3, 2 / 3, 0 ], d3_svg_lineBasisBezier3 = [ 0, 1 / 6, 2 / 3, 1 / 6 ]; - function d3_svg_lineBasisBezier(path, x, y) { - path.push("C", d3_svg_lineDot4(d3_svg_lineBasisBezier1, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier1, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, y)); + + cardinal.tension = function(tension) { + return custom(+tension); + }; + + return cardinal; +})(0); + +function point$2(that, x, y) { + var x1 = that._x1, + y1 = that._y1, + x2 = that._x2, + y2 = that._y2; + + if (that._l01_a > epsilon) { + var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a, + n = 3 * that._l01_a * (that._l01_a + that._l12_a); + x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n; + y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n; } - function d3_svg_lineSlope(p0, p1) { - return (p1[1] - p0[1]) / (p1[0] - p0[0]); + + if (that._l23_a > epsilon) { + var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a, + m = 3 * that._l23_a * (that._l23_a + that._l12_a); + x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m; + y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m; } - function d3_svg_lineFiniteDifferences(points) { - var i = 0, j = points.length - 1, m = [], p0 = points[0], p1 = points[1], d = m[0] = d3_svg_lineSlope(p0, p1); - while (++i < j) { - m[i] = (d + (d = d3_svg_lineSlope(p0 = p1, p1 = points[i + 1]))) / 2; + + that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2); +} + +function CatmullRom(context, alpha) { + this._context = context; + this._alpha = alpha; +} + +CatmullRom.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); break; } - m[i] = d; - return m; - } - function d3_svg_lineMonotoneTangents(points) { - var tangents = [], d, a, b, s, m = d3_svg_lineFiniteDifferences(points), i = -1, j = points.length - 1; - while (++i < j) { - d = d3_svg_lineSlope(points[i], points[i + 1]); - if (abs(d) < ε) { - m[i] = m[i + 1] = 0; - } else { - a = m[i] / d; - b = m[i + 1] / d; - s = a * a + b * b; - if (s > 9) { - s = d * 3 / Math.sqrt(s); - m[i] = s * a; - m[i + 1] = s * b; - } - } + if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + + if (this._point) { + var x23 = this._x2 - x, + y23 = this._y2 - y; + this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha)); } - i = -1; - while (++i <= j) { - s = (points[Math.min(j, i + 1)][0] - points[Math.max(0, i - 1)][0]) / (6 * (1 + m[i] * m[i])); - tangents.push([ s || 0, m[i] * s || 0 ]); + + switch (this._point) { + case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; + case 1: this._point = 2; break; + case 2: this._point = 3; // proceed + default: point$2(this, x, y); break; } - return tangents; + + 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 = x; + this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; } - function d3_svg_lineMonotone(points) { - return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineMonotoneTangents(points)); +}; + +var catmullRom = (function custom(alpha) { + + function catmullRom(context) { + return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0); } - d3.svg.line.radial = function() { - var line = d3_svg_line(d3_svg_lineRadial); - line.radius = line.x, delete line.x; - line.angle = line.y, delete line.y; - return line; + + catmullRom.alpha = function(alpha) { + return custom(+alpha); }; - function d3_svg_lineRadial(points) { - var point, i = -1, n = points.length, r, a; - while (++i < n) { - point = points[i]; - r = point[0]; - a = point[1] - halfπ; - point[0] = r * Math.cos(a); - point[1] = r * Math.sin(a); - } - return points; - } - function d3_svg_area(projection) { - var x0 = d3_geom_pointX, x1 = d3_geom_pointX, y0 = 0, y1 = d3_geom_pointY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, interpolateReverse = interpolate, L = "L", tension = .7; - function area(data) { - var segments = [], points0 = [], points1 = [], i = -1, n = data.length, d, fx0 = d3_functor(x0), fy0 = d3_functor(y0), fx1 = x0 === x1 ? function() { - return x; - } : d3_functor(x1), fy1 = y0 === y1 ? function() { - return y; - } : d3_functor(y1), x, y; - function segment() { - segments.push("M", interpolate(projection(points1), tension), L, interpolateReverse(projection(points0.reverse()), tension), "Z"); + + return catmullRom; +})(0.5); + +function CatmullRomClosed(context, alpha) { + this._context = context; + this._alpha = alpha; +} + +CatmullRomClosed.prototype = { + areaStart: noop, + areaEnd: noop, + 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; } - while (++i < n) { - if (defined.call(this, d = data[i], i)) { - points0.push([ x = +fx0.call(this, d, i), y = +fy0.call(this, d, i) ]); - points1.push([ +fx1.call(this, d, i), +fy1.call(this, d, i) ]); - } else if (points0.length) { - segment(); - points0 = []; - points1 = []; - } + 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); + break; } - if (points0.length) segment(); - return segments.length ? segments.join("") : null; - } - area.x = function(_) { - if (!arguments.length) return x1; - x0 = x1 = _; - return area; - }; - area.x0 = function(_) { - if (!arguments.length) return x0; - x0 = _; - return area; - }; - area.x1 = function(_) { - if (!arguments.length) return x1; - x1 = _; - return area; - }; - area.y = function(_) { - if (!arguments.length) return y1; - y0 = y1 = _; - return area; - }; - area.y0 = function(_) { - if (!arguments.length) return y0; - y0 = _; - return area; - }; - area.y1 = function(_) { - if (!arguments.length) return y1; - y1 = _; - return area; - }; - area.defined = function(_) { - if (!arguments.length) return defined; - defined = _; - return area; - }; - area.interpolate = function(_) { - if (!arguments.length) return interpolateKey; - if (typeof _ === "function") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key; - interpolateReverse = interpolate.reverse || interpolate; - L = interpolate.closed ? "M" : "L"; - return area; - }; - area.tension = function(_) { - if (!arguments.length) return tension; - tension = _; - return area; - }; - return area; - } - d3_svg_lineStepBefore.reverse = d3_svg_lineStepAfter; - d3_svg_lineStepAfter.reverse = d3_svg_lineStepBefore; - d3.svg.area = function() { - return d3_svg_area(d3_identity); - }; - d3.svg.area.radial = function() { - var area = d3_svg_area(d3_svg_lineRadial); - area.radius = area.x, delete area.x; - area.innerRadius = area.x0, delete area.x0; - area.outerRadius = area.x1, delete area.x1; - area.angle = area.y, delete area.y; - area.startAngle = area.y0, delete area.y0; - area.endAngle = area.y1, delete area.y1; - return area; - }; - d3.svg.chord = function() { - var source = d3_source, target = d3_target, radius = d3_svg_chordRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle; - function chord(d, i) { - var s = subgroup(this, source, d, i), t = subgroup(this, target, d, i); - return "M" + s.p0 + arc(s.r, s.p1, s.a1 - s.a0) + (equals(s, t) ? curve(s.r, s.p1, s.r, s.p0) : curve(s.r, s.p1, t.r, t.p0) + arc(t.r, t.p1, t.a1 - t.a0) + curve(t.r, t.p1, s.r, s.p0)) + "Z"; - } - function subgroup(self, f, d, i) { - var subgroup = f.call(self, d, i), r = radius.call(self, subgroup, i), a0 = startAngle.call(self, subgroup, i) - halfπ, a1 = endAngle.call(self, subgroup, i) - halfπ; - return { - r: r, - a0: a0, - a1: a1, - p0: [ r * Math.cos(a0), r * Math.sin(a0) ], - p1: [ r * Math.cos(a1), r * Math.sin(a1) ] - }; - } - function equals(a, b) { - return a.a0 == b.a0 && a.a1 == b.a1; } - function arc(r, p, a) { - return "A" + r + "," + r + " 0 " + +(a > π) + ",1 " + p; + }, + point: function(x, y) { + x = +x, y = +y; + + if (this._point) { + var x23 = this._x2 - x, + y23 = this._y2 - y; + this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha)); } - function curve(r0, p0, r1, p1) { - return "Q 0,0 " + p1; + + switch (this._point) { + case 0: this._point = 1; this._x3 = x, this._y3 = y; break; + case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break; + case 2: this._point = 3; this._x5 = x, this._y5 = y; break; + default: point$2(this, x, y); break; } - chord.radius = function(v) { - if (!arguments.length) return radius; - radius = d3_functor(v); - return chord; - }; - chord.source = function(v) { - if (!arguments.length) return source; - source = d3_functor(v); - return chord; - }; - chord.target = function(v) { - if (!arguments.length) return target; - target = d3_functor(v); - return chord; - }; - chord.startAngle = function(v) { - if (!arguments.length) return startAngle; - startAngle = d3_functor(v); - return chord; - }; - chord.endAngle = function(v) { - if (!arguments.length) return endAngle; - endAngle = d3_functor(v); - return chord; - }; - return chord; - }; - function d3_svg_chordRadius(d) { - return d.radius; + + 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 = x; + this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; } - d3.svg.diagonal = function() { - var source = d3_source, target = d3_target, projection = d3_svg_diagonalProjection; - function diagonal(d, i) { - var p0 = source.call(this, d, i), p3 = target.call(this, d, i), m = (p0.y + p3.y) / 2, p = [ p0, { - x: p0.x, - y: m - }, { - x: p3.x, - y: m - }, p3 ]; - p = p.map(projection); - return "M" + p[0] + "C" + p[1] + " " + p[2] + " " + p[3]; - } - diagonal.source = function(x) { - if (!arguments.length) return source; - source = d3_functor(x); - return diagonal; - }; - diagonal.target = function(x) { - if (!arguments.length) return target; - target = d3_functor(x); - return diagonal; - }; - diagonal.projection = function(x) { - if (!arguments.length) return projection; - projection = x; - return diagonal; - }; - return diagonal; - }; - function d3_svg_diagonalProjection(d) { - return [ d.x, d.y ]; +}; + +var catmullRomClosed = (function custom(alpha) { + + function catmullRom(context) { + return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0); } - d3.svg.diagonal.radial = function() { - var diagonal = d3.svg.diagonal(), projection = d3_svg_diagonalProjection, projection_ = diagonal.projection; - diagonal.projection = function(x) { - return arguments.length ? projection_(d3_svg_diagonalRadialProjection(projection = x)) : projection; - }; - return diagonal; + + catmullRom.alpha = function(alpha) { + return custom(+alpha); }; - function d3_svg_diagonalRadialProjection(projection) { - return function() { - var d = projection.apply(this, arguments), r = d[0], a = d[1] - halfπ; - return [ r * Math.cos(a), r * Math.sin(a) ]; - }; - } - d3.svg.symbol = function() { - var type = d3_svg_symbolType, size = d3_svg_symbolSize; - function symbol(d, i) { - return (d3_svg_symbols.get(type.call(this, d, i)) || d3_svg_symbolCircle)(size.call(this, d, i)); + + return catmullRom; +})(0.5); + +function CatmullRomOpen(context, alpha) { + this._context = context; + this._alpha = alpha; +} + +CatmullRomOpen.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() { + if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + + if (this._point) { + var x23 = this._x2 - x, + y23 = this._y2 - y; + this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha)); } - symbol.type = function(x) { - if (!arguments.length) return type; - type = d3_functor(x); - return symbol; - }; - symbol.size = function(x) { - if (!arguments.length) return size; - size = d3_functor(x); - return symbol; - }; - return symbol; - }; - function d3_svg_symbolSize() { - return 64; + + 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; // proceed + default: point$2(this, x, y); break; + } + + 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 = x; + this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; } - function d3_svg_symbolType() { - return "circle"; +}; + +var catmullRomOpen = (function custom(alpha) { + + function catmullRom(context) { + return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0); } - function d3_svg_symbolCircle(size) { - var r = Math.sqrt(size / π); - return "M0," + r + "A" + r + "," + r + " 0 1,1 0," + -r + "A" + r + "," + r + " 0 1,1 0," + r + "Z"; + + catmullRom.alpha = function(alpha) { + return custom(+alpha); + }; + + return catmullRom; +})(0.5); + +function LinearClosed(context) { + this._context = context; +} + +LinearClosed.prototype = { + areaStart: noop, + areaEnd: noop, + lineStart: function() { + this._point = 0; + }, + lineEnd: function() { + if (this._point) this._context.closePath(); + }, + point: function(x, y) { + x = +x, y = +y; + if (this._point) this._context.lineTo(x, y); + else this._point = 1, this._context.moveTo(x, y); } - var d3_svg_symbols = d3.map({ - circle: d3_svg_symbolCircle, - cross: function(size) { - var r = Math.sqrt(size / 5) / 2; - return "M" + -3 * r + "," + -r + "H" + -r + "V" + -3 * r + "H" + r + "V" + -r + "H" + 3 * r + "V" + r + "H" + r + "V" + 3 * r + "H" + -r + "V" + r + "H" + -3 * r + "Z"; - }, - diamond: function(size) { - var ry = Math.sqrt(size / (2 * d3_svg_symbolTan30)), rx = ry * d3_svg_symbolTan30; - return "M0," + -ry + "L" + rx + ",0" + " 0," + ry + " " + -rx + ",0" + "Z"; - }, - square: function(size) { - var r = Math.sqrt(size) / 2; - return "M" + -r + "," + -r + "L" + r + "," + -r + " " + r + "," + r + " " + -r + "," + r + "Z"; - }, - "triangle-down": function(size) { - var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2; - return "M0," + ry + "L" + rx + "," + -ry + " " + -rx + "," + -ry + "Z"; - }, - "triangle-up": function(size) { - var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2; - return "M0," + -ry + "L" + rx + "," + ry + " " + -rx + "," + ry + "Z"; +}; + +function linearClosed(context) { + return new LinearClosed(context); +} + +function sign(x) { + return x < 0 ? -1 : 1; +} + +// Calculate the slopes of the tangents (Hermite-type interpolation) based on +// the following paper: Steffen, M. 1990. A Simple Method for Monotonic +// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO. +// NOV(II), P. 443, 1990. +function slope3(that, x2, y2) { + var h0 = that._x1 - that._x0, + h1 = x2 - that._x1, + s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0), + s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0), + p = (s0 * h1 + s1 * h0) / (h0 + h1); + return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0; +} + +// Calculate a one-sided slope. +function slope2(that, t) { + var h = that._x1 - that._x0; + return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t; +} + +// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations +// "you can express cubic Hermite interpolation in terms of cubic Bézier curves +// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1". +function point$3(that, t0, t1) { + var x0 = that._x0, + y0 = that._y0, + x1 = that._x1, + y1 = that._y1, + dx = (x1 - x0) / 3; + that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1); +} + +function MonotoneX(context) { + this._context = context; +} + +MonotoneX.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = + this._y0 = this._y1 = + this._t0 = NaN; + this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 2: this._context.lineTo(this._x1, this._y1); break; + case 3: point$3(this, this._t0, slope2(this, this._t0)); break; } - }); - d3.svg.symbolTypes = d3_svg_symbols.keys(); - var d3_svg_symbolSqrt3 = Math.sqrt(3), d3_svg_symbolTan30 = Math.tan(30 * d3_radians); - d3_selectionPrototype.transition = function(name) { - var id = d3_transitionInheritId || ++d3_transitionId, ns = d3_transitionNamespace(name), subgroups = [], subgroup, node, transition = d3_transitionInherit || { - time: Date.now(), - ease: d3_ease_cubicInOut, - delay: 0, - duration: 250 - }; - for (var j = -1, m = this.length; ++j < m; ) { - subgroups.push(subgroup = []); - for (var group = this[j], i = -1, n = group.length; ++i < n; ) { - if (node = group[i]) d3_transitionNode(node, i, ns, id, transition); - subgroup.push(node); - } + if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + var t1 = NaN; + + x = +x, y = +y; + if (x === this._x1 && y === this._y1) return; // Ignore coincident points. + switch (this._point) { + case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; + case 1: this._point = 2; break; + case 2: this._point = 3; point$3(this, slope2(this, t1 = slope3(this, x, y)), t1); break; + default: point$3(this, this._t0, t1 = slope3(this, x, y)); break; } - return d3_transition(subgroups, ns, id); - }; - d3_selectionPrototype.interrupt = function(name) { - return this.each(name == null ? d3_selection_interrupt : d3_selection_interruptNS(d3_transitionNamespace(name))); - }; - var d3_selection_interrupt = d3_selection_interruptNS(d3_transitionNamespace()); - function d3_selection_interruptNS(ns) { - return function() { - var lock, activeId, active; - if ((lock = this[ns]) && (active = lock[activeId = lock.active])) { - active.timer.c = null; - active.timer.t = NaN; - if (--lock.count) delete lock[activeId]; else delete this[ns]; - lock.active += .5; - active.event && active.event.interrupt.call(this, this.__data__, active.index); - } - }; - } - function d3_transition(groups, ns, id) { - d3_subclass(groups, d3_transitionPrototype); - groups.namespace = ns; - groups.id = id; - return groups; + + this._x0 = this._x1, this._x1 = x; + this._y0 = this._y1, this._y1 = y; + this._t0 = t1; } - var d3_transitionPrototype = [], d3_transitionId = 0, d3_transitionInheritId, d3_transitionInherit; - d3_transitionPrototype.call = d3_selectionPrototype.call; - d3_transitionPrototype.empty = d3_selectionPrototype.empty; - d3_transitionPrototype.node = d3_selectionPrototype.node; - d3_transitionPrototype.size = d3_selectionPrototype.size; - d3.transition = function(selection, name) { - return selection && selection.transition ? d3_transitionInheritId ? selection.transition(name) : selection : d3.selection().transition(selection); - }; - d3.transition.prototype = d3_transitionPrototype; - d3_transitionPrototype.select = function(selector) { - var id = this.id, ns = this.namespace, subgroups = [], subgroup, subnode, node; - selector = d3_selection_selector(selector); - for (var j = -1, m = this.length; ++j < m; ) { - subgroups.push(subgroup = []); - for (var group = this[j], i = -1, n = group.length; ++i < n; ) { - if ((node = group[i]) && (subnode = selector.call(node, node.__data__, i, j))) { - if ("__data__" in node) subnode.__data__ = node.__data__; - d3_transitionNode(subnode, i, ns, id, node[ns][id]); - subgroup.push(subnode); - } else { - subgroup.push(null); - } - } - } - return d3_transition(subgroups, ns, id); - }; - d3_transitionPrototype.selectAll = function(selector) { - var id = this.id, ns = this.namespace, subgroups = [], subgroup, subnodes, node, subnode, transition; - selector = d3_selection_selectorAll(selector); - for (var j = -1, m = this.length; ++j < m; ) { - for (var group = this[j], i = -1, n = group.length; ++i < n; ) { - if (node = group[i]) { - transition = node[ns][id]; - subnodes = selector.call(node, node.__data__, i, j); - subgroups.push(subgroup = []); - for (var k = -1, o = subnodes.length; ++k < o; ) { - if (subnode = subnodes[k]) d3_transitionNode(subnode, k, ns, id, transition); - subgroup.push(subnode); - } +}; + +function MonotoneY(context) { + this._context = new ReflectContext(context); +} + +(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) { + MonotoneX.prototype.point.call(this, y, x); +}; + +function ReflectContext(context) { + this._context = context; +} + +ReflectContext.prototype = { + moveTo: function(x, y) { this._context.moveTo(y, x); }, + closePath: function() { this._context.closePath(); }, + lineTo: function(x, y) { this._context.lineTo(y, x); }, + bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); } +}; + +function monotoneX(context) { + return new MonotoneX(context); +} + +function monotoneY(context) { + return new MonotoneY(context); +} + +function Natural(context) { + this._context = context; +} + +Natural.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x = []; + this._y = []; + }, + lineEnd: function() { + var x = this._x, + y = this._y, + n = x.length; + + if (n) { + this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]); + if (n === 2) { + this._context.lineTo(x[1], y[1]); + } else { + var px = controlPoints(x), + py = controlPoints(y); + for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) { + this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]); } } } - return d3_transition(subgroups, ns, id); - }; - d3_transitionPrototype.filter = function(filter) { - var subgroups = [], subgroup, group, node; - if (typeof filter !== "function") filter = d3_selection_filter(filter); - for (var j = 0, m = this.length; j < m; j++) { - subgroups.push(subgroup = []); - for (var group = this[j], i = 0, n = group.length; i < n; i++) { - if ((node = group[i]) && filter.call(node, node.__data__, i, j)) { - subgroup.push(node); + + if (this._line || (this._line !== 0 && n === 1)) this._context.closePath(); + this._line = 1 - this._line; + this._x = this._y = null; + }, + point: function(x, y) { + this._x.push(+x); + this._y.push(+y); + } +}; + +// See https://www.particleincell.com/2012/bezier-splines/ for derivation. +function controlPoints(x) { + var i, + n = x.length - 1, + m, + a = new Array(n), + b = new Array(n), + r = new Array(n); + a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1]; + for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1]; + a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n]; + for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1]; + a[n - 1] = r[n - 1] / b[n - 1]; + for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i]; + b[n - 1] = (x[n] + a[n - 1]) / 2; + for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1]; + return [a, b]; +} + +function natural(context) { + return new Natural(context); +} + +function Step(context, t) { + this._context = context; + this._t = t; +} + +Step.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x = this._y = NaN; + this._point = 0; + }, + lineEnd: function() { + if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y); + if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); + if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; + case 1: this._point = 2; // proceed + default: { + if (this._t <= 0) { + this._context.lineTo(this._x, y); + this._context.lineTo(x, y); + } else { + var x1 = this._x * (1 - this._t) + x * this._t; + this._context.lineTo(x1, this._y); + this._context.lineTo(x1, y); } + break; } } - return d3_transition(subgroups, this.namespace, this.id); - }; - d3_transitionPrototype.tween = function(name, tween) { - var id = this.id, ns = this.namespace; - if (arguments.length < 2) return this.node()[ns][id].tween.get(name); - return d3_selection_each(this, tween == null ? function(node) { - node[ns][id].tween.remove(name); - } : function(node) { - node[ns][id].tween.set(name, tween); - }); - }; - function d3_transition_tween(groups, name, value, tween) { - var id = groups.id, ns = groups.namespace; - return d3_selection_each(groups, typeof value === "function" ? function(node, i, j) { - node[ns][id].tween.set(name, tween(value.call(node, node.__data__, i, j))); - } : (value = tween(value), function(node) { - node[ns][id].tween.set(name, value); - })); + this._x = x, this._y = y; } - d3_transitionPrototype.attr = function(nameNS, value) { - if (arguments.length < 2) { - for (value in nameNS) this.attr(value, nameNS[value]); - return this; - } - var interpolate = nameNS == "transform" ? d3_interpolateTransform : d3_interpolate, name = d3.ns.qualify(nameNS); - function attrNull() { - this.removeAttribute(name); - } - function attrNullNS() { - this.removeAttributeNS(name.space, name.local); +}; + +function step(context) { + return new Step(context, 0.5); +} + +function stepBefore(context) { + return new Step(context, 0); +} + +function stepAfter(context) { + return new Step(context, 1); +} + +function none(series, order) { + if (!((n = series.length) > 1)) return; + for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) { + s0 = s1, s1 = series[order[i]]; + for (j = 0; j < m; ++j) { + s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1]; } - function attrTween(b) { - return b == null ? attrNull : (b += "", function() { - var a = this.getAttribute(name), i; - return a !== b && (i = interpolate(a, b), function(t) { - this.setAttribute(name, i(t)); - }); - }); + } +} + +function none$1(series) { + var n = series.length, o = new Array(n); + while (--n >= 0) o[n] = n; + return o; +} + +function stackValue(d, key) { + return d[key]; +} + +function stack() { + var keys = constant([]), + order = none$1, + offset = none, + value = stackValue; + + function stack(data) { + var kz = keys.apply(this, arguments), + i, + m = data.length, + n = kz.length, + sz = new Array(n), + oz; + + for (i = 0; i < n; ++i) { + for (var ki = kz[i], si = sz[i] = new Array(m), j = 0, sij; j < m; ++j) { + si[j] = sij = [0, +value(data[j], ki, j, data)]; + sij.data = data[j]; + } + si.key = ki; } - function attrTweenNS(b) { - return b == null ? attrNullNS : (b += "", function() { - var a = this.getAttributeNS(name.space, name.local), i; - return a !== b && (i = interpolate(a, b), function(t) { - this.setAttributeNS(name.space, name.local, i(t)); - }); - }); + + for (i = 0, oz = order(sz); i < n; ++i) { + sz[oz[i]].index = i; } - return d3_transition_tween(this, "attr." + nameNS, value, name.local ? attrTweenNS : attrTween); + + offset(sz, oz); + return sz; + } + + stack.keys = function(_) { + return arguments.length ? (keys = typeof _ === "function" ? _ : constant(slice.call(_)), stack) : keys; }; - d3_transitionPrototype.attrTween = function(nameNS, tween) { - var name = d3.ns.qualify(nameNS); - function attrTween(d, i) { - var f = tween.call(this, d, i, this.getAttribute(name)); - return f && function(t) { - this.setAttribute(name, f(t)); - }; - } - function attrTweenNS(d, i) { - var f = tween.call(this, d, i, this.getAttributeNS(name.space, name.local)); - return f && function(t) { - this.setAttributeNS(name.space, name.local, f(t)); - }; - } - return this.tween("attr." + nameNS, name.local ? attrTweenNS : attrTween); + + stack.value = function(_) { + return arguments.length ? (value = typeof _ === "function" ? _ : constant(+_), stack) : value; }; - d3_transitionPrototype.style = function(name, value, priority) { - var n = arguments.length; - if (n < 3) { - if (typeof name !== "string") { - if (n < 2) value = ""; - for (priority in name) this.style(priority, name[priority], value); - return this; + + stack.order = function(_) { + return arguments.length ? (order = _ == null ? none$1 : typeof _ === "function" ? _ : constant(slice.call(_)), stack) : order; + }; + + stack.offset = function(_) { + return arguments.length ? (offset = _ == null ? none : _, stack) : offset; + }; + + return stack; +} + +function expand(series, order) { + if (!((n = series.length) > 0)) return; + for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) { + for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0; + if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y; + } + none(series, order); +} + +function diverging(series, order) { + if (!((n = series.length) > 0)) return; + for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) { + for (yp = yn = 0, i = 0; i < n; ++i) { + if ((dy = (d = series[order[i]][j])[1] - d[0]) > 0) { + d[0] = yp, d[1] = yp += dy; + } else if (dy < 0) { + d[1] = yn, d[0] = yn += dy; + } else { + d[0] = 0, d[1] = dy; } - priority = ""; - } - function styleNull() { - this.style.removeProperty(name); } - function styleString(b) { - return b == null ? styleNull : (b += "", function() { - var a = d3_window(this).getComputedStyle(this, null).getPropertyValue(name), i; - return a !== b && (i = d3_interpolate(a, b), function(t) { - this.style.setProperty(name, i(t), priority); - }); - }); + } +} + +function silhouette(series, order) { + if (!((n = series.length) > 0)) return; + for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) { + for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0; + s0[j][1] += s0[j][0] = -y / 2; + } + none(series, order); +} + +function wiggle(series, order) { + if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return; + for (var y = 0, j = 1, s0, m, n; j < m; ++j) { + for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) { + var si = series[order[i]], + sij0 = si[j][1] || 0, + sij1 = si[j - 1][1] || 0, + s3 = (sij0 - sij1) / 2; + for (var k = 0; k < i; ++k) { + var sk = series[order[k]], + skj0 = sk[j][1] || 0, + skj1 = sk[j - 1][1] || 0; + s3 += skj0 - skj1; + } + s1 += sij0, s2 += s3 * sij0; } - return d3_transition_tween(this, "style." + name, value, styleString); - }; - d3_transitionPrototype.styleTween = function(name, tween, priority) { - if (arguments.length < 3) priority = ""; - function styleTween(d, i) { - var f = tween.call(this, d, i, d3_window(this).getComputedStyle(this, null).getPropertyValue(name)); - return f && function(t) { - this.style.setProperty(name, f(t), priority); - }; + s0[j - 1][1] += s0[j - 1][0] = y; + if (s1) y -= s2 / s1; + } + s0[j - 1][1] += s0[j - 1][0] = y; + none(series, order); +} + +function appearance(series) { + var peaks = series.map(peak); + return none$1(series).sort(function(a, b) { return peaks[a] - peaks[b]; }); +} + +function peak(series) { + var i = -1, j = 0, n = series.length, vi, vj = -Infinity; + while (++i < n) if ((vi = +series[i][1]) > vj) vj = vi, j = i; + return j; +} + +function ascending(series) { + var sums = series.map(sum); + return none$1(series).sort(function(a, b) { return sums[a] - sums[b]; }); +} + +function sum(series) { + var s = 0, i = -1, n = series.length, v; + while (++i < n) if (v = +series[i][1]) s += v; + return s; +} + +function descending$1(series) { + return ascending(series).reverse(); +} + +function insideOut(series) { + var n = series.length, + i, + j, + sums = series.map(sum), + order = appearance(series), + top = 0, + bottom = 0, + tops = [], + bottoms = []; + + for (i = 0; i < n; ++i) { + j = order[i]; + if (top < bottom) { + top += sums[j]; + tops.push(j); + } else { + bottom += sums[j]; + bottoms.push(j); } - return this.tween("style." + name, styleTween); - }; - d3_transitionPrototype.text = function(value) { - return d3_transition_tween(this, "text", value, d3_transition_text); - }; - function d3_transition_text(b) { - if (b == null) b = ""; - return function() { - this.textContent = b; - }; } - d3_transitionPrototype.remove = function() { - var ns = this.namespace; - return this.each("end.transition", function() { - var p; - if (this[ns].count < 2 && (p = this.parentNode)) p.removeChild(this); - }); - }; - d3_transitionPrototype.ease = function(value) { - var id = this.id, ns = this.namespace; - if (arguments.length < 1) return this.node()[ns][id].ease; - if (typeof value !== "function") value = d3.ease.apply(d3, arguments); - return d3_selection_each(this, function(node) { - node[ns][id].ease = value; - }); - }; - d3_transitionPrototype.delay = function(value) { - var id = this.id, ns = this.namespace; - if (arguments.length < 1) return this.node()[ns][id].delay; - return d3_selection_each(this, typeof value === "function" ? function(node, i, j) { - node[ns][id].delay = +value.call(node, node.__data__, i, j); - } : (value = +value, function(node) { - node[ns][id].delay = value; - })); + + return bottoms.reverse().concat(tops); +} + +function reverse(series) { + return none$1(series).reverse(); +} + +exports.arc = arc; +exports.area = area; +exports.areaRadial = areaRadial; +exports.curveBasis = basis; +exports.curveBasisClosed = basisClosed; +exports.curveBasisOpen = basisOpen; +exports.curveBundle = bundle; +exports.curveCardinal = cardinal; +exports.curveCardinalClosed = cardinalClosed; +exports.curveCardinalOpen = cardinalOpen; +exports.curveCatmullRom = catmullRom; +exports.curveCatmullRomClosed = catmullRomClosed; +exports.curveCatmullRomOpen = catmullRomOpen; +exports.curveLinear = curveLinear; +exports.curveLinearClosed = linearClosed; +exports.curveMonotoneX = monotoneX; +exports.curveMonotoneY = monotoneY; +exports.curveNatural = natural; +exports.curveStep = step; +exports.curveStepAfter = stepAfter; +exports.curveStepBefore = stepBefore; +exports.line = line; +exports.lineRadial = lineRadial$1; +exports.linkHorizontal = linkHorizontal; +exports.linkRadial = linkRadial; +exports.linkVertical = linkVertical; +exports.pie = pie; +exports.pointRadial = pointRadial; +exports.radialArea = areaRadial; +exports.radialLine = lineRadial$1; +exports.stack = stack; +exports.stackOffsetDiverging = diverging; +exports.stackOffsetExpand = expand; +exports.stackOffsetNone = none; +exports.stackOffsetSilhouette = silhouette; +exports.stackOffsetWiggle = wiggle; +exports.stackOrderAppearance = appearance; +exports.stackOrderAscending = ascending; +exports.stackOrderDescending = descending$1; +exports.stackOrderInsideOut = insideOut; +exports.stackOrderNone = none$1; +exports.stackOrderReverse = reverse; +exports.symbol = symbol; +exports.symbolCircle = circle; +exports.symbolCross = cross; +exports.symbolDiamond = diamond; +exports.symbolSquare = square; +exports.symbolStar = star; +exports.symbolTriangle = triangle; +exports.symbolWye = wye; +exports.symbols = symbols; + +Object.defineProperty(exports, '__esModule', { value: true }); + +})); + +},{"d3-path":165}],168:[function(_dereq_,module,exports){ +// https://d3js.org/d3-time-format/ v2.2.3 Copyright 2019 Mike Bostock +(function (global, factory) { +typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, _dereq_('d3-time')) : +typeof define === 'function' && define.amd ? define(['exports', 'd3-time'], factory) : +(global = global || self, factory(global.d3 = global.d3 || {}, global.d3)); +}(this, function (exports, d3Time) { 'use strict'; + +function localDate(d) { + if (0 <= d.y && d.y < 100) { + var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L); + date.setFullYear(d.y); + return date; + } + return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L); +} + +function utcDate(d) { + if (0 <= d.y && d.y < 100) { + var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L)); + date.setUTCFullYear(d.y); + return date; + } + return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L)); +} + +function newDate(y, m, d) { + return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0}; +} + +function formatLocale(locale) { + var locale_dateTime = locale.dateTime, + locale_date = locale.date, + locale_time = locale.time, + locale_periods = locale.periods, + locale_weekdays = locale.days, + locale_shortWeekdays = locale.shortDays, + locale_months = locale.months, + locale_shortMonths = locale.shortMonths; + + var periodRe = formatRe(locale_periods), + periodLookup = formatLookup(locale_periods), + weekdayRe = formatRe(locale_weekdays), + weekdayLookup = formatLookup(locale_weekdays), + shortWeekdayRe = formatRe(locale_shortWeekdays), + shortWeekdayLookup = formatLookup(locale_shortWeekdays), + monthRe = formatRe(locale_months), + monthLookup = formatLookup(locale_months), + shortMonthRe = formatRe(locale_shortMonths), + shortMonthLookup = formatLookup(locale_shortMonths); + + var formats = { + "a": formatShortWeekday, + "A": formatWeekday, + "b": formatShortMonth, + "B": formatMonth, + "c": null, + "d": formatDayOfMonth, + "e": formatDayOfMonth, + "f": formatMicroseconds, + "H": formatHour24, + "I": formatHour12, + "j": formatDayOfYear, + "L": formatMilliseconds, + "m": formatMonthNumber, + "M": formatMinutes, + "p": formatPeriod, + "q": formatQuarter, + "Q": formatUnixTimestamp, + "s": formatUnixTimestampSeconds, + "S": formatSeconds, + "u": formatWeekdayNumberMonday, + "U": formatWeekNumberSunday, + "V": formatWeekNumberISO, + "w": formatWeekdayNumberSunday, + "W": formatWeekNumberMonday, + "x": null, + "X": null, + "y": formatYear, + "Y": formatFullYear, + "Z": formatZone, + "%": formatLiteralPercent }; - d3_transitionPrototype.duration = function(value) { - var id = this.id, ns = this.namespace; - if (arguments.length < 1) return this.node()[ns][id].duration; - return d3_selection_each(this, typeof value === "function" ? function(node, i, j) { - node[ns][id].duration = Math.max(1, value.call(node, node.__data__, i, j)); - } : (value = Math.max(1, value), function(node) { - node[ns][id].duration = value; - })); + + var utcFormats = { + "a": formatUTCShortWeekday, + "A": formatUTCWeekday, + "b": formatUTCShortMonth, + "B": formatUTCMonth, + "c": null, + "d": formatUTCDayOfMonth, + "e": formatUTCDayOfMonth, + "f": formatUTCMicroseconds, + "H": formatUTCHour24, + "I": formatUTCHour12, + "j": formatUTCDayOfYear, + "L": formatUTCMilliseconds, + "m": formatUTCMonthNumber, + "M": formatUTCMinutes, + "p": formatUTCPeriod, + "q": formatUTCQuarter, + "Q": formatUnixTimestamp, + "s": formatUnixTimestampSeconds, + "S": formatUTCSeconds, + "u": formatUTCWeekdayNumberMonday, + "U": formatUTCWeekNumberSunday, + "V": formatUTCWeekNumberISO, + "w": formatUTCWeekdayNumberSunday, + "W": formatUTCWeekNumberMonday, + "x": null, + "X": null, + "y": formatUTCYear, + "Y": formatUTCFullYear, + "Z": formatUTCZone, + "%": formatLiteralPercent }; - d3_transitionPrototype.each = function(type, listener) { - var id = this.id, ns = this.namespace; - if (arguments.length < 2) { - var inherit = d3_transitionInherit, inheritId = d3_transitionInheritId; - try { - d3_transitionInheritId = id; - d3_selection_each(this, function(node, i, j) { - d3_transitionInherit = node[ns][id]; - type.call(node, node.__data__, i, j); - }); - } finally { - d3_transitionInherit = inherit; - d3_transitionInheritId = inheritId; - } - } else { - d3_selection_each(this, function(node) { - var transition = node[ns][id]; - (transition.event || (transition.event = d3.dispatch("start", "end", "interrupt"))).on(type, listener); - }); - } - return this; + + var parses = { + "a": parseShortWeekday, + "A": parseWeekday, + "b": parseShortMonth, + "B": parseMonth, + "c": parseLocaleDateTime, + "d": parseDayOfMonth, + "e": parseDayOfMonth, + "f": parseMicroseconds, + "H": parseHour24, + "I": parseHour24, + "j": parseDayOfYear, + "L": parseMilliseconds, + "m": parseMonthNumber, + "M": parseMinutes, + "p": parsePeriod, + "q": parseQuarter, + "Q": parseUnixTimestamp, + "s": parseUnixTimestampSeconds, + "S": parseSeconds, + "u": parseWeekdayNumberMonday, + "U": parseWeekNumberSunday, + "V": parseWeekNumberISO, + "w": parseWeekdayNumberSunday, + "W": parseWeekNumberMonday, + "x": parseLocaleDate, + "X": parseLocaleTime, + "y": parseYear, + "Y": parseFullYear, + "Z": parseZone, + "%": parseLiteralPercent }; - d3_transitionPrototype.transition = function() { - var id0 = this.id, id1 = ++d3_transitionId, ns = this.namespace, subgroups = [], subgroup, group, node, transition; - for (var j = 0, m = this.length; j < m; j++) { - subgroups.push(subgroup = []); - for (var group = this[j], i = 0, n = group.length; i < n; i++) { - if (node = group[i]) { - transition = node[ns][id0]; - d3_transitionNode(node, i, ns, id1, { - time: transition.time, - ease: transition.ease, - delay: transition.delay + transition.duration, - duration: transition.duration - }); + + // These recursive directive definitions must be deferred. + formats.x = newFormat(locale_date, formats); + formats.X = newFormat(locale_time, formats); + formats.c = newFormat(locale_dateTime, formats); + utcFormats.x = newFormat(locale_date, utcFormats); + utcFormats.X = newFormat(locale_time, utcFormats); + utcFormats.c = newFormat(locale_dateTime, utcFormats); + + function newFormat(specifier, formats) { + return function(date) { + var string = [], + i = -1, + j = 0, + n = specifier.length, + c, + pad, + format; + + if (!(date instanceof Date)) date = new Date(+date); + + while (++i < n) { + if (specifier.charCodeAt(i) === 37) { + string.push(specifier.slice(j, i)); + if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i); + else pad = c === "e" ? " " : "0"; + if (format = formats[c]) c = format(date, pad); + string.push(c); + j = i + 1; } - subgroup.push(node); } - } - return d3_transition(subgroups, ns, id1); - }; - function d3_transitionNamespace(name) { - return name == null ? "__transition__" : "__transition_" + name + "__"; + + string.push(specifier.slice(j, i)); + return string.join(""); + }; } - function d3_transitionNode(node, i, ns, id, inherit) { - var lock = node[ns] || (node[ns] = { - active: 0, - count: 0 - }), transition = lock[id], time, timer, duration, ease, tweens; - function schedule(elapsed) { - var delay = transition.delay; - timer.t = delay + time; - if (delay <= elapsed) return start(elapsed - delay); - timer.c = start; - } - function start(elapsed) { - var activeId = lock.active, active = lock[activeId]; - if (active) { - active.timer.c = null; - active.timer.t = NaN; - --lock.count; - delete lock[activeId]; - active.event && active.event.interrupt.call(node, node.__data__, active.index); - } - for (var cancelId in lock) { - if (+cancelId < id) { - var cancel = lock[cancelId]; - cancel.timer.c = null; - cancel.timer.t = NaN; - --lock.count; - delete lock[cancelId]; + + function newParse(specifier, Z) { + return function(string) { + var d = newDate(1900, undefined, 1), + i = parseSpecifier(d, specifier, string += "", 0), + week, day; + if (i != string.length) return null; + + // If a UNIX timestamp is specified, return it. + if ("Q" in d) return new Date(d.Q); + if ("s" in d) return new Date(d.s * 1000 + ("L" in d ? d.L : 0)); + + // If this is utcParse, never use the local timezone. + if (Z && !("Z" in d)) d.Z = 0; + + // The am-pm flag is 0 for AM, and 1 for PM. + if ("p" in d) d.H = d.H % 12 + d.p * 12; + + // If the month was not specified, inherit from the quarter. + if (d.m === undefined) d.m = "q" in d ? d.q : 0; + + // Convert day-of-week and week-of-year to day-of-year. + if ("V" in d) { + if (d.V < 1 || d.V > 53) return null; + if (!("w" in d)) d.w = 1; + if ("Z" in d) { + week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay(); + week = day > 4 || day === 0 ? d3Time.utcMonday.ceil(week) : d3Time.utcMonday(week); + week = d3Time.utcDay.offset(week, (d.V - 1) * 7); + d.y = week.getUTCFullYear(); + d.m = week.getUTCMonth(); + d.d = week.getUTCDate() + (d.w + 6) % 7; + } else { + week = localDate(newDate(d.y, 0, 1)), day = week.getDay(); + week = day > 4 || day === 0 ? d3Time.timeMonday.ceil(week) : d3Time.timeMonday(week); + week = d3Time.timeDay.offset(week, (d.V - 1) * 7); + d.y = week.getFullYear(); + d.m = week.getMonth(); + d.d = week.getDate() + (d.w + 6) % 7; } + } else if ("W" in d || "U" in d) { + if (!("w" in d)) d.w = "u" in d ? d.u % 7 : "W" in d ? 1 : 0; + day = "Z" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay(); + d.m = 0; + d.d = "W" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7; } - timer.c = tick; - d3_timer(function() { - if (timer.c && tick(elapsed || 1)) { - timer.c = null; - timer.t = NaN; - } - return 1; - }, 0, time); - lock.active = id; - transition.event && transition.event.start.call(node, node.__data__, i); - tweens = []; - transition.tween.forEach(function(key, value) { - if (value = value.call(node, node.__data__, i)) { - tweens.push(value); - } - }); - ease = transition.ease; - duration = transition.duration; - } - function tick(elapsed) { - var t = elapsed / duration, e = ease(t), n = tweens.length; - while (n > 0) { - tweens[--n].call(node, e); + + // If a time zone is specified, all fields are interpreted as UTC and then + // offset according to the specified time zone. + if ("Z" in d) { + d.H += d.Z / 100 | 0; + d.M += d.Z % 100; + return utcDate(d); } - if (t >= 1) { - transition.event && transition.event.end.call(node, node.__data__, i); - if (--lock.count) delete lock[id]; else delete node[ns]; - return 1; + + // Otherwise, all fields are in local time. + return localDate(d); + }; + } + + function parseSpecifier(d, specifier, string, j) { + var i = 0, + n = specifier.length, + m = string.length, + c, + parse; + + while (i < n) { + if (j >= m) return -1; + c = specifier.charCodeAt(i++); + if (c === 37) { + c = specifier.charAt(i++); + parse = parses[c in pads ? specifier.charAt(i++) : c]; + if (!parse || ((j = parse(d, string, j)) < 0)) return -1; + } else if (c != string.charCodeAt(j++)) { + return -1; } } - if (!transition) { - time = inherit.time; - timer = d3_timer(schedule, 0, time); - transition = lock[id] = { - tween: new d3_Map(), - time: time, - timer: timer, - delay: inherit.delay, - duration: inherit.duration, - ease: inherit.ease, - index: i - }; - inherit = null; - ++lock.count; - } + + return j; } - d3.svg.axis = function() { - var scale = d3.scale.linear(), orient = d3_svg_axisDefaultOrient, innerTickSize = 6, outerTickSize = 6, tickPadding = 3, tickArguments_ = [ 10 ], tickValues = null, tickFormat_; - function axis(g) { - g.each(function() { - var g = d3.select(this); - var scale0 = this.__chart__ || scale, scale1 = this.__chart__ = scale.copy(); - var ticks = tickValues == null ? scale1.ticks ? scale1.ticks.apply(scale1, tickArguments_) : scale1.domain() : tickValues, tickFormat = tickFormat_ == null ? scale1.tickFormat ? scale1.tickFormat.apply(scale1, tickArguments_) : d3_identity : tickFormat_, tick = g.selectAll(".tick").data(ticks, scale1), tickEnter = tick.enter().insert("g", ".domain").attr("class", "tick").style("opacity", ε), tickExit = d3.transition(tick.exit()).style("opacity", ε).remove(), tickUpdate = d3.transition(tick.order()).style("opacity", 1), tickSpacing = Math.max(innerTickSize, 0) + tickPadding, tickTransform; - var range = d3_scaleRange(scale1), path = g.selectAll(".domain").data([ 0 ]), pathUpdate = (path.enter().append("path").attr("class", "domain"), - d3.transition(path)); - tickEnter.append("line"); - tickEnter.append("text"); - var lineEnter = tickEnter.select("line"), lineUpdate = tickUpdate.select("line"), text = tick.select("text").text(tickFormat), textEnter = tickEnter.select("text"), textUpdate = tickUpdate.select("text"), sign = orient === "top" || orient === "left" ? -1 : 1, x1, x2, y1, y2; - if (orient === "bottom" || orient === "top") { - tickTransform = d3_svg_axisX, x1 = "x", y1 = "y", x2 = "x2", y2 = "y2"; - text.attr("dy", sign < 0 ? "0em" : ".71em").style("text-anchor", "middle"); - pathUpdate.attr("d", "M" + range[0] + "," + sign * outerTickSize + "V0H" + range[1] + "V" + sign * outerTickSize); - } else { - tickTransform = d3_svg_axisY, x1 = "y", y1 = "x", x2 = "y2", y2 = "x2"; - text.attr("dy", ".32em").style("text-anchor", sign < 0 ? "end" : "start"); - pathUpdate.attr("d", "M" + sign * outerTickSize + "," + range[0] + "H0V" + range[1] + "H" + sign * outerTickSize); - } - lineEnter.attr(y2, sign * innerTickSize); - textEnter.attr(y1, sign * tickSpacing); - lineUpdate.attr(x2, 0).attr(y2, sign * innerTickSize); - textUpdate.attr(x1, 0).attr(y1, sign * tickSpacing); - if (scale1.rangeBand) { - var x = scale1, dx = x.rangeBand() / 2; - scale0 = scale1 = function(d) { - return x(d) + dx; - }; - } else if (scale0.rangeBand) { - scale0 = scale1; - } else { - tickExit.call(tickTransform, scale1, scale0); - } - tickEnter.call(tickTransform, scale0, scale1); - tickUpdate.call(tickTransform, scale1, scale1); - }); + + function parsePeriod(d, string, i) { + var n = periodRe.exec(string.slice(i)); + return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1; + } + + function parseShortWeekday(d, string, i) { + var n = shortWeekdayRe.exec(string.slice(i)); + return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1; + } + + function parseWeekday(d, string, i) { + var n = weekdayRe.exec(string.slice(i)); + return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1; + } + + function parseShortMonth(d, string, i) { + var n = shortMonthRe.exec(string.slice(i)); + return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1; + } + + function parseMonth(d, string, i) { + var n = monthRe.exec(string.slice(i)); + return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1; + } + + function parseLocaleDateTime(d, string, i) { + return parseSpecifier(d, locale_dateTime, string, i); + } + + function parseLocaleDate(d, string, i) { + return parseSpecifier(d, locale_date, string, i); + } + + function parseLocaleTime(d, string, i) { + return parseSpecifier(d, locale_time, string, i); + } + + function formatShortWeekday(d) { + return locale_shortWeekdays[d.getDay()]; + } + + function formatWeekday(d) { + return locale_weekdays[d.getDay()]; + } + + function formatShortMonth(d) { + return locale_shortMonths[d.getMonth()]; + } + + function formatMonth(d) { + return locale_months[d.getMonth()]; + } + + function formatPeriod(d) { + return locale_periods[+(d.getHours() >= 12)]; + } + + function formatQuarter(d) { + return 1 + ~~(d.getMonth() / 3); + } + + function formatUTCShortWeekday(d) { + return locale_shortWeekdays[d.getUTCDay()]; + } + + function formatUTCWeekday(d) { + return locale_weekdays[d.getUTCDay()]; + } + + function formatUTCShortMonth(d) { + return locale_shortMonths[d.getUTCMonth()]; + } + + function formatUTCMonth(d) { + return locale_months[d.getUTCMonth()]; + } + + function formatUTCPeriod(d) { + return locale_periods[+(d.getUTCHours() >= 12)]; + } + + function formatUTCQuarter(d) { + return 1 + ~~(d.getUTCMonth() / 3); + } + + return { + format: function(specifier) { + var f = newFormat(specifier += "", formats); + f.toString = function() { return specifier; }; + return f; + }, + parse: function(specifier) { + var p = newParse(specifier += "", false); + p.toString = function() { return specifier; }; + return p; + }, + utcFormat: function(specifier) { + var f = newFormat(specifier += "", utcFormats); + f.toString = function() { return specifier; }; + return f; + }, + utcParse: function(specifier) { + var p = newParse(specifier += "", true); + p.toString = function() { return specifier; }; + return p; } - axis.scale = function(x) { - if (!arguments.length) return scale; - scale = x; - return axis; - }; - axis.orient = function(x) { - if (!arguments.length) return orient; - orient = x in d3_svg_axisOrients ? x + "" : d3_svg_axisDefaultOrient; - return axis; - }; - axis.ticks = function() { - if (!arguments.length) return tickArguments_; - tickArguments_ = d3_array(arguments); - return axis; - }; - axis.tickValues = function(x) { - if (!arguments.length) return tickValues; - tickValues = x; - return axis; - }; - axis.tickFormat = function(x) { - if (!arguments.length) return tickFormat_; - tickFormat_ = x; - return axis; - }; - axis.tickSize = function(x) { - var n = arguments.length; - if (!n) return innerTickSize; - innerTickSize = +x; - outerTickSize = +arguments[n - 1]; - return axis; - }; - axis.innerTickSize = function(x) { - if (!arguments.length) return innerTickSize; - innerTickSize = +x; - return axis; - }; - axis.outerTickSize = function(x) { - if (!arguments.length) return outerTickSize; - outerTickSize = +x; - return axis; - }; - axis.tickPadding = function(x) { - if (!arguments.length) return tickPadding; - tickPadding = +x; - return axis; - }; - axis.tickSubdivide = function() { - return arguments.length && axis; - }; - return axis; }; - var d3_svg_axisDefaultOrient = "bottom", d3_svg_axisOrients = { - top: 1, - right: 1, - bottom: 1, - left: 1 +} + +var pads = {"-": "", "_": " ", "0": "0"}, + numberRe = /^\s*\d+/, // note: ignores next directive + percentRe = /^%/, + requoteRe = /[\\^$*+?|[\]().{}]/g; + +function pad(value, fill, width) { + var sign = value < 0 ? "-" : "", + string = (sign ? -value : value) + "", + length = string.length; + return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string); +} + +function requote(s) { + return s.replace(requoteRe, "\\$&"); +} + +function formatRe(names) { + return new RegExp("^(?:" + names.map(requote).join("|") + ")", "i"); +} + +function formatLookup(names) { + var map = {}, i = -1, n = names.length; + while (++i < n) map[names[i].toLowerCase()] = i; + return map; +} + +function parseWeekdayNumberSunday(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 1)); + return n ? (d.w = +n[0], i + n[0].length) : -1; +} + +function parseWeekdayNumberMonday(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 1)); + return n ? (d.u = +n[0], i + n[0].length) : -1; +} + +function parseWeekNumberSunday(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.U = +n[0], i + n[0].length) : -1; +} + +function parseWeekNumberISO(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.V = +n[0], i + n[0].length) : -1; +} + +function parseWeekNumberMonday(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.W = +n[0], i + n[0].length) : -1; +} + +function parseFullYear(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 4)); + return n ? (d.y = +n[0], i + n[0].length) : -1; +} + +function parseYear(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1; +} + +function parseZone(d, string, i) { + var n = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(string.slice(i, i + 6)); + return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || "00")), i + n[0].length) : -1; +} + +function parseQuarter(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 1)); + return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1; +} + +function parseMonthNumber(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.m = n[0] - 1, i + n[0].length) : -1; +} + +function parseDayOfMonth(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.d = +n[0], i + n[0].length) : -1; +} + +function parseDayOfYear(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 3)); + return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1; +} + +function parseHour24(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.H = +n[0], i + n[0].length) : -1; +} + +function parseMinutes(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.M = +n[0], i + n[0].length) : -1; +} + +function parseSeconds(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.S = +n[0], i + n[0].length) : -1; +} + +function parseMilliseconds(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 3)); + return n ? (d.L = +n[0], i + n[0].length) : -1; +} + +function parseMicroseconds(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 6)); + return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1; +} + +function parseLiteralPercent(d, string, i) { + var n = percentRe.exec(string.slice(i, i + 1)); + return n ? i + n[0].length : -1; +} + +function parseUnixTimestamp(d, string, i) { + var n = numberRe.exec(string.slice(i)); + return n ? (d.Q = +n[0], i + n[0].length) : -1; +} + +function parseUnixTimestampSeconds(d, string, i) { + var n = numberRe.exec(string.slice(i)); + return n ? (d.s = +n[0], i + n[0].length) : -1; +} + +function formatDayOfMonth(d, p) { + return pad(d.getDate(), p, 2); +} + +function formatHour24(d, p) { + return pad(d.getHours(), p, 2); +} + +function formatHour12(d, p) { + return pad(d.getHours() % 12 || 12, p, 2); +} + +function formatDayOfYear(d, p) { + return pad(1 + d3Time.timeDay.count(d3Time.timeYear(d), d), p, 3); +} + +function formatMilliseconds(d, p) { + return pad(d.getMilliseconds(), p, 3); +} + +function formatMicroseconds(d, p) { + return formatMilliseconds(d, p) + "000"; +} + +function formatMonthNumber(d, p) { + return pad(d.getMonth() + 1, p, 2); +} + +function formatMinutes(d, p) { + return pad(d.getMinutes(), p, 2); +} + +function formatSeconds(d, p) { + return pad(d.getSeconds(), p, 2); +} + +function formatWeekdayNumberMonday(d) { + var day = d.getDay(); + return day === 0 ? 7 : day; +} + +function formatWeekNumberSunday(d, p) { + return pad(d3Time.timeSunday.count(d3Time.timeYear(d) - 1, d), p, 2); +} + +function formatWeekNumberISO(d, p) { + var day = d.getDay(); + d = (day >= 4 || day === 0) ? d3Time.timeThursday(d) : d3Time.timeThursday.ceil(d); + return pad(d3Time.timeThursday.count(d3Time.timeYear(d), d) + (d3Time.timeYear(d).getDay() === 4), p, 2); +} + +function formatWeekdayNumberSunday(d) { + return d.getDay(); +} + +function formatWeekNumberMonday(d, p) { + return pad(d3Time.timeMonday.count(d3Time.timeYear(d) - 1, d), p, 2); +} + +function formatYear(d, p) { + return pad(d.getFullYear() % 100, p, 2); +} + +function formatFullYear(d, p) { + return pad(d.getFullYear() % 10000, p, 4); +} + +function formatZone(d) { + var z = d.getTimezoneOffset(); + return (z > 0 ? "-" : (z *= -1, "+")) + + pad(z / 60 | 0, "0", 2) + + pad(z % 60, "0", 2); +} + +function formatUTCDayOfMonth(d, p) { + return pad(d.getUTCDate(), p, 2); +} + +function formatUTCHour24(d, p) { + return pad(d.getUTCHours(), p, 2); +} + +function formatUTCHour12(d, p) { + return pad(d.getUTCHours() % 12 || 12, p, 2); +} + +function formatUTCDayOfYear(d, p) { + return pad(1 + d3Time.utcDay.count(d3Time.utcYear(d), d), p, 3); +} + +function formatUTCMilliseconds(d, p) { + return pad(d.getUTCMilliseconds(), p, 3); +} + +function formatUTCMicroseconds(d, p) { + return formatUTCMilliseconds(d, p) + "000"; +} + +function formatUTCMonthNumber(d, p) { + return pad(d.getUTCMonth() + 1, p, 2); +} + +function formatUTCMinutes(d, p) { + return pad(d.getUTCMinutes(), p, 2); +} + +function formatUTCSeconds(d, p) { + return pad(d.getUTCSeconds(), p, 2); +} + +function formatUTCWeekdayNumberMonday(d) { + var dow = d.getUTCDay(); + return dow === 0 ? 7 : dow; +} + +function formatUTCWeekNumberSunday(d, p) { + return pad(d3Time.utcSunday.count(d3Time.utcYear(d) - 1, d), p, 2); +} + +function formatUTCWeekNumberISO(d, p) { + var day = d.getUTCDay(); + d = (day >= 4 || day === 0) ? d3Time.utcThursday(d) : d3Time.utcThursday.ceil(d); + return pad(d3Time.utcThursday.count(d3Time.utcYear(d), d) + (d3Time.utcYear(d).getUTCDay() === 4), p, 2); +} + +function formatUTCWeekdayNumberSunday(d) { + return d.getUTCDay(); +} + +function formatUTCWeekNumberMonday(d, p) { + return pad(d3Time.utcMonday.count(d3Time.utcYear(d) - 1, d), p, 2); +} + +function formatUTCYear(d, p) { + return pad(d.getUTCFullYear() % 100, p, 2); +} + +function formatUTCFullYear(d, p) { + return pad(d.getUTCFullYear() % 10000, p, 4); +} + +function formatUTCZone() { + return "+0000"; +} + +function formatLiteralPercent() { + return "%"; +} + +function formatUnixTimestamp(d) { + return +d; +} + +function formatUnixTimestampSeconds(d) { + return Math.floor(+d / 1000); +} + +var locale; + +defaultLocale({ + 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"] +}); + +function defaultLocale(definition) { + locale = formatLocale(definition); + exports.timeFormat = locale.format; + exports.timeParse = locale.parse; + exports.utcFormat = locale.utcFormat; + exports.utcParse = locale.utcParse; + return locale; +} + +var isoSpecifier = "%Y-%m-%dT%H:%M:%S.%LZ"; + +function formatIsoNative(date) { + return date.toISOString(); +} + +var formatIso = Date.prototype.toISOString + ? formatIsoNative + : exports.utcFormat(isoSpecifier); + +function parseIsoNative(string) { + var date = new Date(string); + return isNaN(date) ? null : date; +} + +var parseIso = +new Date("2000-01-01T00:00:00.000Z") + ? parseIsoNative + : exports.utcParse(isoSpecifier); + +exports.isoFormat = formatIso; +exports.isoParse = parseIso; +exports.timeFormatDefaultLocale = defaultLocale; +exports.timeFormatLocale = formatLocale; + +Object.defineProperty(exports, '__esModule', { value: true }); + +})); + +},{"d3-time":169}],169:[function(_dereq_,module,exports){ +// https://d3js.org/d3-time/ v1.1.0 Copyright 2019 Mike Bostock +(function (global, factory) { +typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : +typeof define === 'function' && define.amd ? define(['exports'], factory) : +(global = global || self, factory(global.d3 = global.d3 || {})); +}(this, function (exports) { 'use strict'; + +var t0 = new Date, + t1 = new Date; + +function newInterval(floori, offseti, count, field) { + + function interval(date) { + return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date; + } + + interval.floor = function(date) { + return floori(date = new Date(+date)), date; + }; + + interval.ceil = function(date) { + return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date; }; - function d3_svg_axisX(selection, x0, x1) { - selection.attr("transform", function(d) { - var v0 = x0(d); - return "translate(" + (isFinite(v0) ? v0 : x1(d)) + ",0)"; - }); - } - function d3_svg_axisY(selection, y0, y1) { - selection.attr("transform", function(d) { - var v0 = y0(d); - return "translate(0," + (isFinite(v0) ? v0 : y1(d)) + ")"; - }); - } - d3.svg.brush = function() { - var event = d3_eventDispatch(brush, "brushstart", "brush", "brushend"), x = null, y = null, xExtent = [ 0, 0 ], yExtent = [ 0, 0 ], xExtentDomain, yExtentDomain, xClamp = true, yClamp = true, resizes = d3_svg_brushResizes[0]; - function brush(g) { - g.each(function() { - var g = d3.select(this).style("pointer-events", "all").style("-webkit-tap-highlight-color", "rgba(0,0,0,0)").on("mousedown.brush", brushstart).on("touchstart.brush", brushstart); - var background = g.selectAll(".background").data([ 0 ]); - background.enter().append("rect").attr("class", "background").style("visibility", "hidden").style("cursor", "crosshair"); - g.selectAll(".extent").data([ 0 ]).enter().append("rect").attr("class", "extent").style("cursor", "move"); - var resize = g.selectAll(".resize").data(resizes, d3_identity); - resize.exit().remove(); - resize.enter().append("g").attr("class", function(d) { - return "resize " + d; - }).style("cursor", function(d) { - return d3_svg_brushCursor[d]; - }).append("rect").attr("x", function(d) { - return /[ew]$/.test(d) ? -3 : null; - }).attr("y", function(d) { - return /^[ns]/.test(d) ? -3 : null; - }).attr("width", 6).attr("height", 6).style("visibility", "hidden"); - resize.style("display", brush.empty() ? "none" : null); - var gUpdate = d3.transition(g), backgroundUpdate = d3.transition(background), range; - if (x) { - range = d3_scaleRange(x); - backgroundUpdate.attr("x", range[0]).attr("width", range[1] - range[0]); - redrawX(gUpdate); - } - if (y) { - range = d3_scaleRange(y); - backgroundUpdate.attr("y", range[0]).attr("height", range[1] - range[0]); - redrawY(gUpdate); - } - redraw(gUpdate); - }); - } - brush.event = function(g) { - g.each(function() { - var event_ = event.of(this, arguments), extent1 = { - x: xExtent, - y: yExtent, - i: xExtentDomain, - j: yExtentDomain - }, extent0 = this.__chart__ || extent1; - this.__chart__ = extent1; - if (d3_transitionInheritId) { - d3.select(this).transition().each("start.brush", function() { - xExtentDomain = extent0.i; - yExtentDomain = extent0.j; - xExtent = extent0.x; - yExtent = extent0.y; - event_({ - type: "brushstart" - }); - }).tween("brush:brush", function() { - var xi = d3_interpolateArray(xExtent, extent1.x), yi = d3_interpolateArray(yExtent, extent1.y); - xExtentDomain = yExtentDomain = null; - return function(t) { - xExtent = extent1.x = xi(t); - yExtent = extent1.y = yi(t); - event_({ - type: "brush", - mode: "resize" - }); - }; - }).each("end.brush", function() { - xExtentDomain = extent1.i; - yExtentDomain = extent1.j; - event_({ - type: "brush", - mode: "resize" - }); - event_({ - type: "brushend" - }); - }); - } else { - event_({ - type: "brushstart" - }); - event_({ - type: "brush", - mode: "resize" - }); - event_({ - type: "brushend" - }); - } - }); - }; - function redraw(g) { - g.selectAll(".resize").attr("transform", function(d) { - return "translate(" + xExtent[+/e$/.test(d)] + "," + yExtent[+/^s/.test(d)] + ")"; - }); - } - function redrawX(g) { - g.select(".extent").attr("x", xExtent[0]); - g.selectAll(".extent,.n>rect,.s>rect").attr("width", xExtent[1] - xExtent[0]); - } - function redrawY(g) { - g.select(".extent").attr("y", yExtent[0]); - g.selectAll(".extent,.e>rect,.w>rect").attr("height", yExtent[1] - yExtent[0]); - } - function brushstart() { - var target = this, eventTarget = d3.select(d3.event.target), event_ = event.of(target, arguments), g = d3.select(target), resizing = eventTarget.datum(), resizingX = !/^(n|s)$/.test(resizing) && x, resizingY = !/^(e|w)$/.test(resizing) && y, dragging = eventTarget.classed("extent"), dragRestore = d3_event_dragSuppress(target), center, origin = d3.mouse(target), offset; - var w = d3.select(d3_window(target)).on("keydown.brush", keydown).on("keyup.brush", keyup); - if (d3.event.changedTouches) { - w.on("touchmove.brush", brushmove).on("touchend.brush", brushend); - } else { - w.on("mousemove.brush", brushmove).on("mouseup.brush", brushend); - } - g.interrupt().selectAll("*").interrupt(); - if (dragging) { - origin[0] = xExtent[0] - origin[0]; - origin[1] = yExtent[0] - origin[1]; - } else if (resizing) { - var ex = +/w$/.test(resizing), ey = +/^n/.test(resizing); - offset = [ xExtent[1 - ex] - origin[0], yExtent[1 - ey] - origin[1] ]; - origin[0] = xExtent[ex]; - origin[1] = yExtent[ey]; - } else if (d3.event.altKey) center = origin.slice(); - g.style("pointer-events", "none").selectAll(".resize").style("display", null); - d3.select("body").style("cursor", eventTarget.style("cursor")); - event_({ - type: "brushstart" - }); - brushmove(); - function keydown() { - if (d3.event.keyCode == 32) { - if (!dragging) { - center = null; - origin[0] -= xExtent[1]; - origin[1] -= yExtent[1]; - dragging = 2; - } - d3_eventPreventDefault(); - } - } - function keyup() { - if (d3.event.keyCode == 32 && dragging == 2) { - origin[0] += xExtent[1]; - origin[1] += yExtent[1]; - dragging = 0; - d3_eventPreventDefault(); - } - } - function brushmove() { - var point = d3.mouse(target), moved = false; - if (offset) { - point[0] += offset[0]; - point[1] += offset[1]; - } - if (!dragging) { - if (d3.event.altKey) { - if (!center) center = [ (xExtent[0] + xExtent[1]) / 2, (yExtent[0] + yExtent[1]) / 2 ]; - origin[0] = xExtent[+(point[0] < center[0])]; - origin[1] = yExtent[+(point[1] < center[1])]; - } else center = null; - } - if (resizingX && move1(point, x, 0)) { - redrawX(g); - moved = true; - } - if (resizingY && move1(point, y, 1)) { - redrawY(g); - moved = true; - } - if (moved) { - redraw(g); - event_({ - type: "brush", - mode: dragging ? "move" : "resize" - }); - } - } - function move1(point, scale, i) { - var range = d3_scaleRange(scale), r0 = range[0], r1 = range[1], position = origin[i], extent = i ? yExtent : xExtent, size = extent[1] - extent[0], min, max; - if (dragging) { - r0 -= position; - r1 -= size + position; - } - min = (i ? yClamp : xClamp) ? Math.max(r0, Math.min(r1, point[i])) : point[i]; - if (dragging) { - max = (min += position) + size; - } else { - if (center) position = Math.max(r0, Math.min(r1, 2 * center[i] - min)); - if (position < min) { - max = min; - min = position; - } else { - max = position; - } - } - if (extent[0] != min || extent[1] != max) { - if (i) yExtentDomain = null; else xExtentDomain = null; - extent[0] = min; - extent[1] = max; - return true; - } - } - function brushend() { - brushmove(); - g.style("pointer-events", "all").selectAll(".resize").style("display", brush.empty() ? "none" : null); - d3.select("body").style("cursor", null); - w.on("mousemove.brush", null).on("mouseup.brush", null).on("touchmove.brush", null).on("touchend.brush", null).on("keydown.brush", null).on("keyup.brush", null); - dragRestore(); - event_({ - type: "brushend" - }); - } - } - brush.x = function(z) { - if (!arguments.length) return x; - x = z; - resizes = d3_svg_brushResizes[!x << 1 | !y]; - return brush; - }; - brush.y = function(z) { - if (!arguments.length) return y; - y = z; - resizes = d3_svg_brushResizes[!x << 1 | !y]; - return brush; - }; - brush.clamp = function(z) { - if (!arguments.length) return x && y ? [ xClamp, yClamp ] : x ? xClamp : y ? yClamp : null; - if (x && y) xClamp = !!z[0], yClamp = !!z[1]; else if (x) xClamp = !!z; else if (y) yClamp = !!z; - return brush; - }; - brush.extent = function(z) { - var x0, x1, y0, y1, t; - if (!arguments.length) { - if (x) { - if (xExtentDomain) { - x0 = xExtentDomain[0], x1 = xExtentDomain[1]; - } else { - x0 = xExtent[0], x1 = xExtent[1]; - if (x.invert) x0 = x.invert(x0), x1 = x.invert(x1); - if (x1 < x0) t = x0, x0 = x1, x1 = t; - } - } - if (y) { - if (yExtentDomain) { - y0 = yExtentDomain[0], y1 = yExtentDomain[1]; - } else { - y0 = yExtent[0], y1 = yExtent[1]; - if (y.invert) y0 = y.invert(y0), y1 = y.invert(y1); - if (y1 < y0) t = y0, y0 = y1, y1 = t; - } + + interval.round = function(date) { + var d0 = interval(date), + d1 = interval.ceil(date); + return date - d0 < d1 - date ? d0 : d1; + }; + + interval.offset = function(date, step) { + return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date; + }; + + interval.range = function(start, stop, step) { + var range = [], previous; + start = interval.ceil(start); + step = step == null ? 1 : Math.floor(step); + if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date + do range.push(previous = new Date(+start)), offseti(start, step), floori(start); + while (previous < start && start < stop); + return range; + }; + + interval.filter = function(test) { + return newInterval(function(date) { + if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1); + }, function(date, step) { + if (date >= date) { + if (step < 0) while (++step <= 0) { + while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty + } else while (--step >= 0) { + while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty } - return x && y ? [ [ x0, y0 ], [ x1, y1 ] ] : x ? [ x0, x1 ] : y && [ y0, y1 ]; - } - if (x) { - x0 = z[0], x1 = z[1]; - if (y) x0 = x0[0], x1 = x1[0]; - xExtentDomain = [ x0, x1 ]; - if (x.invert) x0 = x(x0), x1 = x(x1); - if (x1 < x0) t = x0, x0 = x1, x1 = t; - if (x0 != xExtent[0] || x1 != xExtent[1]) xExtent = [ x0, x1 ]; - } - if (y) { - y0 = z[0], y1 = z[1]; - if (x) y0 = y0[1], y1 = y1[1]; - yExtentDomain = [ y0, y1 ]; - if (y.invert) y0 = y(y0), y1 = y(y1); - if (y1 < y0) t = y0, y0 = y1, y1 = t; - if (y0 != yExtent[0] || y1 != yExtent[1]) yExtent = [ y0, y1 ]; - } - return brush; - }; - brush.clear = function() { - if (!brush.empty()) { - xExtent = [ 0, 0 ], yExtent = [ 0, 0 ]; - xExtentDomain = yExtentDomain = null; } - return brush; + }); + }; + + if (count) { + interval.count = function(start, end) { + t0.setTime(+start), t1.setTime(+end); + floori(t0), floori(t1); + return Math.floor(count(t0, t1)); }; - brush.empty = function() { - return !!x && xExtent[0] == xExtent[1] || !!y && yExtent[0] == yExtent[1]; + + interval.every = function(step) { + step = Math.floor(step); + return !isFinite(step) || !(step > 0) ? null + : !(step > 1) ? interval + : interval.filter(field + ? function(d) { return field(d) % step === 0; } + : function(d) { return interval.count(0, d) % step === 0; }); }; - return d3.rebind(brush, event, "on"); - }; - var d3_svg_brushCursor = { - n: "ns-resize", - e: "ew-resize", - s: "ns-resize", - w: "ew-resize", - nw: "nwse-resize", - ne: "nesw-resize", - se: "nwse-resize", - sw: "nesw-resize" - }; - var d3_svg_brushResizes = [ [ "n", "e", "s", "w", "nw", "ne", "se", "sw" ], [ "e", "w" ], [ "n", "s" ], [] ]; - var d3_time_format = d3_time.format = d3_locale_enUS.timeFormat; - var d3_time_formatUtc = d3_time_format.utc; - var d3_time_formatIso = d3_time_formatUtc("%Y-%m-%dT%H:%M:%S.%LZ"); - d3_time_format.iso = Date.prototype.toISOString && +new Date("2000-01-01T00:00:00.000Z") ? d3_time_formatIsoNative : d3_time_formatIso; - function d3_time_formatIsoNative(date) { - return date.toISOString(); } - d3_time_formatIsoNative.parse = function(string) { - var date = new Date(string); - return isNaN(date) ? null : date; - }; - d3_time_formatIsoNative.toString = d3_time_formatIso.toString; - d3_time.second = d3_time_interval(function(date) { - return new d3_date(Math.floor(date / 1e3) * 1e3); - }, function(date, offset) { - date.setTime(date.getTime() + Math.floor(offset) * 1e3); - }, function(date) { - return date.getSeconds(); + + return interval; +} + +var millisecond = newInterval(function() { + // noop +}, function(date, step) { + date.setTime(+date + step); +}, function(start, end) { + return end - start; +}); + +// An optimized implementation for this simple case. +millisecond.every = function(k) { + k = Math.floor(k); + if (!isFinite(k) || !(k > 0)) return null; + if (!(k > 1)) return millisecond; + return newInterval(function(date) { + date.setTime(Math.floor(date / k) * k); + }, function(date, step) { + date.setTime(+date + step * k); + }, function(start, end) { + return (end - start) / k; }); - d3_time.seconds = d3_time.second.range; - d3_time.seconds.utc = d3_time.second.utc.range; - d3_time.minute = d3_time_interval(function(date) { - return new d3_date(Math.floor(date / 6e4) * 6e4); - }, function(date, offset) { - date.setTime(date.getTime() + Math.floor(offset) * 6e4); - }, function(date) { - return date.getMinutes(); +}; +var milliseconds = millisecond.range; + +var durationSecond = 1e3; +var durationMinute = 6e4; +var durationHour = 36e5; +var durationDay = 864e5; +var durationWeek = 6048e5; + +var second = newInterval(function(date) { + date.setTime(date - date.getMilliseconds()); +}, function(date, step) { + date.setTime(+date + step * durationSecond); +}, function(start, end) { + return (end - start) / durationSecond; +}, function(date) { + return date.getUTCSeconds(); +}); +var seconds = second.range; + +var minute = newInterval(function(date) { + date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond); +}, function(date, step) { + date.setTime(+date + step * durationMinute); +}, function(start, end) { + return (end - start) / durationMinute; +}, function(date) { + return date.getMinutes(); +}); +var minutes = minute.range; + +var hour = newInterval(function(date) { + date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute); +}, function(date, step) { + date.setTime(+date + step * durationHour); +}, function(start, end) { + return (end - start) / durationHour; +}, function(date) { + return date.getHours(); +}); +var hours = hour.range; + +var day = newInterval(function(date) { + date.setHours(0, 0, 0, 0); +}, function(date, step) { + date.setDate(date.getDate() + step); +}, function(start, end) { + return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay; +}, function(date) { + return date.getDate() - 1; +}); +var days = day.range; + +function weekday(i) { + return newInterval(function(date) { + date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7); + date.setHours(0, 0, 0, 0); + }, function(date, step) { + date.setDate(date.getDate() + step * 7); + }, function(start, end) { + return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek; }); - d3_time.minutes = d3_time.minute.range; - d3_time.minutes.utc = d3_time.minute.utc.range; - d3_time.hour = d3_time_interval(function(date) { - var timezone = date.getTimezoneOffset() / 60; - return new d3_date((Math.floor(date / 36e5 - timezone) + timezone) * 36e5); - }, function(date, offset) { - date.setTime(date.getTime() + Math.floor(offset) * 36e5); - }, function(date) { - return date.getHours(); +} + +var sunday = weekday(0); +var monday = weekday(1); +var tuesday = weekday(2); +var wednesday = weekday(3); +var thursday = weekday(4); +var friday = weekday(5); +var saturday = weekday(6); + +var sundays = sunday.range; +var mondays = monday.range; +var tuesdays = tuesday.range; +var wednesdays = wednesday.range; +var thursdays = thursday.range; +var fridays = friday.range; +var saturdays = saturday.range; + +var month = newInterval(function(date) { + date.setDate(1); + date.setHours(0, 0, 0, 0); +}, function(date, step) { + date.setMonth(date.getMonth() + step); +}, function(start, end) { + return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12; +}, function(date) { + return date.getMonth(); +}); +var months = month.range; + +var year = newInterval(function(date) { + date.setMonth(0, 1); + date.setHours(0, 0, 0, 0); +}, function(date, step) { + date.setFullYear(date.getFullYear() + step); +}, function(start, end) { + return end.getFullYear() - start.getFullYear(); +}, function(date) { + return date.getFullYear(); +}); + +// An optimized implementation for this simple case. +year.every = function(k) { + return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function(date) { + date.setFullYear(Math.floor(date.getFullYear() / k) * k); + date.setMonth(0, 1); + date.setHours(0, 0, 0, 0); + }, function(date, step) { + date.setFullYear(date.getFullYear() + step * k); }); - d3_time.hours = d3_time.hour.range; - d3_time.hours.utc = d3_time.hour.utc.range; - d3_time.month = d3_time_interval(function(date) { - date = d3_time.day(date); - date.setDate(1); - return date; - }, function(date, offset) { - date.setMonth(date.getMonth() + offset); - }, function(date) { - return date.getMonth(); +}; +var years = year.range; + +var utcMinute = newInterval(function(date) { + date.setUTCSeconds(0, 0); +}, function(date, step) { + date.setTime(+date + step * durationMinute); +}, function(start, end) { + return (end - start) / durationMinute; +}, function(date) { + return date.getUTCMinutes(); +}); +var utcMinutes = utcMinute.range; + +var utcHour = newInterval(function(date) { + date.setUTCMinutes(0, 0, 0); +}, function(date, step) { + date.setTime(+date + step * durationHour); +}, function(start, end) { + return (end - start) / durationHour; +}, function(date) { + return date.getUTCHours(); +}); +var utcHours = utcHour.range; + +var utcDay = newInterval(function(date) { + date.setUTCHours(0, 0, 0, 0); +}, function(date, step) { + date.setUTCDate(date.getUTCDate() + step); +}, function(start, end) { + return (end - start) / durationDay; +}, function(date) { + return date.getUTCDate() - 1; +}); +var utcDays = utcDay.range; + +function utcWeekday(i) { + return newInterval(function(date) { + date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7); + date.setUTCHours(0, 0, 0, 0); + }, function(date, step) { + date.setUTCDate(date.getUTCDate() + step * 7); + }, function(start, end) { + return (end - start) / durationWeek; }); - d3_time.months = d3_time.month.range; - d3_time.months.utc = d3_time.month.utc.range; - function d3_time_scale(linear, methods, format) { - function scale(x) { - return linear(x); +} + +var utcSunday = utcWeekday(0); +var utcMonday = utcWeekday(1); +var utcTuesday = utcWeekday(2); +var utcWednesday = utcWeekday(3); +var utcThursday = utcWeekday(4); +var utcFriday = utcWeekday(5); +var utcSaturday = utcWeekday(6); + +var utcSundays = utcSunday.range; +var utcMondays = utcMonday.range; +var utcTuesdays = utcTuesday.range; +var utcWednesdays = utcWednesday.range; +var utcThursdays = utcThursday.range; +var utcFridays = utcFriday.range; +var utcSaturdays = utcSaturday.range; + +var utcMonth = newInterval(function(date) { + date.setUTCDate(1); + date.setUTCHours(0, 0, 0, 0); +}, function(date, step) { + date.setUTCMonth(date.getUTCMonth() + step); +}, function(start, end) { + return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12; +}, function(date) { + return date.getUTCMonth(); +}); +var utcMonths = utcMonth.range; + +var utcYear = newInterval(function(date) { + date.setUTCMonth(0, 1); + date.setUTCHours(0, 0, 0, 0); +}, function(date, step) { + date.setUTCFullYear(date.getUTCFullYear() + step); +}, function(start, end) { + return end.getUTCFullYear() - start.getUTCFullYear(); +}, function(date) { + return date.getUTCFullYear(); +}); + +// An optimized implementation for this simple case. +utcYear.every = function(k) { + return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function(date) { + date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k); + date.setUTCMonth(0, 1); + date.setUTCHours(0, 0, 0, 0); + }, function(date, step) { + date.setUTCFullYear(date.getUTCFullYear() + step * k); + }); +}; +var utcYears = utcYear.range; + +exports.timeDay = day; +exports.timeDays = days; +exports.timeFriday = friday; +exports.timeFridays = fridays; +exports.timeHour = hour; +exports.timeHours = hours; +exports.timeInterval = newInterval; +exports.timeMillisecond = millisecond; +exports.timeMilliseconds = milliseconds; +exports.timeMinute = minute; +exports.timeMinutes = minutes; +exports.timeMonday = monday; +exports.timeMondays = mondays; +exports.timeMonth = month; +exports.timeMonths = months; +exports.timeSaturday = saturday; +exports.timeSaturdays = saturdays; +exports.timeSecond = second; +exports.timeSeconds = seconds; +exports.timeSunday = sunday; +exports.timeSundays = sundays; +exports.timeThursday = thursday; +exports.timeThursdays = thursdays; +exports.timeTuesday = tuesday; +exports.timeTuesdays = tuesdays; +exports.timeWednesday = wednesday; +exports.timeWednesdays = wednesdays; +exports.timeWeek = sunday; +exports.timeWeeks = sundays; +exports.timeYear = year; +exports.timeYears = years; +exports.utcDay = utcDay; +exports.utcDays = utcDays; +exports.utcFriday = utcFriday; +exports.utcFridays = utcFridays; +exports.utcHour = utcHour; +exports.utcHours = utcHours; +exports.utcMillisecond = millisecond; +exports.utcMilliseconds = milliseconds; +exports.utcMinute = utcMinute; +exports.utcMinutes = utcMinutes; +exports.utcMonday = utcMonday; +exports.utcMondays = utcMondays; +exports.utcMonth = utcMonth; +exports.utcMonths = utcMonths; +exports.utcSaturday = utcSaturday; +exports.utcSaturdays = utcSaturdays; +exports.utcSecond = second; +exports.utcSeconds = seconds; +exports.utcSunday = utcSunday; +exports.utcSundays = utcSundays; +exports.utcThursday = utcThursday; +exports.utcThursdays = utcThursdays; +exports.utcTuesday = utcTuesday; +exports.utcTuesdays = utcTuesdays; +exports.utcWednesday = utcWednesday; +exports.utcWednesdays = utcWednesdays; +exports.utcWeek = utcSunday; +exports.utcWeeks = utcSundays; +exports.utcYear = utcYear; +exports.utcYears = utcYears; + +Object.defineProperty(exports, '__esModule', { value: true }); + +})); + +},{}],170:[function(_dereq_,module,exports){ +// https://d3js.org/d3-timer/ v1.0.10 Copyright 2019 Mike Bostock +(function (global, factory) { +typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : +typeof define === 'function' && define.amd ? define(['exports'], factory) : +(global = global || self, factory(global.d3 = global.d3 || {})); +}(this, function (exports) { 'use strict'; + +var frame = 0, // is an animation frame pending? + timeout = 0, // is a timeout pending? + interval = 0, // are any timers active? + pokeDelay = 1000, // how frequently we check for clock skew + taskHead, + taskTail, + clockLast = 0, + clockNow = 0, + clockSkew = 0, + clock = typeof performance === "object" && performance.now ? performance : Date, + setFrame = typeof window === "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); }; + +function now() { + return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew); +} + +function clearNow() { + clockNow = 0; +} + +function Timer() { + this._call = + this._time = + this._next = null; +} + +Timer.prototype = timer.prototype = { + constructor: Timer, + restart: function(callback, delay, time) { + if (typeof callback !== "function") throw new TypeError("callback is not a function"); + time = (time == null ? now() : +time) + (delay == null ? 0 : +delay); + if (!this._next && taskTail !== this) { + if (taskTail) taskTail._next = this; + else taskHead = this; + taskTail = this; } - scale.invert = function(x) { - return d3_time_scaleDate(linear.invert(x)); - }; - scale.domain = function(x) { - if (!arguments.length) return linear.domain().map(d3_time_scaleDate); - linear.domain(x); - return scale; - }; - function tickMethod(extent, count) { - var span = extent[1] - extent[0], target = span / count, i = d3.bisect(d3_time_scaleSteps, target); - return i == d3_time_scaleSteps.length ? [ methods.year, d3_scale_linearTickRange(extent.map(function(d) { - return d / 31536e6; - }), count)[2] ] : !i ? [ d3_time_scaleMilliseconds, d3_scale_linearTickRange(extent, count)[2] ] : methods[target / d3_time_scaleSteps[i - 1] < d3_time_scaleSteps[i] / target ? i - 1 : i]; + this._call = callback; + this._time = time; + sleep(); + }, + stop: function() { + if (this._call) { + this._call = null; + this._time = Infinity; + sleep(); } - scale.nice = function(interval, skip) { - var domain = scale.domain(), extent = d3_scaleExtent(domain), method = interval == null ? tickMethod(extent, 10) : typeof interval === "number" && tickMethod(extent, interval); - if (method) interval = method[0], skip = method[1]; - function skipped(date) { - return !isNaN(date) && !interval.range(date, d3_time_scaleDate(+date + 1), skip).length; - } - return scale.domain(d3_scale_nice(domain, skip > 1 ? { - floor: function(date) { - while (skipped(date = interval.floor(date))) date = d3_time_scaleDate(date - 1); - return date; - }, - ceil: function(date) { - while (skipped(date = interval.ceil(date))) date = d3_time_scaleDate(+date + 1); - return date; - } - } : interval)); - }; - scale.ticks = function(interval, skip) { - var extent = d3_scaleExtent(scale.domain()), method = interval == null ? tickMethod(extent, 10) : typeof interval === "number" ? tickMethod(extent, interval) : !interval.range && [ { - range: interval - }, skip ]; - if (method) interval = method[0], skip = method[1]; - return interval.range(extent[0], d3_time_scaleDate(+extent[1] + 1), skip < 1 ? 1 : skip); - }; - scale.tickFormat = function() { - return format; - }; - scale.copy = function() { - return d3_time_scale(linear.copy(), methods, format); - }; - return d3_scale_linearRebind(scale, linear); } - function d3_time_scaleDate(t) { - return new Date(t); +}; + +function timer(callback, delay, time) { + var t = new Timer; + t.restart(callback, delay, time); + return t; +} + +function timerFlush() { + now(); // Get the current time, if not already set. + ++frame; // Pretend we’ve set an alarm, if we haven’t already. + var t = taskHead, e; + while (t) { + if ((e = clockNow - t._time) >= 0) t._call.call(null, e); + t = t._next; } - var d3_time_scaleSteps = [ 1e3, 5e3, 15e3, 3e4, 6e4, 3e5, 9e5, 18e5, 36e5, 108e5, 216e5, 432e5, 864e5, 1728e5, 6048e5, 2592e6, 7776e6, 31536e6 ]; - var d3_time_scaleLocalMethods = [ [ d3_time.second, 1 ], [ d3_time.second, 5 ], [ d3_time.second, 15 ], [ d3_time.second, 30 ], [ d3_time.minute, 1 ], [ d3_time.minute, 5 ], [ d3_time.minute, 15 ], [ d3_time.minute, 30 ], [ d3_time.hour, 1 ], [ d3_time.hour, 3 ], [ d3_time.hour, 6 ], [ d3_time.hour, 12 ], [ d3_time.day, 1 ], [ d3_time.day, 2 ], [ d3_time.week, 1 ], [ d3_time.month, 1 ], [ d3_time.month, 3 ], [ d3_time.year, 1 ] ]; - var d3_time_scaleLocalFormat = d3_time_format.multi([ [ ".%L", function(d) { - return d.getMilliseconds(); - } ], [ ":%S", function(d) { - return d.getSeconds(); - } ], [ "%I:%M", function(d) { - return d.getMinutes(); - } ], [ "%I %p", function(d) { - return d.getHours(); - } ], [ "%a %d", function(d) { - return d.getDay() && d.getDate() != 1; - } ], [ "%b %d", function(d) { - return d.getDate() != 1; - } ], [ "%B", function(d) { - return d.getMonth(); - } ], [ "%Y", d3_true ] ]); - var d3_time_scaleMilliseconds = { - range: function(start, stop, step) { - return d3.range(Math.ceil(start / step) * step, +stop, step).map(d3_time_scaleDate); - }, - floor: d3_identity, - ceil: d3_identity - }; - d3_time_scaleLocalMethods.year = d3_time.year; - d3_time.scale = function() { - return d3_time_scale(d3.scale.linear(), d3_time_scaleLocalMethods, d3_time_scaleLocalFormat); - }; - var d3_time_scaleUtcMethods = d3_time_scaleLocalMethods.map(function(m) { - return [ m[0].utc, m[1] ]; - }); - var d3_time_scaleUtcFormat = d3_time_formatUtc.multi([ [ ".%L", function(d) { - return d.getUTCMilliseconds(); - } ], [ ":%S", function(d) { - return d.getUTCSeconds(); - } ], [ "%I:%M", function(d) { - return d.getUTCMinutes(); - } ], [ "%I %p", function(d) { - return d.getUTCHours(); - } ], [ "%a %d", function(d) { - return d.getUTCDay() && d.getUTCDate() != 1; - } ], [ "%b %d", function(d) { - return d.getUTCDate() != 1; - } ], [ "%B", function(d) { - return d.getUTCMonth(); - } ], [ "%Y", d3_true ] ]); - d3_time_scaleUtcMethods.year = d3_time.year.utc; - d3_time.scale.utc = function() { - return d3_time_scale(d3.scale.linear(), d3_time_scaleUtcMethods, d3_time_scaleUtcFormat); - }; - d3.text = d3_xhrType(function(request) { - return request.responseText; - }); - d3.json = function(url, callback) { - return d3_xhr(url, "application/json", d3_json, callback); - }; - function d3_json(request) { - return JSON.parse(request.responseText); + --frame; +} + +function wake() { + clockNow = (clockLast = clock.now()) + clockSkew; + frame = timeout = 0; + try { + timerFlush(); + } finally { + frame = 0; + nap(); + clockNow = 0; } - d3.html = function(url, callback) { - return d3_xhr(url, "text/html", d3_html, callback); - }; - function d3_html(request) { - var range = d3_document.createRange(); - range.selectNode(d3_document.body); - return range.createContextualFragment(request.responseText); +} + +function poke() { + var now = clock.now(), delay = now - clockLast; + if (delay > pokeDelay) clockSkew -= delay, clockLast = now; +} + +function nap() { + var t0, t1 = taskHead, t2, time = Infinity; + while (t1) { + if (t1._call) { + if (time > t1._time) time = t1._time; + t0 = t1, t1 = t1._next; + } else { + t2 = t1._next, t1._next = null; + t1 = t0 ? t0._next = t2 : taskHead = t2; + } } - d3.xml = d3_xhrType(function(request) { - return request.responseXML; - }); - if (typeof define === "function" && define.amd) this.d3 = d3, define(d3); else if (typeof module === "object" && module.exports) module.exports = d3; else this.d3 = d3; -}(); -},{}],170:[function(_dereq_,module,exports){ + taskTail = t0; + sleep(time); +} + +function sleep(time) { + if (frame) return; // Soonest alarm already set, or will be. + if (timeout) timeout = clearTimeout(timeout); + var delay = time - clockNow; // Strictly less than if we recomputed clockNow. + if (delay > 24) { + if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew); + if (interval) interval = clearInterval(interval); + } else { + if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay); + frame = 1, setFrame(wake); + } +} + +function timeout$1(callback, delay, time) { + var t = new Timer; + delay = delay == null ? 0 : +delay; + t.restart(function(elapsed) { + t.stop(); + callback(elapsed + delay); + }, delay, time); + return t; +} + +function interval$1(callback, delay, time) { + var t = new Timer, total = delay; + if (delay == null) return t.restart(callback, delay, time), t; + delay = +delay, time = time == null ? now() : +time; + t.restart(function tick(elapsed) { + elapsed += total; + t.restart(tick, total += delay, time); + callback(elapsed); + }, delay, time); + return t; +} + +exports.interval = interval$1; +exports.now = now; +exports.timeout = timeout$1; +exports.timer = timer; +exports.timerFlush = timerFlush; + +Object.defineProperty(exports, '__esModule', { value: true }); + +})); + +},{}],171:[function(_dereq_,module,exports){ module.exports = function () { for (var i = 0; i < arguments.length; i++) { if (arguments[i] !== undefined) return arguments[i]; } }; -},{}],171:[function(_dereq_,module,exports){ +},{}],172:[function(_dereq_,module,exports){ "use strict" var ch = _dereq_("incremental-convex-hull") @@ -55232,7 +54976,7 @@ function triangulate(points, includePointAtInfinity) { return hull } -},{"incremental-convex-hull":459,"uniq":597}],172:[function(_dereq_,module,exports){ +},{"incremental-convex-hull":442,"uniq":613}],173:[function(_dereq_,module,exports){ 'use strict' @@ -55302,7 +55046,7 @@ function createPairs (range) { return pairs } -},{}],173:[function(_dereq_,module,exports){ +},{}],174:[function(_dereq_,module,exports){ (function (Buffer){(function (){ var hasTypedArrays = false if(typeof Float64Array !== "undefined") { @@ -55406,7 +55150,7 @@ module.exports.denormalized = function(n) { return !(hi & 0x7ff00000) } }).call(this)}).call(this,_dereq_("buffer").Buffer) -},{"buffer":111}],174:[function(_dereq_,module,exports){ +},{"buffer":113}],175:[function(_dereq_,module,exports){ var abs = _dereq_('abs-svg-path') var normalize = _dereq_('normalize-svg-path') @@ -55432,7 +55176,7 @@ module.exports = function(context, segments) { context.closePath() } -},{"abs-svg-path":65,"normalize-svg-path":497}],175:[function(_dereq_,module,exports){ +},{"abs-svg-path":67,"normalize-svg-path":482}],176:[function(_dereq_,module,exports){ module.exports = function(dtype) { switch (dtype) { case 'int8': @@ -55458,7 +55202,7 @@ module.exports = function(dtype) { } } -},{}],176:[function(_dereq_,module,exports){ +},{}],177:[function(_dereq_,module,exports){ "use strict" function dupe_array(count, value, i) { @@ -55508,7 +55252,7 @@ function dupe(count, value) { } module.exports = dupe -},{}],177:[function(_dereq_,module,exports){ +},{}],178:[function(_dereq_,module,exports){ 'use strict'; module.exports = earcut; @@ -56189,7 +55933,7 @@ earcut.flatten = function (data) { return result; }; -},{}],178:[function(_dereq_,module,exports){ +},{}],179:[function(_dereq_,module,exports){ "use strict" module.exports = edgeToAdjacency @@ -56223,7 +55967,7 @@ function edgeToAdjacency(edges, numVertices) { } return adj } -},{"uniq":597}],179:[function(_dereq_,module,exports){ +},{"uniq":613}],180:[function(_dereq_,module,exports){ var tarjan = _dereq_('strongly-connected-components'); module.exports = function findCircuits(edges, cb) { @@ -56381,7 +56125,7 @@ module.exports = function findCircuits(edges, cb) { } }; -},{"strongly-connected-components":569}],180:[function(_dereq_,module,exports){ +},{"strongly-connected-components":584}],181:[function(_dereq_,module,exports){ // Inspired by Google Closure: // http://closure-library.googlecode.com/svn/docs/ // closure_goog_array_array.js.html#goog.array.clear @@ -56395,12 +56139,12 @@ module.exports = function () { return this; }; -},{"../../object/valid-value":211}],181:[function(_dereq_,module,exports){ +},{"../../object/valid-value":212}],182:[function(_dereq_,module,exports){ "use strict"; module.exports = _dereq_("./is-implemented")() ? Array.from : _dereq_("./shim"); -},{"./is-implemented":182,"./shim":183}],182:[function(_dereq_,module,exports){ +},{"./is-implemented":183,"./shim":184}],183:[function(_dereq_,module,exports){ "use strict"; module.exports = function () { @@ -56411,7 +56155,7 @@ module.exports = function () { return Boolean(result && result !== arr && result[1] === "dwa"); }; -},{}],183:[function(_dereq_,module,exports){ +},{}],184:[function(_dereq_,module,exports){ "use strict"; var iteratorSymbol = _dereq_("es6-symbol").iterator @@ -56532,7 +56276,7 @@ module.exports = function (arrayLike/*, mapFn, thisArg*/) { return arr; }; -},{"../../function/is-arguments":184,"../../function/is-function":185,"../../number/to-pos-integer":191,"../../object/is-value":200,"../../object/valid-callable":209,"../../object/valid-value":211,"../../string/is-string":215,"es6-symbol":225}],184:[function(_dereq_,module,exports){ +},{"../../function/is-arguments":185,"../../function/is-function":186,"../../number/to-pos-integer":192,"../../object/is-value":201,"../../object/valid-callable":210,"../../object/valid-value":212,"../../string/is-string":216,"es6-symbol":225}],185:[function(_dereq_,module,exports){ "use strict"; var objToString = Object.prototype.toString @@ -56540,7 +56284,7 @@ var objToString = Object.prototype.toString module.exports = function (value) { return objToString.call(value) === id; }; -},{}],185:[function(_dereq_,module,exports){ +},{}],186:[function(_dereq_,module,exports){ "use strict"; var objToString = Object.prototype.toString @@ -56550,18 +56294,18 @@ module.exports = function (value) { return typeof value === "function" && isFunctionStringTag(objToString.call(value)); }; -},{}],186:[function(_dereq_,module,exports){ +},{}],187:[function(_dereq_,module,exports){ "use strict"; // eslint-disable-next-line no-empty-function module.exports = function () {}; -},{}],187:[function(_dereq_,module,exports){ +},{}],188:[function(_dereq_,module,exports){ "use strict"; module.exports = _dereq_("./is-implemented")() ? Math.sign : _dereq_("./shim"); -},{"./is-implemented":188,"./shim":189}],188:[function(_dereq_,module,exports){ +},{"./is-implemented":189,"./shim":190}],189:[function(_dereq_,module,exports){ "use strict"; module.exports = function () { @@ -56570,7 +56314,7 @@ module.exports = function () { return sign(10) === 1 && sign(-20) === -1; }; -},{}],189:[function(_dereq_,module,exports){ +},{}],190:[function(_dereq_,module,exports){ "use strict"; module.exports = function (value) { @@ -56579,7 +56323,7 @@ module.exports = function (value) { return value > 0 ? 1 : -1; }; -},{}],190:[function(_dereq_,module,exports){ +},{}],191:[function(_dereq_,module,exports){ "use strict"; var sign = _dereq_("../math/sign") @@ -56593,7 +56337,7 @@ module.exports = function (value) { return sign(value) * floor(abs(value)); }; -},{"../math/sign":187}],191:[function(_dereq_,module,exports){ +},{"../math/sign":188}],192:[function(_dereq_,module,exports){ "use strict"; var toInteger = _dereq_("./to-integer") @@ -56601,7 +56345,7 @@ var toInteger = _dereq_("./to-integer") module.exports = function (value) { return max(0, toInteger(value)); }; -},{"./to-integer":190}],192:[function(_dereq_,module,exports){ +},{"./to-integer":191}],193:[function(_dereq_,module,exports){ // Internal method, used by iteration functions. // Calls a function for each key-value pair found in object // Optionally takes compareFn to iterate object in specific order @@ -56633,12 +56377,12 @@ module.exports = function (method, defVal) { }; }; -},{"./valid-callable":209,"./valid-value":211}],193:[function(_dereq_,module,exports){ +},{"./valid-callable":210,"./valid-value":212}],194:[function(_dereq_,module,exports){ "use strict"; module.exports = _dereq_("./is-implemented")() ? Object.assign : _dereq_("./shim"); -},{"./is-implemented":194,"./shim":195}],194:[function(_dereq_,module,exports){ +},{"./is-implemented":195,"./shim":196}],195:[function(_dereq_,module,exports){ "use strict"; module.exports = function () { @@ -56649,7 +56393,7 @@ module.exports = function () { return obj.foo + obj.bar + obj.trzy === "razdwatrzy"; }; -},{}],195:[function(_dereq_,module,exports){ +},{}],196:[function(_dereq_,module,exports){ "use strict"; var keys = _dereq_("../keys") @@ -56674,7 +56418,7 @@ module.exports = function (dest, src/*, …srcn*/) { return dest; }; -},{"../keys":201,"../valid-value":211}],196:[function(_dereq_,module,exports){ +},{"../keys":202,"../valid-value":212}],197:[function(_dereq_,module,exports){ "use strict"; var aFrom = _dereq_("../array/from") @@ -56695,7 +56439,7 @@ module.exports = function (obj/*, propertyNames, options*/) { return result; }; -},{"../array/from":181,"./assign":193,"./valid-value":211}],197:[function(_dereq_,module,exports){ +},{"../array/from":182,"./assign":194,"./valid-value":212}],198:[function(_dereq_,module,exports){ // Workaround for http://code.google.com/p/v8/issues/detail?id=2804 "use strict"; @@ -56740,12 +56484,12 @@ module.exports = (function () { }; })(); -},{"./set-prototype-of/is-implemented":207,"./set-prototype-of/shim":208}],198:[function(_dereq_,module,exports){ +},{"./set-prototype-of/is-implemented":208,"./set-prototype-of/shim":209}],199:[function(_dereq_,module,exports){ "use strict"; module.exports = _dereq_("./_iterate")("forEach"); -},{"./_iterate":192}],199:[function(_dereq_,module,exports){ +},{"./_iterate":193}],200:[function(_dereq_,module,exports){ "use strict"; var isValue = _dereq_("./is-value"); @@ -56754,19 +56498,19 @@ var map = { function: true, object: true }; module.exports = function (value) { return (isValue(value) && map[typeof value]) || false; }; -},{"./is-value":200}],200:[function(_dereq_,module,exports){ +},{"./is-value":201}],201:[function(_dereq_,module,exports){ "use strict"; var _undefined = _dereq_("../function/noop")(); // Support ES3 engines module.exports = function (val) { return val !== _undefined && val !== null; }; -},{"../function/noop":186}],201:[function(_dereq_,module,exports){ +},{"../function/noop":187}],202:[function(_dereq_,module,exports){ "use strict"; module.exports = _dereq_("./is-implemented")() ? Object.keys : _dereq_("./shim"); -},{"./is-implemented":202,"./shim":203}],202:[function(_dereq_,module,exports){ +},{"./is-implemented":203,"./shim":204}],203:[function(_dereq_,module,exports){ "use strict"; module.exports = function () { @@ -56778,7 +56522,7 @@ module.exports = function () { } }; -},{}],203:[function(_dereq_,module,exports){ +},{}],204:[function(_dereq_,module,exports){ "use strict"; var isValue = _dereq_("../is-value"); @@ -56787,7 +56531,7 @@ var keys = Object.keys; module.exports = function (object) { return keys(isValue(object) ? Object(object) : object); }; -},{"../is-value":200}],204:[function(_dereq_,module,exports){ +},{"../is-value":201}],205:[function(_dereq_,module,exports){ "use strict"; var callable = _dereq_("./valid-callable") @@ -56803,7 +56547,7 @@ module.exports = function (obj, cb/*, thisArg*/) { return result; }; -},{"./for-each":198,"./valid-callable":209}],205:[function(_dereq_,module,exports){ +},{"./for-each":199,"./valid-callable":210}],206:[function(_dereq_,module,exports){ "use strict"; var isValue = _dereq_("./is-value"); @@ -56825,12 +56569,12 @@ module.exports = function (opts1/*, …options*/) { return result; }; -},{"./is-value":200}],206:[function(_dereq_,module,exports){ +},{"./is-value":201}],207:[function(_dereq_,module,exports){ "use strict"; module.exports = _dereq_("./is-implemented")() ? Object.setPrototypeOf : _dereq_("./shim"); -},{"./is-implemented":207,"./shim":208}],207:[function(_dereq_,module,exports){ +},{"./is-implemented":208,"./shim":209}],208:[function(_dereq_,module,exports){ "use strict"; var create = Object.create, getPrototypeOf = Object.getPrototypeOf, plainObject = {}; @@ -56841,7 +56585,7 @@ module.exports = function (/* CustomCreate*/) { return getPrototypeOf(setPrototypeOf(customCreate(null), plainObject)) === plainObject; }; -},{}],208:[function(_dereq_,module,exports){ +},{}],209:[function(_dereq_,module,exports){ /* eslint no-proto: "off" */ // Big thanks to @WebReflection for sorting this out @@ -56924,7 +56668,7 @@ module.exports = (function (status) { _dereq_("../create"); -},{"../create":197,"../is-object":199,"../valid-value":211}],209:[function(_dereq_,module,exports){ +},{"../create":198,"../is-object":200,"../valid-value":212}],210:[function(_dereq_,module,exports){ "use strict"; module.exports = function (fn) { @@ -56932,7 +56676,7 @@ module.exports = function (fn) { return fn; }; -},{}],210:[function(_dereq_,module,exports){ +},{}],211:[function(_dereq_,module,exports){ "use strict"; var isObject = _dereq_("./is-object"); @@ -56942,7 +56686,7 @@ module.exports = function (value) { return value; }; -},{"./is-object":199}],211:[function(_dereq_,module,exports){ +},{"./is-object":200}],212:[function(_dereq_,module,exports){ "use strict"; var isValue = _dereq_("./is-value"); @@ -56952,12 +56696,12 @@ module.exports = function (value) { return value; }; -},{"./is-value":200}],212:[function(_dereq_,module,exports){ +},{"./is-value":201}],213:[function(_dereq_,module,exports){ "use strict"; module.exports = _dereq_("./is-implemented")() ? String.prototype.contains : _dereq_("./shim"); -},{"./is-implemented":213,"./shim":214}],213:[function(_dereq_,module,exports){ +},{"./is-implemented":214,"./shim":215}],214:[function(_dereq_,module,exports){ "use strict"; var str = "razdwatrzy"; @@ -56967,7 +56711,7 @@ module.exports = function () { return str.contains("dwa") === true && str.contains("foo") === false; }; -},{}],214:[function(_dereq_,module,exports){ +},{}],215:[function(_dereq_,module,exports){ "use strict"; var indexOf = String.prototype.indexOf; @@ -56976,7 +56720,7 @@ module.exports = function (searchString/*, position*/) { return indexOf.call(this, searchString, arguments[1]) > -1; }; -},{}],215:[function(_dereq_,module,exports){ +},{}],216:[function(_dereq_,module,exports){ "use strict"; var objToString = Object.prototype.toString, id = objToString.call(""); @@ -56991,7 +56735,7 @@ module.exports = function (value) { ); }; -},{}],216:[function(_dereq_,module,exports){ +},{}],217:[function(_dereq_,module,exports){ "use strict"; var generated = Object.create(null), random = Math.random; @@ -57004,7 +56748,7 @@ module.exports = function () { return str; }; -},{}],217:[function(_dereq_,module,exports){ +},{}],218:[function(_dereq_,module,exports){ "use strict"; var setPrototypeOf = _dereq_("es5-ext/object/set-prototype-of") @@ -57038,7 +56782,7 @@ ArrayIterator.prototype = Object.create(Iterator.prototype, { }); defineProperty(ArrayIterator.prototype, Symbol.toStringTag, d("c", "Array Iterator")); -},{"./":220,"d":155,"es5-ext/object/set-prototype-of":206,"es5-ext/string/#/contains":212,"es6-symbol":225}],218:[function(_dereq_,module,exports){ +},{"./":221,"d":157,"es5-ext/object/set-prototype-of":207,"es5-ext/string/#/contains":213,"es6-symbol":225}],219:[function(_dereq_,module,exports){ "use strict"; var isArguments = _dereq_("es5-ext/function/is-arguments") @@ -57087,7 +56831,7 @@ module.exports = function (iterable, cb /*, thisArg*/) { } }; -},{"./get":219,"es5-ext/function/is-arguments":184,"es5-ext/object/valid-callable":209,"es5-ext/string/is-string":215}],219:[function(_dereq_,module,exports){ +},{"./get":220,"es5-ext/function/is-arguments":185,"es5-ext/object/valid-callable":210,"es5-ext/string/is-string":216}],220:[function(_dereq_,module,exports){ "use strict"; var isArguments = _dereq_("es5-ext/function/is-arguments") @@ -57104,7 +56848,7 @@ module.exports = function (obj) { return new ArrayIterator(obj); }; -},{"./array":217,"./string":222,"./valid-iterable":223,"es5-ext/function/is-arguments":184,"es5-ext/string/is-string":215,"es6-symbol":225}],220:[function(_dereq_,module,exports){ +},{"./array":218,"./string":223,"./valid-iterable":224,"es5-ext/function/is-arguments":185,"es5-ext/string/is-string":216,"es6-symbol":225}],221:[function(_dereq_,module,exports){ "use strict"; var clear = _dereq_("es5-ext/array/#/clear") @@ -57204,37407 +56948,40290 @@ defineProperties( ) ); -defineProperty( - Iterator.prototype, - Symbol.iterator, - d(function () { +defineProperty( + Iterator.prototype, + Symbol.iterator, + d(function () { + return this; + }) +); + +},{"d":157,"d/auto-bind":156,"es5-ext/array/#/clear":181,"es5-ext/object/assign":194,"es5-ext/object/valid-callable":210,"es5-ext/object/valid-value":212,"es6-symbol":225}],222:[function(_dereq_,module,exports){ +"use strict"; + +var isArguments = _dereq_("es5-ext/function/is-arguments") + , isValue = _dereq_("es5-ext/object/is-value") + , isString = _dereq_("es5-ext/string/is-string"); + +var iteratorSymbol = _dereq_("es6-symbol").iterator + , isArray = Array.isArray; + +module.exports = function (value) { + if (!isValue(value)) return false; + if (isArray(value)) return true; + if (isString(value)) return true; + if (isArguments(value)) return true; + return typeof value[iteratorSymbol] === "function"; +}; + +},{"es5-ext/function/is-arguments":185,"es5-ext/object/is-value":201,"es5-ext/string/is-string":216,"es6-symbol":225}],223:[function(_dereq_,module,exports){ +// Thanks @mathiasbynens +// http://mathiasbynens.be/notes/javascript-unicode#iterating-over-symbols + +"use strict"; + +var setPrototypeOf = _dereq_("es5-ext/object/set-prototype-of") + , d = _dereq_("d") + , Symbol = _dereq_("es6-symbol") + , Iterator = _dereq_("./"); + +var defineProperty = Object.defineProperty, StringIterator; + +StringIterator = module.exports = function (str) { + if (!(this instanceof StringIterator)) throw new TypeError("Constructor requires 'new'"); + str = String(str); + Iterator.call(this, str); + defineProperty(this, "__length__", d("", str.length)); +}; +if (setPrototypeOf) setPrototypeOf(StringIterator, Iterator); + +// Internal %ArrayIteratorPrototype% doesn't expose its constructor +delete StringIterator.prototype.constructor; + +StringIterator.prototype = Object.create(Iterator.prototype, { + _next: d(function () { + if (!this.__list__) return undefined; + if (this.__nextIndex__ < this.__length__) return this.__nextIndex__++; + this._unBind(); + return undefined; + }), + _resolve: d(function (i) { + var char = this.__list__[i], code; + if (this.__nextIndex__ === this.__length__) return char; + code = char.charCodeAt(0); + if (code >= 0xd800 && code <= 0xdbff) return char + this.__list__[this.__nextIndex__++]; + return char; + }) +}); +defineProperty(StringIterator.prototype, Symbol.toStringTag, d("c", "String Iterator")); + +},{"./":221,"d":157,"es5-ext/object/set-prototype-of":207,"es6-symbol":225}],224:[function(_dereq_,module,exports){ +"use strict"; + +var isIterable = _dereq_("./is-iterable"); + +module.exports = function (value) { + if (!isIterable(value)) throw new TypeError(value + " is not iterable"); + return value; +}; + +},{"./is-iterable":222}],225:[function(_dereq_,module,exports){ +"use strict"; + +module.exports = _dereq_("./is-implemented")() + ? _dereq_("ext/global-this").Symbol + : _dereq_("./polyfill"); + +},{"./is-implemented":226,"./polyfill":231,"ext/global-this":238}],226:[function(_dereq_,module,exports){ +"use strict"; + +var global = _dereq_("ext/global-this") + , validTypes = { object: true, symbol: true }; + +module.exports = function () { + var Symbol = global.Symbol; + var symbol; + if (typeof Symbol !== "function") return false; + symbol = Symbol("test symbol"); + try { String(symbol); } + catch (e) { return false; } + + // Return 'true' also for polyfills + if (!validTypes[typeof Symbol.iterator]) return false; + if (!validTypes[typeof Symbol.toPrimitive]) return false; + if (!validTypes[typeof Symbol.toStringTag]) return false; + + return true; +}; + +},{"ext/global-this":238}],227:[function(_dereq_,module,exports){ +"use strict"; + +module.exports = function (value) { + if (!value) return false; + if (typeof value === "symbol") return true; + if (!value.constructor) return false; + if (value.constructor.name !== "Symbol") return false; + return value[value.constructor.toStringTag] === "Symbol"; +}; + +},{}],228:[function(_dereq_,module,exports){ +"use strict"; + +var d = _dereq_("d"); + +var create = Object.create, defineProperty = Object.defineProperty, objPrototype = Object.prototype; + +var created = create(null); +module.exports = function (desc) { + var postfix = 0, name, ie11BugWorkaround; + while (created[desc + (postfix || "")]) ++postfix; + desc += postfix || ""; + created[desc] = true; + name = "@@" + desc; + defineProperty( + objPrototype, + name, + d.gs(null, function (value) { + // For IE11 issue see: + // https://connect.microsoft.com/IE/feedbackdetail/view/1928508/ + // ie11-broken-getters-on-dom-objects + // https://github.com/medikoo/es6-symbol/issues/12 + if (ie11BugWorkaround) return; + ie11BugWorkaround = true; + defineProperty(this, name, d(value)); + ie11BugWorkaround = false; + }) + ); + return name; +}; + +},{"d":157}],229:[function(_dereq_,module,exports){ +"use strict"; + +var d = _dereq_("d") + , NativeSymbol = _dereq_("ext/global-this").Symbol; + +module.exports = function (SymbolPolyfill) { + return Object.defineProperties(SymbolPolyfill, { + // To ensure proper interoperability with other native functions (e.g. Array.from) + // fallback to eventual native implementation of given symbol + hasInstance: d( + "", (NativeSymbol && NativeSymbol.hasInstance) || SymbolPolyfill("hasInstance") + ), + isConcatSpreadable: d( + "", + (NativeSymbol && NativeSymbol.isConcatSpreadable) || + SymbolPolyfill("isConcatSpreadable") + ), + iterator: d("", (NativeSymbol && NativeSymbol.iterator) || SymbolPolyfill("iterator")), + match: d("", (NativeSymbol && NativeSymbol.match) || SymbolPolyfill("match")), + replace: d("", (NativeSymbol && NativeSymbol.replace) || SymbolPolyfill("replace")), + search: d("", (NativeSymbol && NativeSymbol.search) || SymbolPolyfill("search")), + species: d("", (NativeSymbol && NativeSymbol.species) || SymbolPolyfill("species")), + split: d("", (NativeSymbol && NativeSymbol.split) || SymbolPolyfill("split")), + toPrimitive: d( + "", (NativeSymbol && NativeSymbol.toPrimitive) || SymbolPolyfill("toPrimitive") + ), + toStringTag: d( + "", (NativeSymbol && NativeSymbol.toStringTag) || SymbolPolyfill("toStringTag") + ), + unscopables: d( + "", (NativeSymbol && NativeSymbol.unscopables) || SymbolPolyfill("unscopables") + ) + }); +}; + +},{"d":157,"ext/global-this":238}],230:[function(_dereq_,module,exports){ +"use strict"; + +var d = _dereq_("d") + , validateSymbol = _dereq_("../../../validate-symbol"); + +var registry = Object.create(null); + +module.exports = function (SymbolPolyfill) { + return Object.defineProperties(SymbolPolyfill, { + for: d(function (key) { + if (registry[key]) return registry[key]; + return (registry[key] = SymbolPolyfill(String(key))); + }), + keyFor: d(function (symbol) { + var key; + validateSymbol(symbol); + for (key in registry) { + if (registry[key] === symbol) return key; + } + return undefined; + }) + }); +}; + +},{"../../../validate-symbol":232,"d":157}],231:[function(_dereq_,module,exports){ +// ES2015 Symbol polyfill for environments that do not (or partially) support it + +"use strict"; + +var d = _dereq_("d") + , validateSymbol = _dereq_("./validate-symbol") + , NativeSymbol = _dereq_("ext/global-this").Symbol + , generateName = _dereq_("./lib/private/generate-name") + , setupStandardSymbols = _dereq_("./lib/private/setup/standard-symbols") + , setupSymbolRegistry = _dereq_("./lib/private/setup/symbol-registry"); + +var create = Object.create + , defineProperties = Object.defineProperties + , defineProperty = Object.defineProperty; + +var SymbolPolyfill, HiddenSymbol, isNativeSafe; + +if (typeof NativeSymbol === "function") { + try { + String(NativeSymbol()); + isNativeSafe = true; + } catch (ignore) {} +} else { + NativeSymbol = null; +} + +// Internal constructor (not one exposed) for creating Symbol instances. +// This one is used to ensure that `someSymbol instanceof Symbol` always return false +HiddenSymbol = function Symbol(description) { + if (this instanceof HiddenSymbol) throw new TypeError("Symbol is not a constructor"); + return SymbolPolyfill(description); +}; + +// Exposed `Symbol` constructor +// (returns instances of HiddenSymbol) +module.exports = SymbolPolyfill = function Symbol(description) { + var symbol; + if (this instanceof Symbol) throw new TypeError("Symbol is not a constructor"); + if (isNativeSafe) return NativeSymbol(description); + symbol = create(HiddenSymbol.prototype); + description = description === undefined ? "" : String(description); + return defineProperties(symbol, { + __description__: d("", description), + __name__: d("", generateName(description)) + }); +}; + +setupStandardSymbols(SymbolPolyfill); +setupSymbolRegistry(SymbolPolyfill); + +// Internal tweaks for real symbol producer +defineProperties(HiddenSymbol.prototype, { + constructor: d(SymbolPolyfill), + toString: d("", function () { return this.__name__; }) +}); + +// Proper implementation of methods exposed on Symbol.prototype +// They won't be accessible on produced symbol instances as they derive from HiddenSymbol.prototype +defineProperties(SymbolPolyfill.prototype, { + toString: d(function () { return "Symbol (" + validateSymbol(this).__description__ + ")"; }), + valueOf: d(function () { return validateSymbol(this); }) +}); +defineProperty( + SymbolPolyfill.prototype, + SymbolPolyfill.toPrimitive, + d("", function () { + var symbol = validateSymbol(this); + if (typeof symbol === "symbol") return symbol; + return symbol.toString(); + }) +); +defineProperty(SymbolPolyfill.prototype, SymbolPolyfill.toStringTag, d("c", "Symbol")); + +// Proper implementaton of toPrimitive and toStringTag for returned symbol instances +defineProperty( + HiddenSymbol.prototype, SymbolPolyfill.toStringTag, + d("c", SymbolPolyfill.prototype[SymbolPolyfill.toStringTag]) +); + +// Note: It's important to define `toPrimitive` as last one, as some implementations +// implement `toPrimitive` natively without implementing `toStringTag` (or other specified symbols) +// And that may invoke error in definition flow: +// See: https://github.com/medikoo/es6-symbol/issues/13#issuecomment-164146149 +defineProperty( + HiddenSymbol.prototype, SymbolPolyfill.toPrimitive, + d("c", SymbolPolyfill.prototype[SymbolPolyfill.toPrimitive]) +); + +},{"./lib/private/generate-name":228,"./lib/private/setup/standard-symbols":229,"./lib/private/setup/symbol-registry":230,"./validate-symbol":232,"d":157,"ext/global-this":238}],232:[function(_dereq_,module,exports){ +"use strict"; + +var isSymbol = _dereq_("./is-symbol"); + +module.exports = function (value) { + if (!isSymbol(value)) throw new TypeError(value + " is not a symbol"); + return value; +}; + +},{"./is-symbol":227}],233:[function(_dereq_,module,exports){ +"use strict"; + +module.exports = _dereq_("./is-implemented")() ? WeakMap : _dereq_("./polyfill"); + +},{"./is-implemented":234,"./polyfill":236}],234:[function(_dereq_,module,exports){ +"use strict"; + +module.exports = function () { + var weakMap, obj; + + if (typeof WeakMap !== "function") return false; + try { + // WebKit doesn't support arguments and crashes + weakMap = new WeakMap([[obj = {}, "one"], [{}, "two"], [{}, "three"]]); + } catch (e) { + return false; + } + if (String(weakMap) !== "[object WeakMap]") return false; + if (typeof weakMap.set !== "function") return false; + if (weakMap.set({}, 1) !== weakMap) return false; + if (typeof weakMap.delete !== "function") return false; + if (typeof weakMap.has !== "function") return false; + if (weakMap.get(obj) !== "one") return false; + + return true; +}; + +},{}],235:[function(_dereq_,module,exports){ +// Exports true if environment provides native `WeakMap` implementation, whatever that is. + +"use strict"; + +module.exports = (function () { + if (typeof WeakMap !== "function") return false; + return Object.prototype.toString.call(new WeakMap()) === "[object WeakMap]"; +}()); + +},{}],236:[function(_dereq_,module,exports){ +"use strict"; + +var isValue = _dereq_("es5-ext/object/is-value") + , setPrototypeOf = _dereq_("es5-ext/object/set-prototype-of") + , object = _dereq_("es5-ext/object/valid-object") + , ensureValue = _dereq_("es5-ext/object/valid-value") + , randomUniq = _dereq_("es5-ext/string/random-uniq") + , d = _dereq_("d") + , getIterator = _dereq_("es6-iterator/get") + , forOf = _dereq_("es6-iterator/for-of") + , toStringTagSymbol = _dereq_("es6-symbol").toStringTag + , isNative = _dereq_("./is-native-implemented") + + , isArray = Array.isArray, defineProperty = Object.defineProperty + , objHasOwnProperty = Object.prototype.hasOwnProperty, getPrototypeOf = Object.getPrototypeOf + , WeakMapPoly; + +module.exports = WeakMapPoly = function (/* Iterable*/) { + var iterable = arguments[0], self; + + if (!(this instanceof WeakMapPoly)) throw new TypeError("Constructor requires 'new'"); + self = isNative && setPrototypeOf && (WeakMap !== WeakMapPoly) + ? setPrototypeOf(new WeakMap(), getPrototypeOf(this)) : this; + + if (isValue(iterable)) { + if (!isArray(iterable)) iterable = getIterator(iterable); + } + defineProperty(self, "__weakMapData__", d("c", "$weakMap$" + randomUniq())); + if (!iterable) return self; + forOf(iterable, function (val) { + ensureValue(val); + self.set(val[0], val[1]); + }); + return self; +}; + +if (isNative) { + if (setPrototypeOf) setPrototypeOf(WeakMapPoly, WeakMap); + WeakMapPoly.prototype = Object.create(WeakMap.prototype, { constructor: d(WeakMapPoly) }); +} + +Object.defineProperties(WeakMapPoly.prototype, { + delete: d(function (key) { + if (objHasOwnProperty.call(object(key), this.__weakMapData__)) { + delete key[this.__weakMapData__]; + return true; + } + return false; + }), + get: d(function (key) { + if (!objHasOwnProperty.call(object(key), this.__weakMapData__)) return undefined; + return key[this.__weakMapData__]; + }), + has: d(function (key) { + return objHasOwnProperty.call(object(key), this.__weakMapData__); + }), + set: d(function (key, value) { + defineProperty(object(key), this.__weakMapData__, d("c", value)); return this; + }), + toString: d(function () { + return "[object WeakMap]"; }) -); +}); +defineProperty(WeakMapPoly.prototype, toStringTagSymbol, d("c", "WeakMap")); + +},{"./is-native-implemented":235,"d":157,"es5-ext/object/is-value":201,"es5-ext/object/set-prototype-of":207,"es5-ext/object/valid-object":211,"es5-ext/object/valid-value":212,"es5-ext/string/random-uniq":217,"es6-iterator/for-of":219,"es6-iterator/get":220,"es6-symbol":225}],237:[function(_dereq_,module,exports){ +var naiveFallback = function () { + if (typeof self === "object" && self) return self; + if (typeof window === "object" && window) return window; + throw new Error("Unable to resolve global `this`"); +}; + +module.exports = (function () { + if (this) return this; + + // Unexpected strict mode (may happen if e.g. bundled into ESM module) + + // Thanks @mathiasbynens -> https://mathiasbynens.be/notes/globalthis + // In all ES5+ engines global object inherits from Object.prototype + // (if you approached one that doesn't please report) + try { + Object.defineProperty(Object.prototype, "__global__", { + get: function () { return this; }, + configurable: true + }); + } catch (error) { + // Unfortunate case of Object.prototype being sealed (via preventExtensions, seal or freeze) + return naiveFallback(); + } + try { + // Safari case (window.__global__ is resolved with global context, but __global__ does not) + if (!__global__) return naiveFallback(); + return __global__; + } finally { + delete Object.prototype.__global__; + } +})(); -},{"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(_dereq_,module,exports){ +},{}],238:[function(_dereq_,module,exports){ "use strict"; -var isArguments = _dereq_("es5-ext/function/is-arguments") - , isValue = _dereq_("es5-ext/object/is-value") - , isString = _dereq_("es5-ext/string/is-string"); +module.exports = _dereq_("./is-implemented")() ? globalThis : _dereq_("./implementation"); -var iteratorSymbol = _dereq_("es6-symbol").iterator - , isArray = Array.isArray; +},{"./implementation":237,"./is-implemented":239}],239:[function(_dereq_,module,exports){ +"use strict"; -module.exports = function (value) { - if (!isValue(value)) return false; - if (isArray(value)) return true; - if (isString(value)) return true; - if (isArguments(value)) return true; - return typeof value[iteratorSymbol] === "function"; +module.exports = function () { + if (typeof globalThis !== "object") return false; + if (!globalThis) return false; + return globalThis.Array === Array; }; -},{"es5-ext/function/is-arguments":184,"es5-ext/object/is-value":200,"es5-ext/string/is-string":215,"es6-symbol":225}],222:[function(_dereq_,module,exports){ -// Thanks @mathiasbynens -// http://mathiasbynens.be/notes/javascript-unicode#iterating-over-symbols +},{}],240:[function(_dereq_,module,exports){ +"use strict" -"use strict"; +module.exports = extractPlanes -var setPrototypeOf = _dereq_("es5-ext/object/set-prototype-of") - , d = _dereq_("d") - , Symbol = _dereq_("es6-symbol") - , Iterator = _dereq_("./"); +function extractPlanes(M, zNear, zFar) { + var z = zNear || 0.0 + var zf = zFar || 1.0 + return [ + [ M[12] + M[0], M[13] + M[1], M[14] + M[2], M[15] + M[3] ], + [ M[12] - M[0], M[13] - M[1], M[14] - M[2], M[15] - M[3] ], + [ M[12] + M[4], M[13] + M[5], M[14] + M[6], M[15] + M[7] ], + [ M[12] - M[4], M[13] - M[5], M[14] - M[6], M[15] - M[7] ], + [ z*M[12] + M[8], z*M[13] + M[9], z*M[14] + M[10], z*M[15] + M[11] ], + [ zf*M[12] - M[8], zf*M[13] - M[9], zf*M[14] - M[10], zf*M[15] - M[11] ] + ] +} +},{}],241:[function(_dereq_,module,exports){ +/** + * inspired by is-number + * but significantly simplified and sped up by ignoring number and string constructors + * ie these return false: + * new Number(1) + * new String('1') + */ -var defineProperty = Object.defineProperty, StringIterator; +'use strict'; -StringIterator = module.exports = function (str) { - if (!(this instanceof StringIterator)) throw new TypeError("Constructor requires 'new'"); - str = String(str); - Iterator.call(this, str); - defineProperty(this, "__length__", d("", str.length)); +var allBlankCharCodes = _dereq_('is-string-blank'); + +module.exports = function(n) { + var type = typeof n; + if(type === 'string') { + var original = n; + n = +n; + // whitespace strings cast to zero - filter them out + if(n===0 && allBlankCharCodes(original)) return false; + } + else if(type !== 'number') return false; + + return n - n < 1; }; -if (setPrototypeOf) setPrototypeOf(StringIterator, Iterator); -// Internal %ArrayIteratorPrototype% doesn't expose its constructor -delete StringIterator.prototype.constructor; +},{"is-string-blank":454}],242:[function(_dereq_,module,exports){ +'use strict' -StringIterator.prototype = Object.create(Iterator.prototype, { - _next: d(function () { - if (!this.__list__) return undefined; - if (this.__nextIndex__ < this.__length__) return this.__nextIndex__++; - this._unBind(); - return undefined; - }), - _resolve: d(function (i) { - var char = this.__list__[i], code; - if (this.__nextIndex__ === this.__length__) return char; - code = char.charCodeAt(0); - if (code >= 0xd800 && code <= 0xdbff) return char + this.__list__[this.__nextIndex__++]; - return char; - }) -}); -defineProperty(StringIterator.prototype, Symbol.toStringTag, d("c", "String Iterator")); +module.exports = createFilteredVector -},{"./":220,"d":155,"es5-ext/object/set-prototype-of":206,"es6-symbol":225}],223:[function(_dereq_,module,exports){ -"use strict"; +var cubicHermite = _dereq_('cubic-hermite') +var bsearch = _dereq_('binary-search-bounds') -var isIterable = _dereq_("./is-iterable"); +function clamp(lo, hi, x) { + return Math.min(hi, Math.max(lo, x)) +} -module.exports = function (value) { - if (!isIterable(value)) throw new TypeError(value + " is not iterable"); - return value; -}; +function FilteredVector(state0, velocity0, t0) { + this.dimension = state0.length + this.bounds = [ new Array(this.dimension), new Array(this.dimension) ] + for(var i=0; i= n-1) { + var ptr = state.length-1 + var tf = t - time[n-1] + for(var i=0; i= n-1) { + var ptr = state.length-1 + var tf = t - time[n-1] + for(var i=0; i=0; --i) { + if(velocity[--ptr]) { + return false + } + } + return true } -function isFunction(x) { - return typeof x === 'function'; +proto.jump = function(t) { + var t0 = this.lastT() + var d = this.dimension + if(t < t0 || arguments.length !== d+1) { + return + } + var state = this._state + var velocity = this._velocity + var ptr = state.length-this.dimension + var bounds = this.bounds + var lo = bounds[0] + var hi = bounds[1] + this._time.push(t0, t) + for(var j=0; j<2; ++j) { + for(var i=0; i0; --i) { + state.push(clamp(lo[i-1], hi[i-1], arguments[i])) + velocity.push(0) + } } +proto.push = function(t) { + var t0 = this.lastT() + var d = this.dimension + if(t < t0 || arguments.length !== d+1) { + return + } + var state = this._state + var velocity = this._velocity + var ptr = state.length-this.dimension + var dt = t - t0 + var bounds = this.bounds + var lo = bounds[0] + var hi = bounds[1] + var sf = (dt > 1e-6) ? 1/dt : 0 + this._time.push(t) + for(var i=d; i>0; --i) { + var xc = clamp(lo[i-1], hi[i-1], arguments[i]) + state.push(xc) + velocity.push((xc - state[ptr++]) * sf) + } +} +proto.set = function(t) { + var d = this.dimension + if(t < this.lastT() || arguments.length !== d+1) { + return + } + var state = this._state + var velocity = this._velocity + var bounds = this.bounds + var lo = bounds[0] + var hi = bounds[1] + this._time.push(t) + for(var i=d; i>0; --i) { + state.push(clamp(lo[i-1], hi[i-1], arguments[i])) + velocity.push(0) + } +} -var _isArray = void 0; -if (Array.isArray) { - _isArray = Array.isArray; -} else { - _isArray = function (x) { - return Object.prototype.toString.call(x) === '[object Array]'; - }; +proto.move = function(t) { + var t0 = this.lastT() + var d = this.dimension + if(t <= t0 || arguments.length !== d+1) { + return + } + var state = this._state + var velocity = this._velocity + var statePtr = state.length - this.dimension + var bounds = this.bounds + var lo = bounds[0] + var hi = bounds[1] + var dt = t - t0 + var sf = (dt > 1e-6) ? 1/dt : 0.0 + this._time.push(t) + for(var i=d; i>0; --i) { + var dx = arguments[i] + state.push(clamp(lo[i-1], hi[i-1], state[statePtr++] + dx)) + velocity.push(dx * sf) + } +} + +proto.idle = function(t) { + var t0 = this.lastT() + if(t < t0) { + return + } + var d = this.dimension + var state = this._state + var velocity = this._velocity + var statePtr = state.length-d + var bounds = this.bounds + var lo = bounds[0] + var hi = bounds[1] + var dt = t - t0 + this._time.push(t) + for(var i=d-1; i>=0; --i) { + state.push(clamp(lo[i], hi[i], state[statePtr] + dt * velocity[statePtr])) + velocity.push(0) + statePtr += 1 + } +} + +function getZero(d) { + var result = new Array(d) + for(var i=0; i>>1,x=a", useNdarray ? ".get(m)" : "[m]"] + if(earlyOut) { + if(predicate.indexOf("c") < 0) { + code.push(";if(x===y){return m}else if(x<=y){") } else { - scheduleFlush(); + code.push(";var p=c(x,y);if(p===0){return m}else if(p<=0){") } + } else { + code.push(";if(", predicate, "){i=m;") } -}; + if(reversed) { + code.push("l=m+1}else{h=m-1}") + } else { + code.push("h=m-1}else{l=m+1}") + } + code.push("}") + if(earlyOut) { + code.push("return -1};") + } else { + code.push("return i};") + } + return code.join("") +} -function setScheduler(scheduleFn) { - customSchedulerFn = scheduleFn; +function compileBoundsSearch(predicate, reversed, suffix, earlyOut) { + var result = new Function([ + compileSearch("A", "x" + predicate + "y", reversed, ["y"], false, earlyOut), + compileSearch("B", "x" + predicate + "y", reversed, ["y"], true, earlyOut), + compileSearch("P", "c(x,y)" + predicate + "0", reversed, ["y", "c"], false, earlyOut), + compileSearch("Q", "c(x,y)" + predicate + "0", reversed, ["y", "c"], true, earlyOut), +"function dispatchBsearch", suffix, "(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", suffix].join("")) + return result() } -function setAsap(asapFn) { - asap = asapFn; +module.exports = { + ge: compileBoundsSearch(">=", false, "GE"), + gt: compileBoundsSearch(">", false, "GT"), + lt: compileBoundsSearch("<", true, "LT"), + le: compileBoundsSearch("<=", true, "LE"), + eq: compileBoundsSearch("-", true, "EQ", true) } -var browserWindow = typeof window !== 'undefined' ? window : undefined; -var browserGlobal = browserWindow || {}; -var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver; -var isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]'; +},{}],244:[function(_dereq_,module,exports){ +/*eslint new-cap:0*/ +var dtype = _dereq_('dtype') -// test for web worker but not in IE10 -var isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined'; +module.exports = flattenVertexData -// node -function useNextTick() { - // node version 0.10.x displays a deprecation warning when nextTick is used recursively - // see https://github.com/cujojs/when/issues/410 for details - return function () { - return process.nextTick(flush); - }; -} +function flattenVertexData (data, output, offset) { + if (!data) throw new TypeError('must specify data as first parameter') + offset = +(offset || 0) | 0 -// vertx -function useVertxTimer() { - if (typeof vertxNext !== 'undefined') { - return function () { - vertxNext(flush); - }; + if (Array.isArray(data) && (data[0] && typeof data[0][0] === 'number')) { + var dim = data[0].length + var length = data.length * dim + var i, j, k, l + + // no output specified, create a new typed array + if (!output || typeof output === 'string') { + output = new (dtype(output || 'float32'))(length + offset) + } + + var dstLength = output.length - offset + if (length !== dstLength) { + throw new Error('source length ' + length + ' (' + dim + 'x' + data.length + ')' + + ' does not match destination length ' + dstLength) + } + + for (i = 0, k = offset; i < data.length; i++) { + for (j = 0; j < dim; j++) { + output[k++] = data[i][j] === null ? NaN : data[i][j] + } + } + } else { + if (!output || typeof output === 'string') { + // no output, create a new one + var Ctor = dtype(output || 'float32') + + // handle arrays separately due to possible nulls + if (Array.isArray(data) || output === 'array') { + output = new Ctor(data.length + offset) + for (i = 0, k = offset, l = output.length; k < l; k++, i++) { + output[k] = data[i] === null ? NaN : data[i] + } + } else { + if (offset === 0) { + output = new Ctor(data) + } else { + output = new Ctor(data.length + offset) + + output.set(data, offset) + } + } + } else { + // store output in existing array + output.set(data, offset) + } } - return useSetTimeout(); + return output } -function useMutationObserver() { - var iterations = 0; - var observer = new BrowserMutationObserver(flush); - var node = document.createTextNode(''); - observer.observe(node, { characterData: true }); +},{"dtype":176}],245:[function(_dereq_,module,exports){ +'use strict' + +var stringifyFont = _dereq_('css-font/stringify') +var defaultChars = [32, 126] + +module.exports = atlas + +function atlas(options) { + options = options || {} + + var shape = options.shape ? options.shape : options.canvas ? [options.canvas.width, options.canvas.height] : [512, 512] + var canvas = options.canvas || document.createElement('canvas') + var font = options.font + var step = typeof options.step === 'number' ? [options.step, options.step] : options.step || [32, 32] + var chars = options.chars || defaultChars + + if (font && typeof font !== 'string') font = stringifyFont(font) + + if (!Array.isArray(chars)) { + chars = String(chars).split('') + } else + if (chars.length === 2 + && typeof chars[0] === 'number' + && typeof chars[1] === 'number' + ) { + var newchars = [] + + for (var i = chars[0], j = 0; i <= chars[1]; i++) { + newchars[j++] = String.fromCharCode(i) + } + + chars = newchars + } + + shape = shape.slice() + canvas.width = shape[0] + canvas.height = shape[1] + + var ctx = canvas.getContext('2d') + + ctx.fillStyle = '#000' + ctx.fillRect(0, 0, canvas.width, canvas.height) + + ctx.font = font + ctx.textAlign = 'center' + ctx.textBaseline = 'middle' + ctx.fillStyle = '#fff' + + var x = step[0] / 2 + var y = step[1] / 2 + for (var i = 0; i < chars.length; i++) { + ctx.fillText(chars[i], x, y) + if ((x += step[0]) > shape[0] - step[0]/2) (x = step[0]/2), (y += step[1]) + } + + return canvas +} - return function () { - node.data = iterations = ++iterations % 2; - }; +},{"css-font/stringify":149}],246:[function(_dereq_,module,exports){ +'use strict' + +module.exports = measure + +measure.canvas = document.createElement('canvas') +measure.cache = {} + +function measure (font, o) { + if (!o) o = {} + + if (typeof font === 'string' || Array.isArray(font)) { + o.family = font + } + + var family = Array.isArray(o.family) ? o.family.join(', ') : o.family + if (!family) throw Error('`family` must be defined') + + var fs = o.size || o.fontSize || o.em || 48 + var weight = o.weight || o.fontWeight || '' + var style = o.style || o.fontStyle || '' + var font = [style, weight, fs].join(' ') + 'px ' + family + var origin = o.origin || 'top' + + if (measure.cache[family]) { + // return more precise values if cache has them + if (fs <= measure.cache[family].em) { + return applyOrigin(measure.cache[family], origin) + } + } + + var canvas = o.canvas || measure.canvas + var ctx = canvas.getContext('2d') + var chars = { + upper: o.upper !== undefined ? o.upper : 'H', + lower: o.lower !== undefined ? o.lower : 'x', + descent: o.descent !== undefined ? o.descent : 'p', + ascent: o.ascent !== undefined ? o.ascent : 'h', + tittle: o.tittle !== undefined ? o.tittle : 'i', + overshoot: o.overshoot !== undefined ? o.overshoot : 'O' + } + var l = Math.ceil(fs * 1.5) + canvas.height = l + canvas.width = l * .5 + ctx.font = font + + var char = 'H' + var result = { + top: 0 + } + + // measure line-height + ctx.clearRect(0, 0, l, l) + ctx.textBaseline = 'top' + ctx.fillStyle = 'black' + ctx.fillText(char, 0, 0) + var topPx = firstTop(ctx.getImageData(0, 0, l, l)) + ctx.clearRect(0, 0, l, l) + ctx.textBaseline = 'bottom' + ctx.fillText(char, 0, l) + var bottomPx = firstTop(ctx.getImageData(0, 0, l, l)) + result.lineHeight = + result.bottom = l - bottomPx + topPx + + // measure baseline + ctx.clearRect(0, 0, l, l) + ctx.textBaseline = 'alphabetic' + ctx.fillText(char, 0, l) + var baselinePx = firstTop(ctx.getImageData(0, 0, l, l)) + var baseline = l - baselinePx - 1 + topPx + result.baseline = + result.alphabetic = baseline + + // measure median + ctx.clearRect(0, 0, l, l) + ctx.textBaseline = 'middle' + ctx.fillText(char, 0, l * .5) + var medianPx = firstTop(ctx.getImageData(0, 0, l, l)) + result.median = + result.middle = l - medianPx - 1 + topPx - l * .5 + + // measure hanging + ctx.clearRect(0, 0, l, l) + ctx.textBaseline = 'hanging' + ctx.fillText(char, 0, l * .5) + var hangingPx = firstTop(ctx.getImageData(0, 0, l, l)) + result.hanging = l - hangingPx - 1 + topPx - l * .5 + + // measure ideographic + ctx.clearRect(0, 0, l, l) + ctx.textBaseline = 'ideographic' + ctx.fillText(char, 0, l) + var ideographicPx = firstTop(ctx.getImageData(0, 0, l, l)) + result.ideographic = l - ideographicPx - 1 + topPx + + // measure cap + if (chars.upper) { + ctx.clearRect(0, 0, l, l) + ctx.textBaseline = 'top' + ctx.fillText(chars.upper, 0, 0) + result.upper = firstTop(ctx.getImageData(0, 0, l, l)) + result.capHeight = (result.baseline - result.upper) + } + + // measure x + if (chars.lower) { + ctx.clearRect(0, 0, l, l) + ctx.textBaseline = 'top' + ctx.fillText(chars.lower, 0, 0) + result.lower = firstTop(ctx.getImageData(0, 0, l, l)) + result.xHeight = (result.baseline - result.lower) + } + + // measure tittle + if (chars.tittle) { + ctx.clearRect(0, 0, l, l) + ctx.textBaseline = 'top' + ctx.fillText(chars.tittle, 0, 0) + result.tittle = firstTop(ctx.getImageData(0, 0, l, l)) + } + + // measure ascent + if (chars.ascent) { + ctx.clearRect(0, 0, l, l) + ctx.textBaseline = 'top' + ctx.fillText(chars.ascent, 0, 0) + result.ascent = firstTop(ctx.getImageData(0, 0, l, l)) + } + + // measure descent + if (chars.descent) { + ctx.clearRect(0, 0, l, l) + ctx.textBaseline = 'top' + ctx.fillText(chars.descent, 0, 0) + result.descent = firstBottom(ctx.getImageData(0, 0, l, l)) + } + + // measure overshoot + if (chars.overshoot) { + ctx.clearRect(0, 0, l, l) + ctx.textBaseline = 'top' + ctx.fillText(chars.overshoot, 0, 0) + var overshootPx = firstBottom(ctx.getImageData(0, 0, l, l)) + result.overshoot = overshootPx - baseline + } + + // normalize result + for (var name in result) { + result[name] /= fs + } + + result.em = fs + measure.cache[family] = result + + return applyOrigin(result, origin) +} + +function applyOrigin(obj, origin) { + var res = {} + if (typeof origin === 'string') origin = obj[origin] + for (var name in obj) { + if (name === 'em') continue + res[name] = obj[name] - origin + } + return res +} + +function firstTop(iData) { + var l = iData.height + var data = iData.data + for (var i = 3; i < data.length; i+=4) { + if (data[i] !== 0) { + return Math.floor((i - 3) *.25 / l) + } + } +} + +function firstBottom(iData) { + var l = iData.height + var data = iData.data + for (var i = data.length - 1; i > 0; i -= 4) { + if (data[i] !== 0) { + return Math.floor((i - 3) *.25 / l) + } + } +} + +},{}],247:[function(_dereq_,module,exports){ +"use strict" + +module.exports = createRBTree + +var RED = 0 +var BLACK = 1 + +function RBNode(color, key, value, left, right, count) { + this._color = color + this.key = key + this.value = value + this.left = left + this.right = right + this._count = count } -// web worker -function useMessageChannel() { - var channel = new MessageChannel(); - channel.port1.onmessage = flush; - return function () { - return channel.port2.postMessage(0); - }; +function cloneNode(node) { + return new RBNode(node._color, node.key, node.value, node.left, node.right, node._count) } -function useSetTimeout() { - // Store setTimeout reference so es6-promise will be unaffected by - // other code modifying setTimeout (like sinon.useFakeTimers()) - var globalSetTimeout = setTimeout; - return function () { - return globalSetTimeout(flush, 1); - }; +function repaint(color, node) { + return new RBNode(color, node.key, node.value, node.left, node.right, node._count) +} + +function recount(node) { + node._count = 1 + (node.left ? node.left._count : 0) + (node.right ? node.right._count : 0) +} + +function RedBlackTree(compare, root) { + this._compare = compare + this.root = root +} + +var proto = RedBlackTree.prototype + +Object.defineProperty(proto, "keys", { + get: function() { + var result = [] + this.forEach(function(k,v) { + result.push(k) + }) + return result + } +}) + +Object.defineProperty(proto, "values", { + get: function() { + var result = [] + this.forEach(function(k,v) { + result.push(v) + }) + return result + } +}) + +//Returns the number of nodes in the tree +Object.defineProperty(proto, "length", { + get: function() { + if(this.root) { + return this.root._count + } + return 0 + } +}) + +//Insert a new item into the tree +proto.insert = function(key, value) { + var cmp = this._compare + //Find point to insert new node at + var n = this.root + var n_stack = [] + var d_stack = [] + while(n) { + var d = cmp(key, n.key) + n_stack.push(n) + d_stack.push(d) + if(d <= 0) { + n = n.left + } else { + n = n.right + } + } + //Rebuild path to leaf node + n_stack.push(new RBNode(RED, key, value, null, null, 1)) + for(var s=n_stack.length-2; s>=0; --s) { + var n = n_stack[s] + if(d_stack[s] <= 0) { + n_stack[s] = new RBNode(n._color, n.key, n.value, n_stack[s+1], n.right, n._count+1) + } else { + n_stack[s] = new RBNode(n._color, n.key, n.value, n.left, n_stack[s+1], n._count+1) + } + } + //Rebalance tree using rotations + //console.log("start insert", key, d_stack) + for(var s=n_stack.length-1; s>1; --s) { + var p = n_stack[s-1] + var n = n_stack[s] + if(p._color === BLACK || n._color === BLACK) { + break + } + var pp = n_stack[s-2] + if(pp.left === p) { + if(p.left === n) { + var y = pp.right + if(y && y._color === RED) { + //console.log("LLr") + p._color = BLACK + pp.right = repaint(BLACK, y) + pp._color = RED + s -= 1 + } else { + //console.log("LLb") + pp._color = RED + pp.left = p.right + p._color = BLACK + p.right = pp + n_stack[s-2] = p + n_stack[s-1] = n + recount(pp) + recount(p) + if(s >= 3) { + var ppp = n_stack[s-3] + if(ppp.left === pp) { + ppp.left = p + } else { + ppp.right = p + } + } + break + } + } else { + var y = pp.right + if(y && y._color === RED) { + //console.log("LRr") + p._color = BLACK + pp.right = repaint(BLACK, y) + pp._color = RED + s -= 1 + } else { + //console.log("LRb") + p.right = n.left + pp._color = RED + pp.left = n.right + n._color = BLACK + n.left = p + n.right = pp + n_stack[s-2] = n + n_stack[s-1] = p + recount(pp) + recount(p) + recount(n) + if(s >= 3) { + var ppp = n_stack[s-3] + if(ppp.left === pp) { + ppp.left = n + } else { + ppp.right = n + } + } + break + } + } + } else { + if(p.right === n) { + var y = pp.left + if(y && y._color === RED) { + //console.log("RRr", y.key) + p._color = BLACK + pp.left = repaint(BLACK, y) + pp._color = RED + s -= 1 + } else { + //console.log("RRb") + pp._color = RED + pp.right = p.left + p._color = BLACK + p.left = pp + n_stack[s-2] = p + n_stack[s-1] = n + recount(pp) + recount(p) + if(s >= 3) { + var ppp = n_stack[s-3] + if(ppp.right === pp) { + ppp.right = p + } else { + ppp.left = p + } + } + break + } + } else { + var y = pp.left + if(y && y._color === RED) { + //console.log("RLr") + p._color = BLACK + pp.left = repaint(BLACK, y) + pp._color = RED + s -= 1 + } else { + //console.log("RLb") + p.left = n.right + pp._color = RED + pp.right = n.left + n._color = BLACK + n.right = p + n.left = pp + n_stack[s-2] = n + n_stack[s-1] = p + recount(pp) + recount(p) + recount(n) + if(s >= 3) { + var ppp = n_stack[s-3] + if(ppp.right === pp) { + ppp.right = n + } else { + ppp.left = n + } + } + break + } + } + } + } + //Return new tree + n_stack[0]._color = BLACK + return new RedBlackTree(cmp, n_stack[0]) } -var queue = new Array(1000); -function flush() { - for (var i = 0; i < len; i += 2) { - var callback = queue[i]; - var arg = queue[i + 1]; - - callback(arg); - queue[i] = undefined; - queue[i + 1] = undefined; +//Visit all nodes inorder +function doVisitFull(visit, node) { + if(node.left) { + var v = doVisitFull(visit, node.left) + if(v) { return v } } - - len = 0; -} - -function attemptVertx() { - try { - var vertx = Function('return this')().require('vertx'); - vertxNext = vertx.runOnLoop || vertx.runOnContext; - return useVertxTimer(); - } catch (e) { - return useSetTimeout(); + var v = visit(node.key, node.value) + if(v) { return v } + if(node.right) { + return doVisitFull(visit, node.right) } } -var scheduleFlush = void 0; -// Decide what async method to use to triggering processing of queued callbacks: -if (isNode) { - scheduleFlush = useNextTick(); -} else if (BrowserMutationObserver) { - scheduleFlush = useMutationObserver(); -} else if (isWorker) { - scheduleFlush = useMessageChannel(); -} else if (browserWindow === undefined && typeof _dereq_ === 'function') { - scheduleFlush = attemptVertx(); -} else { - scheduleFlush = useSetTimeout(); -} - -function then(onFulfillment, onRejection) { - var parent = this; - - var child = new this.constructor(noop); - - if (child[PROMISE_ID] === undefined) { - makePromise(child); +//Visit half nodes in order +function doVisitHalf(lo, compare, visit, node) { + var l = compare(lo, node.key) + if(l <= 0) { + if(node.left) { + var v = doVisitHalf(lo, compare, visit, node.left) + if(v) { return v } + } + var v = visit(node.key, node.value) + if(v) { return v } } - - var _state = parent._state; - - - if (_state) { - var callback = arguments[_state - 1]; - asap(function () { - return invokeCallback(_state, child, callback, parent._result); - }); - } else { - subscribe(parent, child, onFulfillment, onRejection); + if(node.right) { + return doVisitHalf(lo, compare, visit, node.right) } - - return child; } -/** - `Promise.resolve` returns a promise that will become resolved with the - passed `value`. It is shorthand for the following: - - ```javascript - let promise = new Promise(function(resolve, reject){ - resolve(1); - }); - - promise.then(function(value){ - // value === 1 - }); - ``` - - Instead of writing the above, your code now simply becomes the following: - - ```javascript - let promise = Promise.resolve(1); - - promise.then(function(value){ - // value === 1 - }); - ``` - - @method resolve - @static - @param {Any} value value that the returned promise will be resolved with - Useful for tooling. - @return {Promise} a promise that will become fulfilled with the given - `value` -*/ -function resolve$1(object) { - /*jshint validthis:true */ - var Constructor = this; - - if (object && typeof object === 'object' && object.constructor === Constructor) { - return object; +//Visit all nodes within a range +function doVisit(lo, hi, compare, visit, node) { + var l = compare(lo, node.key) + var h = compare(hi, node.key) + var v + if(l <= 0) { + if(node.left) { + v = doVisit(lo, hi, compare, visit, node.left) + if(v) { return v } + } + if(h > 0) { + v = visit(node.key, node.value) + if(v) { return v } + } + } + if(h > 0 && node.right) { + return doVisit(lo, hi, compare, visit, node.right) } - - var promise = new Constructor(noop); - resolve(promise, object); - return promise; } -var PROMISE_ID = Math.random().toString(36).substring(2); -function noop() {} +proto.forEach = function rbTreeForEach(visit, lo, hi) { + if(!this.root) { + return + } + switch(arguments.length) { + case 1: + return doVisitFull(visit, this.root) + break -var PENDING = void 0; -var FULFILLED = 1; -var REJECTED = 2; + case 2: + return doVisitHalf(lo, this._compare, visit, this.root) + break -function selfFulfillment() { - return new TypeError("You cannot resolve a promise with itself"); + case 3: + if(this._compare(lo, hi) >= 0) { + return + } + return doVisit(lo, hi, this._compare, visit, this.root) + break + } } -function cannotReturnOwn() { - return new TypeError('A promises callback cannot return that same promise.'); -} +//First item in list +Object.defineProperty(proto, "begin", { + get: function() { + var stack = [] + var n = this.root + while(n) { + stack.push(n) + n = n.left + } + return new RedBlackTreeIterator(this, stack) + } +}) -function tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) { - try { - then$$1.call(value, fulfillmentHandler, rejectionHandler); - } catch (e) { - return e; +//Last item in list +Object.defineProperty(proto, "end", { + get: function() { + var stack = [] + var n = this.root + while(n) { + stack.push(n) + n = n.right + } + return new RedBlackTreeIterator(this, stack) } -} +}) -function handleForeignThenable(promise, thenable, then$$1) { - asap(function (promise) { - var sealed = false; - var error = tryThen(then$$1, thenable, function (value) { - if (sealed) { - return; - } - sealed = true; - if (thenable !== value) { - resolve(promise, value); - } else { - fulfill(promise, value); +//Find the ith item in the tree +proto.at = function(idx) { + if(idx < 0) { + return new RedBlackTreeIterator(this, []) + } + var n = this.root + var stack = [] + while(true) { + stack.push(n) + if(n.left) { + if(idx < n.left._count) { + n = n.left + continue } - }, function (reason) { - if (sealed) { - return; + idx -= n.left._count + } + if(!idx) { + return new RedBlackTreeIterator(this, stack) + } + idx -= 1 + if(n.right) { + if(idx >= n.right._count) { + break } - sealed = true; - - reject(promise, reason); - }, 'Settle: ' + (promise._label || ' unknown promise')); - - if (!sealed && error) { - sealed = true; - reject(promise, error); + n = n.right + } else { + break } - }, promise); -} - -function handleOwnThenable(promise, thenable) { - if (thenable._state === FULFILLED) { - fulfill(promise, thenable._result); - } else if (thenable._state === REJECTED) { - reject(promise, thenable._result); - } else { - subscribe(thenable, undefined, function (value) { - return resolve(promise, value); - }, function (reason) { - return reject(promise, reason); - }); } + return new RedBlackTreeIterator(this, []) } -function handleMaybeThenable(promise, maybeThenable, then$$1) { - if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) { - handleOwnThenable(promise, maybeThenable); - } else { - if (then$$1 === undefined) { - fulfill(promise, maybeThenable); - } else if (isFunction(then$$1)) { - handleForeignThenable(promise, maybeThenable, then$$1); +proto.ge = function(key) { + var cmp = this._compare + var n = this.root + var stack = [] + var last_ptr = 0 + while(n) { + var d = cmp(key, n.key) + stack.push(n) + if(d <= 0) { + last_ptr = stack.length + } + if(d <= 0) { + n = n.left } else { - fulfill(promise, maybeThenable); + n = n.right } } + stack.length = last_ptr + return new RedBlackTreeIterator(this, stack) } -function resolve(promise, value) { - if (promise === value) { - reject(promise, selfFulfillment()); - } else if (objectOrFunction(value)) { - var then$$1 = void 0; - try { - then$$1 = value.then; - } catch (error) { - reject(promise, error); - return; +proto.gt = function(key) { + var cmp = this._compare + var n = this.root + var stack = [] + var last_ptr = 0 + while(n) { + var d = cmp(key, n.key) + stack.push(n) + if(d < 0) { + last_ptr = stack.length + } + if(d < 0) { + n = n.left + } else { + n = n.right } - handleMaybeThenable(promise, value, then$$1); - } else { - fulfill(promise, value); } + stack.length = last_ptr + return new RedBlackTreeIterator(this, stack) } -function publishRejection(promise) { - if (promise._onerror) { - promise._onerror(promise._result); +proto.lt = function(key) { + var cmp = this._compare + var n = this.root + var stack = [] + var last_ptr = 0 + while(n) { + var d = cmp(key, n.key) + stack.push(n) + if(d > 0) { + last_ptr = stack.length + } + if(d <= 0) { + n = n.left + } else { + n = n.right + } } - - publish(promise); + stack.length = last_ptr + return new RedBlackTreeIterator(this, stack) } -function fulfill(promise, value) { - if (promise._state !== PENDING) { - return; - } - - promise._result = value; - promise._state = FULFILLED; - - if (promise._subscribers.length !== 0) { - asap(publish, promise); +proto.le = function(key) { + var cmp = this._compare + var n = this.root + var stack = [] + var last_ptr = 0 + while(n) { + var d = cmp(key, n.key) + stack.push(n) + if(d >= 0) { + last_ptr = stack.length + } + if(d < 0) { + n = n.left + } else { + n = n.right + } } + stack.length = last_ptr + return new RedBlackTreeIterator(this, stack) } -function reject(promise, reason) { - if (promise._state !== PENDING) { - return; +//Finds the item with key if it exists +proto.find = function(key) { + var cmp = this._compare + var n = this.root + var stack = [] + while(n) { + var d = cmp(key, n.key) + stack.push(n) + if(d === 0) { + return new RedBlackTreeIterator(this, stack) + } + if(d <= 0) { + n = n.left + } else { + n = n.right + } } - promise._state = REJECTED; - promise._result = reason; - - asap(publishRejection, promise); + return new RedBlackTreeIterator(this, []) } -function subscribe(parent, child, onFulfillment, onRejection) { - var _subscribers = parent._subscribers; - var length = _subscribers.length; - - - parent._onerror = null; - - _subscribers[length] = child; - _subscribers[length + FULFILLED] = onFulfillment; - _subscribers[length + REJECTED] = onRejection; - - if (length === 0 && parent._state) { - asap(publish, parent); +//Removes item with key from tree +proto.remove = function(key) { + var iter = this.find(key) + if(iter) { + return iter.remove() } + return this } -function publish(promise) { - var subscribers = promise._subscribers; - var settled = promise._state; - - if (subscribers.length === 0) { - return; - } - - var child = void 0, - callback = void 0, - detail = promise._result; - - for (var i = 0; i < subscribers.length; i += 3) { - child = subscribers[i]; - callback = subscribers[i + settled]; - - if (child) { - invokeCallback(settled, child, callback, detail); +//Returns the item at `key` +proto.get = function(key) { + var cmp = this._compare + var n = this.root + while(n) { + var d = cmp(key, n.key) + if(d === 0) { + return n.value + } + if(d <= 0) { + n = n.left } else { - callback(detail); + n = n.right } } - - promise._subscribers.length = 0; + return } -function invokeCallback(settled, promise, callback, detail) { - var hasCallback = isFunction(callback), - value = void 0, - error = void 0, - succeeded = true; - - if (hasCallback) { - try { - value = callback(detail); - } catch (e) { - succeeded = false; - error = e; - } - - if (promise === value) { - reject(promise, cannotReturnOwn()); - return; - } - } else { - value = detail; - } - - if (promise._state !== PENDING) { - // noop - } else if (hasCallback && succeeded) { - resolve(promise, value); - } else if (succeeded === false) { - reject(promise, error); - } else if (settled === FULFILLED) { - fulfill(promise, value); - } else if (settled === REJECTED) { - reject(promise, value); - } +//Iterator for red black tree +function RedBlackTreeIterator(tree, stack) { + this.tree = tree + this._stack = stack } -function initializePromise(promise, resolver) { - try { - resolver(function resolvePromise(value) { - resolve(promise, value); - }, function rejectPromise(reason) { - reject(promise, reason); - }); - } catch (e) { - reject(promise, e); +var iproto = RedBlackTreeIterator.prototype + +//Test if iterator is valid +Object.defineProperty(iproto, "valid", { + get: function() { + return this._stack.length > 0 } -} +}) -var id = 0; -function nextId() { - return id++; -} +//Node of the iterator +Object.defineProperty(iproto, "node", { + get: function() { + if(this._stack.length > 0) { + return this._stack[this._stack.length-1] + } + return null + }, + enumerable: true +}) -function makePromise(promise) { - promise[PROMISE_ID] = id++; - promise._state = undefined; - promise._result = undefined; - promise._subscribers = []; +//Makes a copy of an iterator +iproto.clone = function() { + return new RedBlackTreeIterator(this.tree, this._stack.slice()) } -function validationError() { - return new Error('Array Methods must be provided an Array'); +//Swaps two nodes +function swapNode(n, v) { + n.key = v.key + n.value = v.value + n.left = v.left + n.right = v.right + n._color = v._color + n._count = v._count } -var Enumerator = function () { - function Enumerator(Constructor, input) { - this._instanceConstructor = Constructor; - this.promise = new Constructor(noop); - - if (!this.promise[PROMISE_ID]) { - makePromise(this.promise); +//Fix up a double black node in a tree +function fixDoubleBlack(stack) { + var n, p, s, z + for(var i=stack.length-1; i>=0; --i) { + n = stack[i] + if(i === 0) { + n._color = BLACK + return } - - if (isArray(input)) { - this.length = input.length; - this._remaining = input.length; - - this._result = new Array(this.length); - - if (this.length === 0) { - fulfill(this.promise, this._result); - } else { - this.length = this.length || 0; - this._enumerate(input); - if (this._remaining === 0) { - fulfill(this.promise, this._result); + //console.log("visit node:", n.key, i, stack[i].key, stack[i-1].key) + p = stack[i-1] + if(p.left === n) { + //console.log("left child") + s = p.right + if(s.right && s.right._color === RED) { + //console.log("case 1: right sibling child red") + s = p.right = cloneNode(s) + z = s.right = cloneNode(s.right) + p.right = s.left + s.left = p + s.right = z + s._color = p._color + n._color = BLACK + p._color = BLACK + z._color = BLACK + recount(p) + recount(s) + if(i > 1) { + var pp = stack[i-2] + if(pp.left === p) { + pp.left = s + } else { + pp.right = s + } + } + stack[i-1] = s + return + } else if(s.left && s.left._color === RED) { + //console.log("case 1: left sibling child red") + s = p.right = cloneNode(s) + z = s.left = cloneNode(s.left) + p.right = z.left + s.left = z.right + z.left = p + z.right = s + z._color = p._color + p._color = BLACK + s._color = BLACK + n._color = BLACK + recount(p) + recount(s) + recount(z) + if(i > 1) { + var pp = stack[i-2] + if(pp.left === p) { + pp.left = z + } else { + pp.right = z + } } + stack[i-1] = z + return } - } else { - reject(this.promise, validationError()); - } - } - - Enumerator.prototype._enumerate = function _enumerate(input) { - for (var i = 0; this._state === PENDING && i < input.length; i++) { - this._eachEntry(input[i], i); - } - }; - - Enumerator.prototype._eachEntry = function _eachEntry(entry, i) { - var c = this._instanceConstructor; - var resolve$$1 = c.resolve; - - - if (resolve$$1 === resolve$1) { - var _then = void 0; - var error = void 0; - var didError = false; - try { - _then = entry.then; - } catch (e) { - didError = true; - error = e; - } - - if (_then === then && entry._state !== PENDING) { - this._settledAt(entry._state, i, entry._result); - } else if (typeof _then !== 'function') { - this._remaining--; - this._result[i] = entry; - } else if (c === Promise$1) { - var promise = new c(noop); - if (didError) { - reject(promise, error); + if(s._color === BLACK) { + if(p._color === RED) { + //console.log("case 2: black sibling, red parent", p.right.value) + p._color = BLACK + p.right = repaint(RED, s) + return } else { - handleMaybeThenable(promise, entry, _then); + //console.log("case 2: black sibling, black parent", p.right.value) + p.right = repaint(RED, s) + continue } - this._willSettleAt(promise, i); } else { - this._willSettleAt(new c(function (resolve$$1) { - return resolve$$1(entry); - }), i); + //console.log("case 3: red sibling") + s = cloneNode(s) + p.right = s.left + s.left = p + s._color = p._color + p._color = RED + recount(p) + recount(s) + if(i > 1) { + var pp = stack[i-2] + if(pp.left === p) { + pp.left = s + } else { + pp.right = s + } + } + stack[i-1] = s + stack[i] = p + if(i+1 < stack.length) { + stack[i+1] = n + } else { + stack.push(n) + } + i = i+2 } } else { - this._willSettleAt(resolve$$1(entry), i); - } - }; - - Enumerator.prototype._settledAt = function _settledAt(state, i, value) { - var promise = this.promise; - - - if (promise._state === PENDING) { - this._remaining--; - - if (state === REJECTED) { - reject(promise, value); + //console.log("right child") + s = p.left + if(s.left && s.left._color === RED) { + //console.log("case 1: left sibling child red", p.value, p._color) + s = p.left = cloneNode(s) + z = s.left = cloneNode(s.left) + p.left = s.right + s.right = p + s.left = z + s._color = p._color + n._color = BLACK + p._color = BLACK + z._color = BLACK + recount(p) + recount(s) + if(i > 1) { + var pp = stack[i-2] + if(pp.right === p) { + pp.right = s + } else { + pp.left = s + } + } + stack[i-1] = s + return + } else if(s.right && s.right._color === RED) { + //console.log("case 1: right sibling child red") + s = p.left = cloneNode(s) + z = s.right = cloneNode(s.right) + p.left = z.right + s.right = z.left + z.right = p + z.left = s + z._color = p._color + p._color = BLACK + s._color = BLACK + n._color = BLACK + recount(p) + recount(s) + recount(z) + if(i > 1) { + var pp = stack[i-2] + if(pp.right === p) { + pp.right = z + } else { + pp.left = z + } + } + stack[i-1] = z + return + } + if(s._color === BLACK) { + if(p._color === RED) { + //console.log("case 2: black sibling, red parent") + p._color = BLACK + p.left = repaint(RED, s) + return + } else { + //console.log("case 2: black sibling, black parent") + p.left = repaint(RED, s) + continue + } } else { - this._result[i] = value; + //console.log("case 3: red sibling") + s = cloneNode(s) + p.left = s.right + s.right = p + s._color = p._color + p._color = RED + recount(p) + recount(s) + if(i > 1) { + var pp = stack[i-2] + if(pp.right === p) { + pp.right = s + } else { + pp.left = s + } + } + stack[i-1] = s + stack[i] = p + if(i+1 < stack.length) { + stack[i+1] = n + } else { + stack.push(n) + } + i = i+2 } } - - if (this._remaining === 0) { - fulfill(promise, this._result); - } - }; - - Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) { - var enumerator = this; - - subscribe(promise, undefined, function (value) { - return enumerator._settledAt(FULFILLED, i, value); - }, function (reason) { - return enumerator._settledAt(REJECTED, i, reason); - }); - }; - - return Enumerator; -}(); - -/** - `Promise.all` accepts an array of promises, and returns a new promise which - is fulfilled with an array of fulfillment values for the passed promises, or - rejected with the reason of the first passed promise to be rejected. It casts all - elements of the passed iterable to promises as it runs this algorithm. - - Example: - - ```javascript - let promise1 = resolve(1); - let promise2 = resolve(2); - let promise3 = resolve(3); - let promises = [ promise1, promise2, promise3 ]; - - Promise.all(promises).then(function(array){ - // The array here would be [ 1, 2, 3 ]; - }); - ``` - - If any of the `promises` given to `all` are rejected, the first promise - that is rejected will be given as an argument to the returned promises's - rejection handler. For example: - - Example: - - ```javascript - let promise1 = resolve(1); - let promise2 = reject(new Error("2")); - let promise3 = reject(new Error("3")); - let promises = [ promise1, promise2, promise3 ]; - - Promise.all(promises).then(function(array){ - // Code here never runs because there are rejected promises! - }, function(error) { - // error.message === "2" - }); - ``` - - @method all - @static - @param {Array} entries array of promises - @param {String} label optional string for labeling the promise. - Useful for tooling. - @return {Promise} promise that is fulfilled when all `promises` have been - fulfilled, or rejected if any of them become rejected. - @static -*/ -function all(entries) { - return new Enumerator(this, entries).promise; + } } -/** - `Promise.race` returns a new promise which is settled in the same way as the - first passed promise to settle. - - Example: - - ```javascript - let promise1 = new Promise(function(resolve, reject){ - setTimeout(function(){ - resolve('promise 1'); - }, 200); - }); - - let promise2 = new Promise(function(resolve, reject){ - setTimeout(function(){ - resolve('promise 2'); - }, 100); - }); - - Promise.race([promise1, promise2]).then(function(result){ - // result === 'promise 2' because it was resolved before promise1 - // was resolved. - }); - ``` - - `Promise.race` is deterministic in that only the state of the first - settled promise matters. For example, even if other promises given to the - `promises` array argument are resolved, but the first settled promise has - become rejected before the other promises became fulfilled, the returned - promise will become rejected: - - ```javascript - let promise1 = new Promise(function(resolve, reject){ - setTimeout(function(){ - resolve('promise 1'); - }, 200); - }); - - let promise2 = new Promise(function(resolve, reject){ - setTimeout(function(){ - reject(new Error('promise 2')); - }, 100); - }); +//Removes item at iterator from tree +iproto.remove = function() { + var stack = this._stack + if(stack.length === 0) { + return this.tree + } + //First copy path to node + var cstack = new Array(stack.length) + var n = stack[stack.length-1] + cstack[cstack.length-1] = new RBNode(n._color, n.key, n.value, n.left, n.right, n._count) + for(var i=stack.length-2; i>=0; --i) { + var n = stack[i] + if(n.left === stack[i+1]) { + cstack[i] = new RBNode(n._color, n.key, n.value, cstack[i+1], n.right, n._count) + } else { + cstack[i] = new RBNode(n._color, n.key, n.value, n.left, cstack[i+1], n._count) + } + } - Promise.race([promise1, promise2]).then(function(result){ - // Code here never runs - }, function(reason){ - // reason.message === 'promise 2' because promise 2 became rejected before - // promise 1 became fulfilled - }); - ``` + //Get node + n = cstack[cstack.length-1] + //console.log("start remove: ", n.value) - An example real-world use case is implementing timeouts: + //If not leaf, then swap with previous node + if(n.left && n.right) { + //console.log("moving to leaf") - ```javascript - Promise.race([ajax('foo.json'), timeout(5000)]) - ``` + //First walk to previous leaf + var split = cstack.length + n = n.left + while(n.right) { + cstack.push(n) + n = n.right + } + //Copy path to leaf + var v = cstack[split-1] + cstack.push(new RBNode(n._color, v.key, v.value, n.left, n.right, n._count)) + cstack[split-1].key = n.key + cstack[split-1].value = n.value - @method race - @static - @param {Array} promises array of promises to observe - Useful for tooling. - @return {Promise} a promise which settles in the same way as the first passed - promise to settle. -*/ -function race(entries) { - /*jshint validthis:true */ - var Constructor = this; + //Fix up stack + for(var i=cstack.length-2; i>=split; --i) { + n = cstack[i] + cstack[i] = new RBNode(n._color, n.key, n.value, n.left, cstack[i+1], n._count) + } + cstack[split-1].left = cstack[split] + } + //console.log("stack=", cstack.map(function(v) { return v.value })) - if (!isArray(entries)) { - return new Constructor(function (_, reject) { - return reject(new TypeError('You must pass an array to race.')); - }); + //Remove leaf node + n = cstack[cstack.length-1] + if(n._color === RED) { + //Easy case: removing red leaf + //console.log("RED leaf") + var p = cstack[cstack.length-2] + if(p.left === n) { + p.left = null + } else if(p.right === n) { + p.right = null + } + cstack.pop() + for(var i=0; i 0) { + return this._stack[this._stack.length-1].key + } + return + }, + enumerable: true +}) - Instead of writing the above, your code now simply becomes the following: +//Returns value +Object.defineProperty(iproto, "value", { + get: function() { + if(this._stack.length > 0) { + return this._stack[this._stack.length-1].value + } + return + }, + enumerable: true +}) - ```javascript - let promise = Promise.reject(new Error('WHOOPS')); - promise.then(function(value){ - // Code here doesn't run because the promise is rejected! - }, function(reason){ - // reason.message === 'WHOOPS' - }); - ``` +//Returns the position of this iterator in the sorted list +Object.defineProperty(iproto, "index", { + get: function() { + var idx = 0 + var stack = this._stack + if(stack.length === 0) { + var r = this.tree.root + if(r) { + return r._count + } + return 0 + } else if(stack[stack.length-1].left) { + idx = stack[stack.length-1].left._count + } + for(var s=stack.length-2; s>=0; --s) { + if(stack[s+1] === stack[s].right) { + ++idx + if(stack[s].left) { + idx += stack[s].left._count + } + } + } + return idx + }, + enumerable: true +}) - @method reject - @static - @param {Any} reason value that the returned promise will be rejected with. - Useful for tooling. - @return {Promise} a promise rejected with the given `reason`. -*/ -function reject$1(reason) { - /*jshint validthis:true */ - var Constructor = this; - var promise = new Constructor(noop); - reject(promise, reason); - return promise; +//Advances iterator to next element in list +iproto.next = function() { + var stack = this._stack + if(stack.length === 0) { + return + } + var n = stack[stack.length-1] + if(n.right) { + n = n.right + while(n) { + stack.push(n) + n = n.left + } + } else { + stack.pop() + while(stack.length > 0 && stack[stack.length-1].right === n) { + n = stack[stack.length-1] + stack.pop() + } + } } -function needsResolver() { - throw new TypeError('You must pass a resolver function as the first argument to the promise constructor'); -} +//Checks if iterator is at end of tree +Object.defineProperty(iproto, "hasNext", { + get: function() { + var stack = this._stack + if(stack.length === 0) { + return false + } + if(stack[stack.length-1].right) { + return true + } + for(var s=stack.length-1; s>0; --s) { + if(stack[s-1].left === stack[s]) { + return true + } + } + return false + } +}) -function needsNew() { - throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function."); +//Update value +iproto.update = function(value) { + var stack = this._stack + if(stack.length === 0) { + throw new Error("Can't update empty node!") + } + var cstack = new Array(stack.length) + var n = stack[stack.length-1] + cstack[cstack.length-1] = new RBNode(n._color, n.key, value, n.left, n.right, n._count) + for(var i=stack.length-2; i>=0; --i) { + n = stack[i] + if(n.left === stack[i+1]) { + cstack[i] = new RBNode(n._color, n.key, n.value, cstack[i+1], n.right, n._count) + } else { + cstack[i] = new RBNode(n._color, n.key, n.value, n.left, cstack[i+1], n._count) + } + } + return new RedBlackTree(this.tree._compare, cstack[0]) } -/** - Promise objects represent the eventual result of an asynchronous operation. The - primary way of interacting with a promise is through its `then` method, which - registers callbacks to receive either a promise's eventual value or the reason - why the promise cannot be fulfilled. - - Terminology - ----------- - - - `promise` is an object or function with a `then` method whose behavior conforms to this specification. - - `thenable` is an object or function that defines a `then` method. - - `value` is any legal JavaScript value (including undefined, a thenable, or a promise). - - `exception` is a value that is thrown using the throw statement. - - `reason` is a value that indicates why a promise was rejected. - - `settled` the final resting state of a promise, fulfilled or rejected. - - A promise can be in one of three states: pending, fulfilled, or rejected. - - Promises that are fulfilled have a fulfillment value and are in the fulfilled - state. Promises that are rejected have a rejection reason and are in the - rejected state. A fulfillment value is never a thenable. - - Promises can also be said to *resolve* a value. If this value is also a - promise, then the original promise's settled state will match the value's - settled state. So a promise that *resolves* a promise that rejects will - itself reject, and a promise that *resolves* a promise that fulfills will - itself fulfill. - - - Basic Usage: - ------------ - - ```js - let promise = new Promise(function(resolve, reject) { - // on success - resolve(value); - - // on failure - reject(reason); - }); - - promise.then(function(value) { - // on fulfillment - }, function(reason) { - // on rejection - }); - ``` - - Advanced Usage: - --------------- - - Promises shine when abstracting away asynchronous interactions such as - `XMLHttpRequest`s. - - ```js - function getJSON(url) { - return new Promise(function(resolve, reject){ - let xhr = new XMLHttpRequest(); - - xhr.open('GET', url); - xhr.onreadystatechange = handler; - xhr.responseType = 'json'; - xhr.setRequestHeader('Accept', 'application/json'); - xhr.send(); - - function handler() { - if (this.readyState === this.DONE) { - if (this.status === 200) { - resolve(this.response); - } else { - reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']')); - } - } - }; - }); +//Moves iterator backward one element +iproto.prev = function() { + var stack = this._stack + if(stack.length === 0) { + return } - - getJSON('/posts.json').then(function(json) { - // on fulfillment - }, function(reason) { - // on rejection - }); - ``` - - Unlike callbacks, promises are great composable primitives. - - ```js - Promise.all([ - getJSON('/posts'), - getJSON('/comments') - ]).then(function(values){ - values[0] // => postsJSON - values[1] // => commentsJSON - - return values; - }); - ``` - - @class Promise - @param {Function} resolver - Useful for tooling. - @constructor -*/ - -var Promise$1 = function () { - function Promise(resolver) { - this[PROMISE_ID] = nextId(); - this._result = this._state = undefined; - this._subscribers = []; - - if (noop !== resolver) { - typeof resolver !== 'function' && needsResolver(); - this instanceof Promise ? initializePromise(this, resolver) : needsNew(); + var n = stack[stack.length-1] + if(n.left) { + n = n.left + while(n) { + stack.push(n) + n = n.right + } + } else { + stack.pop() + while(stack.length > 0 && stack[stack.length-1].left === n) { + n = stack[stack.length-1] + stack.pop() } } +} - /** - The primary way of interacting with a promise is through its `then` method, - which registers callbacks to receive either a promise's eventual value or the - reason why the promise cannot be fulfilled. - ```js - findUser().then(function(user){ - // user is available - }, function(reason){ - // user is unavailable, and you are given the reason why - }); - ``` - Chaining - -------- - The return value of `then` is itself a promise. This second, 'downstream' - promise is resolved with the return value of the first promise's fulfillment - or rejection handler, or rejected if the handler throws an exception. - ```js - findUser().then(function (user) { - return user.name; - }, function (reason) { - return 'default name'; - }).then(function (userName) { - // If `findUser` fulfilled, `userName` will be the user's name, otherwise it - // will be `'default name'` - }); - findUser().then(function (user) { - throw new Error('Found user, but still unhappy'); - }, function (reason) { - throw new Error('`findUser` rejected and we're unhappy'); - }).then(function (value) { - // never reached - }, function (reason) { - // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'. - // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'. - }); - ``` - If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream. - ```js - findUser().then(function (user) { - throw new PedagogicalException('Upstream error'); - }).then(function (value) { - // never reached - }).then(function (value) { - // never reached - }, function (reason) { - // The `PedgagocialException` is propagated all the way down to here - }); - ``` - Assimilation - ------------ - Sometimes the value you want to propagate to a downstream promise can only be - retrieved asynchronously. This can be achieved by returning a promise in the - fulfillment or rejection handler. The downstream promise will then be pending - until the returned promise is settled. This is called *assimilation*. - ```js - findUser().then(function (user) { - return findCommentsByAuthor(user); - }).then(function (comments) { - // The user's comments are now available - }); - ``` - If the assimliated promise rejects, then the downstream promise will also reject. - ```js - findUser().then(function (user) { - return findCommentsByAuthor(user); - }).then(function (comments) { - // If `findCommentsByAuthor` fulfills, we'll have the value here - }, function (reason) { - // If `findCommentsByAuthor` rejects, we'll have the reason here - }); - ``` - Simple Example - -------------- - Synchronous Example - ```javascript - let result; - try { - result = findResult(); - // success - } catch(reason) { - // failure - } - ``` - Errback Example - ```js - findResult(function(result, err){ - if (err) { - // failure - } else { - // success +//Checks if iterator is at start of tree +Object.defineProperty(iproto, "hasPrev", { + get: function() { + var stack = this._stack + if(stack.length === 0) { + return false } - }); - ``` - Promise Example; - ```javascript - findResult().then(function(result){ - // success - }, function(reason){ - // failure - }); - ``` - Advanced Example - -------------- - Synchronous Example - ```javascript - let author, books; - try { - author = findAuthor(); - books = findBooksByAuthor(author); - // success - } catch(reason) { - // failure - } - ``` - Errback Example - ```js - function foundBooks(books) { - } - function failure(reason) { - } - findAuthor(function(author, err){ - if (err) { - failure(err); - // failure - } else { - try { - findBoooksByAuthor(author, function(books, err) { - if (err) { - failure(err); - } else { - try { - foundBooks(books); - } catch(reason) { - failure(reason); - } - } - }); - } catch(error) { - failure(err); + if(stack[stack.length-1].left) { + return true + } + for(var s=stack.length-1; s>0; --s) { + if(stack[s-1].right === stack[s]) { + return true } - // success } - }); - ``` - Promise Example; - ```javascript - findAuthor(). - then(findBooksByAuthor). - then(function(books){ - // found books - }).catch(function(reason){ - // something went wrong - }); - ``` - @method then - @param {Function} onFulfilled - @param {Function} onRejected - Useful for tooling. - @return {Promise} - */ + return false + } +}) - /** - `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same - as the catch block of a try/catch statement. - ```js - function findAuthor(){ - throw new Error('couldn't find that author'); +//Default comparison function +function defaultCompare(a, b) { + if(a < b) { + return -1 } - // synchronous - try { - findAuthor(); - } catch(reason) { - // something went wrong + if(a > b) { + return 1 } - // async with promises - findAuthor().catch(function(reason){ - // something went wrong - }); - ``` - @method catch - @param {Function} onRejection - Useful for tooling. - @return {Promise} - */ + return 0 +} +//Build a tree +function createRBTree(compare) { + return new RedBlackTree(compare || defaultCompare, null) +} +},{}],248:[function(_dereq_,module,exports){ +// transliterated from the python snippet here: +// http://en.wikipedia.org/wiki/Lanczos_approximation - Promise.prototype.catch = function _catch(onRejection) { - return this.then(null, onRejection); - }; +var g = 7; +var p = [ + 0.99999999999980993, + 676.5203681218851, + -1259.1392167224028, + 771.32342877765313, + -176.61502916214059, + 12.507343278686905, + -0.13857109526572012, + 9.9843695780195716e-6, + 1.5056327351493116e-7 +]; - /** - `finally` will be invoked regardless of the promise's fate just as native - try/catch/finally behaves - - Synchronous example: - - ```js - findAuthor() { - if (Math.random() > 0.5) { - throw new Error(); - } - return new Author(); - } - - try { - return findAuthor(); // succeed or fail - } catch(error) { - return findOtherAuther(); - } finally { - // always runs - // doesn't affect the return value - } - ``` - - Asynchronous example: - - ```js - findAuthor().catch(function(reason){ - return findOtherAuther(); - }).finally(function(){ - // author was either found, or not - }); - ``` - - @method finally - @param {Function} callback - @return {Promise} - */ +var g_ln = 607/128; +var p_ln = [ + 0.99999999999999709182, + 57.156235665862923517, + -59.597960355475491248, + 14.136097974741747174, + -0.49191381609762019978, + 0.33994649984811888699e-4, + 0.46523628927048575665e-4, + -0.98374475304879564677e-4, + 0.15808870322491248884e-3, + -0.21026444172410488319e-3, + 0.21743961811521264320e-3, + -0.16431810653676389022e-3, + 0.84418223983852743293e-4, + -0.26190838401581408670e-4, + 0.36899182659531622704e-5 +]; +// Spouge approximation (suitable for large arguments) +function lngamma(z) { - Promise.prototype.finally = function _finally(callback) { - var promise = this; - var constructor = promise.constructor; + if(z < 0) return Number('0/0'); + var x = p_ln[0]; + for(var i = p_ln.length - 1; i > 0; --i) x += p_ln[i] / (z + i); + var t = z + g_ln + 0.5; + return .5*Math.log(2*Math.PI)+(z+.5)*Math.log(t)-t+Math.log(x)-Math.log(z); +} - if (isFunction(callback)) { - return promise.then(function (value) { - return constructor.resolve(callback()).then(function () { - return value; - }); - }, function (reason) { - return constructor.resolve(callback()).then(function () { - throw reason; - }); - }); +module.exports = function gamma (z) { + if (z < 0.5) { + return Math.PI / (Math.sin(Math.PI * z) * gamma(1 - z)); } + else if(z > 100) return Math.exp(lngamma(z)); + else { + z -= 1; + var x = p[0]; + for (var i = 1; i < g + 2; i++) { + x += p[i] / (z + i); + } + var t = z + g + 0.5; - return promise.then(callback, callback); - }; + return Math.sqrt(2 * Math.PI) + * Math.pow(t, z + 0.5) + * Math.exp(-t) + * x + ; + } +}; - return Promise; -}(); +module.exports.log = lngamma; -Promise$1.prototype.then = then; -Promise$1.all = all; -Promise$1.race = race; -Promise$1.resolve = resolve$1; -Promise$1.reject = reject$1; -Promise$1._setScheduler = setScheduler; -Promise$1._setAsap = setAsap; -Promise$1._asap = asap; - -/*global self*/ -function polyfill() { - var local = void 0; - - if (typeof global !== 'undefined') { - local = global; - } else if (typeof self !== 'undefined') { - local = self; - } else { - try { - local = Function('return this')(); - } catch (e) { - throw new Error('polyfill failed because global object is unavailable in this environment'); - } +},{}],249:[function(_dereq_,module,exports){ +module.exports = getCanvasContext +function getCanvasContext (type, opts) { + if (typeof type !== 'string') { + throw new TypeError('must specify type string') } - var P = local.Promise; + opts = opts || {} - if (P) { - var promiseToString = null; - try { - promiseToString = Object.prototype.toString.call(P.resolve()); - } catch (e) { - // silently ignored + if (typeof document === 'undefined' && !opts.canvas) { + return null // check for Node + } + + var canvas = opts.canvas || document.createElement('canvas') + if (typeof opts.width === 'number') { + canvas.width = opts.width + } + if (typeof opts.height === 'number') { + canvas.height = opts.height + } + + var attribs = opts + var gl + try { + var names = [ type ] + // prefix GL contexts + if (type.indexOf('webgl') === 0) { + names.push('experimental-' + type) } - if (promiseToString === '[object Promise]' && !P.cast) { - return; + for (var i = 0; i < names.length; i++) { + gl = canvas.getContext(names[i], attribs) + if (gl) return gl } + } catch (e) { + gl = null } - - local.Promise = Promise$1; + return (gl || null) // ensure null on fail } -// Strange compat.. -Promise$1.polyfill = polyfill; -Promise$1.Promise = Promise$1; +},{}],250:[function(_dereq_,module,exports){ +'use strict' + +module.exports = createAxes + +var createText = _dereq_('./lib/text.js') +var createLines = _dereq_('./lib/lines.js') +var createBackground = _dereq_('./lib/background.js') +var getCubeProperties = _dereq_('./lib/cube.js') +var Ticks = _dereq_('./lib/ticks.js') + +var identity = new Float32Array([ + 1, 0, 0, 0, + 0, 1, 0, 0, + 0, 0, 1, 0, + 0, 0, 0, 1]) -return Promise$1; +function copyVec3(a, b) { + a[0] = b[0] + a[1] = b[1] + a[2] = b[2] + return a +} -}))); +function Axes(gl) { + this.gl = gl + this.pixelRatio = 1 + this.bounds = [ [-10, -10, -10], + [ 10, 10, 10] ] + this.ticks = [ [], [], [] ] + this.autoTicks = true + this.tickSpacing = [ 1, 1, 1 ] + this.tickEnable = [ true, true, true ] + this.tickFont = [ 'sans-serif', 'sans-serif', 'sans-serif' ] + this.tickSize = [ 12, 12, 12 ] + this.tickAngle = [ 0, 0, 0 ] + this.tickAlign = [ 'auto', 'auto', 'auto' ] + this.tickColor = [ [0,0,0,1], [0,0,0,1], [0,0,0,1] ] + this.tickPad = [ 10, 10, 10 ] + this.lastCubeProps = { + cubeEdges: [0,0,0], + axis: [0,0,0] + } -}).call(this)}).call(this,_dereq_('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"_process":526}],225:[function(_dereq_,module,exports){ -"use strict"; + this.labels = [ 'x', 'y', 'z' ] + this.labelEnable = [ true, true, true ] + this.labelFont = 'sans-serif' + this.labelSize = [ 20, 20, 20 ] + this.labelAngle = [ 0, 0, 0 ] + this.labelAlign = [ 'auto', 'auto', 'auto' ] + this.labelColor = [ [0,0,0,1], [0,0,0,1], [0,0,0,1] ] + this.labelPad = [ 10, 10, 10 ] -module.exports = _dereq_("./is-implemented")() - ? _dereq_("ext/global-this").Symbol - : _dereq_("./polyfill"); + this.lineEnable = [ true, true, true ] + this.lineMirror = [ false, false, false ] + this.lineWidth = [ 1, 1, 1 ] + this.lineColor = [ [0,0,0,1], [0,0,0,1], [0,0,0,1] ] -},{"./is-implemented":226,"./polyfill":231,"ext/global-this":238}],226:[function(_dereq_,module,exports){ -"use strict"; + this.lineTickEnable = [ true, true, true ] + this.lineTickMirror = [ false, false, false ] + this.lineTickLength = [ 0, 0, 0 ] + this.lineTickWidth = [ 1, 1, 1 ] + this.lineTickColor = [ [0,0,0,1], [0,0,0,1], [0,0,0,1] ] -var global = _dereq_("ext/global-this") - , validTypes = { object: true, symbol: true }; + this.gridEnable = [ true, true, true ] + this.gridWidth = [ 1, 1, 1 ] + this.gridColor = [ [0,0,0,1], [0,0,0,1], [0,0,0,1] ] -module.exports = function () { - var Symbol = global.Symbol; - var symbol; - if (typeof Symbol !== "function") return false; - symbol = Symbol("test symbol"); - try { String(symbol); } - catch (e) { return false; } + this.zeroEnable = [ true, true, true ] + this.zeroLineColor = [ [0,0,0,1], [0,0,0,1], [0,0,0,1] ] + this.zeroLineWidth = [ 2, 2, 2 ] - // Return 'true' also for polyfills - if (!validTypes[typeof Symbol.iterator]) return false; - if (!validTypes[typeof Symbol.toPrimitive]) return false; - if (!validTypes[typeof Symbol.toStringTag]) return false; + this.backgroundEnable = [ false, false, false ] + this.backgroundColor = [ [0.8, 0.8, 0.8, 0.5], + [0.8, 0.8, 0.8, 0.5], + [0.8, 0.8, 0.8, 0.5] ] - return true; -}; + this._firstInit = true + this._text = null + this._lines = null + this._background = createBackground(gl) +} -},{"ext/global-this":238}],227:[function(_dereq_,module,exports){ -"use strict"; +var proto = Axes.prototype -module.exports = function (value) { - if (!value) return false; - if (typeof value === "symbol") return true; - if (!value.constructor) return false; - if (value.constructor.name !== "Symbol") return false; - return value[value.constructor.toStringTag] === "Symbol"; -}; +proto.update = function(options) { + options = options || {} -},{}],228:[function(_dereq_,module,exports){ -"use strict"; + //Option parsing helper functions + function parseOption(nest, cons, name) { + if(name in options) { + var opt = options[name] + var prev = this[name] + var next + if(nest ? (Array.isArray(opt) && Array.isArray(opt[0])) : + Array.isArray(opt) ) { + this[name] = next = [ cons(opt[0]), cons(opt[1]), cons(opt[2]) ] + } else { + this[name] = next = [ cons(opt), cons(opt), cons(opt) ] + } + for(var i=0; i<3; ++i) { + if(next[i] !== prev[i]) { + return true + } + } + } + return false + } -var d = _dereq_("d"); + var NUMBER = parseOption.bind(this, false, Number) + var BOOLEAN = parseOption.bind(this, false, Boolean) + var STRING = parseOption.bind(this, false, String) + var COLOR = parseOption.bind(this, true, function(v) { + if(Array.isArray(v)) { + if(v.length === 3) { + return [ +v[0], +v[1], +v[2], 1.0 ] + } else if(v.length === 4) { + return [ +v[0], +v[1], +v[2], +v[3] ] + } + } + return [ 0, 0, 0, 1 ] + }) -var create = Object.create, defineProperty = Object.defineProperty, objPrototype = Object.prototype; + //Tick marks and bounds + var nextTicks + var ticksUpdate = false + var boundsChanged = false + if('bounds' in options) { + var bounds = options.bounds +i_loop: + for(var i=0; i<2; ++i) { + for(var j=0; j<3; ++j) { + if(bounds[i][j] !== this.bounds[i][j]) { + boundsChanged = true + } + this.bounds[i][j] = bounds[i][j] + } + } + } + if('ticks' in options) { + nextTicks = options.ticks + ticksUpdate = true + this.autoTicks = false + for(var i=0; i<3; ++i) { + this.tickSpacing[i] = 0.0 + } + } else if(NUMBER('tickSpacing')) { + this.autoTicks = true + boundsChanged = true + } -var created = create(null); -module.exports = function (desc) { - var postfix = 0, name, ie11BugWorkaround; - while (created[desc + (postfix || "")]) ++postfix; - desc += postfix || ""; - created[desc] = true; - name = "@@" + desc; - defineProperty( - objPrototype, - name, - d.gs(null, function (value) { - // For IE11 issue see: - // https://connect.microsoft.com/IE/feedbackdetail/view/1928508/ - // ie11-broken-getters-on-dom-objects - // https://github.com/medikoo/es6-symbol/issues/12 - if (ie11BugWorkaround) return; - ie11BugWorkaround = true; - defineProperty(this, name, d(value)); - ie11BugWorkaround = false; - }) - ); - return name; -}; + if(this._firstInit) { + if(!('ticks' in options || 'tickSpacing' in options)) { + this.autoTicks = true + } -},{"d":155}],229:[function(_dereq_,module,exports){ -"use strict"; + //Force tick recomputation on first update + boundsChanged = true + ticksUpdate = true + this._firstInit = false + } -var d = _dereq_("d") - , NativeSymbol = _dereq_("ext/global-this").Symbol; + if(boundsChanged && this.autoTicks) { + nextTicks = Ticks.create(this.bounds, this.tickSpacing) + ticksUpdate = true + } -module.exports = function (SymbolPolyfill) { - return Object.defineProperties(SymbolPolyfill, { - // To ensure proper interoperability with other native functions (e.g. Array.from) - // fallback to eventual native implementation of given symbol - hasInstance: d( - "", (NativeSymbol && NativeSymbol.hasInstance) || SymbolPolyfill("hasInstance") - ), - isConcatSpreadable: d( - "", - (NativeSymbol && NativeSymbol.isConcatSpreadable) || - SymbolPolyfill("isConcatSpreadable") - ), - iterator: d("", (NativeSymbol && NativeSymbol.iterator) || SymbolPolyfill("iterator")), - match: d("", (NativeSymbol && NativeSymbol.match) || SymbolPolyfill("match")), - replace: d("", (NativeSymbol && NativeSymbol.replace) || SymbolPolyfill("replace")), - search: d("", (NativeSymbol && NativeSymbol.search) || SymbolPolyfill("search")), - species: d("", (NativeSymbol && NativeSymbol.species) || SymbolPolyfill("species")), - split: d("", (NativeSymbol && NativeSymbol.split) || SymbolPolyfill("split")), - toPrimitive: d( - "", (NativeSymbol && NativeSymbol.toPrimitive) || SymbolPolyfill("toPrimitive") - ), - toStringTag: d( - "", (NativeSymbol && NativeSymbol.toStringTag) || SymbolPolyfill("toStringTag") - ), - unscopables: d( - "", (NativeSymbol && NativeSymbol.unscopables) || SymbolPolyfill("unscopables") - ) - }); -}; + //Compare next ticks to previous ticks, only update if needed + if(ticksUpdate) { + for(var i=0; i<3; ++i) { + nextTicks[i].sort(function(a,b) { + return a.x-b.x + }) + } + if(Ticks.equal(nextTicks, this.ticks)) { + ticksUpdate = false + } else { + this.ticks = nextTicks + } + } -},{"d":155,"ext/global-this":238}],230:[function(_dereq_,module,exports){ -"use strict"; + //Parse tick properties + BOOLEAN('tickEnable') + if(STRING('tickFont')) { + ticksUpdate = true //If font changes, must rebuild vbo + } + NUMBER('tickSize') + NUMBER('tickAngle') + NUMBER('tickPad') + COLOR('tickColor') -var d = _dereq_("d") - , validateSymbol = _dereq_("../../../validate-symbol"); + //Axis labels + var labelUpdate = STRING('labels') + if(STRING('labelFont')) { + labelUpdate = true + } + BOOLEAN('labelEnable') + NUMBER('labelSize') + NUMBER('labelPad') + COLOR('labelColor') -var registry = Object.create(null); + //Axis lines + BOOLEAN('lineEnable') + BOOLEAN('lineMirror') + NUMBER('lineWidth') + COLOR('lineColor') -module.exports = function (SymbolPolyfill) { - return Object.defineProperties(SymbolPolyfill, { - for: d(function (key) { - if (registry[key]) return registry[key]; - return (registry[key] = SymbolPolyfill(String(key))); - }), - keyFor: d(function (symbol) { - var key; - validateSymbol(symbol); - for (key in registry) { - if (registry[key] === symbol) return key; - } - return undefined; - }) - }); -}; + //Axis line ticks + BOOLEAN('lineTickEnable') + BOOLEAN('lineTickMirror') + NUMBER('lineTickLength') + NUMBER('lineTickWidth') + COLOR('lineTickColor') -},{"../../../validate-symbol":232,"d":155}],231:[function(_dereq_,module,exports){ -// ES2015 Symbol polyfill for environments that do not (or partially) support it + //Grid lines + BOOLEAN('gridEnable') + NUMBER('gridWidth') + COLOR('gridColor') -"use strict"; + //Zero line + BOOLEAN('zeroEnable') + COLOR('zeroLineColor') + NUMBER('zeroLineWidth') -var d = _dereq_("d") - , validateSymbol = _dereq_("./validate-symbol") - , NativeSymbol = _dereq_("ext/global-this").Symbol - , generateName = _dereq_("./lib/private/generate-name") - , setupStandardSymbols = _dereq_("./lib/private/setup/standard-symbols") - , setupSymbolRegistry = _dereq_("./lib/private/setup/symbol-registry"); + //Background + BOOLEAN('backgroundEnable') + COLOR('backgroundColor') -var create = Object.create - , defineProperties = Object.defineProperties - , defineProperty = Object.defineProperty; + //Update text if necessary + if(!this._text) { + this._text = createText( + this.gl, + this.bounds, + this.labels, + this.labelFont, + this.ticks, + this.tickFont) + } else if(this._text && (labelUpdate || ticksUpdate)) { + this._text.update( + this.bounds, + this.labels, + this.labelFont, + this.ticks, + this.tickFont) + } -var SymbolPolyfill, HiddenSymbol, isNativeSafe; + //Update lines if necessary + if(this._lines && ticksUpdate) { + this._lines.dispose() + this._lines = null + } + if(!this._lines) { + this._lines = createLines(this.gl, this.bounds, this.ticks) + } +} -if (typeof NativeSymbol === "function") { - try { - String(NativeSymbol()); - isNativeSafe = true; - } catch (ignore) {} -} else { - NativeSymbol = null; +function OffsetInfo() { + this.primalOffset = [0,0,0] + this.primalMinor = [0,0,0] + this.mirrorOffset = [0,0,0] + this.mirrorMinor = [0,0,0] } -// Internal constructor (not one exposed) for creating Symbol instances. -// This one is used to ensure that `someSymbol instanceof Symbol` always return false -HiddenSymbol = function Symbol(description) { - if (this instanceof HiddenSymbol) throw new TypeError("Symbol is not a constructor"); - return SymbolPolyfill(description); -}; +var LINE_OFFSET = [ new OffsetInfo(), new OffsetInfo(), new OffsetInfo() ] -// Exposed `Symbol` constructor -// (returns instances of HiddenSymbol) -module.exports = SymbolPolyfill = function Symbol(description) { - var symbol; - if (this instanceof Symbol) throw new TypeError("Symbol is not a constructor"); - if (isNativeSafe) return NativeSymbol(description); - symbol = create(HiddenSymbol.prototype); - description = description === undefined ? "" : String(description); - return defineProperties(symbol, { - __description__: d("", description), - __name__: d("", generateName(description)) - }); -}; +function computeLineOffset(result, i, bounds, cubeEdges, cubeAxis) { + var primalOffset = result.primalOffset + var primalMinor = result.primalMinor + var dualOffset = result.mirrorOffset + var dualMinor = result.mirrorMinor + var e = cubeEdges[i] -setupStandardSymbols(SymbolPolyfill); -setupSymbolRegistry(SymbolPolyfill); + //Calculate offsets + for(var j=0; j<3; ++j) { + if(i === j) { + continue + } + var a = primalOffset, + b = dualOffset, + c = primalMinor, + d = dualMinor + if(e & (1< 0) { + c[j] = -1 + d[j] = 0 + } else { + c[j] = 0 + d[j] = +1 + } + } +} -// Internal tweaks for real symbol producer -defineProperties(HiddenSymbol.prototype, { - constructor: d(SymbolPolyfill), - toString: d("", function () { return this.__name__; }) -}); +var CUBE_ENABLE = [0,0,0] +var DEFAULT_PARAMS = { + model: identity, + view: identity, + projection: identity, + _ortho: false +} -// Proper implementation of methods exposed on Symbol.prototype -// They won't be accessible on produced symbol instances as they derive from HiddenSymbol.prototype -defineProperties(SymbolPolyfill.prototype, { - toString: d(function () { return "Symbol (" + validateSymbol(this).__description__ + ")"; }), - valueOf: d(function () { return validateSymbol(this); }) -}); -defineProperty( - SymbolPolyfill.prototype, - SymbolPolyfill.toPrimitive, - d("", function () { - var symbol = validateSymbol(this); - if (typeof symbol === "symbol") return symbol; - return symbol.toString(); - }) -); -defineProperty(SymbolPolyfill.prototype, SymbolPolyfill.toStringTag, d("c", "Symbol")); +proto.isOpaque = function() { + return true +} -// Proper implementaton of toPrimitive and toStringTag for returned symbol instances -defineProperty( - HiddenSymbol.prototype, SymbolPolyfill.toStringTag, - d("c", SymbolPolyfill.prototype[SymbolPolyfill.toStringTag]) -); +proto.isTransparent = function() { + return false +} -// Note: It's important to define `toPrimitive` as last one, as some implementations -// implement `toPrimitive` natively without implementing `toStringTag` (or other specified symbols) -// And that may invoke error in definition flow: -// See: https://github.com/medikoo/es6-symbol/issues/13#issuecomment-164146149 -defineProperty( - HiddenSymbol.prototype, SymbolPolyfill.toPrimitive, - d("c", SymbolPolyfill.prototype[SymbolPolyfill.toPrimitive]) -); +proto.drawTransparent = function(params) {} -},{"./lib/private/generate-name":228,"./lib/private/setup/standard-symbols":229,"./lib/private/setup/symbol-registry":230,"./validate-symbol":232,"d":155,"ext/global-this":238}],232:[function(_dereq_,module,exports){ -"use strict"; +var ALIGN_OPTION_AUTO = 0 // i.e. as defined in the shader the text would rotate to stay upwards range: [-90,90] -var isSymbol = _dereq_("./is-symbol"); +var PRIMAL_MINOR = [0,0,0] +var MIRROR_MINOR = [0,0,0] +var PRIMAL_OFFSET = [0,0,0] -module.exports = function (value) { - if (!isSymbol(value)) throw new TypeError(value + " is not a symbol"); - return value; -}; +proto.draw = function(params) { + params = params || DEFAULT_PARAMS -},{"./is-symbol":227}],233:[function(_dereq_,module,exports){ -"use strict"; + var gl = this.gl -module.exports = _dereq_("./is-implemented")() ? WeakMap : _dereq_("./polyfill"); + //Geometry for camera and axes + var model = params.model || identity + var view = params.view || identity + var projection = params.projection || identity + var bounds = this.bounds + var isOrtho = params._ortho || false -},{"./is-implemented":234,"./polyfill":236}],234:[function(_dereq_,module,exports){ -"use strict"; + //Unpack axis info + var cubeParams = getCubeProperties(model, view, projection, bounds, isOrtho) + var cubeEdges = cubeParams.cubeEdges + var cubeAxis = cubeParams.axis -module.exports = function () { - var weakMap, obj; + var cx = view[12] + var cy = view[13] + var cz = view[14] + var cw = view[15] - if (typeof WeakMap !== "function") return false; - try { - // WebKit doesn't support arguments and crashes - weakMap = new WeakMap([[obj = {}, "one"], [{}, "two"], [{}, "three"]]); - } catch (e) { - return false; - } - if (String(weakMap) !== "[object WeakMap]") return false; - if (typeof weakMap.set !== "function") return false; - if (weakMap.set({}, 1) !== weakMap) return false; - if (typeof weakMap.delete !== "function") return false; - if (typeof weakMap.has !== "function") return false; - if (weakMap.get(obj) !== "one") return false; + var orthoFix = (isOrtho) ? 2 : 1 // double up padding for orthographic ticks & labels + var pixelScaleF = orthoFix * this.pixelRatio * (projection[3]*cx + projection[7]*cy + projection[11]*cz + projection[15]*cw) / gl.drawingBufferHeight - return true; -}; + for(var i=0; i<3; ++i) { + this.lastCubeProps.cubeEdges[i] = cubeEdges[i] + this.lastCubeProps.axis[i] = cubeAxis[i] + } -},{}],235:[function(_dereq_,module,exports){ -// Exports true if environment provides native `WeakMap` implementation, whatever that is. + //Compute axis info + var lineOffset = LINE_OFFSET + for(var i=0; i<3; ++i) { + computeLineOffset( + LINE_OFFSET[i], + i, + this.bounds, + cubeEdges, + cubeAxis) + } -"use strict"; + //Set up state parameters + var gl = this.gl -module.exports = (function () { - if (typeof WeakMap !== "function") return false; - return Object.prototype.toString.call(new WeakMap()) === "[object WeakMap]"; -}()); + //Draw background first + var cubeEnable = CUBE_ENABLE + for(var i=0; i<3; ++i) { + if(this.backgroundEnable[i]) { + cubeEnable[i] = cubeAxis[i] + } else { + cubeEnable[i] = 0 + } + } -},{}],236:[function(_dereq_,module,exports){ -"use strict"; + this._background.draw( + model, + view, + projection, + bounds, + cubeEnable, + this.backgroundColor) -var isValue = _dereq_("es5-ext/object/is-value") - , setPrototypeOf = _dereq_("es5-ext/object/set-prototype-of") - , object = _dereq_("es5-ext/object/valid-object") - , ensureValue = _dereq_("es5-ext/object/valid-value") - , randomUniq = _dereq_("es5-ext/string/random-uniq") - , d = _dereq_("d") - , getIterator = _dereq_("es6-iterator/get") - , forOf = _dereq_("es6-iterator/for-of") - , toStringTagSymbol = _dereq_("es6-symbol").toStringTag - , isNative = _dereq_("./is-native-implemented") + //Draw lines + this._lines.bind( + model, + view, + projection, + this) - , isArray = Array.isArray, defineProperty = Object.defineProperty - , objHasOwnProperty = Object.prototype.hasOwnProperty, getPrototypeOf = Object.getPrototypeOf - , WeakMapPoly; + //First draw grid lines and zero lines + for(var i=0; i<3; ++i) { + var x = [0,0,0] + if(cubeAxis[i] > 0) { + x[i] = bounds[1][i] + } else { + x[i] = bounds[0][i] + } -module.exports = WeakMapPoly = function (/* Iterable*/) { - var iterable = arguments[0], self; + //Draw grid lines + for(var j=0; j<2; ++j) { + var u = (i + 1 + j) % 3 + var v = (i + 1 + (j^1)) % 3 + if(this.gridEnable[u]) { + this._lines.drawGrid(u, v, this.bounds, x, this.gridColor[u], this.gridWidth[u]*this.pixelRatio) + } + } - if (!(this instanceof WeakMapPoly)) throw new TypeError("Constructor requires 'new'"); - self = isNative && setPrototypeOf && (WeakMap !== WeakMapPoly) - ? setPrototypeOf(new WeakMap(), getPrototypeOf(this)) : this; + //Draw zero lines (need to do this AFTER all grid lines are drawn) + for(var j=0; j<2; ++j) { + var u = (i + 1 + j) % 3 + var v = (i + 1 + (j^1)) % 3 + if(this.zeroEnable[v]) { + //Check if zero line in bounds + if(Math.min(bounds[0][v], bounds[1][v]) <= 0 && Math.max(bounds[0][v], bounds[1][v]) >= 0) { + this._lines.drawZero(u, v, this.bounds, x, this.zeroLineColor[v], this.zeroLineWidth[v]*this.pixelRatio) + } + } + } + } - if (isValue(iterable)) { - if (!isArray(iterable)) iterable = getIterator(iterable); - } - defineProperty(self, "__weakMapData__", d("c", "$weakMap$" + randomUniq())); - if (!iterable) return self; - forOf(iterable, function (val) { - ensureValue(val); - self.set(val[0], val[1]); - }); - return self; -}; + //Then draw axis lines and tick marks + for(var i=0; i<3; ++i) { -if (isNative) { - if (setPrototypeOf) setPrototypeOf(WeakMapPoly, WeakMap); - WeakMapPoly.prototype = Object.create(WeakMap.prototype, { constructor: d(WeakMapPoly) }); -} + //Draw axis lines + if(this.lineEnable[i]) { + this._lines.drawAxisLine(i, this.bounds, lineOffset[i].primalOffset, this.lineColor[i], this.lineWidth[i]*this.pixelRatio) + } + if(this.lineMirror[i]) { + this._lines.drawAxisLine(i, this.bounds, lineOffset[i].mirrorOffset, this.lineColor[i], this.lineWidth[i]*this.pixelRatio) + } -Object.defineProperties(WeakMapPoly.prototype, { - delete: d(function (key) { - if (objHasOwnProperty.call(object(key), this.__weakMapData__)) { - delete key[this.__weakMapData__]; - return true; - } - return false; - }), - get: d(function (key) { - if (!objHasOwnProperty.call(object(key), this.__weakMapData__)) return undefined; - return key[this.__weakMapData__]; - }), - has: d(function (key) { - return objHasOwnProperty.call(object(key), this.__weakMapData__); - }), - set: d(function (key, value) { - defineProperty(object(key), this.__weakMapData__, d("c", value)); - return this; - }), - toString: d(function () { - return "[object WeakMap]"; - }) -}); -defineProperty(WeakMapPoly.prototype, toStringTagSymbol, d("c", "WeakMap")); + //Compute minor axes + var primalMinor = copyVec3(PRIMAL_MINOR, lineOffset[i].primalMinor) + var mirrorMinor = copyVec3(MIRROR_MINOR, lineOffset[i].mirrorMinor) + var tickLength = this.lineTickLength + for(var j=0; j<3; ++j) { + var scaleFactor = pixelScaleF / model[5*j] + primalMinor[j] *= tickLength[j] * scaleFactor + mirrorMinor[j] *= tickLength[j] * scaleFactor + } -},{"./is-native-implemented":235,"d":155,"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":225}],237:[function(_dereq_,module,exports){ -var naiveFallback = function () { - if (typeof self === "object" && self) return self; - if (typeof window === "object" && window) return window; - throw new Error("Unable to resolve global `this`"); -}; -module.exports = (function () { - if (this) return this; - // Unexpected strict mode (may happen if e.g. bundled into ESM module) + //Draw axis line ticks + if(this.lineTickEnable[i]) { + this._lines.drawAxisTicks(i, lineOffset[i].primalOffset, primalMinor, this.lineTickColor[i], this.lineTickWidth[i]*this.pixelRatio) + } + if(this.lineTickMirror[i]) { + this._lines.drawAxisTicks(i, lineOffset[i].mirrorOffset, mirrorMinor, this.lineTickColor[i], this.lineTickWidth[i]*this.pixelRatio) + } + } + this._lines.unbind() - // Thanks @mathiasbynens -> https://mathiasbynens.be/notes/globalthis - // In all ES5+ engines global object inherits from Object.prototype - // (if you approached one that doesn't please report) - try { - Object.defineProperty(Object.prototype, "__global__", { - get: function () { return this; }, - configurable: true - }); - } catch (error) { - // Unfortunate case of Object.prototype being sealed (via preventExtensions, seal or freeze) - return naiveFallback(); - } - try { - // Safari case (window.__global__ is resolved with global context, but __global__ does not) - if (!__global__) return naiveFallback(); - return __global__; - } finally { - delete Object.prototype.__global__; - } -})(); + //Draw text sprites + this._text.bind( + model, + view, + projection, + this.pixelRatio) -},{}],238:[function(_dereq_,module,exports){ -"use strict"; + var alignOpt // options in shader are from this list {-1, 0, 1, 2, 3, ..., n} + // -1: backward compatible + // 0: raw data + // 1: auto align, free angles + // 2: auto align, horizontal or vertical + //3-n: auto align, round to n directions e.g. 12 -> round to angles with 30-degree steps -module.exports = _dereq_("./is-implemented")() ? globalThis : _dereq_("./implementation"); + var hv_ratio = 0.5 // can have an effect on the ratio between horizontals and verticals when using option 2 -},{"./implementation":237,"./is-implemented":239}],239:[function(_dereq_,module,exports){ -"use strict"; + var enableAlign + var alignDir -module.exports = function () { - if (typeof globalThis !== "object") return false; - if (!globalThis) return false; - return globalThis.Array === Array; -}; + function alignTo(i) { + alignDir = [0,0,0] + alignDir[i] = 1 + } -},{}],240:[function(_dereq_,module,exports){ -"use strict" + function solveTickAlignments(i, minor, major) { -module.exports = extractPlanes + var i1 = (i + 1) % 3 + var i2 = (i + 2) % 3 -function extractPlanes(M, zNear, zFar) { - var z = zNear || 0.0 - var zf = zFar || 1.0 - return [ - [ M[12] + M[0], M[13] + M[1], M[14] + M[2], M[15] + M[3] ], - [ M[12] - M[0], M[13] - M[1], M[14] - M[2], M[15] - M[3] ], - [ M[12] + M[4], M[13] + M[5], M[14] + M[6], M[15] + M[7] ], - [ M[12] - M[4], M[13] - M[5], M[14] - M[6], M[15] - M[7] ], - [ z*M[12] + M[8], z*M[13] + M[9], z*M[14] + M[10], z*M[15] + M[11] ], - [ zf*M[12] - M[8], zf*M[13] - M[9], zf*M[14] - M[10], zf*M[15] - M[11] ] - ] -} -},{}],241:[function(_dereq_,module,exports){ -/** - * inspired by is-number - * but significantly simplified and sped up by ignoring number and string constructors - * ie these return false: - * new Number(1) - * new String('1') - */ + var A = minor[i1] + var B = minor[i2] + var C = major[i1] + var D = major[i2] -'use strict'; + if ((A > 0) && (D > 0)) { alignTo(i1); return; } + else if ((A > 0) && (D < 0)) { alignTo(i1); return; } + else if ((A < 0) && (D > 0)) { alignTo(i1); return; } + else if ((A < 0) && (D < 0)) { alignTo(i1); return; } + else if ((B > 0) && (C > 0)) { alignTo(i2); return; } + else if ((B > 0) && (C < 0)) { alignTo(i2); return; } + else if ((B < 0) && (C > 0)) { alignTo(i2); return; } + else if ((B < 0) && (C < 0)) { alignTo(i2); return; } + } -var allBlankCharCodes = _dereq_('is-string-blank'); + for(var i=0; i<3; ++i) { -module.exports = function(n) { - var type = typeof n; - if(type === 'string') { - var original = n; - n = +n; - // whitespace strings cast to zero - filter them out - if(n===0 && allBlankCharCodes(original)) return false; - } - else if(type !== 'number') return false; + var minor = lineOffset[i].primalMinor + var major = lineOffset[i].mirrorMinor - return n - n < 1; -}; + var offset = copyVec3(PRIMAL_OFFSET, lineOffset[i].primalOffset) -},{"is-string-blank":470}],242:[function(_dereq_,module,exports){ -'use strict' + for(var j=0; j<3; ++j) { + if(this.lineTickEnable[i]) { + offset[j] += pixelScaleF * minor[j] * Math.max(this.lineTickLength[j], 0) / model[5*j] + } + } -module.exports = createFilteredVector + var axis = [0,0,0] + axis[i] = 1 -var cubicHermite = _dereq_('cubic-hermite') -var bsearch = _dereq_('binary-search-bounds') + //Draw tick text + if(this.tickEnable[i]) { -function clamp(lo, hi, x) { - return Math.min(hi, Math.max(lo, x)) -} + if(this.tickAngle[i] === -3600) { + this.tickAngle[i] = 0 + this.tickAlign[i] = 'auto' + } else { + this.tickAlign[i] = -1 + } -function FilteredVector(state0, velocity0, t0) { - this.dimension = state0.length - this.bounds = [ new Array(this.dimension), new Array(this.dimension) ] - for(var i=0; i= n-1) { - var ptr = state.length-1 - var tf = t - time[n-1] - for(var i=0; i= n-1) { - var ptr = state.length-1 - var tf = t - time[n-1] - for(var i=0; i=0; --i) { - if(velocity[--ptr]) { - return false - } - } - return true -} + enableAlign = 0 + alignDir = [0,0,0] + if(this.labels[i].length > 4) { // for large label axis enable alignDir to axis + alignTo(i) + enableAlign = 1 + } -proto.jump = function(t) { - var t0 = this.lastT() - var d = this.dimension - if(t < t0 || arguments.length !== d+1) { - return - } - var state = this._state - var velocity = this._velocity - var ptr = state.length-this.dimension - var bounds = this.bounds - var lo = bounds[0] - var hi = bounds[1] - this._time.push(t0, t) - for(var j=0; j<2; ++j) { - for(var i=0; i0; --i) { - state.push(clamp(lo[i-1], hi[i-1], arguments[i])) - velocity.push(0) - } -} + alignOpt = [this.labelAlign[i], hv_ratio, enableAlign] + if(alignOpt[0] === 'auto') alignOpt[0] = ALIGN_OPTION_AUTO + else alignOpt[0] = parseInt('' + alignOpt[0]) -proto.push = function(t) { - var t0 = this.lastT() - var d = this.dimension - if(t < t0 || arguments.length !== d+1) { - return - } - var state = this._state - var velocity = this._velocity - var ptr = state.length-this.dimension - var dt = t - t0 - var bounds = this.bounds - var lo = bounds[0] - var hi = bounds[1] - var sf = (dt > 1e-6) ? 1/dt : 0 - this._time.push(t) - for(var i=d; i>0; --i) { - var xc = clamp(lo[i-1], hi[i-1], arguments[i]) - state.push(xc) - velocity.push((xc - state[ptr++]) * sf) - } -} + //Add label padding + for(var j=0; j<3; ++j) { + offset[j] += pixelScaleF * minor[j] * this.labelPad[j] / model[5*j] + } + offset[i] += 0.5 * (bounds[0][i] + bounds[1][i]) -proto.set = function(t) { - var d = this.dimension - if(t < this.lastT() || arguments.length !== d+1) { - return - } - var state = this._state - var velocity = this._velocity - var bounds = this.bounds - var lo = bounds[0] - var hi = bounds[1] - this._time.push(t) - for(var i=d; i>0; --i) { - state.push(clamp(lo[i-1], hi[i-1], arguments[i])) - velocity.push(0) + //Draw axis + this._text.drawLabel( + i, + this.labelSize[i], + this.labelAngle[i], + offset, + this.labelColor[i], + [0,0,0], + alignDir, + alignOpt) + } } -} -proto.move = function(t) { - var t0 = this.lastT() - var d = this.dimension - if(t <= t0 || arguments.length !== d+1) { - return - } - var state = this._state - var velocity = this._velocity - var statePtr = state.length - this.dimension - var bounds = this.bounds - var lo = bounds[0] - var hi = bounds[1] - var dt = t - t0 - var sf = (dt > 1e-6) ? 1/dt : 0.0 - this._time.push(t) - for(var i=d; i>0; --i) { - var dx = arguments[i] - state.push(clamp(lo[i-1], hi[i-1], state[statePtr++] + dx)) - velocity.push(dx * sf) - } + this._text.unbind() } -proto.idle = function(t) { - var t0 = this.lastT() - if(t < t0) { - return - } - var d = this.dimension - var state = this._state - var velocity = this._velocity - var statePtr = state.length-d - var bounds = this.bounds - var lo = bounds[0] - var hi = bounds[1] - var dt = t - t0 - this._time.push(t) - for(var i=d-1; i>=0; --i) { - state.push(clamp(lo[i], hi[i], state[statePtr] + dt * velocity[statePtr])) - velocity.push(0) - statePtr += 1 - } +proto.dispose = function() { + this._text.dispose() + this._lines.dispose() + this._background.dispose() + this._lines = null + this._text = null + this._background = null + this.gl = null } -function getZero(d) { - var result = new Array(d) - for(var i=0; i>>1,x=a", useNdarray ? ".get(m)" : "[m]"] - if(earlyOut) { - if(predicate.indexOf("c") < 0) { - code.push(";if(x===y){return m}else if(x<=y){") - } else { - code.push(";var p=c(x,y);if(p===0){return m}else if(p<=0){") - } - } else { - code.push(";if(", predicate, "){i=m;") +proto.draw = function(model, view, projection, bounds, enable, colors) { + var needsBG = false + for(var i=0; i<3; ++i) { + needsBG = needsBG || enable[i] } - if(reversed) { - code.push("l=m+1}else{h=m-1}") - } else { - code.push("h=m-1}else{l=m+1}") + if(!needsBG) { + return } - code.push("}") - if(earlyOut) { - code.push("return -1};") - } else { - code.push("return i};") + + var gl = this.gl + + gl.enable(gl.POLYGON_OFFSET_FILL) + gl.polygonOffset(1, 2) + + this.shader.bind() + this.shader.uniforms = { + model: model, + view: view, + projection: projection, + bounds: bounds, + enable: enable, + colors: colors } - return code.join("") -} + this.vao.bind() + this.vao.draw(this.gl.TRIANGLES, 36) + this.vao.unbind() -function compileBoundsSearch(predicate, reversed, suffix, earlyOut) { - var result = new Function([ - compileSearch("A", "x" + predicate + "y", reversed, ["y"], false, earlyOut), - compileSearch("B", "x" + predicate + "y", reversed, ["y"], true, earlyOut), - compileSearch("P", "c(x,y)" + predicate + "0", reversed, ["y", "c"], false, earlyOut), - compileSearch("Q", "c(x,y)" + predicate + "0", reversed, ["y", "c"], true, earlyOut), -"function dispatchBsearch", suffix, "(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", suffix].join("")) - return result() + gl.disable(gl.POLYGON_OFFSET_FILL) } -module.exports = { - ge: compileBoundsSearch(">=", false, "GE"), - gt: compileBoundsSearch(">", false, "GT"), - lt: compileBoundsSearch("<", true, "LT"), - le: compileBoundsSearch("<=", true, "LE"), - eq: compileBoundsSearch("-", true, "EQ", true) +proto.dispose = function() { + this.vao.dispose() + this.buffer.dispose() + this.shader.dispose() } -},{}],244:[function(_dereq_,module,exports){ -/*eslint new-cap:0*/ -var dtype = _dereq_('dtype') +function createBackgroundCube(gl) { + //Create cube vertices + var vertices = [] + var indices = [] + var ptr = 0 + for(var d=0; d<3; ++d) { + var u = (d+1) % 3 + var v = (d+2) % 3 + var x = [0,0,0] + var c = [0,0,0] + for(var s=-1; s<=1; s+=2) { + indices.push(ptr, ptr+2, ptr+1, + ptr+1, ptr+2, ptr+3) + x[d] = s + c[d] = s + for(var i=-1; i<=1; i+=2) { + x[u] = i + for(var j=-1; j<=1; j+=2) { + x[v] = j + vertices.push(x[0], x[1], x[2], + c[0], c[1], c[2]) + ptr += 1 + } + } + //Swap u and v + var tt = u + u = v + v = tt + } + } -module.exports = flattenVertexData + //Allocate buffer and vertex array + var buffer = createBuffer(gl, new Float32Array(vertices)) + var elements = createBuffer(gl, new Uint16Array(indices), gl.ELEMENT_ARRAY_BUFFER) + var vao = createVAO(gl, [ + { + buffer: buffer, + type: gl.FLOAT, + size: 3, + offset: 0, + stride: 24 + }, + { + buffer: buffer, + type: gl.FLOAT, + size: 3, + offset: 12, + stride: 24 + } + ], elements) -function flattenVertexData (data, output, offset) { - if (!data) throw new TypeError('must specify data as first parameter') - offset = +(offset || 0) | 0 + //Create shader object + var shader = createShader(gl) + shader.attributes.position.location = 0 + shader.attributes.normal.location = 1 - if (Array.isArray(data) && (data[0] && typeof data[0][0] === 'number')) { - var dim = data[0].length - var length = data.length * dim - var i, j, k, l + return new BackgroundCube(gl, buffer, vao, shader) +} - // no output specified, create a new typed array - if (!output || typeof output === 'string') { - output = new (dtype(output || 'float32'))(length + offset) - } +},{"./shaders":254,"gl-buffer":259,"gl-vao":357}],252:[function(_dereq_,module,exports){ +"use strict" - var dstLength = output.length - offset - if (length !== dstLength) { - throw new Error('source length ' + length + ' (' + dim + 'x' + data.length + ')' + - ' does not match destination length ' + dstLength) - } +module.exports = getCubeEdges - for (i = 0, k = offset; i < data.length; i++) { - for (j = 0; j < dim; j++) { - output[k++] = data[i][j] === null ? NaN : data[i][j] - } - } - } else { - if (!output || typeof output === 'string') { - // no output, create a new one - var Ctor = dtype(output || 'float32') +var bits = _dereq_('bit-twiddle') +var multiply = _dereq_('gl-mat4/multiply') +var splitPoly = _dereq_('split-polygon') +var orient = _dereq_('robust-orientation') - // handle arrays separately due to possible nulls - if (Array.isArray(data) || output === 'array') { - output = new Ctor(data.length + offset) - for (i = 0, k = offset, l = output.length; k < l; k++, i++) { - output[k] = data[i] === null ? NaN : data[i] - } - } else { - if (offset === 0) { - output = new Ctor(data) - } else { - output = new Ctor(data.length + offset) +var mvp = new Array(16) +var pCubeVerts = new Array(8) +var cubeVerts = new Array(8) +var x = new Array(3) +var zero3 = [0,0,0] - output.set(data, offset) - } - } - } else { - // store output in existing array - output.set(data, offset) - } +;(function() { + for(var i=0; i<8; ++i) { + pCubeVerts[i] =[1,1,1,1] + cubeVerts[i] = [1,1,1] } +})() - return output + +function transformHg(result, x, mat) { + for(var i=0; i<4; ++i) { + result[i] = mat[12+i] + for(var j=0; j<3; ++j) { + result[i] += x[j]*mat[4*j+i] + } + } } -},{"dtype":175}],245:[function(_dereq_,module,exports){ -'use strict' - -var stringifyFont = _dereq_('css-font/stringify') -var defaultChars = [32, 126] - -module.exports = atlas - -function atlas(options) { - options = options || {} - - var shape = options.shape ? options.shape : options.canvas ? [options.canvas.width, options.canvas.height] : [512, 512] - var canvas = options.canvas || document.createElement('canvas') - var font = options.font - var step = typeof options.step === 'number' ? [options.step, options.step] : options.step || [32, 32] - var chars = options.chars || defaultChars - - if (font && typeof font !== 'string') font = stringifyFont(font) - - if (!Array.isArray(chars)) { - chars = String(chars).split('') - } else - if (chars.length === 2 - && typeof chars[0] === 'number' - && typeof chars[1] === 'number' - ) { - var newchars = [] - - for (var i = chars[0], j = 0; i <= chars[1]; i++) { - newchars[j++] = String.fromCharCode(i) - } - - chars = newchars - } - - shape = shape.slice() - canvas.width = shape[0] - canvas.height = shape[1] - - var ctx = canvas.getContext('2d') - - ctx.fillStyle = '#000' - ctx.fillRect(0, 0, canvas.width, canvas.height) - - ctx.font = font - ctx.textAlign = 'center' - ctx.textBaseline = 'middle' - ctx.fillStyle = '#fff' - - var x = step[0] / 2 - var y = step[1] / 2 - for (var i = 0; i < chars.length; i++) { - ctx.fillText(chars[i], x, y) - if ((x += step[0]) > shape[0] - step[0]/2) (x = step[0]/2), (y += step[1]) - } - - return canvas -} +var FRUSTUM_PLANES = [ + [ 0, 0, 1, 0, 0], + [ 0, 0,-1, 1, 0], + [ 0,-1, 0, 1, 0], + [ 0, 1, 0, 1, 0], + [-1, 0, 0, 1, 0], + [ 1, 0, 0, 1, 0] +] -},{"css-font/stringify":147}],246:[function(_dereq_,module,exports){ -'use strict' - -module.exports = measure - -measure.canvas = document.createElement('canvas') -measure.cache = {} - -function measure (font, o) { - if (!o) o = {} - - if (typeof font === 'string' || Array.isArray(font)) { - o.family = font - } - - var family = Array.isArray(o.family) ? o.family.join(', ') : o.family - if (!family) throw Error('`family` must be defined') - - var fs = o.size || o.fontSize || o.em || 48 - var weight = o.weight || o.fontWeight || '' - var style = o.style || o.fontStyle || '' - var font = [style, weight, fs].join(' ') + 'px ' + family - var origin = o.origin || 'top' - - if (measure.cache[family]) { - // return more precise values if cache has them - if (fs <= measure.cache[family].em) { - return applyOrigin(measure.cache[family], origin) - } - } - - var canvas = o.canvas || measure.canvas - var ctx = canvas.getContext('2d') - var chars = { - upper: o.upper !== undefined ? o.upper : 'H', - lower: o.lower !== undefined ? o.lower : 'x', - descent: o.descent !== undefined ? o.descent : 'p', - ascent: o.ascent !== undefined ? o.ascent : 'h', - tittle: o.tittle !== undefined ? o.tittle : 'i', - overshoot: o.overshoot !== undefined ? o.overshoot : 'O' - } - var l = Math.ceil(fs * 1.5) - canvas.height = l - canvas.width = l * .5 - ctx.font = font - - var char = 'H' - var result = { - top: 0 - } - - // measure line-height - ctx.clearRect(0, 0, l, l) - ctx.textBaseline = 'top' - ctx.fillStyle = 'black' - ctx.fillText(char, 0, 0) - var topPx = firstTop(ctx.getImageData(0, 0, l, l)) - ctx.clearRect(0, 0, l, l) - ctx.textBaseline = 'bottom' - ctx.fillText(char, 0, l) - var bottomPx = firstTop(ctx.getImageData(0, 0, l, l)) - result.lineHeight = - result.bottom = l - bottomPx + topPx - - // measure baseline - ctx.clearRect(0, 0, l, l) - ctx.textBaseline = 'alphabetic' - ctx.fillText(char, 0, l) - var baselinePx = firstTop(ctx.getImageData(0, 0, l, l)) - var baseline = l - baselinePx - 1 + topPx - result.baseline = - result.alphabetic = baseline - - // measure median - ctx.clearRect(0, 0, l, l) - ctx.textBaseline = 'middle' - ctx.fillText(char, 0, l * .5) - var medianPx = firstTop(ctx.getImageData(0, 0, l, l)) - result.median = - result.middle = l - medianPx - 1 + topPx - l * .5 - - // measure hanging - ctx.clearRect(0, 0, l, l) - ctx.textBaseline = 'hanging' - ctx.fillText(char, 0, l * .5) - var hangingPx = firstTop(ctx.getImageData(0, 0, l, l)) - result.hanging = l - hangingPx - 1 + topPx - l * .5 - - // measure ideographic - ctx.clearRect(0, 0, l, l) - ctx.textBaseline = 'ideographic' - ctx.fillText(char, 0, l) - var ideographicPx = firstTop(ctx.getImageData(0, 0, l, l)) - result.ideographic = l - ideographicPx - 1 + topPx - - // measure cap - if (chars.upper) { - ctx.clearRect(0, 0, l, l) - ctx.textBaseline = 'top' - ctx.fillText(chars.upper, 0, 0) - result.upper = firstTop(ctx.getImageData(0, 0, l, l)) - result.capHeight = (result.baseline - result.upper) - } - - // measure x - if (chars.lower) { - ctx.clearRect(0, 0, l, l) - ctx.textBaseline = 'top' - ctx.fillText(chars.lower, 0, 0) - result.lower = firstTop(ctx.getImageData(0, 0, l, l)) - result.xHeight = (result.baseline - result.lower) - } - - // measure tittle - if (chars.tittle) { - ctx.clearRect(0, 0, l, l) - ctx.textBaseline = 'top' - ctx.fillText(chars.tittle, 0, 0) - result.tittle = firstTop(ctx.getImageData(0, 0, l, l)) - } - - // measure ascent - if (chars.ascent) { - ctx.clearRect(0, 0, l, l) - ctx.textBaseline = 'top' - ctx.fillText(chars.ascent, 0, 0) - result.ascent = firstTop(ctx.getImageData(0, 0, l, l)) - } - - // measure descent - if (chars.descent) { - ctx.clearRect(0, 0, l, l) - ctx.textBaseline = 'top' - ctx.fillText(chars.descent, 0, 0) - result.descent = firstBottom(ctx.getImageData(0, 0, l, l)) - } - - // measure overshoot - if (chars.overshoot) { - ctx.clearRect(0, 0, l, l) - ctx.textBaseline = 'top' - ctx.fillText(chars.overshoot, 0, 0) - var overshootPx = firstBottom(ctx.getImageData(0, 0, l, l)) - result.overshoot = overshootPx - baseline - } - - // normalize result - for (var name in result) { - result[name] /= fs - } - - result.em = fs - measure.cache[family] = result - - return applyOrigin(result, origin) -} - -function applyOrigin(obj, origin) { - var res = {} - if (typeof origin === 'string') origin = obj[origin] - for (var name in obj) { - if (name === 'em') continue - res[name] = obj[name] - origin - } - return res -} - -function firstTop(iData) { - var l = iData.height - var data = iData.data - for (var i = 3; i < data.length; i+=4) { - if (data[i] !== 0) { - return Math.floor((i - 3) *.25 / l) - } - } -} - -function firstBottom(iData) { - var l = iData.height - var data = iData.data - for (var i = data.length - 1; i > 0; i -= 4) { - if (data[i] !== 0) { - return Math.floor((i - 3) *.25 / l) - } - } -} +function polygonArea(p) { + for(var i=0; i=0; --s) { - var n = n_stack[s] - if(d_stack[s] <= 0) { - n_stack[s] = new RBNode(n._color, n.key, n.value, n_stack[s+1], n.right, n._count+1) - } else { - n_stack[s] = new RBNode(n._color, n.key, n.value, n.left, n_stack[s+1], n._count+1) + if(ortho) cubeVerts[i][2] *= -1; + + if(w < 0) { + if(closest < 0) { + closest = i + } else if(cubeVerts[i][2] < cubeVerts[closest][2]) { + closest = i + } } } - //Rebalance tree using rotations - //console.log("start insert", key, d_stack) - for(var s=n_stack.length-1; s>1; --s) { - var p = n_stack[s-1] - var n = n_stack[s] - if(p._color === BLACK || n._color === BLACK) { - break - } - var pp = n_stack[s-2] - if(pp.left === p) { - if(p.left === n) { - var y = pp.right - if(y && y._color === RED) { - //console.log("LLr") - p._color = BLACK - pp.right = repaint(BLACK, y) - pp._color = RED - s -= 1 - } else { - //console.log("LLb") - pp._color = RED - pp.left = p.right - p._color = BLACK - p.right = pp - n_stack[s-2] = p - n_stack[s-1] = n - recount(pp) - recount(p) - if(s >= 3) { - var ppp = n_stack[s-3] - if(ppp.left === pp) { - ppp.left = p - } else { - ppp.right = p - } - } - break + + if(closest < 0) { + closest = 0 + for(var d=0; d<3; ++d) { + var u = (d+2) % 3 + var v = (d+1) % 3 + var o0 = -1 + var o1 = -1 + for(var s=0; s<2; ++s) { + var f0 = (s<= 3) { - var ppp = n_stack[s-3] - if(ppp.left === pp) { - ppp.left = n - } else { - ppp.right = n - } - } - break + o1 = 1 } } - } else { - if(p.right === n) { - var y = pp.left - if(y && y._color === RED) { - //console.log("RRr", y.key) - p._color = BLACK - pp.left = repaint(BLACK, y) - pp._color = RED - s -= 1 - } else { - //console.log("RRb") - pp._color = RED - pp.right = p.left - p._color = BLACK - p.left = pp - n_stack[s-2] = p - n_stack[s-1] = n - recount(pp) - recount(p) - if(s >= 3) { - var ppp = n_stack[s-3] - if(ppp.right === pp) { - ppp.right = p - } else { - ppp.left = p - } - } - break + if(o0 < 0 || o1 < 0) { + if(o1 > o0) { + closest |= 1<= 3) { - var ppp = n_stack[s-3] - if(ppp.right === pp) { - ppp.right = n - } else { - ppp.left = n - } - } - break + o1 = o } } + if(o1 > o0) { + closest |= 1< cubeVerts[i][1]) { + bottom = i + } } -} -//Visit half nodes in order -function doVisitHalf(lo, compare, visit, node) { - var l = compare(lo, node.key) - if(l <= 0) { - if(node.left) { - var v = doVisitHalf(lo, compare, visit, node.left) - if(v) { return v } + //Find left/right neighbors of bottom vertex + var left = -1 + for(var i=0; i<3; ++i) { + var idx = bottom ^ (1< 0) { - v = visit(node.key, node.value) - if(v) { return v } + if(right < 0) { + right = idx + } + var v = cubeVerts[idx] + if(v[0] > cubeVerts[right][0]) { + right = idx } } - if(h > 0 && node.right) { - return doVisit(lo, hi, compare, visit, node.right) + + //Determine edge axis coordinates + var cubeEdges = CUBE_EDGES + cubeEdges[0] = cubeEdges[1] = cubeEdges[2] = 0 + cubeEdges[bits.log2(left^bottom)] = bottom&left + cubeEdges[bits.log2(bottom^right)] = bottom&right + var top = right ^ 7 + if(top === closest || top === farthest) { + top = left ^ 7 + cubeEdges[bits.log2(right^top)] = top&right + } else { + cubeEdges[bits.log2(left^top)] = top&left + } + + //Determine visible faces + var axis = CUBE_AXIS + var cutCorner = closest + for(var d=0; d<3; ++d) { + if(cutCorner & (1<= 0) { - return - } - return doVisit(lo, hi, this._compare, visit, this.root) - break - } + var screenAxis = zeroVec(SCREEN_AXIS) + screenAxis[j] = 1 + this.shader.uniforms.screenAxis = screenAxis + this.vao.draw(this.gl.TRIANGLES, this.tickCount[j], this.tickOffset[j]) } -//First item in list -Object.defineProperty(proto, "begin", { - get: function() { - var stack = [] - var n = this.root - while(n) { - stack.push(n) - n = n.left - } - return new RedBlackTreeIterator(this, stack) - } -}) -//Last item in list -Object.defineProperty(proto, "end", { - get: function() { - var stack = [] - var n = this.root - while(n) { - stack.push(n) - n = n.right - } - return new RedBlackTreeIterator(this, stack) +proto.drawGrid = function(i, j, bounds, offset, color, lineWidth) { + if(!this.gridCount[i]) { + return } -}) -//Find the ith item in the tree -proto.at = function(idx) { - if(idx < 0) { - return new RedBlackTreeIterator(this, []) - } - var n = this.root - var stack = [] - while(true) { - stack.push(n) - if(n.left) { - if(idx < n.left._count) { - n = n.left - continue - } - idx -= n.left._count - } - if(!idx) { - return new RedBlackTreeIterator(this, stack) - } - idx -= 1 - if(n.right) { - if(idx >= n.right._count) { - break - } - n = n.right - } else { - break - } - } - return new RedBlackTreeIterator(this, []) -} + var minorAxis = zeroVec(MINOR_AXIS) + minorAxis[j] = bounds[1][j] - bounds[0][j] + this.shader.uniforms.minorAxis = minorAxis -proto.ge = function(key) { - var cmp = this._compare - var n = this.root - var stack = [] - var last_ptr = 0 - while(n) { - var d = cmp(key, n.key) - stack.push(n) - if(d <= 0) { - last_ptr = stack.length - } - if(d <= 0) { - n = n.left - } else { - n = n.right - } - } - stack.length = last_ptr - return new RedBlackTreeIterator(this, stack) + var noffset = copyVec(OFFSET_VEC, offset) + noffset[j] += bounds[0][j] + this.shader.uniforms.offset = noffset + + var majorAxis = zeroVec(MAJOR_AXIS) + majorAxis[i] = 1 + this.shader.uniforms.majorAxis = majorAxis + + var screenAxis = zeroVec(SCREEN_AXIS) + screenAxis[i] = 1 + this.shader.uniforms.screenAxis = screenAxis + this.shader.uniforms.lineWidth = lineWidth + + this.shader.uniforms.color = color + this.vao.draw(this.gl.TRIANGLES, this.gridCount[i], this.gridOffset[i]) } -proto.gt = function(key) { - var cmp = this._compare - var n = this.root - var stack = [] - var last_ptr = 0 - while(n) { - var d = cmp(key, n.key) - stack.push(n) - if(d < 0) { - last_ptr = stack.length - } - if(d < 0) { - n = n.left - } else { - n = n.right - } - } - stack.length = last_ptr - return new RedBlackTreeIterator(this, stack) +proto.drawZero = function(j, i, bounds, offset, color, lineWidth) { + var minorAxis = zeroVec(MINOR_AXIS) + this.shader.uniforms.majorAxis = minorAxis + + minorAxis[j] = bounds[1][j] - bounds[0][j] + this.shader.uniforms.minorAxis = minorAxis + + var noffset = copyVec(OFFSET_VEC, offset) + noffset[j] += bounds[0][j] + this.shader.uniforms.offset = noffset + + var screenAxis = zeroVec(SCREEN_AXIS) + screenAxis[i] = 1 + this.shader.uniforms.screenAxis = screenAxis + this.shader.uniforms.lineWidth = lineWidth + + this.shader.uniforms.color = color + this.vao.draw(this.gl.TRIANGLES, 6) } -proto.lt = function(key) { - var cmp = this._compare - var n = this.root - var stack = [] - var last_ptr = 0 - while(n) { - var d = cmp(key, n.key) - stack.push(n) - if(d > 0) { - last_ptr = stack.length - } - if(d <= 0) { - n = n.left - } else { - n = n.right - } - } - stack.length = last_ptr - return new RedBlackTreeIterator(this, stack) +proto.dispose = function() { + this.vao.dispose() + this.vertBuffer.dispose() + this.shader.dispose() } -proto.le = function(key) { - var cmp = this._compare - var n = this.root - var stack = [] - var last_ptr = 0 - while(n) { - var d = cmp(key, n.key) - stack.push(n) - if(d >= 0) { - last_ptr = stack.length +function createLines(gl, bounds, ticks) { + var vertices = [] + var tickOffset = [0,0,0] + var tickCount = [0,0,0] + + //Create grid lines for each axis/direction + var gridOffset = [0,0,0] + var gridCount = [0,0,0] + + //Add zero line + vertices.push( + 0,0,1, 0,1,1, 0,0,-1, + 0,0,-1, 0,1,1, 0,1,-1) + + for(var i=0; i<3; ++i) { + //Axis tick marks + var start = ((vertices.length / 3)|0) + for(var j=0; j 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}"]) +var textFrag = glslify(["precision highp float;\n#define GLSLIFY 1\n\nuniform vec4 color;\nvoid main() {\n gl_FragColor = color;\n}"]) +exports.text = function(gl) { + return createShader(gl, textVert, textFrag, null, [ + {name: 'position', type: 'vec3'} + ]) } -//Iterator for red black tree -function RedBlackTreeIterator(tree, stack) { - this.tree = tree - this._stack = stack +var bgVert = glslify(["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}"]) +var bgFrag = glslify(["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}"]) +exports.bg = function(gl) { + return createShader(gl, bgVert, bgFrag, null, [ + {name: 'position', type: 'vec3'}, + {name: 'normal', type: 'vec3'} + ]) } -var iproto = RedBlackTreeIterator.prototype +},{"gl-shader":334,"glslify":257}],255:[function(_dereq_,module,exports){ +(function (process){(function (){ +"use strict" -//Test if iterator is valid -Object.defineProperty(iproto, "valid", { - get: function() { - return this._stack.length > 0 - } -}) +module.exports = createTextSprites -//Node of the iterator -Object.defineProperty(iproto, "node", { - get: function() { - if(this._stack.length > 0) { - return this._stack[this._stack.length-1] - } - return null - }, - enumerable: true -}) +var createBuffer = _dereq_('gl-buffer') +var createVAO = _dereq_('gl-vao') +var vectorizeText = _dereq_('vectorize-text') +var createShader = _dereq_('./shaders').text -//Makes a copy of an iterator -iproto.clone = function() { - return new RedBlackTreeIterator(this.tree, this._stack.slice()) +var globals = window || process.global || {} +var __TEXT_CACHE = globals.__TEXT_CACHE || {} +globals.__TEXT_CACHE = {} + +//Vertex buffer format for text is: +// +/// [x,y,z] = Spatial coordinate +// + +var VERTEX_SIZE = 3 + +function TextSprites( + gl, + shader, + buffer, + vao) { + this.gl = gl + this.shader = shader + this.buffer = buffer + this.vao = vao + this.tickOffset = + this.tickCount = + this.labelOffset = + this.labelCount = null } -//Swaps two nodes -function swapNode(n, v) { - n.key = v.key - n.value = v.value - n.left = v.left - n.right = v.right - n._color = v._color - n._count = v._count +var proto = TextSprites.prototype + +//Bind textures for rendering +var SHAPE = [0,0] +proto.bind = function(model, view, projection, pixelScale) { + this.vao.bind() + this.shader.bind() + var uniforms = this.shader.uniforms + uniforms.model = model + uniforms.view = view + uniforms.projection = projection + uniforms.pixelScale = pixelScale + SHAPE[0] = this.gl.drawingBufferWidth + SHAPE[1] = this.gl.drawingBufferHeight + this.shader.uniforms.resolution = SHAPE } -//Fix up a double black node in a tree -function fixDoubleBlack(stack) { - var n, p, s, z - for(var i=stack.length-1; i>=0; --i) { - n = stack[i] - if(i === 0) { - n._color = BLACK - return +proto.unbind = function() { + this.vao.unbind() +} + +proto.update = function(bounds, labels, labelFont, ticks, tickFont) { + var data = [] + + function addItem(t, text, font, size, lineSpacing, styletags) { + var fontcache = __TEXT_CACHE[font] + if(!fontcache) { + fontcache = __TEXT_CACHE[font] = {} } - //console.log("visit node:", n.key, i, stack[i].key, stack[i-1].key) - p = stack[i-1] - if(p.left === n) { - //console.log("left child") - s = p.right - if(s.right && s.right._color === RED) { - //console.log("case 1: right sibling child red") - s = p.right = cloneNode(s) - z = s.right = cloneNode(s.right) - p.right = s.left - s.left = p - s.right = z - s._color = p._color - n._color = BLACK - p._color = BLACK - z._color = BLACK - recount(p) - recount(s) - if(i > 1) { - var pp = stack[i-2] - if(pp.left === p) { - pp.left = s - } else { - pp.right = s - } - } - stack[i-1] = s - return - } else if(s.left && s.left._color === RED) { - //console.log("case 1: left sibling child red") - s = p.right = cloneNode(s) - z = s.left = cloneNode(s.left) - p.right = z.left - s.left = z.right - z.left = p - z.right = s - z._color = p._color - p._color = BLACK - s._color = BLACK - n._color = BLACK - recount(p) - recount(s) - recount(z) - if(i > 1) { - var pp = stack[i-2] - if(pp.left === p) { - pp.left = z - } else { - pp.right = z - } - } - stack[i-1] = z - return - } - if(s._color === BLACK) { - if(p._color === RED) { - //console.log("case 2: black sibling, red parent", p.right.value) - p._color = BLACK - p.right = repaint(RED, s) - return - } else { - //console.log("case 2: black sibling, black parent", p.right.value) - p.right = repaint(RED, s) - continue - } - } else { - //console.log("case 3: red sibling") - s = cloneNode(s) - p.right = s.left - s.left = p - s._color = p._color - p._color = RED - recount(p) - recount(s) - if(i > 1) { - var pp = stack[i-2] - if(pp.left === p) { - pp.left = s - } else { - pp.right = s - } - } - stack[i-1] = s - stack[i] = p - if(i+1 < stack.length) { - stack[i+1] = n - } else { - stack.push(n) - } - i = i+2 - } - } else { - //console.log("right child") - s = p.left - if(s.left && s.left._color === RED) { - //console.log("case 1: left sibling child red", p.value, p._color) - s = p.left = cloneNode(s) - z = s.left = cloneNode(s.left) - p.left = s.right - s.right = p - s.left = z - s._color = p._color - n._color = BLACK - p._color = BLACK - z._color = BLACK - recount(p) - recount(s) - if(i > 1) { - var pp = stack[i-2] - if(pp.right === p) { - pp.right = s - } else { - pp.left = s - } - } - stack[i-1] = s - return - } else if(s.right && s.right._color === RED) { - //console.log("case 1: right sibling child red") - s = p.left = cloneNode(s) - z = s.right = cloneNode(s.right) - p.left = z.right - s.right = z.left - z.right = p - z.left = s - z._color = p._color - p._color = BLACK - s._color = BLACK - n._color = BLACK - recount(p) - recount(s) - recount(z) - if(i > 1) { - var pp = stack[i-2] - if(pp.right === p) { - pp.right = z - } else { - pp.left = z - } - } - stack[i-1] = z - return - } - if(s._color === BLACK) { - if(p._color === RED) { - //console.log("case 2: black sibling, red parent") - p._color = BLACK - p.left = repaint(RED, s) - return - } else { - //console.log("case 2: black sibling, black parent") - p.left = repaint(RED, s) - continue - } - } else { - //console.log("case 3: red sibling") - s = cloneNode(s) - p.left = s.right - s.right = p - s._color = p._color - p._color = RED - recount(p) - recount(s) - if(i > 1) { - var pp = stack[i-2] - if(pp.right === p) { - pp.right = s - } else { - pp.left = s - } - } - stack[i-1] = s - stack[i] = p - if(i+1 < stack.length) { - stack[i+1] = n - } else { - stack.push(n) - } - i = i+2 + var mesh = fontcache[text] + if(!mesh) { + mesh = fontcache[text] = tryVectorizeText(text, { + triangles: true, + font: font, + textAlign: 'center', + textBaseline: 'middle', + lineSpacing: lineSpacing, + styletags: styletags + }) + } + var scale = (size || 12) / 12 + var positions = mesh.positions + var cells = mesh.cells + for(var i=0, nc=cells.length; i=0; --j) { + var p = positions[c[j]] + data.push(scale*p[0], -scale*p[1], t) } } } -} -//Removes item at iterator from tree -iproto.remove = function() { - var stack = this._stack - if(stack.length === 0) { - return this.tree + //Generate sprites for all 3 axes, store data in texture atlases + var tickOffset = [0,0,0] + var tickCount = [0,0,0] + var labelOffset = [0,0,0] + var labelCount = [0,0,0] + var lineSpacing = 1.25 + var styletags = { + breaklines:true, + bolds: true, + italics: true, + subscripts:true, + superscripts:true } - //First copy path to node - var cstack = new Array(stack.length) - var n = stack[stack.length-1] - cstack[cstack.length-1] = new RBNode(n._color, n.key, n.value, n.left, n.right, n._count) - for(var i=stack.length-2; i>=0; --i) { - var n = stack[i] - if(n.left === stack[i+1]) { - cstack[i] = new RBNode(n._color, n.key, n.value, cstack[i+1], n.right, n._count) - } else { - cstack[i] = new RBNode(n._color, n.key, n.value, n.left, cstack[i+1], n._count) + for(var d=0; d<3; ++d) { + + //Generate label + labelOffset[d] = (data.length/VERTEX_SIZE)|0 + addItem( + 0.5*(bounds[0][d]+bounds[1][d]), + labels[d], + labelFont[d], + 12, // labelFontSize + lineSpacing, + styletags + ) + labelCount[d] = ((data.length/VERTEX_SIZE)|0) - labelOffset[d] + + //Generate sprites for tick marks + tickOffset[d] = (data.length/VERTEX_SIZE)|0 + for(var i=0; i=split; --i) { - n = cstack[i] - cstack[i] = new RBNode(n._color, n.key, n.value, n.left, cstack[i+1], n._count) - } - cstack[split-1].left = cstack[split] +//Draws the text label for an axis +proto.drawLabel = function(d, scale, angle, offset, color, axis, alignDir, alignOpt) { + if(!this.labelCount[d]) { + return } - //console.log("stack=", cstack.map(function(v) { return v.value })) - //Remove leaf node - n = cstack[cstack.length-1] - if(n._color === RED) { - //Easy case: removing red leaf - //console.log("RED leaf") - var p = cstack[cstack.length-2] - if(p.left === n) { - p.left = null - } else if(p.right === n) { - p.right = null - } - cstack.pop() - for(var i=0; i 0) { - return this._stack[this._stack.length-1].key - } - return - }, - enumerable: true -}) +function createTextSprites( + gl, + bounds, + labels, + labelFont, + ticks, + tickFont) { -//Returns value -Object.defineProperty(iproto, "value", { - get: function() { - if(this._stack.length > 0) { - return this._stack[this._stack.length-1].value + var buffer = createBuffer(gl) + var vao = createVAO(gl, [ + { "buffer": buffer, + "size": 3 } - return - }, - enumerable: true -}) + ]) + var shader = createShader(gl) + shader.attributes.position.location = 0 -//Returns the position of this iterator in the sorted list -Object.defineProperty(iproto, "index", { - get: function() { - var idx = 0 - var stack = this._stack - if(stack.length === 0) { - var r = this.tree.root - if(r) { - return r._count - } - return 0 - } else if(stack[stack.length-1].left) { - idx = stack[stack.length-1].left._count - } - for(var s=stack.length-2; s>=0; --s) { - if(stack[s+1] === stack[s].right) { - ++idx - if(stack[s].left) { - idx += stack[s].left._count - } - } - } - return idx - }, - enumerable: true -}) + var result = new TextSprites( + gl, + shader, + buffer, + vao) -//Advances iterator to next element in list -iproto.next = function() { - var stack = this._stack - if(stack.length === 0) { - return - } - var n = stack[stack.length-1] - if(n.right) { - n = n.right - while(n) { - stack.push(n) - n = n.left - } - } else { - stack.pop() - while(stack.length > 0 && stack[stack.length-1].right === n) { - n = stack[stack.length-1] - stack.pop() - } - } + result.update(bounds, labels, labelFont, ticks, tickFont) + + return result } -//Checks if iterator is at end of tree -Object.defineProperty(iproto, "hasNext", { - get: function() { - var stack = this._stack - if(stack.length === 0) { - return false - } - if(stack[stack.length-1].right) { - return true - } - for(var s=stack.length-1; s>0; --s) { - if(stack[s-1].left === stack[s]) { - return true - } - } - return false - } -}) +}).call(this)}).call(this,_dereq_('_process')) +},{"./shaders":254,"_process":522,"gl-buffer":259,"gl-vao":357,"vectorize-text":617}],256:[function(_dereq_,module,exports){ +'use strict' -//Update value -iproto.update = function(value) { - var stack = this._stack - if(stack.length === 0) { - throw new Error("Can't update empty node!") +exports.create = defaultTicks +exports.equal = ticksEqual + +function prettyPrint(spacing, i) { + var stepStr = spacing + "" + var u = stepStr.indexOf(".") + var sigFigs = 0 + if(u >= 0) { + sigFigs = stepStr.length - u - 1 } - var cstack = new Array(stack.length) - var n = stack[stack.length-1] - cstack[cstack.length-1] = new RBNode(n._color, n.key, value, n.left, n.right, n._count) - for(var i=stack.length-2; i>=0; --i) { - n = stack[i] - if(n.left === stack[i+1]) { - cstack[i] = new RBNode(n._color, n.key, n.value, cstack[i+1], n.right, n._count) - } else { - cstack[i] = new RBNode(n._color, n.key, n.value, n.left, cstack[i+1], n._count) + var shift = Math.pow(10, sigFigs) + var x = Math.round(spacing * i * shift) + var xstr = x + "" + if(xstr.indexOf("e") >= 0) { + return xstr + } + var xi = x / shift, xf = x % shift + if(x < 0) { + xi = -Math.ceil(xi)|0 + xf = (-xf)|0 + } else { + xi = Math.floor(xi)|0 + xf = xf|0 + } + var xis = "" + xi + if(x < 0) { + xis = "-" + xis + } + if(sigFigs) { + var xs = "" + xf + while(xs.length < sigFigs) { + xs = "0" + xs } + return xis + "." + xs + } else { + return xis } - return new RedBlackTree(this.tree._compare, cstack[0]) } -//Moves iterator backward one element -iproto.prev = function() { - var stack = this._stack - if(stack.length === 0) { - return - } - var n = stack[stack.length-1] - if(n.left) { - n = n.left - while(n) { - stack.push(n) - n = n.right +function defaultTicks(bounds, tickSpacing) { + var array = [] + for(var d=0; d<3; ++d) { + var ticks = [] + var m = 0.5*(bounds[0][d]+bounds[1][d]) + for(var t=0; t*tickSpacing[d]<=bounds[1][d]; ++t) { + ticks.push({x: t*tickSpacing[d], text: prettyPrint(tickSpacing[d], t)}) } - } else { - stack.pop() - while(stack.length > 0 && stack[stack.length-1].left === n) { - n = stack[stack.length-1] - stack.pop() + for(var t=-1; t*tickSpacing[d]>=bounds[0][d]; --t) { + ticks.push({x: t*tickSpacing[d], text: prettyPrint(tickSpacing[d], t)}) } + array.push(ticks) } + return array } -//Checks if iterator is at start of tree -Object.defineProperty(iproto, "hasPrev", { - get: function() { - var stack = this._stack - if(stack.length === 0) { +function ticksEqual(ticksA, ticksB) { + for(var i=0; i<3; ++i) { + if(ticksA[i].length !== ticksB[i].length) { return false } - if(stack[stack.length-1].left) { - return true - } - for(var s=stack.length-1; s>0; --s) { - if(stack[s-1].right === stack[s]) { - return true + for(var j=0; j b) { - return 1 + return true +} +},{}],257:[function(_dereq_,module,exports){ +module.exports = function(strings) { + if (typeof strings === 'string') strings = [strings] + var exprs = [].slice.call(arguments,1) + var parts = [] + for (var i = 0; i < strings.length-1; i++) { + parts.push(strings[i], exprs[i] || '') } - return 0 + parts.push(strings[i]) + return parts.join('') } -//Build a tree -function createRBTree(compare) { - return new RedBlackTree(compare || defaultCompare, null) -} -},{}],248:[function(_dereq_,module,exports){ -// transliterated from the python snippet here: -// http://en.wikipedia.org/wiki/Lanczos_approximation +},{}],258:[function(_dereq_,module,exports){ +"use strict" -var g = 7; -var p = [ - 0.99999999999980993, - 676.5203681218851, - -1259.1392167224028, - 771.32342877765313, - -176.61502916214059, - 12.507343278686905, - -0.13857109526572012, - 9.9843695780195716e-6, - 1.5056327351493116e-7 -]; +module.exports = axesProperties -var g_ln = 607/128; -var p_ln = [ - 0.99999999999999709182, - 57.156235665862923517, - -59.597960355475491248, - 14.136097974741747174, - -0.49191381609762019978, - 0.33994649984811888699e-4, - 0.46523628927048575665e-4, - -0.98374475304879564677e-4, - 0.15808870322491248884e-3, - -0.21026444172410488319e-3, - 0.21743961811521264320e-3, - -0.16431810653676389022e-3, - 0.84418223983852743293e-4, - -0.26190838401581408670e-4, - 0.36899182659531622704e-5 -]; +var getPlanes = _dereq_("extract-frustum-planes") +var splitPoly = _dereq_("split-polygon") +var cubeParams = _dereq_("./lib/cube.js") +var m4mul = _dereq_("gl-mat4/multiply") +var m4transpose = _dereq_("gl-mat4/transpose") +var v4transformMat4 = _dereq_("gl-vec4/transformMat4") -// Spouge approximation (suitable for large arguments) -function lngamma(z) { +var identity = new Float32Array([ + 1, 0, 0, 0, + 0, 1, 0, 0, + 0, 0, 1, 0, + 0, 0, 0, 1 + ]) - if(z < 0) return Number('0/0'); - var x = p_ln[0]; - for(var i = p_ln.length - 1; i > 0; --i) x += p_ln[i] / (z + i); - var t = z + g_ln + 0.5; - return .5*Math.log(2*Math.PI)+(z+.5)*Math.log(t)-t+Math.log(x)-Math.log(z); +var mvp = new Float32Array(16) + +function AxesRange3D(lo, hi, pixelsPerDataUnit) { + this.lo = lo + this.hi = hi + this.pixelsPerDataUnit = pixelsPerDataUnit } -module.exports = function gamma (z) { - if (z < 0.5) { - return Math.PI / (Math.sin(Math.PI * z) * gamma(1 - z)); - } - else if(z > 100) return Math.exp(lngamma(z)); - else { - z -= 1; - var x = p[0]; - for (var i = 1; i < g + 2; i++) { - x += p[i] / (z + i); - } - var t = z + g + 0.5; +var SCRATCH_P = [0,0,0,1] +var SCRATCH_Q = [0,0,0,1] - return Math.sqrt(2 * Math.PI) - * Math.pow(t, z + 0.5) - * Math.exp(-t) - * x - ; +function gradient(result, M, v, width, height) { + for(var i=0; i<3; ++i) { + var p = SCRATCH_P + var q = SCRATCH_Q + for(var j=0; j<3; ++j) { + q[j] = p[j] = v[j] } -}; + q[3] = p[3] = 1 -module.exports.log = lngamma; + q[i] += 1 + v4transformMat4(q, q, M) + if(q[3] < 0) { + result[i] = Infinity + } -},{}],249:[function(_dereq_,module,exports){ -module.exports = getCanvasContext -function getCanvasContext (type, opts) { - if (typeof type !== 'string') { - throw new TypeError('must specify type string') - } + p[i] -= 1 + v4transformMat4(p, p, M) + if(p[3] < 0) { + result[i] = Infinity + } - opts = opts || {} + var dx = (p[0]/p[3] - q[0]/q[3]) * width + var dy = (p[1]/p[3] - q[1]/q[3]) * height - if (typeof document === 'undefined' && !opts.canvas) { - return null // check for Node + result[i] = 0.25 * Math.sqrt(dx*dx + dy*dy) } + return result +} - var canvas = opts.canvas || document.createElement('canvas') - if (typeof opts.width === 'number') { - canvas.width = opts.width - } - if (typeof opts.height === 'number') { - canvas.height = opts.height - } +var RANGES = [ + new AxesRange3D(Infinity, -Infinity, Infinity), + new AxesRange3D(Infinity, -Infinity, Infinity), + new AxesRange3D(Infinity, -Infinity, Infinity) +] - var attribs = opts - var gl - try { - var names = [ type ] - // prefix GL contexts - if (type.indexOf('webgl') === 0) { - names.push('experimental-' + type) - } +var SCRATCH_X = [0,0,0] - for (var i = 0; i < names.length; i++) { - gl = canvas.getContext(names[i], attribs) - if (gl) return gl - } - } catch (e) { - gl = null - } - return (gl || null) // ensure null on fail -} +function axesProperties(axes, camera, width, height, params) { + var model = camera.model || identity + var view = camera.view || identity + var projection = camera.projection || identity + var isOrtho = camera._ortho || false + var bounds = axes.bounds + var params = params || cubeParams(model, view, projection, bounds, isOrtho) + var axis = params.axis -},{}],250:[function(_dereq_,module,exports){ -'use strict' + m4mul(mvp, view, model) + m4mul(mvp, projection, mvp) -module.exports = createAxes + //Calculate the following properties for each axis: + // + // * lo - start of visible range for each axis in tick coordinates + // * hi - end of visible range for each axis in tick coordinates + // * ticksPerPixel - pixel density of tick marks for the axis + // + var ranges = RANGES + for(var i=0; i<3; ++i) { + ranges[i].lo = Infinity + ranges[i].hi = -Infinity + ranges[i].pixelsPerDataUnit = Infinity + } -var createText = _dereq_('./lib/text.js') -var createLines = _dereq_('./lib/lines.js') -var createBackground = _dereq_('./lib/background.js') -var getCubeProperties = _dereq_('./lib/cube.js') -var Ticks = _dereq_('./lib/ticks.js') + //Compute frustum planes, intersect with box + var frustum = getPlanes(m4transpose(mvp, mvp)) + m4transpose(mvp, mvp) -var identity = new Float32Array([ - 1, 0, 0, 0, - 0, 1, 0, 0, - 0, 0, 1, 0, - 0, 0, 0, 1]) + //Loop over vertices of viewable box + for(var d=0; d<3; ++d) { + var u = (d+1)%3 + var v = (d+2)%3 + var x = SCRATCH_X +i_loop: + for(var i=0; i<2; ++i) { + var poly = [] -function copyVec3(a, b) { - a[0] = b[0] - a[1] = b[1] - a[2] = b[2] - return a -} + if((axis[d] < 0) === !!i) { + continue + } -function Axes(gl) { - this.gl = gl + x[d] = bounds[i][d] + for(var j=0; j<2; ++j) { + x[u] = bounds[j^i][u] + for(var k=0; k<2; ++k) { + x[v] = bounds[k^j^i][v] + poly.push(x.slice()) + } + } - this.pixelRatio = 1 + var Q = (isOrtho) ? 5 : 4 + for(var j=Q; j===Q; ++j) { // Note: using only near plane here (& for orthographic projection we use the far). + if(poly.length === 0) { + continue i_loop + } + poly = splitPoly.positive(poly, frustum[j]) + } - this.bounds = [ [-10, -10, -10], - [ 10, 10, 10] ] - this.ticks = [ [], [], [] ] - this.autoTicks = true - this.tickSpacing = [ 1, 1, 1 ] + //Loop over vertices of polygon to find extremal points + for(var j=0; j len) { + throw new Error("gl-buffer: If resizing buffer, must not specify offset") + } + gl.bufferSubData(type, offset, data) + return len +} -proto.update = function(options) { - options = options || {} +function makeScratchTypeArray(array, dtype) { + var res = pool.malloc(array.length, dtype) + var n = array.length + for(var i=0; i=0; --i) { + if(stride[i] !== n) { + return false } - return false + n *= shape[i] } + return true +} - var NUMBER = parseOption.bind(this, false, Number) - var BOOLEAN = parseOption.bind(this, false, Boolean) - var STRING = parseOption.bind(this, false, String) - var COLOR = parseOption.bind(this, true, function(v) { - if(Array.isArray(v)) { - if(v.length === 3) { - return [ +v[0], +v[1], +v[2], 1.0 ] - } else if(v.length === 4) { - return [ +v[0], +v[1], +v[2], +v[3] ] +proto.update = function(array, offset) { + if(typeof offset !== "number") { + offset = -1 + } + this.bind() + if(typeof array === "object" && typeof array.shape !== "undefined") { //ndarray + var dtype = array.dtype + if(SUPPORTED_TYPES.indexOf(dtype) < 0) { + dtype = "float32" + } + if(this.type === this.gl.ELEMENT_ARRAY_BUFFER) { + var ext = gl.getExtension('OES_element_index_uint') + if(ext && dtype !== "uint16") { + dtype = "uint32" + } else { + dtype = "uint16" } } - return [ 0, 0, 0, 1 ] - }) - - //Tick marks and bounds - var nextTicks - var ticksUpdate = false - var boundsChanged = false - if('bounds' in options) { - var bounds = options.bounds -i_loop: - for(var i=0; i<2; ++i) { - for(var j=0; j<3; ++j) { - if(bounds[i][j] !== this.bounds[i][j]) { - boundsChanged = true - } - this.bounds[i][j] = bounds[i][j] + if(dtype === array.dtype && isPacked(array.shape, array.stride)) { + if(array.offset === 0 && array.data.length === array.shape[0]) { + this.length = updateTypeArray(this.gl, this.type, this.length, this.usage, array.data, offset) + } else { + this.length = updateTypeArray(this.gl, this.type, this.length, this.usage, array.data.subarray(array.offset, array.shape[0]), offset) + } + } else { + var tmp = pool.malloc(array.size, dtype) + var ndt = ndarray(tmp, array.shape) + ops.assign(ndt, array) + if(offset < 0) { + this.length = updateTypeArray(this.gl, this.type, this.length, this.usage, tmp, offset) + } else { + this.length = updateTypeArray(this.gl, this.type, this.length, this.usage, tmp.subarray(0, array.size), offset) } + pool.free(tmp) } - } - if('ticks' in options) { - nextTicks = options.ticks - ticksUpdate = true - this.autoTicks = false - for(var i=0; i<3; ++i) { - this.tickSpacing[i] = 0.0 + } else if(Array.isArray(array)) { //Vanilla array + var t + if(this.type === this.gl.ELEMENT_ARRAY_BUFFER) { + t = makeScratchTypeArray(array, "uint16") + } else { + t = makeScratchTypeArray(array, "float32") } - } else if(NUMBER('tickSpacing')) { - this.autoTicks = true - boundsChanged = true - } - - if(this._firstInit) { - if(!('ticks' in options || 'tickSpacing' in options)) { - this.autoTicks = true + if(offset < 0) { + this.length = updateTypeArray(this.gl, this.type, this.length, this.usage, t, offset) + } else { + this.length = updateTypeArray(this.gl, this.type, this.length, this.usage, t.subarray(0, array.length), offset) } - - //Force tick recomputation on first update - boundsChanged = true - ticksUpdate = true - this._firstInit = false - } - - if(boundsChanged && this.autoTicks) { - nextTicks = Ticks.create(this.bounds, this.tickSpacing) - ticksUpdate = true - } - - //Compare next ticks to previous ticks, only update if needed - if(ticksUpdate) { - for(var i=0; i<3; ++i) { - nextTicks[i].sort(function(a,b) { - return a.x-b.x - }) + pool.free(t) + } else if(typeof array === "object" && typeof array.length === "number") { //Typed array + this.length = updateTypeArray(this.gl, this.type, this.length, this.usage, array, offset) + } else if(typeof array === "number" || array === undefined) { //Number/default + if(offset >= 0) { + throw new Error("gl-buffer: Cannot specify offset when resizing buffer") } - if(Ticks.equal(nextTicks, this.ticks)) { - ticksUpdate = false - } else { - this.ticks = nextTicks + array = array | 0 + if(array <= 0) { + array = 1 } + this.gl.bufferData(this.type, array|0, this.usage) + this.length = array + } else { //Error, case should not happen + throw new Error("gl-buffer: Invalid data type") } +} - //Parse tick properties - BOOLEAN('tickEnable') - if(STRING('tickFont')) { - ticksUpdate = true //If font changes, must rebuild vbo +function createBuffer(gl, data, type, usage) { + type = type || gl.ARRAY_BUFFER + usage = usage || gl.DYNAMIC_DRAW + if(type !== gl.ARRAY_BUFFER && type !== gl.ELEMENT_ARRAY_BUFFER) { + throw new Error("gl-buffer: Invalid type for webgl buffer, must be either gl.ARRAY_BUFFER or gl.ELEMENT_ARRAY_BUFFER") } - NUMBER('tickSize') - NUMBER('tickAngle') - NUMBER('tickPad') - COLOR('tickColor') - - //Axis labels - var labelUpdate = STRING('labels') - if(STRING('labelFont')) { - labelUpdate = true + if(usage !== gl.DYNAMIC_DRAW && usage !== gl.STATIC_DRAW && usage !== gl.STREAM_DRAW) { + throw new Error("gl-buffer: Invalid usage for buffer, must be either gl.DYNAMIC_DRAW, gl.STATIC_DRAW or gl.STREAM_DRAW") } - BOOLEAN('labelEnable') - NUMBER('labelSize') - NUMBER('labelPad') - COLOR('labelColor') + var handle = gl.createBuffer() + var result = new GLBuffer(gl, type, handle, 0, usage) + result.update(data) + return result +} - //Axis lines - BOOLEAN('lineEnable') - BOOLEAN('lineMirror') - NUMBER('lineWidth') - COLOR('lineColor') +module.exports = createBuffer - //Axis line ticks - BOOLEAN('lineTickEnable') - BOOLEAN('lineTickMirror') - NUMBER('lineTickLength') - NUMBER('lineTickWidth') - COLOR('lineTickColor') +},{"ndarray":480,"ndarray-ops":475,"typedarray-pool":611}],260:[function(_dereq_,module,exports){ +"use strict"; - //Grid lines - BOOLEAN('gridEnable') - NUMBER('gridWidth') - COLOR('gridColor') +var vec3 = _dereq_('gl-vec3'); - //Zero line - BOOLEAN('zeroEnable') - COLOR('zeroLineColor') - NUMBER('zeroLineWidth') +module.exports = function(vectorfield, bounds) { + var positions = vectorfield.positions; + var vectors = vectorfield.vectors; + var geo = { + positions: [], + vertexIntensity: [], + vertexIntensityBounds: vectorfield.vertexIntensityBounds, + vectors: [], + cells: [], + coneOffset: vectorfield.coneOffset, + colormap: vectorfield.colormap + }; - //Background - BOOLEAN('backgroundEnable') - COLOR('backgroundColor') + if (vectorfield.positions.length === 0) { + if (bounds) { + bounds[0] = [0,0,0]; + bounds[1] = [0,0,0]; + } + return geo; + } - //Update text if necessary - if(!this._text) { - this._text = createText( - this.gl, - this.bounds, - this.labels, - this.labelFont, - this.ticks, - this.tickFont) - } else if(this._text && (labelUpdate || ticksUpdate)) { - this._text.update( - this.bounds, - this.labels, - this.labelFont, - this.ticks, - this.tickFont) - } + // Compute bounding box for the dataset. + // Compute maximum velocity for the dataset to use for scaling the cones. + var maxNorm = 0; + var minX = Infinity, maxX = -Infinity; + var minY = Infinity, maxY = -Infinity; + var minZ = Infinity, maxZ = -Infinity; + var p2 = null; + var u2 = null; + var positionVectors = []; + var vectorScale = Infinity; + var skipIt = false; + for (var i = 0; i < positions.length; i++) { + var p = positions[i]; + minX = Math.min(p[0], minX); + maxX = Math.max(p[0], maxX); + minY = Math.min(p[1], minY); + maxY = Math.max(p[1], maxY); + minZ = Math.min(p[2], minZ); + maxZ = Math.max(p[2], maxZ); + var u = vectors[i]; - //Update lines if necessary - if(this._lines && ticksUpdate) { - this._lines.dispose() - this._lines = null - } - if(!this._lines) { - this._lines = createLines(this.gl, this.bounds, this.ticks) - } -} + if (vec3.length(u) > maxNorm) { + maxNorm = vec3.length(u); + } + if (i) { + // Find vector scale [w/ units of time] using "successive" positions + // (not "adjacent" with would be O(n^2)), + // + // The vector scale corresponds to the minimum "time" to travel across two + // two adjacent positions at the average velocity of those two adjacent positions -function OffsetInfo() { - this.primalOffset = [0,0,0] - this.primalMinor = [0,0,0] - this.mirrorOffset = [0,0,0] - this.mirrorMinor = [0,0,0] -} + var q = (2 * vec3.distance(p2, p) / (vec3.length(u2) + vec3.length(u))); + if(q) { + vectorScale = Math.min(vectorScale, q); + skipIt = false; + } else { + skipIt = true; + } + } + if(!skipIt) { + p2 = p; + u2 = u; + } + positionVectors.push(u); + } + var minV = [minX, minY, minZ]; + var maxV = [maxX, maxY, maxZ]; + if (bounds) { + bounds[0] = minV; + bounds[1] = maxV; + } + if (maxNorm === 0) { + maxNorm = 1; + } -var LINE_OFFSET = [ new OffsetInfo(), new OffsetInfo(), new OffsetInfo() ] + // Inverted max norm would map vector with norm maxNorm to 1 coord space units in length + var invertedMaxNorm = 1 / maxNorm; -function computeLineOffset(result, i, bounds, cubeEdges, cubeAxis) { - var primalOffset = result.primalOffset - var primalMinor = result.primalMinor - var dualOffset = result.mirrorOffset - var dualMinor = result.mirrorMinor - var e = cubeEdges[i] + if (!isFinite(vectorScale)) { + vectorScale = 1.0; + } + geo.vectorScale = vectorScale; - //Calculate offsets - for(var j=0; j<3; ++j) { - if(i === j) { - continue - } - var a = primalOffset, - b = dualOffset, - c = primalMinor, - d = dualMinor - if(e & (1< 0) { - c[j] = -1 - d[j] = 0 - } else { - c[j] = 0 - d[j] = +1 - } - } + var coneScale = vectorfield.coneSize || 0.5; + + if (vectorfield.absoluteConeSize) { + coneScale = vectorfield.absoluteConeSize * invertedMaxNorm; + } + + geo.coneScale = coneScale; + + // Build the cone model. + for (var i = 0, j = 0; i < positions.length; i++) { + var p = positions[i]; + var x = p[0], y = p[1], z = p[2]; + var d = positionVectors[i]; + var intensity = vec3.length(d) * invertedMaxNorm; + for (var k = 0, l = 8; k < l; k++) { + geo.positions.push([x, y, z, j++]); + geo.positions.push([x, y, z, j++]); + geo.positions.push([x, y, z, j++]); + geo.positions.push([x, y, z, j++]); + geo.positions.push([x, y, z, j++]); + geo.positions.push([x, y, z, j++]); + + geo.vectors.push(d); + geo.vectors.push(d); + geo.vectors.push(d); + geo.vectors.push(d); + geo.vectors.push(d); + geo.vectors.push(d); + + geo.vertexIntensity.push(intensity, intensity, intensity); + geo.vertexIntensity.push(intensity, intensity, intensity); + + var m = geo.positions.length; + geo.cells.push([m-6, m-5, m-4], [m-3, m-2, m-1]); + } + } + + return geo; +}; + +var shaders = _dereq_('./lib/shaders'); +module.exports.createMesh = _dereq_('./create_mesh'); +module.exports.createConeMesh = function(gl, params) { + return module.exports.createMesh(gl, params, { + shaders: shaders, + traceType: 'cone' + }); } -var CUBE_ENABLE = [0,0,0] -var DEFAULT_PARAMS = { - model: identity, - view: identity, - projection: identity, - _ortho: false +},{"./create_mesh":261,"./lib/shaders":262,"gl-vec3":376}],261:[function(_dereq_,module,exports){ +'use strict' + +var createShader = _dereq_('gl-shader') +var createBuffer = _dereq_('gl-buffer') +var createVAO = _dereq_('gl-vao') +var createTexture = _dereq_('gl-texture2d') +var multiply = _dereq_('gl-mat4/multiply') +var invert = _dereq_('gl-mat4/invert') +var ndarray = _dereq_('ndarray') +var colormap = _dereq_('colormap') + +var IDENTITY = [ + 1,0,0,0, + 0,1,0,0, + 0,0,1,0, + 0,0,0,1] + +function VectorMesh(gl + , texture + , triShader + , pickShader + , trianglePositions + , triangleVectors + , triangleIds + , triangleColors + , triangleUVs + , triangleVAO + , traceType) { + + this.gl = gl + this.pixelRatio = 1 + this.cells = [] + this.positions = [] + this.intensity = [] + this.texture = texture + this.dirty = true + + this.triShader = triShader + this.pickShader = pickShader + + this.trianglePositions = trianglePositions + this.triangleVectors = triangleVectors + this.triangleColors = triangleColors + this.triangleUVs = triangleUVs + this.triangleIds = triangleIds + this.triangleVAO = triangleVAO + this.triangleCount = 0 + + this.pickId = 1 + this.bounds = [ + [ Infinity, Infinity, Infinity], + [-Infinity,-Infinity,-Infinity] ] + this.clipBounds = [ + [-Infinity,-Infinity,-Infinity], + [ Infinity, Infinity, Infinity] ] + + this.lightPosition = [1e5, 1e5, 0] + this.ambientLight = 0.8 + this.diffuseLight = 0.8 + this.specularLight = 2.0 + this.roughness = 0.5 + this.fresnel = 1.5 + + this.opacity = 1 + + this.traceType = traceType + this.tubeScale = 1 // used in streamtube + this.coneScale = 2 // used in cone + this.vectorScale = 1 // used in cone + this.coneOffset = 0.25 // used in cone + + this._model = IDENTITY + this._view = IDENTITY + this._projection = IDENTITY + this._resolution = [1,1] } +var proto = VectorMesh.prototype + proto.isOpaque = function() { - return true + return this.opacity >= 1 } proto.isTransparent = function() { - return false + return this.opacity < 1 } -proto.drawTransparent = function(params) {} - -var ALIGN_OPTION_AUTO = 0 // i.e. as defined in the shader the text would rotate to stay upwards range: [-90,90] +proto.pickSlots = 1 -var PRIMAL_MINOR = [0,0,0] -var MIRROR_MINOR = [0,0,0] -var PRIMAL_OFFSET = [0,0,0] +proto.setPickBase = function(id) { + this.pickId = id +} -proto.draw = function(params) { - params = params || DEFAULT_PARAMS +function genColormap(param) { + var colors = colormap({ + colormap: param + , nshades: 256 + , format: 'rgba' + }) - var gl = this.gl + var result = new Uint8Array(256*4) + for(var i=0; i<256; ++i) { + var c = colors[i] + for(var j=0; j<3; ++j) { + result[4*i+j] = c[j] + } + result[4*i+3] = c[3]*255 + } - //Geometry for camera and axes - var model = params.model || identity - var view = params.view || identity - var projection = params.projection || identity - var bounds = this.bounds - var isOrtho = params._ortho || false + return ndarray(result, [256,256,4], [4,0,1]) +} - //Unpack axis info - var cubeParams = getCubeProperties(model, view, projection, bounds, isOrtho) - var cubeEdges = cubeParams.cubeEdges - var cubeAxis = cubeParams.axis +function takeZComponent(array) { + var n = array.length + var result = new Array(n) + for(var i=0; i 0) { - x[i] = bounds[1][i] - } else { - x[i] = bounds[0][i] - } + var tPos = [] + var tVec = [] + var tCol = [] + var tUVs = [] + var tIds = [] - //Draw grid lines - for(var j=0; j<2; ++j) { - var u = (i + 1 + j) % 3 - var v = (i + 1 + (j^1)) % 3 - if(this.gridEnable[u]) { - this._lines.drawGrid(u, v, this.bounds, x, this.gridColor[u], this.gridWidth[u]*this.pixelRatio) - } - } + //Save geometry data for picking calculations + this.cells = cells + this.positions = positions + this.vectors = vectors - //Draw zero lines (need to do this AFTER all grid lines are drawn) - for(var j=0; j<2; ++j) { - var u = (i + 1 + j) % 3 - var v = (i + 1 + (j^1)) % 3 - if(this.zeroEnable[v]) { - //Check if zero line in bounds - if(Math.min(bounds[0][v], bounds[1][v]) <= 0 && Math.max(bounds[0][v], bounds[1][v]) >= 0) { - this._lines.drawZero(u, v, this.bounds, x, this.zeroLineColor[v], this.zeroLineWidth[v]*this.pixelRatio) - } - } - } - } + //Compute colors + var meshColor = params.meshColor || [1,1,1,1] - //Then draw axis lines and tick marks - for(var i=0; i<3; ++i) { + //UVs + var vertexIntensity = params.vertexIntensity - //Draw axis lines - if(this.lineEnable[i]) { - this._lines.drawAxisLine(i, this.bounds, lineOffset[i].primalOffset, this.lineColor[i], this.lineWidth[i]*this.pixelRatio) - } - if(this.lineMirror[i]) { - this._lines.drawAxisLine(i, this.bounds, lineOffset[i].mirrorOffset, this.lineColor[i], this.lineWidth[i]*this.pixelRatio) - } + var intensityLo = Infinity + var intensityHi = -Infinity - //Compute minor axes - var primalMinor = copyVec3(PRIMAL_MINOR, lineOffset[i].primalMinor) - var mirrorMinor = copyVec3(MIRROR_MINOR, lineOffset[i].mirrorMinor) - var tickLength = this.lineTickLength - for(var j=0; j<3; ++j) { - var scaleFactor = pixelScaleF / model[5*j] - primalMinor[j] *= tickLength[j] * scaleFactor - mirrorMinor[j] *= tickLength[j] * scaleFactor + if(vertexIntensity) { + if(params.vertexIntensityBounds) { + intensityLo = +params.vertexIntensityBounds[0] + intensityHi = +params.vertexIntensityBounds[1] + } else { + for(var i=0; i round to angles with 30-degree steps +fill_loop: + for(var i=0; i 0) && (D > 0)) { alignTo(i1); return; } - else if ((A > 0) && (D < 0)) { alignTo(i1); return; } - else if ((A < 0) && (D > 0)) { alignTo(i1); return; } - else if ((A < 0) && (D < 0)) { alignTo(i1); return; } - else if ((B > 0) && (C > 0)) { alignTo(i2); return; } - else if ((B > 0) && (C < 0)) { alignTo(i2); return; } - else if ((B < 0) && (C > 0)) { alignTo(i2); return; } - else if ((B < 0) && (C < 0)) { alignTo(i2); return; } + default: + break + } } - for(var i=0; i<3; ++i) { + this.triangleCount = triangleCount - var minor = lineOffset[i].primalMinor - var major = lineOffset[i].mirrorMinor + this.trianglePositions.update(tPos) + this.triangleVectors.update(tVec) + this.triangleColors.update(tCol) + this.triangleUVs.update(tUVs) + this.triangleIds.update(new Uint32Array(tIds)) +} - var offset = copyVec3(PRIMAL_OFFSET, lineOffset[i].primalOffset) +proto.drawTransparent = proto.draw = function(params) { + params = params || {} + var gl = this.gl + var model = params.model || IDENTITY + var view = params.view || IDENTITY + var projection = params.projection || IDENTITY - for(var j=0; j<3; ++j) { - if(this.lineTickEnable[i]) { - offset[j] += pixelScaleF * minor[j] * Math.max(this.lineTickLength[j], 0) / model[5*j] - } - } + var clipBounds = [[-1e6,-1e6,-1e6],[1e6,1e6,1e6]] + for(var i=0; i<3; ++i) { + clipBounds[0][i] = Math.max(clipBounds[0][i], this.clipBounds[0][i]) + clipBounds[1][i] = Math.min(clipBounds[1][i], this.clipBounds[1][i]) + } - var axis = [0,0,0] - axis[i] = 1 + var uniforms = { + model: model, + view: view, + projection: projection, + inverseModel: IDENTITY.slice(), - //Draw tick text - if(this.tickEnable[i]) { + clipBounds: clipBounds, - if(this.tickAngle[i] === -3600) { - this.tickAngle[i] = 0 - this.tickAlign[i] = 'auto' - } else { - this.tickAlign[i] = -1 - } + kambient: this.ambientLight, + kdiffuse: this.diffuseLight, + kspecular: this.specularLight, + roughness: this.roughness, + fresnel: this.fresnel, - enableAlign = 1; + eyePosition: [0,0,0], + lightPosition: [0,0,0], - alignOpt = [this.tickAlign[i], hv_ratio, enableAlign] - if(alignOpt[0] === 'auto') alignOpt[0] = ALIGN_OPTION_AUTO - else alignOpt[0] = parseInt('' + alignOpt[0]) + opacity: this.opacity, - alignDir = [0,0,0] - solveTickAlignments(i, minor, major) + tubeScale: this.tubeScale, - //Add tick padding - for(var j=0; j<3; ++j) { - offset[j] += pixelScaleF * minor[j] * this.tickPad[j] / model[5*j] - } + vectorScale: this.vectorScale, + coneScale: this.coneScale, + coneOffset: this.coneOffset, - //Draw axis - this._text.drawTicks( - i, - this.tickSize[i], - this.tickAngle[i], - offset, - this.tickColor[i], - axis, - alignDir, - alignOpt) - } + texture: 0 + } - //Draw labels - if(this.labelEnable[i]) { + uniforms.inverseModel = invert(uniforms.inverseModel, uniforms.model) - enableAlign = 0 - alignDir = [0,0,0] - if(this.labels[i].length > 4) { // for large label axis enable alignDir to axis - alignTo(i) - enableAlign = 1 - } + gl.disable(gl.CULL_FACE) - alignOpt = [this.labelAlign[i], hv_ratio, enableAlign] - if(alignOpt[0] === 'auto') alignOpt[0] = ALIGN_OPTION_AUTO - else alignOpt[0] = parseInt('' + alignOpt[0]) + this.texture.bind(0) - //Add label padding - for(var j=0; j<3; ++j) { - offset[j] += pixelScaleF * minor[j] * this.labelPad[j] / model[5*j] - } - offset[i] += 0.5 * (bounds[0][i] + bounds[1][i]) + var invCameraMatrix = new Array(16) + multiply(invCameraMatrix, uniforms.view, uniforms.model) + multiply(invCameraMatrix, uniforms.projection, invCameraMatrix) + invert(invCameraMatrix, invCameraMatrix) - //Draw axis - this._text.drawLabel( - i, - this.labelSize[i], - this.labelAngle[i], - offset, - this.labelColor[i], - [0,0,0], - alignDir, - alignOpt) - } + for(var i=0; i<3; ++i) { + uniforms.eyePosition[i] = invCameraMatrix[12+i] / invCameraMatrix[15] } - this._text.unbind() -} + var w = invCameraMatrix[15] + for(var i=0; i<3; ++i) { + w += this.lightPosition[i] * invCameraMatrix[4*i+3] + } + for(var i=0; i<3; ++i) { + var s = invCameraMatrix[12+i] + for(var j=0; j<3; ++j) { + s += invCameraMatrix[4*j+i] * this.lightPosition[j] + } + uniforms.lightPosition[i] = s / w + } -proto.dispose = function() { - this._text.dispose() - this._lines.dispose() - this._background.dispose() - this._lines = null - this._text = null - this._background = null - this.gl = null -} + if(this.triangleCount > 0) { + var shader = this.triShader + shader.bind() + shader.uniforms = uniforms -function createAxes(gl, options) { - var axes = new Axes(gl) - axes.update(options) - return axes + this.triangleVAO.bind() + gl.drawArrays(gl.TRIANGLES, 0, this.triangleCount*3) + this.triangleVAO.unbind() + } } -},{"./lib/background.js":251,"./lib/cube.js":252,"./lib/lines.js":253,"./lib/text.js":255,"./lib/ticks.js":256}],251:[function(_dereq_,module,exports){ -'use strict' - -module.exports = createBackgroundCube - -var createBuffer = _dereq_('gl-buffer') -var createVAO = _dereq_('gl-vao') -var createShader = _dereq_('./shaders').bg +proto.drawPick = function(params) { + params = params || {} -function BackgroundCube(gl, buffer, vao, shader) { - this.gl = gl - this.buffer = buffer - this.vao = vao - this.shader = shader -} + var gl = this.gl -var proto = BackgroundCube.prototype + var model = params.model || IDENTITY + var view = params.view || IDENTITY + var projection = params.projection || IDENTITY -proto.draw = function(model, view, projection, bounds, enable, colors) { - var needsBG = false + var clipBounds = [[-1e6,-1e6,-1e6],[1e6,1e6,1e6]] for(var i=0; i<3; ++i) { - needsBG = needsBG || enable[i] - } - if(!needsBG) { - return + clipBounds[0][i] = Math.max(clipBounds[0][i], this.clipBounds[0][i]) + clipBounds[1][i] = Math.min(clipBounds[1][i], this.clipBounds[1][i]) } - var gl = this.gl - - gl.enable(gl.POLYGON_OFFSET_FILL) - gl.polygonOffset(1, 2) + //Save camera parameters + this._model = [].slice.call(model) + this._view = [].slice.call(view) + this._projection = [].slice.call(projection) + this._resolution = [gl.drawingBufferWidth, gl.drawingBufferHeight] - this.shader.bind() - this.shader.uniforms = { - model: model, - view: view, + var uniforms = { + model: model, + view: view, projection: projection, - bounds: bounds, - enable: enable, - colors: colors - } - this.vao.bind() - this.vao.draw(this.gl.TRIANGLES, 36) - this.vao.unbind() - - gl.disable(gl.POLYGON_OFFSET_FILL) -} + clipBounds: clipBounds, -proto.dispose = function() { - this.vao.dispose() - this.buffer.dispose() - this.shader.dispose() -} + tubeScale: this.tubeScale, + vectorScale: this.vectorScale, + coneScale: this.coneScale, + coneOffset: this.coneOffset, -function createBackgroundCube(gl) { - //Create cube vertices - var vertices = [] - var indices = [] - var ptr = 0 - for(var d=0; d<3; ++d) { - var u = (d+1) % 3 - var v = (d+2) % 3 - var x = [0,0,0] - var c = [0,0,0] - for(var s=-1; s<=1; s+=2) { - indices.push(ptr, ptr+2, ptr+1, - ptr+1, ptr+2, ptr+3) - x[d] = s - c[d] = s - for(var i=-1; i<=1; i+=2) { - x[u] = i - for(var j=-1; j<=1; j+=2) { - x[v] = j - vertices.push(x[0], x[1], x[2], - c[0], c[1], c[2]) - ptr += 1 - } - } - //Swap u and v - var tt = u - u = v - v = tt - } + pickId: this.pickId / 255.0, } - //Allocate buffer and vertex array - var buffer = createBuffer(gl, new Float32Array(vertices)) - var elements = createBuffer(gl, new Uint16Array(indices), gl.ELEMENT_ARRAY_BUFFER) - var vao = createVAO(gl, [ - { - buffer: buffer, - type: gl.FLOAT, - size: 3, - offset: 0, - stride: 24 - }, - { - buffer: buffer, - type: gl.FLOAT, - size: 3, - offset: 12, - stride: 24 - } - ], elements) - - //Create shader object - var shader = createShader(gl) - shader.attributes.position.location = 0 - shader.attributes.normal.location = 1 + var shader = this.pickShader + shader.bind() + shader.uniforms = uniforms - return new BackgroundCube(gl, buffer, vao, shader) + if(this.triangleCount > 0) { + this.triangleVAO.bind() + gl.drawArrays(gl.TRIANGLES, 0, this.triangleCount*3) + this.triangleVAO.unbind() + } } -},{"./shaders":254,"gl-buffer":259,"gl-vao":358}],252:[function(_dereq_,module,exports){ -"use strict" - -module.exports = getCubeEdges -var bits = _dereq_('bit-twiddle') -var multiply = _dereq_('gl-mat4/multiply') -var splitPoly = _dereq_('split-polygon') -var orient = _dereq_('robust-orientation') +proto.pick = function(pickData) { + if(!pickData) { + return null + } + if(pickData.id !== this.pickId) { + return null + } -var mvp = new Array(16) -var pCubeVerts = new Array(8) -var cubeVerts = new Array(8) -var x = new Array(3) -var zero3 = [0,0,0] + var cellId = pickData.value[0] + 256*pickData.value[1] + 65536*pickData.value[2] + var cell = this.cells[cellId] + var pos = this.positions[cell[1]].slice(0, 3) -;(function() { - for(var i=0; i<8; ++i) { - pCubeVerts[i] =[1,1,1,1] - cubeVerts[i] = [1,1,1] + var result = { + position: pos, + dataCoordinate: pos, + index: Math.floor(cell[1] / 48) } -})() -function transformHg(result, x, mat) { - for(var i=0; i<4; ++i) { - result[i] = mat[12+i] - for(var j=0; j<3; ++j) { - result[i] += x[j]*mat[4*j+i] - } + if(this.traceType === 'cone') { + result.index = Math.floor(cell[1] / 48) + } else if(this.traceType === 'streamtube') { + result.intensity = this.intensity[cell[1]] + result.velocity = this.vectors[cell[1]].slice(0, 3) + result.divergence = this.vectors[cell[1]][3] + result.index = cellId } + + return result } -var FRUSTUM_PLANES = [ - [ 0, 0, 1, 0, 0], - [ 0, 0,-1, 1, 0], - [ 0,-1, 0, 1, 0], - [ 0, 1, 0, 1, 0], - [-1, 0, 0, 1, 0], - [ 1, 0, 0, 1, 0] -] -function polygonArea(p) { - for(var i=0; i o0) { - closest |= 1< o0) { - closest |= 1< cubeVerts[i][1]) { - bottom = i - } - } +},{"colormap":133,"gl-buffer":259,"gl-mat4/invert":293,"gl-mat4/multiply":295,"gl-shader":334,"gl-texture2d":352,"gl-vao":357,"ndarray":480}],262:[function(_dereq_,module,exports){ +var glslify = _dereq_('glslify') - //Find left/right neighbors of bottom vertex - var left = -1 - for(var i=0; i<3; ++i) { - var idx = bottom ^ (1< cubeVerts[right][0]) { - right = idx - } - } +var triVertSrc = glslify(["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"]) +var triFragSrc = glslify(["#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"]) +var pickVertSrc = glslify(["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"]) +var pickFragSrc = glslify(["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}"]) - //Determine edge axis coordinates - var cubeEdges = CUBE_EDGES - cubeEdges[0] = cubeEdges[1] = cubeEdges[2] = 0 - cubeEdges[bits.log2(left^bottom)] = bottom&left - cubeEdges[bits.log2(bottom^right)] = bottom&right - var top = right ^ 7 - if(top === closest || top === farthest) { - top = left ^ 7 - cubeEdges[bits.log2(right^top)] = top&right - } else { - cubeEdges[bits.log2(left^top)] = top&left - } +exports.meshShader = { + vertex: triVertSrc, + fragment: triFragSrc, + attributes: [ + {name: 'position', type: 'vec4'}, + {name: 'color', type: 'vec4'}, + {name: 'uv', type: 'vec2'}, + {name: 'vector', type: 'vec3'} + ] +} +exports.pickShader = { + vertex: pickVertSrc, + fragment: pickFragSrc, + attributes: [ + {name: 'position', type: 'vec4'}, + {name: 'id', type: 'vec4'}, + {name: 'vector', type: 'vec3'} + ] +} - //Determine visible faces - var axis = CUBE_AXIS - var cutCorner = closest - for(var d=0; d<3; ++d) { - if(cutCorner & (1< 0) { + var x = p.slice() + x[j] += e[1][j] + verts.push(p[0], p[1], p[2], + c[0], c[1], c[2], c[3], + 0, 0, 0, + x[0], x[1], x[2], + c[0], c[1], c[2], c[3], + 0, 0, 0) + updateBounds(this.bounds, x) + vertexCount += 2 + emitFace(verts, x, c, j) + } + } + this.lineCount[j] = vertexCount - this.lineOffset[j] + } + this.buffer.update(verts) + } } proto.dispose = function() { - this.vao.dispose() - this.vertBuffer.dispose() this.shader.dispose() + this.buffer.dispose() + this.vao.dispose() } -function createLines(gl, bounds, ticks) { - var vertices = [] - var tickOffset = [0,0,0] - var tickCount = [0,0,0] - - //Create grid lines for each axis/direction - var gridOffset = [0,0,0] - var gridCount = [0,0,0] - - //Add zero line - vertices.push( - 0,0,1, 0,1,1, 0,0,-1, - 0,0,-1, 0,1,1, 0,1,-1) - - for(var i=0; i<3; ++i) { - //Axis tick marks - var start = ((vertices.length / 3)|0) - for(var j=0; j 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}"]) -var textFrag = glslify(["precision highp float;\n#define GLSLIFY 1\n\nuniform vec4 color;\nvoid main() {\n gl_FragColor = color;\n}"]) -exports.text = function(gl) { - return createShader(gl, textVert, textFrag, null, [ - {name: 'position', type: 'vec3'} - ]) -} +var vertSrc = glslify(["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}"]) +var fragSrc = glslify(["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}"]) -var bgVert = glslify(["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}"]) -var bgFrag = glslify(["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}"]) -exports.bg = function(gl) { - return createShader(gl, bgVert, bgFrag, null, [ +module.exports = function(gl) { + return createShader(gl, vertSrc, fragSrc, null, [ {name: 'position', type: 'vec3'}, - {name: 'normal', type: 'vec3'} + {name: 'color', type: 'vec4'}, + {name: 'offset', type: 'vec3'} ]) } -},{"gl-shader":335,"glslify":257}],255:[function(_dereq_,module,exports){ -(function (process){(function (){ -"use strict" +},{"gl-shader":334,"glslify":267}],269:[function(_dereq_,module,exports){ +'use strict' -module.exports = createTextSprites +var createTexture = _dereq_('gl-texture2d') -var createBuffer = _dereq_('gl-buffer') -var createVAO = _dereq_('gl-vao') -var vectorizeText = _dereq_('vectorize-text') -var createShader = _dereq_('./shaders').text +module.exports = createFBO -var globals = window || process.global || {} -var __TEXT_CACHE = globals.__TEXT_CACHE || {} -globals.__TEXT_CACHE = {} +var colorAttachmentArrays = null +var FRAMEBUFFER_UNSUPPORTED +var FRAMEBUFFER_INCOMPLETE_ATTACHMENT +var FRAMEBUFFER_INCOMPLETE_DIMENSIONS +var FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT -//Vertex buffer format for text is: -// -/// [x,y,z] = Spatial coordinate -// +function saveFBOState(gl) { + var fbo = gl.getParameter(gl.FRAMEBUFFER_BINDING) + var rbo = gl.getParameter(gl.RENDERBUFFER_BINDING) + var tex = gl.getParameter(gl.TEXTURE_BINDING_2D) + return [fbo, rbo, tex] +} -var VERTEX_SIZE = 3 +function restoreFBOState(gl, data) { + gl.bindFramebuffer(gl.FRAMEBUFFER, data[0]) + gl.bindRenderbuffer(gl.RENDERBUFFER, data[1]) + gl.bindTexture(gl.TEXTURE_2D, data[2]) +} -function TextSprites( - gl, - shader, - buffer, - vao) { - this.gl = gl - this.shader = shader - this.buffer = buffer - this.vao = vao - this.tickOffset = - this.tickCount = - this.labelOffset = - this.labelCount = null +function lazyInitColorAttachments(gl, ext) { + var maxColorAttachments = gl.getParameter(ext.MAX_COLOR_ATTACHMENTS_WEBGL) + colorAttachmentArrays = new Array(maxColorAttachments + 1) + for(var i=0; i<=maxColorAttachments; ++i) { + var x = new Array(maxColorAttachments) + for(var j=0; j 1) { + ext.drawBuffersWEBGL(colorAttachmentArrays[numColors]) + } + + //Allocate depth/stencil buffers + var WEBGL_depth_texture = gl.getExtension('WEBGL_depth_texture') + if(WEBGL_depth_texture) { + if(useStencil) { + fbo.depth = initTexture(gl, width, height, + WEBGL_depth_texture.UNSIGNED_INT_24_8_WEBGL, + gl.DEPTH_STENCIL, + gl.DEPTH_STENCIL_ATTACHMENT) + } else if(useDepth) { + fbo.depth = initTexture(gl, width, height, + gl.UNSIGNED_SHORT, + gl.DEPTH_COMPONENT, + gl.DEPTH_ATTACHMENT) } - var scale = (size || 12) / 12 - var positions = mesh.positions - var cells = mesh.cells - for(var i=0, nc=cells.length; i=0; --j) { - var p = positions[c[j]] - data.push(scale*p[0], -scale*p[1], t) - } + } else { + if(useDepth && useStencil) { + fbo._depth_rb = initRenderBuffer(gl, width, height, gl.DEPTH_STENCIL, gl.DEPTH_STENCIL_ATTACHMENT) + } else if(useDepth) { + fbo._depth_rb = initRenderBuffer(gl, width, height, gl.DEPTH_COMPONENT16, gl.DEPTH_ATTACHMENT) + } else if(useStencil) { + fbo._depth_rb = initRenderBuffer(gl, width, height, gl.STENCIL_INDEX, gl.STENCIL_ATTACHMENT) } } - //Generate sprites for all 3 axes, store data in texture atlases - var tickOffset = [0,0,0] - var tickCount = [0,0,0] - var labelOffset = [0,0,0] - var labelCount = [0,0,0] - var lineSpacing = 1.25 - var styletags = { - breaklines:true, - bolds: true, - italics: true, - subscripts:true, - superscripts:true - } - for(var d=0; d<3; ++d) { + //Check frame buffer state + var status = gl.checkFramebufferStatus(gl.FRAMEBUFFER) + if(status !== gl.FRAMEBUFFER_COMPLETE) { - //Generate label - labelOffset[d] = (data.length/VERTEX_SIZE)|0 - addItem( - 0.5*(bounds[0][d]+bounds[1][d]), - labels[d], - labelFont[d], - 12, // labelFontSize - lineSpacing, - styletags - ) - labelCount[d] = ((data.length/VERTEX_SIZE)|0) - labelOffset[d] + //Release all partially allocated resources + fbo._destroyed = true - //Generate sprites for tick marks - tickOffset[d] = (data.length/VERTEX_SIZE)|0 - for(var i=0; i maxFBOSize || + h < 0 || h > maxFBOSize) { + throw new Error('gl-fbo: Can\'t resize FBO, invalid dimensions') + } -function tryVectorizeText(text, options) { - try { - return vectorizeText(text, options) - } catch(e) { - console.warn('error vectorizing text:"' + text + '" error:', e) - return { - cells: [], - positions: [] + //Update shape + fbo._shape[0] = w + fbo._shape[1] = h + + //Save framebuffer state + var state = saveFBOState(gl) + + //Resize framebuffer attachments + for(var i=0; i= 0) { - sigFigs = stepStr.length - u - 1 + //Update frame buffer error code values + if(!FRAMEBUFFER_UNSUPPORTED) { + FRAMEBUFFER_UNSUPPORTED = gl.FRAMEBUFFER_UNSUPPORTED + FRAMEBUFFER_INCOMPLETE_ATTACHMENT = gl.FRAMEBUFFER_INCOMPLETE_ATTACHMENT + FRAMEBUFFER_INCOMPLETE_DIMENSIONS = gl.FRAMEBUFFER_INCOMPLETE_DIMENSIONS + FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = gl.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT } - var shift = Math.pow(10, sigFigs) - var x = Math.round(spacing * i * shift) - var xstr = x + "" - if(xstr.indexOf("e") >= 0) { - return xstr + + //Lazily initialize color attachment arrays + var WEBGL_draw_buffers = gl.getExtension('WEBGL_draw_buffers') + if(!colorAttachmentArrays && WEBGL_draw_buffers) { + lazyInitColorAttachments(gl, WEBGL_draw_buffers) } - var xi = x / shift, xf = x % shift - if(x < 0) { - xi = -Math.ceil(xi)|0 - xf = (-xf)|0 - } else { - xi = Math.floor(xi)|0 - xf = xf|0 + + //Special case: Can accept an array as argument + if(Array.isArray(width)) { + options = height + height = width[1]|0 + width = width[0]|0 } - var xis = "" + xi - if(x < 0) { - xis = "-" + xis + + if(typeof width !== 'number') { + throw new Error('gl-fbo: Missing shape parameter') } - if(sigFigs) { - var xs = "" + xf - while(xs.length < sigFigs) { - xs = "0" + xs - } - return xis + "." + xs - } else { - return xis + + //Validate width/height properties + var maxFBOSize = gl.getParameter(gl.MAX_RENDERBUFFER_SIZE) + if(width < 0 || width > maxFBOSize || height < 0 || height > maxFBOSize) { + throw new Error('gl-fbo: Parameters are too large for FBO') } -} -function defaultTicks(bounds, tickSpacing) { - var array = [] - for(var d=0; d<3; ++d) { - var ticks = [] - var m = 0.5*(bounds[0][d]+bounds[1][d]) - for(var t=0; t*tickSpacing[d]<=bounds[1][d]; ++t) { - ticks.push({x: t*tickSpacing[d], text: prettyPrint(tickSpacing[d], t)}) + //Handle each option type + options = options || {} + + //Figure out number of color buffers to use + var numColors = 1 + if('color' in options) { + numColors = Math.max(options.color|0, 0) + if(numColors < 0) { + throw new Error('gl-fbo: Must specify a nonnegative number of colors') } - for(var t=-1; t*tickSpacing[d]>=bounds[0][d]; --t) { - ticks.push({x: t*tickSpacing[d], text: prettyPrint(tickSpacing[d], t)}) + if(numColors > 1) { + //Check if multiple render targets supported + if(!WEBGL_draw_buffers) { + throw new Error('gl-fbo: Multiple draw buffer extension not supported') + } else if(numColors > gl.getParameter(WEBGL_draw_buffers.MAX_COLOR_ATTACHMENTS_WEBGL)) { + throw new Error('gl-fbo: Context does not support ' + numColors + ' draw buffers') + } } - array.push(ticks) } - return array -} -function ticksEqual(ticksA, ticksB) { - for(var i=0; i<3; ++i) { - if(ticksA[i].length !== ticksB[i].length) { - return false + //Determine whether to use floating point textures + var colorType = gl.UNSIGNED_BYTE + var OES_texture_float = gl.getExtension('OES_texture_float') + if(options.float && numColors > 0) { + if(!OES_texture_float) { + throw new Error('gl-fbo: Context does not support floating point textures') } - for(var j=0; j 0) { + if(OES_texture_float) { + colorType = gl.FLOAT } } - return true -} -},{}],257:[function(_dereq_,module,exports){ -module.exports = function(strings) { - if (typeof strings === 'string') strings = [strings] - var exprs = [].slice.call(arguments,1) - var parts = [] - for (var i = 0; i < strings.length-1; i++) { - parts.push(strings[i], exprs[i] || '') + + //Check if we should use depth buffer + var useDepth = true + if('depth' in options) { + useDepth = !!options.depth } - parts.push(strings[i]) - return parts.join('') -} -},{}],258:[function(_dereq_,module,exports){ -"use strict" + //Check if we should use a stencil buffer + var useStencil = false + if('stencil' in options) { + useStencil = !!options.stencil + } -module.exports = axesProperties + return new Framebuffer( + gl, + width, + height, + colorType, + numColors, + useDepth, + useStencil, + WEBGL_draw_buffers) +} -var getPlanes = _dereq_("extract-frustum-planes") -var splitPoly = _dereq_("split-polygon") -var cubeParams = _dereq_("./lib/cube.js") -var m4mul = _dereq_("gl-mat4/multiply") -var m4transpose = _dereq_("gl-mat4/transpose") -var v4transformMat4 = _dereq_("gl-vec4/transformMat4") +},{"gl-texture2d":352}],270:[function(_dereq_,module,exports){ -var identity = new Float32Array([ - 1, 0, 0, 0, - 0, 1, 0, 0, - 0, 0, 1, 0, - 0, 0, 0, 1 - ]) +var sprintf = _dereq_('sprintf-js').sprintf; +var glConstants = _dereq_('gl-constants/lookup'); +var shaderName = _dereq_('glsl-shader-name'); +var addLineNumbers = _dereq_('add-line-numbers'); -var mvp = new Float32Array(16) +module.exports = formatCompilerError; -function AxesRange3D(lo, hi, pixelsPerDataUnit) { - this.lo = lo - this.hi = hi - this.pixelsPerDataUnit = pixelsPerDataUnit -} +function formatCompilerError(errLog, src, type) { + "use strict"; -var SCRATCH_P = [0,0,0,1] -var SCRATCH_Q = [0,0,0,1] + var name = shaderName(src) || 'of unknown name (see npm glsl-shader-name)'; -function gradient(result, M, v, width, height) { - for(var i=0; i<3; ++i) { - var p = SCRATCH_P - var q = SCRATCH_Q - for(var j=0; j<3; ++j) { - q[j] = p[j] = v[j] + var typeName = 'unknown type'; + if (type !== undefined) { + typeName = type === glConstants.FRAGMENT_SHADER ? 'fragment' : 'vertex' } - q[3] = p[3] = 1 - q[i] += 1 - v4transformMat4(q, q, M) - if(q[3] < 0) { - result[i] = Infinity - } + var longForm = sprintf('Error compiling %s shader %s:\n', typeName, name); + var shortForm = sprintf("%s%s", longForm, errLog); - p[i] -= 1 - v4transformMat4(p, p, M) - if(p[3] < 0) { - result[i] = Infinity + var errorStrings = errLog.split('\n'); + var errors = {}; + + for (var i = 0; i < errorStrings.length; i++) { + var errorString = errorStrings[i]; + if (errorString === '' || errorString === "\0") continue; + var lineNo = parseInt(errorString.split(':')[2]); + if (isNaN(lineNo)) { + throw new Error(sprintf('Could not parse error: %s', errorString)); + } + errors[lineNo] = errorString; } - var dx = (p[0]/p[3] - q[0]/q[3]) * width - var dy = (p[1]/p[3] - q[1]/q[3]) * height + var lines = addLineNumbers(src).split('\n'); - result[i] = 0.25 * Math.sqrt(dx*dx + dy*dy) - } - return result + for (var i = 0; i < lines.length; i++) { + if (!errors[i+3] && !errors[i+2] && !errors[i+1]) continue; + var line = lines[i]; + longForm += line + '\n'; + if (errors[i+1]) { + var e = errors[i+1]; + e = e.substr(e.split(':', 3).join(':').length + 1).trim(); + longForm += sprintf('^^^ %s\n\n', e); + } + } + + return { + long: longForm.trim(), + short: shortForm.trim() + }; } -var RANGES = [ - new AxesRange3D(Infinity, -Infinity, Infinity), - new AxesRange3D(Infinity, -Infinity, Infinity), - new AxesRange3D(Infinity, -Infinity, Infinity) -] -var SCRATCH_X = [0,0,0] +},{"add-line-numbers":68,"gl-constants/lookup":265,"glsl-shader-name":430,"sprintf-js":562}],271:[function(_dereq_,module,exports){ +'use strict' -function axesProperties(axes, camera, width, height, params) { - var model = camera.model || identity - var view = camera.view || identity - var projection = camera.projection || identity - var isOrtho = camera._ortho || false - var bounds = axes.bounds - var params = params || cubeParams(model, view, projection, bounds, isOrtho) - var axis = params.axis +module.exports = createHeatmap2D - m4mul(mvp, view, model) - m4mul(mvp, projection, mvp) +var bsearch = _dereq_('binary-search-bounds') +var iota = _dereq_('iota-array') +var pool = _dereq_('typedarray-pool') +var createShader = _dereq_('gl-shader') +var createBuffer = _dereq_('gl-buffer') - //Calculate the following properties for each axis: - // - // * lo - start of visible range for each axis in tick coordinates - // * hi - end of visible range for each axis in tick coordinates - // * ticksPerPixel - pixel density of tick marks for the axis - // - var ranges = RANGES - for(var i=0; i<3; ++i) { - ranges[i].lo = Infinity - ranges[i].hi = -Infinity - ranges[i].pixelsPerDataUnit = Infinity - } +var shaders = _dereq_('./lib/shaders') - //Compute frustum planes, intersect with box - var frustum = getPlanes(m4transpose(mvp, mvp)) - m4transpose(mvp, mvp) +function GLHeatmap2D ( + plot, + shader, + pickShader, + positionBuffer, + weightBuffer, + colorBuffer, + idBuffer) { + this.plot = plot + this.shader = shader + this.pickShader = pickShader + this.positionBuffer = positionBuffer + this.weightBuffer = weightBuffer + this.colorBuffer = colorBuffer + this.idBuffer = idBuffer + this.xData = [] + this.yData = [] + this.shape = [0, 0] + this.bounds = [Infinity, Infinity, -Infinity, -Infinity] + this.pickOffset = 0 +} - //Loop over vertices of viewable box - for(var d=0; d<3; ++d) { - var u = (d+1)%3 - var v = (d+2)%3 - var x = SCRATCH_X -i_loop: - for(var i=0; i<2; ++i) { - var poly = [] +var proto = GLHeatmap2D.prototype - if((axis[d] < 0) === !!i) { - continue - } +var WEIGHTS = [ + 0, 0, + 1, 0, + 0, 1, + 1, 0, + 1, 1, + 0, 1 +] - x[d] = bounds[i][d] - for(var j=0; j<2; ++j) { - x[u] = bounds[j^i][u] - for(var k=0; k<2; ++k) { - x[v] = bounds[k^j^i][v] - poly.push(x.slice()) - } - } +proto.draw = (function () { + var MATRIX = [ + 1, 0, 0, + 0, 1, 0, + 0, 0, 1 + ] - var Q = (isOrtho) ? 5 : 4 - for(var j=Q; j===Q; ++j) { // Note: using only near plane here (& for orthographic projection we use the far). - if(poly.length === 0) { - continue i_loop - } - poly = splitPoly.positive(poly, frustum[j]) - } + return function () { + var plot = this.plot + var shader = this.shader + var bounds = this.bounds + var numVertices = this.numVertices - //Loop over vertices of polygon to find extremal points - for(var j=0; j len) { - throw new Error("gl-buffer: If resizing buffer, must not specify offset") + gl.drawArrays(gl.TRIANGLES, 0, numVertices) } - gl.bufferSubData(type, offset, data) - return len -} +})() -function makeScratchTypeArray(array, dtype) { - var res = pool.malloc(array.length, dtype) - var n = array.length - for(var i=0; i=0; --i) { - if(stride[i] !== n) { - return false - } - n *= shape[i] - } - return true -} + var PICK_VECTOR = [0, 0, 0, 0] -proto.update = function(array, offset) { - if(typeof offset !== "number") { - offset = -1 - } - this.bind() - if(typeof array === "object" && typeof array.shape !== "undefined") { //ndarray - var dtype = array.dtype - if(SUPPORTED_TYPES.indexOf(dtype) < 0) { - dtype = "float32" - } - if(this.type === this.gl.ELEMENT_ARRAY_BUFFER) { - var ext = gl.getExtension('OES_element_index_uint') - if(ext && dtype !== "uint16") { - dtype = "uint32" - } else { - dtype = "uint16" - } - } - if(dtype === array.dtype && isPacked(array.shape, array.stride)) { - if(array.offset === 0 && array.data.length === array.shape[0]) { - this.length = updateTypeArray(this.gl, this.type, this.length, this.usage, array.data, offset) - } else { - this.length = updateTypeArray(this.gl, this.type, this.length, this.usage, array.data.subarray(array.offset, array.shape[0]), offset) - } - } else { - var tmp = pool.malloc(array.size, dtype) - var ndt = ndarray(tmp, array.shape) - ops.assign(ndt, array) - if(offset < 0) { - this.length = updateTypeArray(this.gl, this.type, this.length, this.usage, tmp, offset) - } else { - this.length = updateTypeArray(this.gl, this.type, this.length, this.usage, tmp.subarray(0, array.size), offset) - } - pool.free(tmp) - } - } else if(Array.isArray(array)) { //Vanilla array - var t - if(this.type === this.gl.ELEMENT_ARRAY_BUFFER) { - t = makeScratchTypeArray(array, "uint16") - } else { - t = makeScratchTypeArray(array, "float32") - } - if(offset < 0) { - this.length = updateTypeArray(this.gl, this.type, this.length, this.usage, t, offset) - } else { - this.length = updateTypeArray(this.gl, this.type, this.length, this.usage, t.subarray(0, array.length), offset) - } - pool.free(t) - } else if(typeof array === "object" && typeof array.length === "number") { //Typed array - this.length = updateTypeArray(this.gl, this.type, this.length, this.usage, array, offset) - } else if(typeof array === "number" || array === undefined) { //Number/default - if(offset >= 0) { - throw new Error("gl-buffer: Cannot specify offset when resizing buffer") - } - array = array | 0 - if(array <= 0) { - array = 1 + return function (pickOffset) { + var plot = this.plot + var shader = this.pickShader + var bounds = this.bounds + var numVertices = this.numVertices + + if (numVertices <= 0) { + return } - this.gl.bufferData(this.type, array|0, this.usage) - this.length = array - } else { //Error, case should not happen - throw new Error("gl-buffer: Invalid data type") - } -} -function createBuffer(gl, data, type, usage) { - type = type || gl.ARRAY_BUFFER - usage = usage || gl.DYNAMIC_DRAW - if(type !== gl.ARRAY_BUFFER && type !== gl.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(usage !== gl.DYNAMIC_DRAW && usage !== gl.STATIC_DRAW && usage !== gl.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 handle = gl.createBuffer() - var result = new GLBuffer(gl, type, handle, 0, usage) - result.update(data) - return result -} + var gl = plot.gl + var dataBox = plot.dataBox -module.exports = createBuffer + var boundX = bounds[2] - bounds[0] + var boundY = bounds[3] - bounds[1] + var dataX = dataBox[2] - dataBox[0] + var dataY = dataBox[3] - dataBox[1] -},{"ndarray":495,"ndarray-ops":490,"typedarray-pool":595}],260:[function(_dereq_,module,exports){ -"use strict"; + MATRIX[0] = 2.0 * boundX / dataX + MATRIX[4] = 2.0 * boundY / dataY + MATRIX[6] = 2.0 * (bounds[0] - dataBox[0]) / dataX - 1.0 + MATRIX[7] = 2.0 * (bounds[1] - dataBox[1]) / dataY - 1.0 -var vec3 = _dereq_('gl-vec3'); + for (var i = 0; i < 4; ++i) { + PICK_VECTOR[i] = (pickOffset >> (i * 8)) & 0xff + } -module.exports = function(vectorfield, bounds) { - var positions = vectorfield.positions; - var vectors = vectorfield.vectors; - var geo = { - positions: [], - vertexIntensity: [], - vertexIntensityBounds: vectorfield.vertexIntensityBounds, - vectors: [], - cells: [], - coneOffset: vectorfield.coneOffset, - colormap: vectorfield.colormap - }; + this.pickOffset = pickOffset - if (vectorfield.positions.length === 0) { - if (bounds) { - bounds[0] = [0,0,0]; - bounds[1] = [0,0,0]; - } - return geo; - } + shader.bind() - // Compute bounding box for the dataset. - // Compute maximum velocity for the dataset to use for scaling the cones. - var maxNorm = 0; - var minX = Infinity, maxX = -Infinity; - var minY = Infinity, maxY = -Infinity; - var minZ = Infinity, maxZ = -Infinity; - var p2 = null; - var u2 = null; - var positionVectors = []; - var vectorScale = Infinity; - var skipIt = false; - for (var i = 0; i < positions.length; i++) { - var p = positions[i]; - minX = Math.min(p[0], minX); - maxX = Math.max(p[0], maxX); - minY = Math.min(p[1], minY); - maxY = Math.max(p[1], maxY); - minZ = Math.min(p[2], minZ); - maxZ = Math.max(p[2], maxZ); - var u = vectors[i]; + var uniforms = shader.uniforms + uniforms.viewTransform = MATRIX + uniforms.pickOffset = PICK_VECTOR + uniforms.shape = this.shape - if (vec3.length(u) > maxNorm) { - maxNorm = vec3.length(u); - } - if (i) { - // Find vector scale [w/ units of time] using "successive" positions - // (not "adjacent" with would be O(n^2)), - // - // The vector scale corresponds to the minimum "time" to travel across two - // two adjacent positions at the average velocity of those two adjacent positions + var attributes = shader.attributes + this.positionBuffer.bind() + attributes.position.pointer() - var q = (2 * vec3.distance(p2, p) / (vec3.length(u2) + vec3.length(u))); - if(q) { - vectorScale = Math.min(vectorScale, q); - skipIt = false; - } else { - skipIt = true; - } - } - if(!skipIt) { - p2 = p; - u2 = u; - } - positionVectors.push(u); - } - var minV = [minX, minY, minZ]; - var maxV = [maxX, maxY, maxZ]; - if (bounds) { - bounds[0] = minV; - bounds[1] = maxV; - } - if (maxNorm === 0) { - maxNorm = 1; - } + this.weightBuffer.bind() + attributes.weight.pointer(gl.UNSIGNED_BYTE, false) - // Inverted max norm would map vector with norm maxNorm to 1 coord space units in length - var invertedMaxNorm = 1 / maxNorm; + this.idBuffer.bind() + attributes.pickId.pointer(gl.UNSIGNED_BYTE, false) - if (!isFinite(vectorScale)) { - vectorScale = 1.0; - } - geo.vectorScale = vectorScale; + gl.drawArrays(gl.TRIANGLES, 0, numVertices) - var coneScale = vectorfield.coneSize || 0.5; + return pickOffset + this.shape[0] * this.shape[1] + } +})() - if (vectorfield.absoluteConeSize) { - coneScale = vectorfield.absoluteConeSize * invertedMaxNorm; - } +proto.pick = function (x, y, value) { + var pickOffset = this.pickOffset + var pointCount = this.shape[0] * this.shape[1] + if (value < pickOffset || value >= pickOffset + pointCount) { + return null + } + var pointId = value - pickOffset + var xData = this.xData + var yData = this.yData + return { + object: this, + pointId: pointId, + dataCoord: [ + xData[pointId % this.shape[0]], + yData[(pointId / this.shape[0]) | 0]] + } +} - geo.coneScale = coneScale; +proto.update = function (options) { + options = options || {} - // Build the cone model. - for (var i = 0, j = 0; i < positions.length; i++) { - var p = positions[i]; - var x = p[0], y = p[1], z = p[2]; - var d = positionVectors[i]; - var intensity = vec3.length(d) * invertedMaxNorm; - for (var k = 0, l = 8; k < l; k++) { - geo.positions.push([x, y, z, j++]); - geo.positions.push([x, y, z, j++]); - geo.positions.push([x, y, z, j++]); - geo.positions.push([x, y, z, j++]); - geo.positions.push([x, y, z, j++]); - geo.positions.push([x, y, z, j++]); + var shape = options.shape || [0, 0] - geo.vectors.push(d); - geo.vectors.push(d); - geo.vectors.push(d); - geo.vectors.push(d); - geo.vectors.push(d); - geo.vectors.push(d); + var x = options.x || iota(shape[0]) + var y = options.y || iota(shape[1]) + var z = options.z || new Float32Array(shape[0] * shape[1]) - geo.vertexIntensity.push(intensity, intensity, intensity); - geo.vertexIntensity.push(intensity, intensity, intensity); + var isSmooth = options.zsmooth !== false - var m = geo.positions.length; - geo.cells.push([m-6, m-5, m-4], [m-3, m-2, m-1]); - } - } + this.xData = x + this.yData = y - return geo; -}; + var colorLevels = options.colorLevels || [0] + var colorValues = options.colorValues || [0, 0, 0, 1] + var colorCount = colorLevels.length -var shaders = _dereq_('./lib/shaders'); -module.exports.createMesh = _dereq_('./create_mesh'); -module.exports.createConeMesh = function(gl, params) { - return module.exports.createMesh(gl, params, { - shaders: shaders, - traceType: 'cone' - }); -} + var bounds = this.bounds + var lox, loy, hix, hiy + if (isSmooth) { + lox = bounds[0] = x[0] + loy = bounds[1] = y[0] + hix = bounds[2] = x[x.length - 1] + hiy = bounds[3] = y[y.length - 1] + } else { + /* To get squares to centre on data values */ + lox = bounds[0] = x[0] + (x[1] - x[0]) / 2 /* starting x value */ + loy = bounds[1] = y[0] + (y[1] - y[0]) / 2 /* starting y value */ -},{"./create_mesh":261,"./lib/shaders":262,"gl-vec3":377}],261:[function(_dereq_,module,exports){ -'use strict' + /* Bounds needs to add half a square on each end */ + hix = bounds[2] = x[x.length - 1] + (x[x.length - 1] - x[x.length - 2]) / 2 + hiy = bounds[3] = y[y.length - 1] + (y[y.length - 1] - y[y.length - 2]) / 2 -var createShader = _dereq_('gl-shader') -var createBuffer = _dereq_('gl-buffer') -var createVAO = _dereq_('gl-vao') -var createTexture = _dereq_('gl-texture2d') -var multiply = _dereq_('gl-mat4/multiply') -var invert = _dereq_('gl-mat4/invert') -var ndarray = _dereq_('ndarray') -var colormap = _dereq_('colormap') + // N.B. Resolution = 1 / range + } + var xs = 1.0 / (hix - lox) + var ys = 1.0 / (hiy - loy) -var IDENTITY = [ - 1,0,0,0, - 0,1,0,0, - 0,0,1,0, - 0,0,0,1] + var numX = shape[0] + var numY = shape[1] -function VectorMesh(gl - , texture - , triShader - , pickShader - , trianglePositions - , triangleVectors - , triangleIds - , triangleColors - , triangleUVs - , triangleVAO - , traceType) { + this.shape = [numX, numY] - this.gl = gl - this.pixelRatio = 1 - this.cells = [] - this.positions = [] - this.intensity = [] - this.texture = texture - this.dirty = true + var numVerts = ( + isSmooth ? (numX - 1) * (numY - 1) : numX * numY + ) * (WEIGHTS.length >>> 1) - this.triShader = triShader - this.pickShader = pickShader + this.numVertices = numVerts - this.trianglePositions = trianglePositions - this.triangleVectors = triangleVectors - this.triangleColors = triangleColors - this.triangleUVs = triangleUVs - this.triangleIds = triangleIds - this.triangleVAO = triangleVAO - this.triangleCount = 0 + var colors = pool.mallocUint8(numVerts * 4) + var positions = pool.mallocFloat32(numVerts * 2) + var weights = pool.mallocUint8 (numVerts * 2) + var ids = pool.mallocUint32(numVerts) - this.pickId = 1 - this.bounds = [ - [ Infinity, Infinity, Infinity], - [-Infinity,-Infinity,-Infinity] ] - this.clipBounds = [ - [-Infinity,-Infinity,-Infinity], - [ Infinity, Infinity, Infinity] ] + var ptr = 0 - this.lightPosition = [1e5, 1e5, 0] - this.ambientLight = 0.8 - this.diffuseLight = 0.8 - this.specularLight = 2.0 - this.roughness = 0.5 - this.fresnel = 1.5 + var ni = isSmooth ? numX - 1 : numX + var nj = isSmooth ? numY - 1 : numY - this.opacity = 1 + for (var j = 0; j < nj; ++j) { + var yc0, yc1 - this.traceType = traceType - this.tubeScale = 1 // used in streamtube - this.coneScale = 2 // used in cone - this.vectorScale = 1 // used in cone - this.coneOffset = 0.25 // used in cone + if (isSmooth) { + yc0 = ys * (y[j] - loy) + yc1 = ys * (y[j + 1] - loy) + } else { + yc0 = j < numY - 1 ? ys * (y[j] - (y[j + 1] - y[j])/2 - loy) : ys * (y[j] - (y[j] - y[j - 1])/2 - loy) + yc1 = j < numY - 1 ? ys * (y[j] + (y[j + 1] - y[j])/2 - loy) : ys * (y[j] + (y[j] - y[j - 1])/2 - loy) + } - this._model = IDENTITY - this._view = IDENTITY - this._projection = IDENTITY - this._resolution = [1,1] -} + for (var i = 0; i < ni; ++i) { + var xc0, xc1 -var proto = VectorMesh.prototype + if (isSmooth) { + xc0 = xs * (x[i] - lox) + xc1 = xs * (x[i + 1] - lox) + } else { + xc0 = i < numX - 1 ? xs * (x[i] - (x[i + 1] - x[i])/2 - lox) : xs * (x[i] - (x[i] - x[i - 1])/2 - lox) + xc1 = i < numX - 1 ? xs * (x[i] + (x[i + 1] - x[i])/2 - lox) : xs * (x[i] + (x[i] - x[i - 1])/2 - lox) + } -proto.isOpaque = function() { - return this.opacity >= 1 -} + for (var dd = 0; dd < WEIGHTS.length; dd += 2) { + var dx = WEIGHTS[dd] + var dy = WEIGHTS[dd + 1] + var offset = isSmooth ? (j + dy) * numX + (i + dx) : j * numX + i + var zc = z[offset] + var colorIdx = bsearch.le(colorLevels, zc) + var r, g, b, a + if (colorIdx < 0) { + r = colorValues[0] + g = colorValues[1] + b = colorValues[2] + a = colorValues[3] + } else if (colorIdx === colorCount - 1) { + r = colorValues[4 * colorCount - 4] + g = colorValues[4 * colorCount - 3] + b = colorValues[4 * colorCount - 2] + a = colorValues[4 * colorCount - 1] + } else { + var t = (zc - colorLevels[colorIdx]) / + (colorLevels[colorIdx + 1] - colorLevels[colorIdx]) + var ti = 1.0 - t + var i0 = 4 * colorIdx + var i1 = 4 * (colorIdx + 1) + r = ti * colorValues[i0] + t * colorValues[i1] + g = ti * colorValues[i0 + 1] + t * colorValues[i1 + 1] + b = ti * colorValues[i0 + 2] + t * colorValues[i1 + 2] + a = ti * colorValues[i0 + 3] + t * colorValues[i1 + 3] + } -proto.isTransparent = function() { - return this.opacity < 1 -} + colors[4 * ptr] = 255 * r + colors[4 * ptr + 1] = 255 * g + colors[4 * ptr + 2] = 255 * b + colors[4 * ptr + 3] = 255 * a -proto.pickSlots = 1 + positions[2*ptr] = xc0*.5 + xc1*.5; + positions[2*ptr+1] = yc0*.5 + yc1*.5; -proto.setPickBase = function(id) { - this.pickId = id -} + weights[2*ptr] = dx; + weights[2*ptr+1] = dy; -function genColormap(param) { - var colors = colormap({ - colormap: param - , nshades: 256 - , format: 'rgba' - }) + ids[ptr] = j * numX + i - var result = new Uint8Array(256*4) - for(var i=0; i<256; ++i) { - var c = colors[i] - for(var j=0; j<3; ++j) { - result[4*i+j] = c[j] + ptr += 1 + } } - result[4*i+3] = c[3]*255 } - return ndarray(result, [256,256,4], [4,0,1]) -} + this.positionBuffer.update(positions) + this.weightBuffer.update(weights) + this.colorBuffer.update(colors) + this.idBuffer.update(ids) -function takeZComponent(array) { - var n = array.length - var result = new Array(n) - for(var i=0; i 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"]) +var pickFrag = glslify(["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}"]) - if(vertexIntensity) { - this.intensity = vertexIntensity - } else { - this.intensity = takeZComponent(positions) - } +var ATTRIBUTES = [ + {name: 'position', type: 'vec3'}, + {name: 'nextPosition', type: 'vec3'}, + {name: 'arcLength', type: 'float'}, + {name: 'lineWidth', type: 'float'}, + {name: 'color', type: 'vec4'} +] - //Update bounds - this.bounds = [[Infinity,Infinity,Infinity], [-Infinity,-Infinity,-Infinity]] - for(var i=0; i 0) { - var shader = this.triShader - shader.bind() - shader.uniforms = uniforms - - this.triangleVAO.bind() - gl.drawArrays(gl.TRIANGLES, 0, this.triangleCount*3) - this.triangleVAO.unbind() - } -} + // Recalculate buffer data + var buffer = [] + var arcLengthArray = [] + var pointArray = [] + var arcLength = 0.0 + var vertexCount = 0 + var bounds = [ + [ Infinity, Infinity, Infinity ], + [ -Infinity, -Infinity, -Infinity ]] -proto.drawPick = function(params) { - params = params || {} + var positions = options.position || options.positions + if (positions) { - var gl = this.gl + // Default color + var colors = options.color || options.colors || [0, 0, 0, 1] - var model = params.model || IDENTITY - var view = params.view || IDENTITY - var projection = params.projection || IDENTITY + var lineWidth = options.lineWidth || 1 - var clipBounds = [[-1e6,-1e6,-1e6],[1e6,1e6,1e6]] - for(var i=0; i<3; ++i) { - clipBounds[0][i] = Math.max(clipBounds[0][i], this.clipBounds[0][i]) - clipBounds[1][i] = Math.min(clipBounds[1][i], this.clipBounds[1][i]) - } + var hadGap = false - //Save camera parameters - this._model = [].slice.call(model) - this._view = [].slice.call(view) - this._projection = [].slice.call(projection) - this._resolution = [gl.drawingBufferWidth, gl.drawingBufferHeight] + fill_loop: + for (i = 1; i < positions.length; ++i) { + var a = positions[i - 1] + var b = positions[i] - var uniforms = { - model: model, - view: view, - projection: projection, - clipBounds: clipBounds, + arcLengthArray.push(arcLength) + pointArray.push(a.slice()) - tubeScale: this.tubeScale, - vectorScale: this.vectorScale, - coneScale: this.coneScale, - coneOffset: this.coneOffset, + for (j = 0; j < 3; ++j) { + if (isNaN(a[j]) || isNaN(b[j]) || + !isFinite(a[j]) || !isFinite(b[j])) { - pickId: this.pickId / 255.0, - } + if (!connectGaps && buffer.length > 0) { + for (var k = 0; k < 24; ++k) { + buffer.push(buffer[buffer.length - 12]) + } + vertexCount += 2 + hadGap = true + } - var shader = this.pickShader - shader.bind() - shader.uniforms = uniforms + continue fill_loop + } + bounds[0][j] = Math.min(bounds[0][j], a[j], b[j]) + bounds[1][j] = Math.max(bounds[1][j], a[j], b[j]) + } - if(this.triangleCount > 0) { - this.triangleVAO.bind() - gl.drawArrays(gl.TRIANGLES, 0, this.triangleCount*3) - this.triangleVAO.unbind() - } -} + var acolor, bcolor + if (Array.isArray(colors[0])) { + acolor = (colors.length > i - 1) ? colors[i - 1] : // using index value + (colors.length > 0) ? colors[colors.length - 1] : // using last item + [0, 0, 0, 1]; // using black + bcolor = (colors.length > i) ? colors[i] : // using index value + (colors.length > 0) ? colors[colors.length - 1] : // using last item + [0, 0, 0, 1]; // using black + } else { + acolor = bcolor = colors + } -proto.pick = function(pickData) { - if(!pickData) { - return null - } - if(pickData.id !== this.pickId) { - return null - } + if (acolor.length === 3) { + acolor = [acolor[0], acolor[1], acolor[2], 1] + } + if (bcolor.length === 3) { + bcolor = [bcolor[0], bcolor[1], bcolor[2], 1] + } - var cellId = pickData.value[0] + 256*pickData.value[1] + 65536*pickData.value[2] - var cell = this.cells[cellId] - var pos = this.positions[cell[1]].slice(0, 3) + if(!this.hasAlpha && acolor[3] < 1) this.hasAlpha = true - var result = { - position: pos, - dataCoordinate: pos, - index: Math.floor(cell[1] / 48) - } + var w0 + if (Array.isArray(lineWidth)) { + w0 = (lineWidth.length > i - 1) ? lineWidth[i - 1] : // using index value + (lineWidth.length > 0) ? lineWidth[lineWidth.length - 1] : // using last item + [0, 0, 0, 1]; // using black + } else { + w0 = lineWidth + } + var t0 = arcLength + arcLength += distance(a, b) - if(this.traceType === 'cone') { - result.index = Math.floor(cell[1] / 48) - } else if(this.traceType === 'streamtube') { - result.intensity = this.intensity[cell[1]] - result.velocity = this.vectors[cell[1]].slice(0, 3) - result.divergence = this.vectors[cell[1]][3] - result.index = cellId - } + if (hadGap) { + for (j = 0; j < 2; ++j) { + buffer.push( + a[0], a[1], a[2], b[0], b[1], b[2], t0, w0, acolor[0], acolor[1], acolor[2], acolor[3]) + } + vertexCount += 2 + hadGap = false + } - return result -} + buffer.push( + a[0], a[1], a[2], b[0], b[1], b[2], t0, w0, acolor[0], acolor[1], acolor[2], acolor[3], + a[0], a[1], a[2], b[0], b[1], b[2], t0, -w0, acolor[0], acolor[1], acolor[2], acolor[3], + b[0], b[1], b[2], a[0], a[1], a[2], arcLength, -w0, bcolor[0], bcolor[1], bcolor[2], bcolor[3], + b[0], b[1], b[2], a[0], a[1], a[2], arcLength, w0, bcolor[0], bcolor[1], bcolor[2], bcolor[3]) + vertexCount += 4 + } + } + this.buffer.update(buffer) -proto.dispose = function() { - this.texture.dispose() + arcLengthArray.push(arcLength) + pointArray.push(positions[positions.length - 1].slice()) - this.triShader.dispose() - this.pickShader.dispose() + this.bounds = bounds - this.triangleVAO.dispose() - this.trianglePositions.dispose() - this.triangleVectors.dispose() - this.triangleColors.dispose() - this.triangleUVs.dispose() - this.triangleIds.dispose() -} + this.vertexCount = vertexCount -function createMeshShader(gl, shaders) { - var shader = createShader(gl, - shaders.meshShader.vertex, - shaders.meshShader.fragment, - null, - shaders.meshShader.attributes - ) + this.points = pointArray + this.arcLength = arcLengthArray - shader.attributes.position.location = 0 - shader.attributes.color.location = 2 - shader.attributes.uv.location = 3 - shader.attributes.vector.location = 4 - return shader -} + if ('dashes' in options) { + var dashArray = options.dashes + // Calculate prefix sum + var prefixSum = dashArray.slice() + prefixSum.unshift(0) + for (i = 1; i < prefixSum.length; ++i) { + prefixSum[i] = prefixSum[i - 1] + prefixSum[i] + } -function createPickShader(gl, shaders) { - var shader = createShader(gl, - shaders.pickShader.vertex, - shaders.pickShader.fragment, - null, - shaders.pickShader.attributes - ) + var dashTexture = ndarray(new Array(256 * 4), [256, 1, 4]) + for (i = 0; i < 256; ++i) { + for (j = 0; j < 4; ++j) { + dashTexture.set(i, 0, j, 0) + } + if (bsearch.le(prefixSum, prefixSum[prefixSum.length - 1] * i / 255.0) & 1) { + dashTexture.set(i, 0, 0, 0) + } else { + dashTexture.set(i, 0, 0, 255) + } + } - shader.attributes.position.location = 0 - shader.attributes.id.location = 1 - shader.attributes.vector.location = 4 - return shader + this.texture.setPixels(dashTexture) + } } +proto.dispose = function () { + this.shader.dispose() + this.vao.dispose() + this.buffer.dispose() +} -function createVectorMesh(gl, params, opts) { - var shaders = opts.shaders - - if (arguments.length === 1) { - params = gl - gl = params.gl +proto.pick = function (selection) { + if (!selection) { + return null + } + if (selection.id !== this.pickId) { + return null } + var tau = unpackFloat( + selection.value[0], + selection.value[1], + selection.value[2], + 0) + var index = bsearch.le(this.arcLength, tau) + if (index < 0) { + return null + } + if (index === this.arcLength.length - 1) { + return new PickResult( + this.arcLength[this.arcLength.length - 1], + this.points[this.points.length - 1].slice(), + index) + } + var a = this.points[index] + var b = this.points[Math.min(index + 1, this.points.length - 1)] + var t = (tau - this.arcLength[index]) / (this.arcLength[index + 1] - this.arcLength[index]) + var ti = 1.0 - t + var x = [0, 0, 0] + for (var i = 0; i < 3; ++i) { + x[i] = ti * a[i] + t * b[i] + } + var dataIndex = Math.min((t < 0.5) ? index : (index + 1), this.points.length - 1) + return new PickResult( + tau, + x, + dataIndex, + this.points[dataIndex]) +} + +function createLinePlot (options) { + var gl = options.gl || (options.scene && options.scene.gl) + var shader = createShader(gl) + shader.attributes.position.location = 0 + shader.attributes.nextPosition.location = 1 + shader.attributes.arcLength.location = 2 + shader.attributes.lineWidth.location = 3 + shader.attributes.color.location = 4 - var triShader = createMeshShader(gl, shaders) - var pickShader = createPickShader(gl, shaders) - var meshTexture = createTexture(gl, - ndarray(new Uint8Array([255,255,255,255]), [1,1,4])) - meshTexture.generateMipmap() - meshTexture.minFilter = gl.LINEAR_MIPMAP_LINEAR - meshTexture.magFilter = gl.LINEAR + var pickShader = createPickShader(gl) + pickShader.attributes.position.location = 0 + pickShader.attributes.nextPosition.location = 1 + pickShader.attributes.arcLength.location = 2 + pickShader.attributes.lineWidth.location = 3 + pickShader.attributes.color.location = 4 - var trianglePositions = createBuffer(gl) - var triangleVectors = createBuffer(gl) - var triangleColors = createBuffer(gl) - var triangleUVs = createBuffer(gl) - var triangleIds = createBuffer(gl) - var triangleVAO = createVAO(gl, [ - { buffer: trianglePositions, - type: gl.FLOAT, - size: 4 + var buffer = createBuffer(gl) + var vao = createVAO(gl, [ + { + 'buffer': buffer, + 'size': 3, + 'offset': 0, + 'stride': 48 }, - { buffer: triangleIds, - type: gl.UNSIGNED_BYTE, - size: 4, - normalized: true + { + 'buffer': buffer, + 'size': 3, + 'offset': 12, + 'stride': 48 }, - { buffer: triangleColors, - type: gl.FLOAT, - size: 4 + { + 'buffer': buffer, + 'size': 1, + 'offset': 24, + 'stride': 48 }, - { buffer: triangleUVs, - type: gl.FLOAT, - size: 2 + { + 'buffer': buffer, + 'size': 1, + 'offset': 28, + 'stride': 48 }, - { buffer: triangleVectors, - type: gl.FLOAT, - size: 4 + { + 'buffer': buffer, + 'size': 4, + 'offset': 32, + 'stride': 48 } ]) - var mesh = new VectorMesh(gl - , meshTexture - , triShader - , pickShader - , trianglePositions - , triangleVectors - , triangleIds - , triangleColors - , triangleUVs - , triangleVAO - , opts.traceType || 'cone' - ) - - mesh.update(params) + // Create texture for dash pattern + var defaultTexture = ndarray(new Array(256 * 4), [256, 1, 4]) + for (var i = 0; i < 256 * 4; ++i) { + defaultTexture.data[i] = 255 + } + var texture = createTexture(gl, defaultTexture) + texture.wrap = gl.REPEAT - return mesh + var linePlot = new LinePlot(gl, shader, pickShader, buffer, vao, texture) + linePlot.update(options) + return linePlot } -module.exports = createVectorMesh +},{"./lib/shaders":274,"binary-search-bounds":99,"gl-buffer":259,"gl-texture2d":352,"gl-vao":357,"ndarray":480}],276:[function(_dereq_,module,exports){ +arguments[4][257][0].apply(exports,arguments) +},{"dup":257}],277:[function(_dereq_,module,exports){ +module.exports = adjoint; -},{"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(_dereq_,module,exports){ -var glslify = _dereq_('glslify') +/** + * Calculates the adjugate of a mat4 + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the source matrix + * @returns {mat4} out + */ +function adjoint(out, a) { + var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3], + a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7], + a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11], + a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15]; -var triVertSrc = glslify(["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"]) -var triFragSrc = glslify(["#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"]) -var pickVertSrc = glslify(["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"]) -var pickFragSrc = glslify(["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}"]) + out[0] = (a11 * (a22 * a33 - a23 * a32) - a21 * (a12 * a33 - a13 * a32) + a31 * (a12 * a23 - a13 * a22)); + out[1] = -(a01 * (a22 * a33 - a23 * a32) - a21 * (a02 * a33 - a03 * a32) + a31 * (a02 * a23 - a03 * a22)); + out[2] = (a01 * (a12 * a33 - a13 * a32) - a11 * (a02 * a33 - a03 * a32) + a31 * (a02 * a13 - a03 * a12)); + out[3] = -(a01 * (a12 * a23 - a13 * a22) - a11 * (a02 * a23 - a03 * a22) + a21 * (a02 * a13 - a03 * a12)); + out[4] = -(a10 * (a22 * a33 - a23 * a32) - a20 * (a12 * a33 - a13 * a32) + a30 * (a12 * a23 - a13 * a22)); + out[5] = (a00 * (a22 * a33 - a23 * a32) - a20 * (a02 * a33 - a03 * a32) + a30 * (a02 * a23 - a03 * a22)); + out[6] = -(a00 * (a12 * a33 - a13 * a32) - a10 * (a02 * a33 - a03 * a32) + a30 * (a02 * a13 - a03 * a12)); + out[7] = (a00 * (a12 * a23 - a13 * a22) - a10 * (a02 * a23 - a03 * a22) + a20 * (a02 * a13 - a03 * a12)); + out[8] = (a10 * (a21 * a33 - a23 * a31) - a20 * (a11 * a33 - a13 * a31) + a30 * (a11 * a23 - a13 * a21)); + out[9] = -(a00 * (a21 * a33 - a23 * a31) - a20 * (a01 * a33 - a03 * a31) + a30 * (a01 * a23 - a03 * a21)); + out[10] = (a00 * (a11 * a33 - a13 * a31) - a10 * (a01 * a33 - a03 * a31) + a30 * (a01 * a13 - a03 * a11)); + out[11] = -(a00 * (a11 * a23 - a13 * a21) - a10 * (a01 * a23 - a03 * a21) + a20 * (a01 * a13 - a03 * a11)); + out[12] = -(a10 * (a21 * a32 - a22 * a31) - a20 * (a11 * a32 - a12 * a31) + a30 * (a11 * a22 - a12 * a21)); + out[13] = (a00 * (a21 * a32 - a22 * a31) - a20 * (a01 * a32 - a02 * a31) + a30 * (a01 * a22 - a02 * a21)); + out[14] = -(a00 * (a11 * a32 - a12 * a31) - a10 * (a01 * a32 - a02 * a31) + a30 * (a01 * a12 - a02 * a11)); + out[15] = (a00 * (a11 * a22 - a12 * a21) - a10 * (a01 * a22 - a02 * a21) + a20 * (a01 * a12 - a02 * a11)); + return out; +}; +},{}],278:[function(_dereq_,module,exports){ +module.exports = clone; -exports.meshShader = { - vertex: triVertSrc, - fragment: triFragSrc, - attributes: [ - {name: 'position', type: 'vec4'}, - {name: 'color', type: 'vec4'}, - {name: 'uv', type: 'vec2'}, - {name: 'vector', type: 'vec3'} - ] -} -exports.pickShader = { - vertex: pickVertSrc, - fragment: pickFragSrc, - attributes: [ - {name: 'position', type: 'vec4'}, - {name: 'id', type: 'vec4'}, - {name: 'vector', type: 'vec3'} - ] -} +/** + * Creates a new mat4 initialized with values from an existing matrix + * + * @param {mat4} a matrix to clone + * @returns {mat4} a new 4x4 matrix + */ +function clone(a) { + var out = new Float32Array(16); + out[0] = a[0]; + out[1] = a[1]; + out[2] = a[2]; + out[3] = a[3]; + out[4] = a[4]; + out[5] = a[5]; + out[6] = a[6]; + out[7] = a[7]; + out[8] = a[8]; + out[9] = a[9]; + out[10] = a[10]; + out[11] = a[11]; + out[12] = a[12]; + out[13] = a[13]; + out[14] = a[14]; + out[15] = a[15]; + return out; +}; +},{}],279:[function(_dereq_,module,exports){ +module.exports = copy; -},{"glslify":263}],263:[function(_dereq_,module,exports){ -arguments[4][257][0].apply(exports,arguments) -},{"dup":257}],264:[function(_dereq_,module,exports){ -module.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', - 34000: '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' -} +/** + * Copy the values from one mat4 to another + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the source matrix + * @returns {mat4} out + */ +function copy(out, a) { + out[0] = a[0]; + out[1] = a[1]; + out[2] = a[2]; + out[3] = a[3]; + out[4] = a[4]; + out[5] = a[5]; + out[6] = a[6]; + out[7] = a[7]; + out[8] = a[8]; + out[9] = a[9]; + out[10] = a[10]; + out[11] = a[11]; + out[12] = a[12]; + out[13] = a[13]; + out[14] = a[14]; + out[15] = a[15]; + return out; +}; +},{}],280:[function(_dereq_,module,exports){ +module.exports = create; -},{}],265:[function(_dereq_,module,exports){ -var gl10 = _dereq_('./1.0/numbers') +/** + * Creates a new identity mat4 + * + * @returns {mat4} a new 4x4 matrix + */ +function create() { + var out = new Float32Array(16); + out[0] = 1; + out[1] = 0; + out[2] = 0; + out[3] = 0; + out[4] = 0; + out[5] = 1; + out[6] = 0; + out[7] = 0; + out[8] = 0; + out[9] = 0; + out[10] = 1; + out[11] = 0; + out[12] = 0; + out[13] = 0; + out[14] = 0; + out[15] = 1; + return out; +}; +},{}],281:[function(_dereq_,module,exports){ +module.exports = determinant; -module.exports = function lookupConstant (number) { - return gl10[number] -} +/** + * Calculates the determinant of a mat4 + * + * @param {mat4} a the source matrix + * @returns {Number} determinant of a + */ +function determinant(a) { + var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3], + a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7], + a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11], + a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15], -},{"./1.0/numbers":264}],266:[function(_dereq_,module,exports){ -'use strict' + b00 = a00 * a11 - a01 * a10, + b01 = a00 * a12 - a02 * a10, + b02 = a00 * a13 - a03 * a10, + b03 = a01 * a12 - a02 * a11, + b04 = a01 * a13 - a03 * a11, + b05 = a02 * a13 - a03 * a12, + b06 = a20 * a31 - a21 * a30, + b07 = a20 * a32 - a22 * a30, + b08 = a20 * a33 - a23 * a30, + b09 = a21 * a32 - a22 * a31, + b10 = a21 * a33 - a23 * a31, + b11 = a22 * a33 - a23 * a32; + + // Calculate the determinant + return b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06; +}; +},{}],282:[function(_dereq_,module,exports){ +module.exports = fromQuat; + +/** + * Creates a matrix from a quaternion rotation. + * + * @param {mat4} out mat4 receiving operation result + * @param {quat4} q Rotation quaternion + * @returns {mat4} out + */ +function fromQuat(out, q) { + var x = q[0], y = q[1], z = q[2], w = q[3], + x2 = x + x, + y2 = y + y, + z2 = z + z, + + xx = x * x2, + yx = y * x2, + yy = y * y2, + zx = z * x2, + zy = z * y2, + zz = z * z2, + wx = w * x2, + wy = w * y2, + wz = w * z2; + + out[0] = 1 - yy - zz; + out[1] = yx + wz; + out[2] = zx - wy; + out[3] = 0; + + out[4] = yx - wz; + out[5] = 1 - xx - zz; + out[6] = zy + wx; + out[7] = 0; + + out[8] = zx + wy; + out[9] = zy - wx; + out[10] = 1 - xx - yy; + out[11] = 0; -module.exports = createErrorBars + out[12] = 0; + out[13] = 0; + out[14] = 0; + out[15] = 1; -var createBuffer = _dereq_('gl-buffer') -var createVAO = _dereq_('gl-vao') -var createShader = _dereq_('./shaders/index') + return out; +}; +},{}],283:[function(_dereq_,module,exports){ +module.exports = fromRotation -var IDENTITY = [1,0,0,0, - 0,1,0,0, - 0,0,1,0, - 0,0,0,1] +/** + * Creates a matrix from a given angle around a given axis + * This is equivalent to (but much faster than): + * + * mat4.identity(dest) + * mat4.rotate(dest, dest, rad, axis) + * + * @param {mat4} out mat4 receiving operation result + * @param {Number} rad the angle to rotate the matrix by + * @param {vec3} axis the axis to rotate around + * @returns {mat4} out + */ +function fromRotation(out, rad, axis) { + var s, c, t + var x = axis[0] + var y = axis[1] + var z = axis[2] + var len = Math.sqrt(x * x + y * y + z * z) -function ErrorBars(gl, buffer, vao, shader) { - this.gl = gl - this.shader = shader - this.buffer = buffer - this.vao = vao - this.pixelRatio = 1 - this.bounds = [[ Infinity, Infinity, Infinity], [-Infinity,-Infinity,-Infinity]] - this.clipBounds = [[-Infinity,-Infinity,-Infinity], [ Infinity, Infinity, Infinity]] - 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 = false -} + if (Math.abs(len) < 0.000001) { + return null + } -var proto = ErrorBars.prototype + len = 1 / len + x *= len + y *= len + z *= len -proto.isOpaque = function() { - return !this.hasAlpha -} + s = Math.sin(rad) + c = Math.cos(rad) + t = 1 - c -proto.isTransparent = function() { - return this.hasAlpha + // Perform rotation-specific matrix multiplication + out[0] = x * x * t + c + out[1] = y * x * t + z * s + out[2] = z * x * t - y * s + out[3] = 0 + out[4] = x * y * t - z * s + out[5] = y * y * t + c + out[6] = z * y * t + x * s + out[7] = 0 + out[8] = x * z * t + y * s + out[9] = y * z * t - x * s + out[10] = z * z * t + c + out[11] = 0 + out[12] = 0 + out[13] = 0 + out[14] = 0 + out[15] = 1 + return out } -proto.drawTransparent = proto.draw = function(cameraParams) { - var gl = this.gl - var uniforms = this.shader.uniforms - - this.shader.bind() - var view = uniforms.view = cameraParams.view || IDENTITY - var projection = uniforms.projection = cameraParams.projection || IDENTITY - uniforms.model = cameraParams.model || IDENTITY - uniforms.clipBounds = this.clipBounds - uniforms.opacity = this.opacity +},{}],284:[function(_dereq_,module,exports){ +module.exports = fromRotationTranslation; +/** + * Creates a matrix from a quaternion rotation and vector translation + * This is equivalent to (but much faster than): + * + * mat4.identity(dest); + * mat4.translate(dest, vec); + * var quatMat = mat4.create(); + * quat4.toMat4(quat, quatMat); + * mat4.multiply(dest, quatMat); + * + * @param {mat4} out mat4 receiving operation result + * @param {quat4} q Rotation quaternion + * @param {vec3} v Translation vector + * @returns {mat4} out + */ +function fromRotationTranslation(out, q, v) { + // Quaternion math + var x = q[0], y = q[1], z = q[2], w = q[3], + x2 = x + x, + y2 = y + y, + z2 = z + z, - var cx = view[12] - var cy = view[13] - var cz = view[14] - var cw = view[15] + xx = x * x2, + xy = x * y2, + xz = x * z2, + yy = y * y2, + yz = y * z2, + zz = z * z2, + wx = w * x2, + wy = w * y2, + wz = w * z2; - var isOrtho = cameraParams._ortho || false - var orthoFix = (isOrtho) ? 2 : 1 // double up padding for orthographic ticks & labels - var pixelScaleF = orthoFix * this.pixelRatio * (projection[3]*cx + projection[7]*cy + projection[11]*cz + projection[15]*cw) / gl.drawingBufferHeight + out[0] = 1 - (yy + zz); + out[1] = xy + wz; + out[2] = xz - wy; + out[3] = 0; + out[4] = xy - wz; + out[5] = 1 - (xx + zz); + out[6] = yz + wx; + out[7] = 0; + out[8] = xz + wy; + out[9] = yz - wx; + out[10] = 1 - (xx + yy); + out[11] = 0; + out[12] = v[0]; + out[13] = v[1]; + out[14] = v[2]; + out[15] = 1; + + return out; +}; +},{}],285:[function(_dereq_,module,exports){ +module.exports = fromScaling - this.vao.bind() - for(var i=0; i<3; ++i) { - gl.lineWidth(this.lineWidth[i] * this.pixelRatio) - uniforms.capSize = this.capSize[i] * pixelScaleF - if (this.lineCount[i]) { - gl.drawArrays(gl.LINES, this.lineOffset[i], this.lineCount[i]) - } - } - this.vao.unbind() +/** + * Creates a matrix from a vector scaling + * This is equivalent to (but much faster than): + * + * mat4.identity(dest) + * mat4.scale(dest, dest, vec) + * + * @param {mat4} out mat4 receiving operation result + * @param {vec3} v Scaling vector + * @returns {mat4} out + */ +function fromScaling(out, v) { + out[0] = v[0] + out[1] = 0 + out[2] = 0 + out[3] = 0 + out[4] = 0 + out[5] = v[1] + out[6] = 0 + out[7] = 0 + out[8] = 0 + out[9] = 0 + out[10] = v[2] + out[11] = 0 + out[12] = 0 + out[13] = 0 + out[14] = 0 + out[15] = 1 + return out } -function updateBounds(bounds, point) { - for(var i=0; i<3; ++i) { - bounds[0][i] = Math.min(bounds[0][i], point[i]) - bounds[1][i] = Math.max(bounds[1][i], point[i]) - } +},{}],286:[function(_dereq_,module,exports){ +module.exports = fromTranslation + +/** + * Creates a matrix from a vector translation + * This is equivalent to (but much faster than): + * + * mat4.identity(dest) + * mat4.translate(dest, dest, vec) + * + * @param {mat4} out mat4 receiving operation result + * @param {vec3} v Translation vector + * @returns {mat4} out + */ +function fromTranslation(out, v) { + out[0] = 1 + out[1] = 0 + out[2] = 0 + out[3] = 0 + out[4] = 0 + out[5] = 1 + out[6] = 0 + out[7] = 0 + out[8] = 0 + out[9] = 0 + out[10] = 1 + out[11] = 0 + out[12] = v[0] + out[13] = v[1] + out[14] = v[2] + out[15] = 1 + return out } -var FACE_TABLE = (function(){ - var table = new Array(3) - for(var d=0; d<3; ++d) { - var row = [] - for(var j=1; j<=2; ++j) { - for(var s=-1; s<=1; s+=2) { - var u = (j+d) % 3 - var y = [0,0,0] - y[u] = s - row.push(y) - } - } - table[d] = row - } - return table -})() +},{}],287:[function(_dereq_,module,exports){ +module.exports = fromXRotation +/** + * Creates a matrix from the given angle around the X axis + * This is equivalent to (but much faster than): + * + * mat4.identity(dest) + * mat4.rotateX(dest, dest, rad) + * + * @param {mat4} out mat4 receiving operation result + * @param {Number} rad the angle to rotate the matrix by + * @returns {mat4} out + */ +function fromXRotation(out, rad) { + var s = Math.sin(rad), + c = Math.cos(rad) -function emitFace(verts, x, c, d) { - var offsets = FACE_TABLE[d] - for(var i=0; i 0) { - var x = p.slice() - x[j] += e[1][j] - verts.push(p[0], p[1], p[2], - c[0], c[1], c[2], c[3], - 0, 0, 0, - x[0], x[1], x[2], - c[0], c[1], c[2], c[3], - 0, 0, 0) - updateBounds(this.bounds, x) - vertexCount += 2 + emitFace(verts, x, c, j) - } - } - this.lineCount[j] = vertexCount - this.lineOffset[j] + if (!det) { + return null; } - this.buffer.update(verts) - } -} + det = 1.0 / det; -proto.dispose = function() { - this.shader.dispose() - this.buffer.dispose() - this.vao.dispose() -} + out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det; + out[1] = (a02 * b10 - a01 * b11 - a03 * b09) * det; + out[2] = (a31 * b05 - a32 * b04 + a33 * b03) * det; + out[3] = (a22 * b04 - a21 * b05 - a23 * b03) * det; + out[4] = (a12 * b08 - a10 * b11 - a13 * b07) * det; + out[5] = (a00 * b11 - a02 * b08 + a03 * b07) * det; + out[6] = (a32 * b02 - a30 * b05 - a33 * b01) * det; + out[7] = (a20 * b05 - a22 * b02 + a23 * b01) * det; + out[8] = (a10 * b10 - a11 * b08 + a13 * b06) * det; + out[9] = (a01 * b08 - a00 * b10 - a03 * b06) * det; + out[10] = (a30 * b04 - a31 * b02 + a33 * b00) * det; + out[11] = (a21 * b02 - a20 * b04 - a23 * b00) * det; + out[12] = (a11 * b07 - a10 * b09 - a12 * b06) * det; + out[13] = (a00 * b09 - a01 * b07 + a02 * b06) * det; + out[14] = (a31 * b01 - a30 * b03 - a32 * b00) * det; + out[15] = (a20 * b03 - a21 * b01 + a22 * b00) * det; -function createErrorBars(options) { - var gl = options.gl - var buffer = createBuffer(gl) - var vao = createVAO(gl, [ - { - buffer: buffer, - type: gl.FLOAT, - size: 3, - offset: 0, - stride: 40 - }, - { - buffer: buffer, - type: gl.FLOAT, - size: 4, - offset: 12, - stride: 40 - }, - { - buffer: buffer, - type: gl.FLOAT, - size: 3, - offset: 28, - stride: 40 - } - ]) + return out; +}; +},{}],294:[function(_dereq_,module,exports){ +var identity = _dereq_('./identity'); - var shader = createShader(gl) - shader.attributes.position.location = 0 - shader.attributes.color.location = 1 - shader.attributes.offset.location = 2 +module.exports = lookAt; - var result = new ErrorBars(gl, buffer, vao, shader) - result.update(options) - return result -} +/** + * Generates a look-at matrix with the given eye position, focal point, and up axis + * + * @param {mat4} out mat4 frustum matrix will be written into + * @param {vec3} eye Position of the viewer + * @param {vec3} center Point the viewer is looking at + * @param {vec3} up vec3 pointing up + * @returns {mat4} out + */ +function lookAt(out, eye, center, up) { + var x0, x1, x2, y0, y1, y2, z0, z1, z2, len, + eyex = eye[0], + eyey = eye[1], + eyez = eye[2], + upx = up[0], + upy = up[1], + upz = up[2], + centerx = center[0], + centery = center[1], + centerz = center[2]; -},{"./shaders/index":268,"gl-buffer":259,"gl-vao":358}],267:[function(_dereq_,module,exports){ -arguments[4][257][0].apply(exports,arguments) -},{"dup":257}],268:[function(_dereq_,module,exports){ -'use strict' + if (Math.abs(eyex - centerx) < 0.000001 && + Math.abs(eyey - centery) < 0.000001 && + Math.abs(eyez - centerz) < 0.000001) { + return identity(out); + } -var glslify = _dereq_('glslify') -var createShader = _dereq_('gl-shader') + z0 = eyex - centerx; + z1 = eyey - centery; + z2 = eyez - centerz; -var vertSrc = glslify(["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}"]) -var fragSrc = glslify(["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}"]) + len = 1 / Math.sqrt(z0 * z0 + z1 * z1 + z2 * z2); + z0 *= len; + z1 *= len; + z2 *= len; -module.exports = function(gl) { - return createShader(gl, vertSrc, fragSrc, null, [ - {name: 'position', type: 'vec3'}, - {name: 'color', type: 'vec4'}, - {name: 'offset', type: 'vec3'} - ]) -} + x0 = upy * z2 - upz * z1; + x1 = upz * z0 - upx * z2; + x2 = upx * z1 - upy * z0; + len = Math.sqrt(x0 * x0 + x1 * x1 + x2 * x2); + if (!len) { + x0 = 0; + x1 = 0; + x2 = 0; + } else { + len = 1 / len; + x0 *= len; + x1 *= len; + x2 *= len; + } -},{"gl-shader":335,"glslify":267}],269:[function(_dereq_,module,exports){ -'use strict' + y0 = z1 * x2 - z2 * x1; + y1 = z2 * x0 - z0 * x2; + y2 = z0 * x1 - z1 * x0; -var createTexture = _dereq_('gl-texture2d') + len = Math.sqrt(y0 * y0 + y1 * y1 + y2 * y2); + if (!len) { + y0 = 0; + y1 = 0; + y2 = 0; + } else { + len = 1 / len; + y0 *= len; + y1 *= len; + y2 *= len; + } -module.exports = createFBO + out[0] = x0; + out[1] = y0; + out[2] = z0; + out[3] = 0; + out[4] = x1; + out[5] = y1; + out[6] = z1; + out[7] = 0; + out[8] = x2; + out[9] = y2; + out[10] = z2; + out[11] = 0; + out[12] = -(x0 * eyex + x1 * eyey + x2 * eyez); + out[13] = -(y0 * eyex + y1 * eyey + y2 * eyez); + out[14] = -(z0 * eyex + z1 * eyey + z2 * eyez); + out[15] = 1; -var colorAttachmentArrays = null -var FRAMEBUFFER_UNSUPPORTED -var FRAMEBUFFER_INCOMPLETE_ATTACHMENT -var FRAMEBUFFER_INCOMPLETE_DIMENSIONS -var FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT + return out; +}; +},{"./identity":291}],295:[function(_dereq_,module,exports){ +module.exports = multiply; -function saveFBOState(gl) { - var fbo = gl.getParameter(gl.FRAMEBUFFER_BINDING) - var rbo = gl.getParameter(gl.RENDERBUFFER_BINDING) - var tex = gl.getParameter(gl.TEXTURE_BINDING_2D) - return [fbo, rbo, tex] -} +/** + * Multiplies two mat4's + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the first operand + * @param {mat4} b the second operand + * @returns {mat4} out + */ +function multiply(out, a, b) { + var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3], + a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7], + a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11], + a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15]; -function restoreFBOState(gl, data) { - gl.bindFramebuffer(gl.FRAMEBUFFER, data[0]) - gl.bindRenderbuffer(gl.RENDERBUFFER, data[1]) - gl.bindTexture(gl.TEXTURE_2D, data[2]) -} + // Cache only the current line of the second matrix + var b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3]; + out[0] = b0*a00 + b1*a10 + b2*a20 + b3*a30; + out[1] = b0*a01 + b1*a11 + b2*a21 + b3*a31; + out[2] = b0*a02 + b1*a12 + b2*a22 + b3*a32; + out[3] = b0*a03 + b1*a13 + b2*a23 + b3*a33; -function lazyInitColorAttachments(gl, ext) { - var maxColorAttachments = gl.getParameter(ext.MAX_COLOR_ATTACHMENTS_WEBGL) - colorAttachmentArrays = new Array(maxColorAttachments + 1) - for(var i=0; i<=maxColorAttachments; ++i) { - var x = new Array(maxColorAttachments) - for(var j=0; j 1) { - ext.drawBuffersWEBGL(colorAttachmentArrays[numColors]) - } + s = Math.sin(rad); + c = Math.cos(rad); + t = 1 - c; - //Allocate depth/stencil buffers - var WEBGL_depth_texture = gl.getExtension('WEBGL_depth_texture') - if(WEBGL_depth_texture) { - if(useStencil) { - fbo.depth = initTexture(gl, width, height, - WEBGL_depth_texture.UNSIGNED_INT_24_8_WEBGL, - gl.DEPTH_STENCIL, - gl.DEPTH_STENCIL_ATTACHMENT) - } else if(useDepth) { - fbo.depth = initTexture(gl, width, height, - gl.UNSIGNED_SHORT, - gl.DEPTH_COMPONENT, - gl.DEPTH_ATTACHMENT) - } - } else { - if(useDepth && useStencil) { - fbo._depth_rb = initRenderBuffer(gl, width, height, gl.DEPTH_STENCIL, gl.DEPTH_STENCIL_ATTACHMENT) - } else if(useDepth) { - fbo._depth_rb = initRenderBuffer(gl, width, height, gl.DEPTH_COMPONENT16, gl.DEPTH_ATTACHMENT) - } else if(useStencil) { - fbo._depth_rb = initRenderBuffer(gl, width, height, gl.STENCIL_INDEX, gl.STENCIL_ATTACHMENT) - } - } + a00 = a[0]; a01 = a[1]; a02 = a[2]; a03 = a[3]; + a10 = a[4]; a11 = a[5]; a12 = a[6]; a13 = a[7]; + a20 = a[8]; a21 = a[9]; a22 = a[10]; a23 = a[11]; - //Check frame buffer state - var status = gl.checkFramebufferStatus(gl.FRAMEBUFFER) - if(status !== gl.FRAMEBUFFER_COMPLETE) { + // Construct the elements of the rotation matrix + b00 = x * x * t + c; b01 = y * x * t + z * s; b02 = z * x * t - y * s; + b10 = x * y * t - z * s; b11 = y * y * t + c; b12 = z * y * t + x * s; + b20 = x * z * t + y * s; b21 = y * z * t - x * s; b22 = z * z * t + c; - //Release all partially allocated resources - fbo._destroyed = true + // Perform rotation-specific matrix multiplication + out[0] = a00 * b00 + a10 * b01 + a20 * b02; + out[1] = a01 * b00 + a11 * b01 + a21 * b02; + out[2] = a02 * b00 + a12 * b01 + a22 * b02; + out[3] = a03 * b00 + a13 * b01 + a23 * b02; + out[4] = a00 * b10 + a10 * b11 + a20 * b12; + out[5] = a01 * b10 + a11 * b11 + a21 * b12; + out[6] = a02 * b10 + a12 * b11 + a22 * b12; + out[7] = a03 * b10 + a13 * b11 + a23 * b12; + out[8] = a00 * b20 + a10 * b21 + a20 * b22; + out[9] = a01 * b20 + a11 * b21 + a21 * b22; + out[10] = a02 * b20 + a12 * b21 + a22 * b22; + out[11] = a03 * b20 + a13 * b21 + a23 * b22; - //Release all resources - gl.bindFramebuffer(gl.FRAMEBUFFER, null) - gl.deleteFramebuffer(fbo.handle) - fbo.handle = null - if(fbo.depth) { - fbo.depth.dispose() - fbo.depth = null - } - if(fbo._depth_rb) { - gl.deleteRenderbuffer(fbo._depth_rb) - fbo._depth_rb = null - } - for(var i=0; i maxFBOSize || - h < 0 || h > maxFBOSize) { - throw new Error('gl-fbo: Can\'t resize FBO, invalid dimensions') - } +/** + * Translate a mat4 by the given vector + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the matrix to translate + * @param {vec3} v vector to translate by + * @returns {mat4} out + */ +function translate(out, a, v) { + var x = v[0], y = v[1], z = v[2], + a00, a01, a02, a03, + a10, a11, a12, a13, + a20, a21, a22, a23; - //Update shape - fbo._shape[0] = w - fbo._shape[1] = h + if (a === out) { + out[12] = a[0] * x + a[4] * y + a[8] * z + a[12]; + out[13] = a[1] * x + a[5] * y + a[9] * z + a[13]; + out[14] = a[2] * x + a[6] * y + a[10] * z + a[14]; + out[15] = a[3] * x + a[7] * y + a[11] * z + a[15]; + } else { + a00 = a[0]; a01 = a[1]; a02 = a[2]; a03 = a[3]; + a10 = a[4]; a11 = a[5]; a12 = a[6]; a13 = a[7]; + a20 = a[8]; a21 = a[9]; a22 = a[10]; a23 = a[11]; - //Save framebuffer state - var state = saveFBOState(gl) + out[0] = a00; out[1] = a01; out[2] = a02; out[3] = a03; + out[4] = a10; out[5] = a11; out[6] = a12; out[7] = a13; + out[8] = a20; out[9] = a21; out[10] = a22; out[11] = a23; - //Resize framebuffer attachments - for(var i=0; i maxFBOSize || height < 0 || height > maxFBOSize) { - throw new Error('gl-fbo: Parameters are too large for FBO') + var simplex2D = new Array(simplex.length) + for(var i=0; i 1) { - //Check if multiple render targets supported - if(!WEBGL_draw_buffers) { - throw new Error('gl-fbo: Multiple draw buffer extension not supported') - } else if(numColors > gl.getParameter(WEBGL_draw_buffers.MAX_COLOR_ATTACHMENTS_WEBGL)) { - throw new Error('gl-fbo: Context does not support ' + numColors + ' draw buffers') - } + if(d2 < closestDist) { + closestDist = d2 + closestIndex = i } } - //Determine whether to use floating point textures - var colorType = gl.UNSIGNED_BYTE - var OES_texture_float = gl.getExtension('OES_texture_float') - if(options.float && numColors > 0) { - if(!OES_texture_float) { - throw new Error('gl-fbo: Context does not support floating point textures') - } - colorType = gl.FLOAT - } else if(options.preferFloat && numColors > 0) { - if(OES_texture_float) { - colorType = gl.FLOAT + var weights = barycentricCoord(simplex2D, pixelCoord) + var s = 0.0 + for(var i=0; i<3; ++i) { + if(weights[i] < -0.001 || + weights[i] > 1.0001) { + return null } + s += weights[i] } - - //Check if we should use depth buffer - var useDepth = true - if('depth' in options) { - useDepth = !!options.depth + if(Math.abs(s - 1.0) > 0.001) { + return null } + return [closestIndex, interpolate(simplex, weights), weights] +} +},{"barycentric":81,"polytope-closest-point/lib/closest_point_2d.js":509}],308:[function(_dereq_,module,exports){ +var glslify = _dereq_('glslify') - //Check if we should use a stencil buffer - var useStencil = false - if('stencil' in options) { - useStencil = !!options.stencil - } +var triVertSrc = glslify(["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"]) +var triFragSrc = glslify(["#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"]) +var edgeVertSrc = glslify(["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}"]) +var edgeFragSrc = glslify(["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}"]) +var pointVertSrc = glslify(["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}"]) +var pointFragSrc = glslify(["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}"]) +var pickVertSrc = glslify(["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}"]) +var pickFragSrc = glslify(["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}"]) +var pickPointVertSrc = glslify(["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}"]) +var contourVertSrc = glslify(["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}"]) +var contourFragSrc = glslify(["precision highp float;\n#define GLSLIFY 1\n\nuniform vec3 contourColor;\n\nvoid main() {\n gl_FragColor = vec4(contourColor, 1.0);\n}\n"]) - return new Framebuffer( - gl, - width, - height, - colorType, - numColors, - useDepth, - useStencil, - WEBGL_draw_buffers) +exports.meshShader = { + vertex: triVertSrc, + fragment: triFragSrc, + attributes: [ + {name: 'position', type: 'vec3'}, + {name: 'normal', type: 'vec3'}, + {name: 'color', type: 'vec4'}, + {name: 'uv', type: 'vec2'} + ] +} +exports.wireShader = { + vertex: edgeVertSrc, + fragment: edgeFragSrc, + attributes: [ + {name: 'position', type: 'vec3'}, + {name: 'color', type: 'vec4'}, + {name: 'uv', type: 'vec2'} + ] +} +exports.pointShader = { + vertex: pointVertSrc, + fragment: pointFragSrc, + attributes: [ + {name: 'position', type: 'vec3'}, + {name: 'color', type: 'vec4'}, + {name: 'uv', type: 'vec2'}, + {name: 'pointSize', type: 'float'} + ] +} +exports.pickShader = { + vertex: pickVertSrc, + fragment: pickFragSrc, + attributes: [ + {name: 'position', type: 'vec3'}, + {name: 'id', type: 'vec4'} + ] +} +exports.pointPickShader = { + vertex: pickPointVertSrc, + fragment: pickFragSrc, + attributes: [ + {name: 'position', type: 'vec3'}, + {name: 'pointSize', type: 'float'}, + {name: 'id', type: 'vec4'} + ] +} +exports.contourShader = { + vertex: contourVertSrc, + fragment: contourFragSrc, + attributes: [ + {name: 'position', type: 'vec3'} + ] } -},{"gl-texture2d":353}],270:[function(_dereq_,module,exports){ - -var sprintf = _dereq_('sprintf-js').sprintf; -var glConstants = _dereq_('gl-constants/lookup'); -var shaderName = _dereq_('glsl-shader-name'); -var addLineNumbers = _dereq_('add-line-numbers'); +},{"glslify":310}],309:[function(_dereq_,module,exports){ +'use strict' -module.exports = formatCompilerError; +var DEFAULT_VERTEX_NORMALS_EPSILON = 1e-6; // may be too large if triangles are very small +var DEFAULT_FACE_NORMALS_EPSILON = 1e-6; -function formatCompilerError(errLog, src, type) { - "use strict"; +var createShader = _dereq_('gl-shader') +var createBuffer = _dereq_('gl-buffer') +var createVAO = _dereq_('gl-vao') +var createTexture = _dereq_('gl-texture2d') +var normals = _dereq_('normals') +var multiply = _dereq_('gl-mat4/multiply') +var invert = _dereq_('gl-mat4/invert') +var ndarray = _dereq_('ndarray') +var colormap = _dereq_('colormap') +var getContour = _dereq_('simplicial-complex-contour') +var pool = _dereq_('typedarray-pool') +var shaders = _dereq_('./lib/shaders') +var closestPoint = _dereq_('./lib/closest-point') - var name = shaderName(src) || 'of unknown name (see npm glsl-shader-name)'; +var meshShader = shaders.meshShader +var wireShader = shaders.wireShader +var pointShader = shaders.pointShader +var pickShader = shaders.pickShader +var pointPickShader = shaders.pointPickShader +var contourShader = shaders.contourShader - var typeName = 'unknown type'; - if (type !== undefined) { - typeName = type === glConstants.FRAGMENT_SHADER ? 'fragment' : 'vertex' - } +var IDENTITY = [ + 1,0,0,0, + 0,1,0,0, + 0,0,1,0, + 0,0,0,1] - var longForm = sprintf('Error compiling %s shader %s:\n', typeName, name); - var shortForm = sprintf("%s%s", longForm, errLog); - var errorStrings = errLog.split('\n'); - var errors = {}; +function SimplicialMesh(gl + , texture + , triShader + , lineShader + , pointShader + , pickShader + , pointPickShader + , contourShader + , trianglePositions + , triangleIds + , triangleColors + , triangleUVs + , triangleNormals + , triangleVAO + , edgePositions + , edgeIds + , edgeColors + , edgeUVs + , edgeVAO + , pointPositions + , pointIds + , pointColors + , pointUVs + , pointSizes + , pointVAO + , contourPositions + , contourVAO) { - for (var i = 0; i < errorStrings.length; i++) { - var errorString = errorStrings[i]; - if (errorString === '' || errorString === "\0") continue; - var lineNo = parseInt(errorString.split(':')[2]); - if (isNaN(lineNo)) { - throw new Error(sprintf('Could not parse error: %s', errorString)); - } - errors[lineNo] = errorString; - } + this.gl = gl + this.pixelRatio = 1 + this.cells = [] + this.positions = [] + this.intensity = [] + this.texture = texture + this.dirty = true - var lines = addLineNumbers(src).split('\n'); + this.triShader = triShader + this.lineShader = lineShader + this.pointShader = pointShader + this.pickShader = pickShader + this.pointPickShader = pointPickShader + this.contourShader = contourShader - for (var i = 0; i < lines.length; i++) { - if (!errors[i+3] && !errors[i+2] && !errors[i+1]) continue; - var line = lines[i]; - longForm += line + '\n'; - if (errors[i+1]) { - var e = errors[i+1]; - e = e.substr(e.split(':', 3).join(':').length + 1).trim(); - longForm += sprintf('^^^ %s\n\n', e); - } - } + this.trianglePositions = trianglePositions + this.triangleColors = triangleColors + this.triangleNormals = triangleNormals + this.triangleUVs = triangleUVs + this.triangleIds = triangleIds + this.triangleVAO = triangleVAO + this.triangleCount = 0 - return { - long: longForm.trim(), - short: shortForm.trim() - }; -} + this.lineWidth = 1 + this.edgePositions = edgePositions + this.edgeColors = edgeColors + this.edgeUVs = edgeUVs + this.edgeIds = edgeIds + this.edgeVAO = edgeVAO + this.edgeCount = 0 + this.pointPositions = pointPositions + this.pointColors = pointColors + this.pointUVs = pointUVs + this.pointSizes = pointSizes + this.pointIds = pointIds + this.pointVAO = pointVAO + this.pointCount = 0 -},{"add-line-numbers":66,"gl-constants/lookup":265,"glsl-shader-name":431,"sprintf-js":567}],271:[function(_dereq_,module,exports){ -'use strict' + this.contourLineWidth = 1 + this.contourPositions = contourPositions + this.contourVAO = contourVAO + this.contourCount = 0 + this.contourColor = [0,0,0] + this.contourEnable = true -module.exports = createHeatmap2D + this.pickVertex = true; + this.pickId = 1 + this.bounds = [ + [ Infinity, Infinity, Infinity], + [-Infinity,-Infinity,-Infinity] ] + this.clipBounds = [ + [-Infinity,-Infinity,-Infinity], + [ Infinity, Infinity, Infinity] ] -var bsearch = _dereq_('binary-search-bounds') -var iota = _dereq_('iota-array') -var pool = _dereq_('typedarray-pool') -var createShader = _dereq_('gl-shader') -var createBuffer = _dereq_('gl-buffer') + this.lightPosition = [1e5, 1e5, 0] + this.ambientLight = 0.8 + this.diffuseLight = 0.8 + this.specularLight = 2.0 + this.roughness = 0.5 + this.fresnel = 1.5 -var shaders = _dereq_('./lib/shaders') + this.opacity = 1.0 + this.hasAlpha = false + this.opacityscale = false -function GLHeatmap2D ( - plot, - shader, - pickShader, - positionBuffer, - weightBuffer, - colorBuffer, - idBuffer) { - this.plot = plot - this.shader = shader - this.pickShader = pickShader - this.positionBuffer = positionBuffer - this.weightBuffer = weightBuffer - this.colorBuffer = colorBuffer - this.idBuffer = idBuffer - this.xData = [] - this.yData = [] - this.shape = [0, 0] - this.bounds = [Infinity, Infinity, -Infinity, -Infinity] - this.pickOffset = 0 + this._model = IDENTITY + this._view = IDENTITY + this._projection = IDENTITY + this._resolution = [1,1] } -var proto = GLHeatmap2D.prototype - -var WEIGHTS = [ - 0, 0, - 1, 0, - 0, 1, - 1, 0, - 1, 1, - 0, 1 -] - -proto.draw = (function () { - var MATRIX = [ - 1, 0, 0, - 0, 1, 0, - 0, 0, 1 - ] - - return function () { - var plot = this.plot - var shader = this.shader - var bounds = this.bounds - var numVertices = this.numVertices - - if (numVertices <= 0) { - return - } +var proto = SimplicialMesh.prototype - var gl = plot.gl - var dataBox = plot.dataBox +proto.isOpaque = function() { + return !this.hasAlpha +} - var boundX = bounds[2] - bounds[0] - var boundY = bounds[3] - bounds[1] - var dataX = dataBox[2] - dataBox[0] - var dataY = dataBox[3] - dataBox[1] +proto.isTransparent = function() { + return this.hasAlpha +} - MATRIX[0] = 2.0 * boundX / dataX - MATRIX[4] = 2.0 * boundY / dataY - MATRIX[6] = 2.0 * (bounds[0] - dataBox[0]) / dataX - 1.0 - MATRIX[7] = 2.0 * (bounds[1] - dataBox[1]) / dataY - 1.0 +proto.pickSlots = 1 - shader.bind() +proto.setPickBase = function(id) { + this.pickId = id +} - var uniforms = shader.uniforms - uniforms.viewTransform = MATRIX +function getOpacityFromScale(ratio, opacityscale) { - uniforms.shape = this.shape + if(!opacityscale) return 1 + if(!opacityscale.length) return 1 - var attributes = shader.attributes - this.positionBuffer.bind() - attributes.position.pointer() + for(var i = 0; i < opacityscale.length; ++i) { + if(opacityscale.length < 2) return 1 + if(opacityscale[i][0] === ratio) return opacityscale[i][1] + if(opacityscale[i][0] > ratio && i > 0) { + var d = (opacityscale[i][0] - ratio) / (opacityscale[i][0] - opacityscale[i - 1][0]) + return opacityscale[i][1] * (1 - d) + d * opacityscale[i - 1][1] + } + } - this.weightBuffer.bind() - attributes.weight.pointer(gl.UNSIGNED_BYTE, false) + return 1 +} - this.colorBuffer.bind() - attributes.color.pointer(gl.UNSIGNED_BYTE, true) +function genColormap(param, opacityscale) { + var colors = colormap({ + colormap: param + , nshades: 256 + , format: 'rgba' + }) - gl.drawArrays(gl.TRIANGLES, 0, numVertices) + var result = new Uint8Array(256*4) + for(var i=0; i<256; ++i) { + var c = colors[i] + for(var j=0; j<3; ++j) { + result[4*i+j] = c[j] + } + if(!opacityscale) { + result[4*i+3] = 255 * c[3] + } else { + result[4*i+3] = 255 * getOpacityFromScale(i / 255.0, opacityscale) + } } -})() - -proto.drawPick = (function () { - var MATRIX = [ - 1, 0, 0, - 0, 1, 0, - 0, 0, 1 - ] - var PICK_VECTOR = [0, 0, 0, 0] + return ndarray(result, [256,256,4], [4,0,1]) +} - return function (pickOffset) { - var plot = this.plot - var shader = this.pickShader - var bounds = this.bounds - var numVertices = this.numVertices +function takeZComponent(array) { + var n = array.length + var result = new Array(n) + for(var i=0; i> (i * 8)) & 0xff + this.hasAlpha = false // default to no transparent draw + if('opacity' in params) { + this.opacity = params.opacity + if(this.opacity < 1) { + this.hasAlpha = true; } + } + if('opacityscale' in params) { + this.opacityscale = params.opacityscale + this.hasAlpha = true; + } - this.pickOffset = pickOffset + if('ambient' in params) { + this.ambientLight = params.ambient + } + if('diffuse' in params) { + this.diffuseLight = params.diffuse + } + if('specular' in params) { + this.specularLight = params.specular + } + if('roughness' in params) { + this.roughness = params.roughness + } + if('fresnel' in params) { + this.fresnel = params.fresnel + } - shader.bind() + if(params.texture) { + this.texture.dispose() + this.texture = createTexture(gl, params.texture) + } else if (params.colormap) { + this.texture.shape = [256,256] + this.texture.minFilter = gl.LINEAR_MIPMAP_LINEAR + this.texture.magFilter = gl.LINEAR + this.texture.setPixels(genColormap(params.colormap, this.opacityscale)) + this.texture.generateMipmap() + } - var uniforms = shader.uniforms - uniforms.viewTransform = MATRIX - uniforms.pickOffset = PICK_VECTOR - uniforms.shape = this.shape + var cells = params.cells + var positions = params.positions - var attributes = shader.attributes - this.positionBuffer.bind() - attributes.position.pointer() + if(!positions || !cells) { + return + } - this.weightBuffer.bind() - attributes.weight.pointer(gl.UNSIGNED_BYTE, false) + var tPos = [] + var tCol = [] + var tNor = [] + var tUVs = [] + var tIds = [] - this.idBuffer.bind() - attributes.pickId.pointer(gl.UNSIGNED_BYTE, false) + var ePos = [] + var eCol = [] + var eUVs = [] + var eIds = [] - gl.drawArrays(gl.TRIANGLES, 0, numVertices) + var pPos = [] + var pCol = [] + var pUVs = [] + var pSiz = [] + var pIds = [] - return pickOffset + this.shape[0] * this.shape[1] - } -})() + //Save geometry data for picking calculations + this.cells = cells + this.positions = positions -proto.pick = function (x, y, value) { - var pickOffset = this.pickOffset - var pointCount = this.shape[0] * this.shape[1] - if (value < pickOffset || value >= pickOffset + pointCount) { - return null + //Compute normals + var vertexNormals = params.vertexNormals + var cellNormals = params.cellNormals + var vertexNormalsEpsilon = params.vertexNormalsEpsilon === void(0) ? DEFAULT_VERTEX_NORMALS_EPSILON : params.vertexNormalsEpsilon + var faceNormalsEpsilon = params.faceNormalsEpsilon === void(0) ? DEFAULT_FACE_NORMALS_EPSILON : params.faceNormalsEpsilon + if(params.useFacetNormals && !cellNormals) { + cellNormals = normals.faceNormals(cells, positions, faceNormalsEpsilon) } - var pointId = value - pickOffset - var xData = this.xData - var yData = this.yData - return { - object: this, - pointId: pointId, - dataCoord: [ - xData[pointId % this.shape[0]], - yData[(pointId / this.shape[0]) | 0]] + if(!cellNormals && !vertexNormals) { + vertexNormals = normals.vertexNormals(cells, positions, vertexNormalsEpsilon) } -} - -proto.update = function (options) { - options = options || {} - - var shape = options.shape || [0, 0] - var x = options.x || iota(shape[0]) - var y = options.y || iota(shape[1]) - var z = options.z || new Float32Array(shape[0] * shape[1]) - - var isSmooth = options.zsmooth !== false + //Compute colors + var vertexColors = params.vertexColors + var cellColors = params.cellColors + var meshColor = params.meshColor || [1,1,1,1] - this.xData = x - this.yData = y + //UVs + var vertexUVs = params.vertexUVs + var vertexIntensity = params.vertexIntensity + var cellUVs = params.cellUVs + var cellIntensity = params.cellIntensity - var colorLevels = options.colorLevels || [0] - var colorValues = options.colorValues || [0, 0, 0, 1] - var colorCount = colorLevels.length + var intensityLo = Infinity + var intensityHi = -Infinity + if(!vertexUVs && !cellUVs) { + if(vertexIntensity) { + if(params.vertexIntensityBounds) { + intensityLo = +params.vertexIntensityBounds[0] + intensityHi = +params.vertexIntensityBounds[1] + } else { + for(var i=0; i>> 1) + var v = cell[0] + var p = positions[v] - this.numVertices = numVerts + //Check NaNs + for(var j=0; j<3; ++j) { + if(isNaN(p[j]) || !isFinite(p[j])) { + continue fill_loop + } + } - var colors = pool.mallocUint8(numVerts * 4) - var positions = pool.mallocFloat32(numVerts * 2) - var weights = pool.mallocUint8 (numVerts * 2) - var ids = pool.mallocUint32(numVerts) + pPos.push(p[0], p[1], p[2]) - var ptr = 0 + var c + if(vertexColors) { + c = vertexColors[v] + } else if(cellColors) { + c = cellColors[i] + } else { + c = meshColor + } + if(this.opacityscale && vertexIntensity) { + tCol.push(c[0], c[1], c[2], + this.opacity * getOpacityFromScale( + (vertexIntensity[v] - intensityLo) / (intensityHi - intensityLo), + this.opacityscale + ) + ) + } else if(c.length === 3) { + pCol.push(c[0], c[1], c[2], this.opacity) + } else { + pCol.push(c[0], c[1], c[2], c[3] * this.opacity) + if(c[3] < 1) this.hasAlpha = true + } - var ni = isSmooth ? numX - 1 : numX - var nj = isSmooth ? numY - 1 : numY + var uv + if(vertexUVs) { + uv = vertexUVs[v] + } else if(vertexIntensity) { + uv = [ + (vertexIntensity[v] - intensityLo) / + (intensityHi - intensityLo), 0] + } else if(cellUVs) { + uv = cellUVs[i] + } else if(cellIntensity) { + uv = [ + (cellIntensity[i] - intensityLo) / + (intensityHi - intensityLo), 0] + } else { + uv = [ + (p[2] - intensityLo) / + (intensityHi - intensityLo), 0] + } + pUVs.push(uv[0], uv[1]) - for (var j = 0; j < nj; ++j) { - var yc0, yc1 + if(pointSizes) { + pSiz.push(pointSizes[v]) + } else { + pSiz.push(meshPointSize) + } - if (isSmooth) { - yc0 = ys * (y[j] - loy) - yc1 = ys * (y[j + 1] - loy) - } else { - yc0 = j < numY - 1 ? ys * (y[j] - (y[j + 1] - y[j])/2 - loy) : ys * (y[j] - (y[j] - y[j - 1])/2 - loy) - yc1 = j < numY - 1 ? ys * (y[j] + (y[j + 1] - y[j])/2 - loy) : ys * (y[j] + (y[j] - y[j - 1])/2 - loy) - } + pIds.push(i) - for (var i = 0; i < ni; ++i) { - var xc0, xc1 + pointCount += 1 + break - if (isSmooth) { - xc0 = xs * (x[i] - lox) - xc1 = xs * (x[i + 1] - lox) - } else { - xc0 = i < numX - 1 ? xs * (x[i] - (x[i + 1] - x[i])/2 - lox) : xs * (x[i] - (x[i] - x[i - 1])/2 - lox) - xc1 = i < numX - 1 ? xs * (x[i] + (x[i + 1] - x[i])/2 - lox) : xs * (x[i] + (x[i] - x[i - 1])/2 - lox) - } + case 2: - for (var dd = 0; dd < WEIGHTS.length; dd += 2) { - var dx = WEIGHTS[dd] - var dy = WEIGHTS[dd + 1] - var offset = isSmooth ? (j + dy) * numX + (i + dx) : j * numX + i - var zc = z[offset] - var colorIdx = bsearch.le(colorLevels, zc) - var r, g, b, a - if (colorIdx < 0) { - r = colorValues[0] - g = colorValues[1] - b = colorValues[2] - a = colorValues[3] - } else if (colorIdx === colorCount - 1) { - r = colorValues[4 * colorCount - 4] - g = colorValues[4 * colorCount - 3] - b = colorValues[4 * colorCount - 2] - a = colorValues[4 * colorCount - 1] - } else { - var t = (zc - colorLevels[colorIdx]) / - (colorLevels[colorIdx + 1] - colorLevels[colorIdx]) - var ti = 1.0 - t - var i0 = 4 * colorIdx - var i1 = 4 * (colorIdx + 1) - r = ti * colorValues[i0] + t * colorValues[i1] - g = ti * colorValues[i0 + 1] + t * colorValues[i1 + 1] - b = ti * colorValues[i0 + 2] + t * colorValues[i1 + 2] - a = ti * colorValues[i0 + 3] + t * colorValues[i1 + 3] + //Check NaNs + for(var j=0; j<2; ++j) { + var v = cell[j] + var p = positions[v] + for(var k=0; k<3; ++k) { + if(isNaN(p[k]) || !isFinite(p[k])) { + continue fill_loop + } + } } - colors[4 * ptr] = 255 * r - colors[4 * ptr + 1] = 255 * g - colors[4 * ptr + 2] = 255 * b - colors[4 * ptr + 3] = 255 * a + for(var j=0; j<2; ++j) { + var v = cell[j] + var p = positions[v] - positions[2*ptr] = xc0*.5 + xc1*.5; - positions[2*ptr+1] = yc0*.5 + yc1*.5; + ePos.push(p[0], p[1], p[2]) - weights[2*ptr] = dx; - weights[2*ptr+1] = dy; + var c + if(vertexColors) { + c = vertexColors[v] + } else if(cellColors) { + c = cellColors[i] + } else { + c = meshColor + } + if(this.opacityscale && vertexIntensity) { + tCol.push(c[0], c[1], c[2], + this.opacity * getOpacityFromScale( + (vertexIntensity[v] - intensityLo) / (intensityHi - intensityLo), + this.opacityscale + ) + ) + } else if(c.length === 3) { + eCol.push(c[0], c[1], c[2], this.opacity) + } else { + eCol.push(c[0], c[1], c[2], c[3] * this.opacity) + if(c[3] < 1) this.hasAlpha = true + } - ids[ptr] = j * numX + i + var uv + if(vertexUVs) { + uv = vertexUVs[v] + } else if(vertexIntensity) { + uv = [ + (vertexIntensity[v] - intensityLo) / + (intensityHi - intensityLo), 0] + } else if(cellUVs) { + uv = cellUVs[i] + } else if(cellIntensity) { + uv = [ + (cellIntensity[i] - intensityLo) / + (intensityHi - intensityLo), 0] + } else { + uv = [ + (p[2] - intensityLo) / + (intensityHi - intensityLo), 0] + } + eUVs.push(uv[0], uv[1]) - ptr += 1 - } - } - } + eIds.push(i) + } + edgeCount += 1 + break - this.positionBuffer.update(positions) - this.weightBuffer.update(weights) - this.colorBuffer.update(colors) - this.idBuffer.update(ids) + case 3: + //Check NaNs + for(var j=0; j<3; ++j) { + var v = cell[j] + var p = positions[v] + for(var k=0; k<3; ++k) { + if(isNaN(p[k]) || !isFinite(p[k])) { + continue fill_loop + } + } + } - pool.free(positions) - pool.free(colors) - pool.free(weights) - pool.free(ids) -} + for(var j=0; j<3; ++j) { + var v = cell[2 - j] -proto.dispose = function () { - this.shader.dispose() - this.pickShader.dispose() - this.positionBuffer.dispose() - this.weightBuffer.dispose() - this.colorBuffer.dispose() - this.idBuffer.dispose() - this.plot.removeObject(this) -} + var p = positions[v] + tPos.push(p[0], p[1], p[2]) -function createHeatmap2D (plot, options) { - var gl = plot.gl + var c + if(vertexColors) { + c = vertexColors[v] + } else if(cellColors) { + c = cellColors[i] + } else { + c = meshColor + } - var shader = createShader(gl, shaders.vertex, shaders.fragment) - var pickShader = createShader(gl, shaders.pickVertex, shaders.pickFragment) + if(!c) { + tCol.push(0.5,0.5,0.5,1) + } else if(this.opacityscale && vertexIntensity) { + tCol.push(c[0], c[1], c[2], + this.opacity * getOpacityFromScale( + (vertexIntensity[v] - intensityLo) / (intensityHi - intensityLo), + this.opacityscale + ) + ) + } else if(c.length === 3) { + tCol.push(c[0], c[1], c[2], this.opacity) + } else { + tCol.push(c[0], c[1], c[2], c[3] * this.opacity) + if(c[3] < 1) this.hasAlpha = true + } - var positionBuffer = createBuffer(gl) - var weightBuffer = createBuffer(gl) - var colorBuffer = createBuffer(gl) - var idBuffer = createBuffer(gl) + var uv + if(vertexUVs) { + uv = vertexUVs[v] + } else if(vertexIntensity) { + uv = [ + (vertexIntensity[v] - intensityLo) / + (intensityHi - intensityLo), 0] + } else if(cellUVs) { + uv = cellUVs[i] + } else if(cellIntensity) { + uv = [ + (cellIntensity[i] - intensityLo) / + (intensityHi - intensityLo), 0] + } else { + uv = [ + (p[2] - intensityLo) / + (intensityHi - intensityLo), 0] + } + tUVs.push(uv[0], uv[1]) - var heatmap = new GLHeatmap2D( - plot, - shader, - pickShader, - positionBuffer, - weightBuffer, - colorBuffer, - idBuffer) + var q + if(vertexNormals) { + q = vertexNormals[v] + } else { + q = cellNormals[i] + } + tNor.push(q[0], q[1], q[2]) - heatmap.update(options) - plot.addObject(heatmap) + tIds.push(i) + } + triangleCount += 1 + break - return heatmap -} + default: + break + } + } -},{"./lib/shaders":272,"binary-search-bounds":96,"gl-buffer":259,"gl-shader":335,"iota-array":463,"typedarray-pool":595}],272:[function(_dereq_,module,exports){ -'use strict' + this.pointCount = pointCount + this.edgeCount = edgeCount + this.triangleCount = triangleCount -var glslify = _dereq_('glslify') + this.pointPositions.update(pPos) + this.pointColors.update(pCol) + this.pointUVs.update(pUVs) + this.pointSizes.update(pSiz) + this.pointIds.update(new Uint32Array(pIds)) -module.exports = { - fragment: glslify(["precision lowp float;\n#define GLSLIFY 1\nvarying vec4 fragColor;\nvoid main() {\n gl_FragColor = vec4(fragColor.rgb * fragColor.a, fragColor.a);\n}\n"]), - vertex: glslify(["precision mediump float;\n#define GLSLIFY 1\n\nattribute vec2 position;\nattribute vec4 color;\nattribute vec2 weight;\n\nuniform vec2 shape;\nuniform mat3 viewTransform;\n\nvarying vec4 fragColor;\n\nvoid main() {\n vec3 vPosition = viewTransform * vec3( position + (weight-.5)/(shape-1.) , 1.0);\n fragColor = color;\n gl_Position = vec4(vPosition.xy, 0, vPosition.z);\n}\n"]), - pickFragment: glslify(["precision mediump float;\n#define GLSLIFY 1\n\nvarying vec4 fragId;\nvarying vec2 vWeight;\n\nuniform vec2 shape;\nuniform vec4 pickOffset;\n\nvoid main() {\n vec2 d = step(.5, vWeight);\n vec4 id = fragId + pickOffset;\n id.x += d.x + d.y*shape.x;\n\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 gl_FragColor = id/255.;\n}\n"]), - pickVertex: glslify(["precision mediump float;\n#define GLSLIFY 1\n\nattribute vec2 position;\nattribute vec4 pickId;\nattribute vec2 weight;\n\nuniform vec2 shape;\nuniform mat3 viewTransform;\n\nvarying vec4 fragId;\nvarying vec2 vWeight;\n\nvoid main() {\n vWeight = weight;\n\n fragId = pickId;\n\n vec3 vPosition = viewTransform * vec3( position + (weight-.5)/(shape-1.) , 1.0);\n gl_Position = vec4(vPosition.xy, 0, vPosition.z);\n}\n"]) + this.edgePositions.update(ePos) + this.edgeColors.update(eCol) + this.edgeUVs.update(eUVs) + this.edgeIds.update(new Uint32Array(eIds)) + + this.trianglePositions.update(tPos) + this.triangleColors.update(tCol) + this.triangleUVs.update(tUVs) + this.triangleNormals.update(tNor) + this.triangleIds.update(new Uint32Array(tIds)) } -},{"glslify":273}],273:[function(_dereq_,module,exports){ -arguments[4][257][0].apply(exports,arguments) -},{"dup":257}],274:[function(_dereq_,module,exports){ -var glslify = _dereq_('glslify') -var createShader = _dereq_('gl-shader') +proto.drawTransparent = proto.draw = function(params) { + params = params || {} + var gl = this.gl + var model = params.model || IDENTITY + var view = params.view || IDENTITY + var projection = params.projection || IDENTITY -var vertSrc = glslify(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position, nextPosition;\nattribute float arcLength, lineWidth;\nattribute vec4 color;\n\nuniform vec2 screenShape;\nuniform float pixelRatio;\nuniform mat4 model, view, projection;\n\nvarying vec4 fragColor;\nvarying vec3 worldPosition;\nvarying float pixelArcLength;\n\nvec4 project(vec3 p) {\n return projection * view * model * vec4(p, 1.0);\n}\n\nvoid main() {\n vec4 startPoint = project(position);\n vec4 endPoint = project(nextPosition);\n\n vec2 A = startPoint.xy / startPoint.w;\n vec2 B = endPoint.xy / endPoint.w;\n\n float clipAngle = atan(\n (B.y - A.y) * screenShape.y,\n (B.x - A.x) * screenShape.x\n );\n\n vec2 offset = 0.5 * pixelRatio * lineWidth * vec2(\n sin(clipAngle),\n -cos(clipAngle)\n ) / screenShape;\n\n gl_Position = vec4(startPoint.xy + startPoint.w * offset, startPoint.zw);\n\n worldPosition = position;\n pixelArcLength = arcLength;\n fragColor = color;\n}\n"]) -var forwardFrag = glslify(["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 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"]) -var pickFrag = glslify(["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}"]) + var clipBounds = [[-1e6,-1e6,-1e6],[1e6,1e6,1e6]] + for(var i=0; i<3; ++i) { + clipBounds[0][i] = Math.max(clipBounds[0][i], this.clipBounds[0][i]) + clipBounds[1][i] = Math.min(clipBounds[1][i], this.clipBounds[1][i]) + } -var ATTRIBUTES = [ - {name: 'position', type: 'vec3'}, - {name: 'nextPosition', type: 'vec3'}, - {name: 'arcLength', type: 'float'}, - {name: 'lineWidth', type: 'float'}, - {name: 'color', type: 'vec4'} -] + var uniforms = { + model: model, + view: view, + projection: projection, + inverseModel: IDENTITY.slice(), -exports.createShader = function(gl) { - return createShader(gl, vertSrc, forwardFrag, null, ATTRIBUTES) -} + clipBounds: clipBounds, -exports.createPickShader = function(gl) { - return createShader(gl, vertSrc, pickFrag, null, ATTRIBUTES) -} + kambient: this.ambientLight, + kdiffuse: this.diffuseLight, + kspecular: this.specularLight, + roughness: this.roughness, + fresnel: this.fresnel, -},{"gl-shader":335,"glslify":276}],275:[function(_dereq_,module,exports){ -'use strict' + eyePosition: [0,0,0], + lightPosition: [0,0,0], -module.exports = createLinePlot + contourColor: this.contourColor, -var createBuffer = _dereq_('gl-buffer') -var createVAO = _dereq_('gl-vao') -var createTexture = _dereq_('gl-texture2d') + texture: 0 + } -var UINT8_VIEW = new Uint8Array(4) -var FLOAT_VIEW = new Float32Array(UINT8_VIEW.buffer) -// https://github.com/mikolalysenko/glsl-read-float/blob/master/index.js -function unpackFloat(x, y, z, w) { - UINT8_VIEW[0] = w - UINT8_VIEW[1] = z - UINT8_VIEW[2] = y - UINT8_VIEW[3] = x - return FLOAT_VIEW[0] -} + uniforms.inverseModel = invert(uniforms.inverseModel, uniforms.model) -var bsearch = _dereq_('binary-search-bounds') -var ndarray = _dereq_('ndarray') -var shaders = _dereq_('./lib/shaders') + gl.disable(gl.CULL_FACE) -var createShader = shaders.createShader -var createPickShader = shaders.createPickShader + this.texture.bind(0) -var identity = [1, 0, 0, 0, - 0, 1, 0, 0, - 0, 0, 1, 0, - 0, 0, 0, 1] + var invCameraMatrix = new Array(16) + multiply(invCameraMatrix, uniforms.view, uniforms.model) + multiply(invCameraMatrix, uniforms.projection, invCameraMatrix) + invert(invCameraMatrix, invCameraMatrix) -function distance (a, b) { - var s = 0.0 - for (var i = 0; i < 3; ++i) { - var d = a[i] - b[i] - s += d * d + for(var i=0; i<3; ++i) { + uniforms.eyePosition[i] = invCameraMatrix[12+i] / invCameraMatrix[15] } - return Math.sqrt(s) -} -function filterClipBounds (bounds) { - var result = [[-1e6, -1e6, -1e6], [1e6, 1e6, 1e6]] - for (var i = 0; i < 3; ++i) { - result[0][i] = Math.max(bounds[0][i], result[0][i]) - result[1][i] = Math.min(bounds[1][i], result[1][i]) + var w = invCameraMatrix[15] + for(var i=0; i<3; ++i) { + w += this.lightPosition[i] * invCameraMatrix[4*i+3] + } + for(var i=0; i<3; ++i) { + var s = invCameraMatrix[12+i] + for(var j=0; j<3; ++j) { + s += invCameraMatrix[4*j+i] * this.lightPosition[j] + } + uniforms.lightPosition[i] = s / w } - return result -} - -function PickResult (tau, position, index, dataCoordinate) { - this.arcLength = tau - this.position = position - this.index = index - this.dataCoordinate = dataCoordinate -} - -function LinePlot (gl, shader, pickShader, buffer, vao, texture) { - this.gl = gl - this.shader = shader - this.pickShader = pickShader - this.buffer = buffer - this.vao = vao - this.clipBounds = [ - [ -Infinity, -Infinity, -Infinity ], - [ Infinity, Infinity, Infinity ]] - this.points = [] - this.arcLength = [] - this.vertexCount = 0 - this.bounds = [[0, 0, 0], [0, 0, 0]] - this.pickId = 0 - this.lineWidth = 1 - this.texture = texture - this.dashScale = 1 - this.opacity = 1 - this.hasAlpha = false - this.dirty = true - this.pixelRatio = 1 -} -var proto = LinePlot.prototype + if(this.triangleCount > 0) { + var shader = this.triShader + shader.bind() + shader.uniforms = uniforms -proto.isTransparent = function () { - return this.hasAlpha -} + this.triangleVAO.bind() + gl.drawArrays(gl.TRIANGLES, 0, this.triangleCount*3) + this.triangleVAO.unbind() + } -proto.isOpaque = function () { - return !this.hasAlpha -} + if(this.edgeCount > 0 && this.lineWidth > 0) { + var shader = this.lineShader + shader.bind() + shader.uniforms = uniforms -proto.pickSlots = 1 + this.edgeVAO.bind() + gl.lineWidth(this.lineWidth * this.pixelRatio) + gl.drawArrays(gl.LINES, 0, this.edgeCount*2) + this.edgeVAO.unbind() + } -proto.setPickBase = function (id) { - this.pickId = id -} + if(this.pointCount > 0) { + var shader = this.pointShader + shader.bind() + shader.uniforms = uniforms -proto.drawTransparent = proto.draw = function (camera) { - if (!this.vertexCount) return - var gl = this.gl - var shader = this.shader - var vao = this.vao - shader.bind() - shader.uniforms = { - model: camera.model || identity, - view: camera.view || identity, - projection: camera.projection || identity, - clipBounds: filterClipBounds(this.clipBounds), - dashTexture: this.texture.bind(), - dashScale: this.dashScale / this.arcLength[this.arcLength.length - 1], - opacity: this.opacity, - screenShape: [gl.drawingBufferWidth, gl.drawingBufferHeight], - pixelRatio: this.pixelRatio + this.pointVAO.bind() + gl.drawArrays(gl.POINTS, 0, this.pointCount) + this.pointVAO.unbind() } - vao.bind() - vao.draw(gl.TRIANGLE_STRIP, this.vertexCount) - vao.unbind() -} -proto.drawPick = function (camera) { - if (!this.vertexCount) return - var gl = this.gl - var shader = this.pickShader - var vao = this.vao - shader.bind() - shader.uniforms = { - model: camera.model || identity, - view: camera.view || identity, - projection: camera.projection || identity, - pickId: this.pickId, - clipBounds: filterClipBounds(this.clipBounds), - screenShape: [gl.drawingBufferWidth, gl.drawingBufferHeight], - pixelRatio: this.pixelRatio + if(this.contourEnable && this.contourCount > 0 && this.contourLineWidth > 0) { + var shader = this.contourShader + shader.bind() + shader.uniforms = uniforms + + this.contourVAO.bind() + gl.drawArrays(gl.LINES, 0, this.contourCount) + this.contourVAO.unbind() } - vao.bind() - vao.draw(gl.TRIANGLE_STRIP, this.vertexCount) - vao.unbind() } -proto.update = function (options) { - var i, j - - this.dirty = true +proto.drawPick = function(params) { + params = params || {} - var connectGaps = !!options.connectGaps + var gl = this.gl - if ('dashScale' in options) { - this.dashScale = options.dashScale - } + var model = params.model || IDENTITY + var view = params.view || IDENTITY + var projection = params.projection || IDENTITY - this.hasAlpha = false // default to no transparent draw - if ('opacity' in options) { - this.opacity = +options.opacity - if(this.opacity < 1) { - this.hasAlpha = true; - } + var clipBounds = [[-1e6,-1e6,-1e6],[1e6,1e6,1e6]] + for(var i=0; i<3; ++i) { + clipBounds[0][i] = Math.max(clipBounds[0][i], this.clipBounds[0][i]) + clipBounds[1][i] = Math.min(clipBounds[1][i], this.clipBounds[1][i]) } - // Recalculate buffer data - var buffer = [] - var arcLengthArray = [] - var pointArray = [] - var arcLength = 0.0 - var vertexCount = 0 - var bounds = [ - [ Infinity, Infinity, Infinity ], - [ -Infinity, -Infinity, -Infinity ]] + //Save camera parameters + this._model = [].slice.call(model) + this._view = [].slice.call(view) + this._projection = [].slice.call(projection) + this._resolution = [gl.drawingBufferWidth, gl.drawingBufferHeight] - var positions = options.position || options.positions - if (positions) { + var uniforms = { + model: model, + view: view, + projection: projection, + clipBounds: clipBounds, + pickId: this.pickId / 255.0, + } - // Default color - var colors = options.color || options.colors || [0, 0, 0, 1] + var shader = this.pickShader + shader.bind() + shader.uniforms = uniforms - var lineWidth = options.lineWidth || 1 + if(this.triangleCount > 0) { + this.triangleVAO.bind() + gl.drawArrays(gl.TRIANGLES, 0, this.triangleCount*3) + this.triangleVAO.unbind() + } - var hadGap = false + if(this.edgeCount > 0) { + this.edgeVAO.bind() + gl.lineWidth(this.lineWidth * this.pixelRatio) + gl.drawArrays(gl.LINES, 0, this.edgeCount*2) + this.edgeVAO.unbind() + } - fill_loop: - for (i = 1; i < positions.length; ++i) { - var a = positions[i - 1] - var b = positions[i] + if(this.pointCount > 0) { + var shader = this.pointPickShader + shader.bind() + shader.uniforms = uniforms - arcLengthArray.push(arcLength) - pointArray.push(a.slice()) + this.pointVAO.bind() + gl.drawArrays(gl.POINTS, 0, this.pointCount) + this.pointVAO.unbind() + } +} - for (j = 0; j < 3; ++j) { - if (isNaN(a[j]) || isNaN(b[j]) || - !isFinite(a[j]) || !isFinite(b[j])) { - if (!connectGaps && buffer.length > 0) { - for (var k = 0; k < 24; ++k) { - buffer.push(buffer[buffer.length - 12]) - } - vertexCount += 2 - hadGap = true - } +proto.pick = function(pickData) { + if(!pickData) { + return null + } + if(pickData.id !== this.pickId) { + return null + } - continue fill_loop - } - bounds[0][j] = Math.min(bounds[0][j], a[j], b[j]) - bounds[1][j] = Math.max(bounds[1][j], a[j], b[j]) - } + var cellId = pickData.value[0] + 256*pickData.value[1] + 65536*pickData.value[2] + var cell = this.cells[cellId] + var positions = this.positions - var acolor, bcolor - if (Array.isArray(colors[0])) { - acolor = (colors.length > i - 1) ? colors[i - 1] : // using index value - (colors.length > 0) ? colors[colors.length - 1] : // using last item - [0, 0, 0, 1]; // using black + var simplex = new Array(cell.length) + for(var i=0; i i) ? colors[i] : // using index value - (colors.length > 0) ? colors[colors.length - 1] : // using last item - [0, 0, 0, 1]; // using black - } else { - acolor = bcolor = colors - } + var x = pickData.coord[0]; + var y = pickData.coord[1]; - if (acolor.length === 3) { - acolor = [acolor[0], acolor[1], acolor[2], 1] - } - if (bcolor.length === 3) { - bcolor = [bcolor[0], bcolor[1], bcolor[2], 1] - } + if(!this.pickVertex) { + var A = this.positions[cell[0]]; + var B = this.positions[cell[1]]; + var C = this.positions[cell[2]]; - if(!this.hasAlpha && acolor[3] < 1) this.hasAlpha = true + var dataCoordinate = [ + (A[0] + B[0] + C[0]) / 3, + (A[1] + B[1] + C[1]) / 3, + (A[2] + B[2] + C[2]) / 3 + ] - var w0 - if (Array.isArray(lineWidth)) { - w0 = (lineWidth.length > i - 1) ? lineWidth[i - 1] : // using index value - (lineWidth.length > 0) ? lineWidth[lineWidth.length - 1] : // using last item - [0, 0, 0, 1]; // using black - } else { - w0 = lineWidth - } + return { + _cellCenter : true, + position: [x, y], + index: cellId, + cell: cell, + cellId: cellId, + intensity: this.intensity[cellId], + dataCoordinate: dataCoordinate + } + } - var t0 = arcLength - arcLength += distance(a, b) + var data = closestPoint( + simplex, + [x * this.pixelRatio, this._resolution[1] - y * this.pixelRatio], + this._model, + this._view, + this._projection, + this._resolution) - if (hadGap) { - for (j = 0; j < 2; ++j) { - buffer.push( - a[0], a[1], a[2], b[0], b[1], b[2], t0, w0, acolor[0], acolor[1], acolor[2], acolor[3]) - } - vertexCount += 2 - hadGap = false - } + if(!data) { + return null + } - buffer.push( - a[0], a[1], a[2], b[0], b[1], b[2], t0, w0, acolor[0], acolor[1], acolor[2], acolor[3], - a[0], a[1], a[2], b[0], b[1], b[2], t0, -w0, acolor[0], acolor[1], acolor[2], acolor[3], - b[0], b[1], b[2], a[0], a[1], a[2], arcLength, -w0, bcolor[0], bcolor[1], bcolor[2], bcolor[3], - b[0], b[1], b[2], a[0], a[1], a[2], arcLength, w0, bcolor[0], bcolor[1], bcolor[2], bcolor[3]) + var weights = data[2] + var interpIntensity = 0.0 + for(var i=0; i tickOffset[start]) { + shader.uniforms.dataAxis = DATA_AXIS + shader.uniforms.screenOffset = SCREEN_OFFSET + shader.uniforms.color = textColor[axis] + shader.uniforms.angle = textAngle[axis] + gl.drawArrays( + gl.TRIANGLES, + tickOffset[start], + tickOffset[end] - tickOffset[start]) + } + } + if(labelEnable[axis] && labelCount) { + SCREEN_OFFSET[axis^1] -= screenScale * pixelRatio * labelPad[axis] + shader.uniforms.dataAxis = ZERO_2 + shader.uniforms.screenOffset = SCREEN_OFFSET + shader.uniforms.color = labelColor[axis] + shader.uniforms.angle = labelAngle[axis] + gl.drawArrays( + gl.TRIANGLES, + labelOffset, + labelCount) } - return out; -}; -},{}],306:[function(_dereq_,module,exports){ -module.exports = transpose; + SCREEN_OFFSET[axis^1] = screenScale * viewBox[2+(axis^1)] - 1.0 + if(tickEnable[axis+2]) { + SCREEN_OFFSET[axis^1] += screenScale * pixelRatio * tickPad[axis+2] + if(start < end && tickOffset[end] > tickOffset[start]) { + shader.uniforms.dataAxis = DATA_AXIS + shader.uniforms.screenOffset = SCREEN_OFFSET + shader.uniforms.color = textColor[axis+2] + shader.uniforms.angle = textAngle[axis+2] + gl.drawArrays( + gl.TRIANGLES, + tickOffset[start], + tickOffset[end] - tickOffset[start]) + } + } + if(labelEnable[axis+2] && labelCount) { + SCREEN_OFFSET[axis^1] += screenScale * pixelRatio * labelPad[axis+2] + shader.uniforms.dataAxis = ZERO_2 + shader.uniforms.screenOffset = SCREEN_OFFSET + shader.uniforms.color = labelColor[axis+2] + shader.uniforms.angle = labelAngle[axis+2] + gl.drawArrays( + gl.TRIANGLES, + labelOffset, + labelCount) + } -/** - * Transpose the values of a mat4 - * - * @param {mat4} out the receiving matrix - * @param {mat4} a the source matrix - * @returns {mat4} out - */ -function transpose(out, a) { - // If we are transposing ourselves we can skip a few steps but have to cache some values - if (out === a) { - var a01 = a[1], a02 = a[2], a03 = a[3], - a12 = a[6], a13 = a[7], - a23 = a[11]; + } +})() - out[1] = a[4]; - out[2] = a[8]; - out[3] = a[12]; - out[4] = a01; - out[6] = a[9]; - out[7] = a[13]; - out[8] = a02; - out[9] = a12; - out[11] = a[14]; - out[12] = a03; - out[13] = a13; - out[14] = a23; - } else { - out[0] = a[0]; - out[1] = a[4]; - out[2] = a[8]; - out[3] = a[12]; - out[4] = a[1]; - out[5] = a[5]; - out[6] = a[9]; - out[7] = a[13]; - out[8] = a[2]; - out[9] = a[6]; - out[10] = a[10]; - out[11] = a[14]; - out[12] = a[3]; - out[13] = a[7]; - out[14] = a[11]; - out[15] = a[15]; - } - - return out; -}; -},{}],307:[function(_dereq_,module,exports){ -'use strict' +proto.drawTitle = (function() { + var DATA_AXIS = [0,0] + var SCREEN_OFFSET = [0,0] -var barycentric = _dereq_('barycentric') -var closestPointToTriangle = _dereq_('polytope-closest-point/lib/closest_point_2d.js') + return function() { + var plot = this.plot + var shader = this.shader + var gl = plot.gl + var screenBox = plot.screenBox + var titleCenter = plot.titleCenter + var titleAngle = plot.titleAngle + var titleColor = plot.titleColor + var pixelRatio = plot.pixelRatio -module.exports = closestPointToPickLocation + if(!this.titleCount) { + return + } -function xformMatrix(m, v) { - var out = [0,0,0,0] - for(var i=0; i<4; ++i) { - for(var j=0; j<4; ++j) { - out[j] += m[4*i + j] * v[i] + for(var i=0; i<2; ++i) { + SCREEN_OFFSET[i] = 2.0 * (titleCenter[i]*pixelRatio - screenBox[i]) / + (screenBox[2+i] - screenBox[i]) - 1 } - } - return out -} -function projectVertex(v, model, view, projection, resolution) { - var p = xformMatrix(projection, - xformMatrix(view, - xformMatrix(model, [v[0], v[1], v[2], 1]))) - for(var i=0; i<3; ++i) { - p[i] /= p[3] + shader.bind() + shader.uniforms.dataAxis = DATA_AXIS + shader.uniforms.screenOffset = SCREEN_OFFSET + shader.uniforms.angle = titleAngle + shader.uniforms.color = titleColor + + gl.drawArrays(gl.TRIANGLES, this.titleOffset, this.titleCount) } - return [ 0.5 * resolution[0] * (1.0+p[0]), 0.5 * resolution[1] * (1.0-p[1]) ] -} +})() -function barycentricCoord(simplex, point) { - if(simplex.length === 2) { - var d0 = 0.0 - var d1 = 0.0 +proto.bind = (function() { + var DATA_SHIFT = [0,0] + var DATA_SCALE = [0,0] + var TEXT_SCALE = [0,0] + + return function() { + var plot = this.plot + var shader = this.shader + var bounds = plot._tickBounds + var dataBox = plot.dataBox + var screenBox = plot.screenBox + var viewBox = plot.viewBox + + shader.bind() + + //Set up coordinate scaling uniforms for(var i=0; i<2; ++i) { - d0 += Math.pow(point[i] - simplex[0][i], 2) - d1 += Math.pow(point[i] - simplex[1][i], 2) - } - d0 = Math.sqrt(d0) - d1 = Math.sqrt(d1) - if(d0+d1 < 1e-6) { - return [1,0] - } - return [d1/(d0+d1),d0/(d1+d0)] - } else if(simplex.length === 3) { - var closestPoint = [0,0] - closestPointToTriangle(simplex[0], simplex[1], simplex[2], point, closestPoint) - return barycentric(simplex, closestPoint) - } - return [] -} -function interpolate(simplex, weights) { - var result = [0,0,0] - for(var i=0; i 1.0001) { - return null +proto.update = function(options) { + var vertices = [] + var axesTicks = options.ticks + var bounds = options.bounds + var i, j, k, data, scale, dimension + + for(dimension=0; dimension<2; ++dimension) { + var offsets = [Math.floor(vertices.length/3)], tickX = [-Infinity] + + //Copy vertices over to buffer + var ticks = axesTicks[dimension] + for(i=0; i 0.001) { - return null + + this.tickOffset[dimension] = offsets + this.tickX[dimension] = tickX } - return [closestIndex, interpolate(simplex, weights), weights] -} -},{"barycentric":78,"polytope-closest-point/lib/closest_point_2d.js":525}],308:[function(_dereq_,module,exports){ -var glslify = _dereq_('glslify') -var triVertSrc = glslify(["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"]) -var triFragSrc = glslify(["#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"]) -var edgeVertSrc = glslify(["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}"]) -var edgeFragSrc = glslify(["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}"]) -var pointVertSrc = glslify(["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}"]) -var pointFragSrc = glslify(["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}"]) -var pickVertSrc = glslify(["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}"]) -var pickFragSrc = glslify(["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}"]) -var pickPointVertSrc = glslify(["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}"]) -var contourVertSrc = glslify(["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}"]) -var contourFragSrc = glslify(["precision highp float;\n#define GLSLIFY 1\n\nuniform vec3 contourColor;\n\nvoid main() {\n gl_FragColor = vec4(contourColor, 1.0);\n}\n"]) + //Add labels + for(dimension=0; dimension<2; ++dimension) { + this.labelOffset[dimension] = Math.floor(vertices.length/3) -exports.meshShader = { - vertex: triVertSrc, - fragment: triFragSrc, - attributes: [ - {name: 'position', type: 'vec3'}, - {name: 'normal', type: 'vec3'}, - {name: 'color', type: 'vec4'}, - {name: 'uv', type: 'vec2'} - ] -} -exports.wireShader = { - vertex: edgeVertSrc, - fragment: edgeFragSrc, - attributes: [ - {name: 'position', type: 'vec3'}, - {name: 'color', type: 'vec4'}, - {name: 'uv', type: 'vec2'} - ] -} -exports.pointShader = { - vertex: pointVertSrc, - fragment: pointFragSrc, - attributes: [ - {name: 'position', type: 'vec3'}, - {name: 'color', type: 'vec4'}, - {name: 'uv', type: 'vec2'}, - {name: 'pointSize', type: 'float'} - ] -} -exports.pickShader = { - vertex: pickVertSrc, - fragment: pickFragSrc, - attributes: [ - {name: 'position', type: 'vec3'}, - {name: 'id', type: 'vec4'} - ] + data = getText(options.labelFont[dimension], options.labels[dimension], { textAlign: 'center' }).data + scale = options.labelSize[dimension] + for(i=0; i ratio && i > 0) { - var d = (opacityscale[i][0] - ratio) / (opacityscale[i][0] - opacityscale[i - 1][0]) - return opacityscale[i][1] * (1 - d) + d * opacityscale[i - 1][1] + if(this.pickDirty) { + if(this._pickTimeout) { + clearTimeout(this._pickTimeout) } + this.pickDirty = false + this._pickTimeout = setTimeout(this._drawPick, this.pickDelay) } - return 1 -} + if(!this.dirty) { + return + } + this.dirty = false -function genColormap(param, opacityscale) { - var colors = colormap({ - colormap: param - , nshades: 256 - , format: 'rgba' - }) + gl.bindFramebuffer(gl.FRAMEBUFFER, null) - var result = new Uint8Array(256*4) - for(var i=0; i<256; ++i) { - var c = colors[i] - for(var j=0; j<3; ++j) { - result[4*i+j] = c[j] - } - if(!opacityscale) { - result[4*i+3] = 255 * c[3] - } else { - result[4*i+3] = 255 * getOpacityFromScale(i / 255.0, opacityscale) - } - } + //Turn on scissor + gl.enable(gl.SCISSOR_TEST) - return ndarray(result, [256,256,4], [4,0,1]) -} + //Turn off depth buffer + gl.disable(gl.DEPTH_TEST) + gl.depthFunc(gl.LESS) + gl.depthMask(false) -function takeZComponent(array) { - var n = array.length - var result = new Array(n) - for(var i=0; i= 0)) { + continue } - var a = vertexIds[v][0] - var b = vertexIds[v][1] - var w = vertexWeights[v] - var wi = 1.0 - w - var pa = this.positions[a] - var pb = this.positions[b] - for(var k=0; k<3; ++k) { - result[ptr++] = w * pa[k] + wi * pb[k] + + var zeroIntercept = screenBox[i] - + dataBox[i] * (screenBox[i+2] - screenBox[i]) / (dataBox[i+2] - dataBox[i]) + + if(i === 0) { + line.drawLine( + zeroIntercept, screenBox[1], zeroIntercept, screenBox[3], + zeroLineWidth[i], + zeroLineColor[i]) + } else { + line.drawLine( + screenBox[0], zeroIntercept, screenBox[2], zeroIntercept, + zeroLineWidth[i], + zeroLineColor[i]) } } } - this.contourCount = (ptr / 3)|0 - this.contourPositions.update(result.subarray(0, ptr)) - pool.free(result) -} -proto.update = function(params) { - params = params || {} - var gl = this.gl + //Draw traces + for(var i=0; i=0; --i) { + this.objects[i].dispose() } + this.objects.length = 0 + for(var i=this.overlays.length-1; i>=0; --i) { + this.overlays[i].dispose() + } + this.overlays.length = 0 - uniforms.inverseModel = invert(uniforms.inverseModel, uniforms.model) - - gl.disable(gl.CULL_FACE) - - this.texture.bind(0) + this.gl = null +} - var invCameraMatrix = new Array(16) - multiply(invCameraMatrix, uniforms.view, uniforms.model) - multiply(invCameraMatrix, uniforms.projection, invCameraMatrix) - invert(invCameraMatrix, invCameraMatrix) +proto.addObject = function(object) { + if(this.objects.indexOf(object) < 0) { + this.objects.push(object) + this.setDirty() + } +} - for(var i=0; i<3; ++i) { - uniforms.eyePosition[i] = invCameraMatrix[12+i] / invCameraMatrix[15] +proto.removeObject = function(object) { + var objects = this.objects + for(var i=0; i 0) { - var shader = this.triShader - shader.bind() - shader.uniforms = uniforms +function createGLPlot2D(options) { + var gl = options.gl + var pickBuffer = createPick(gl, [ + gl.drawingBufferWidth, gl.drawingBufferHeight]) + var plot = new GLPlot2D(gl, pickBuffer) + plot.grid = createGrid(plot) + plot.text = createText(plot) + plot.line = createLine(plot) + plot.box = createBox(plot) + plot.update(options) + return plot +} - this.triangleVAO.bind() - gl.drawArrays(gl.TRIANGLES, 0, this.triangleCount*3) - this.triangleVAO.unbind() - } +},{"./lib/box":311,"./lib/grid":312,"./lib/line":313,"./lib/text":315,"gl-select-static":333}],318:[function(_dereq_,module,exports){ +'use strict' - if(this.edgeCount > 0 && this.lineWidth > 0) { - var shader = this.lineShader - shader.bind() - shader.uniforms = uniforms +module.exports = createCamera - this.edgeVAO.bind() - gl.lineWidth(this.lineWidth * this.pixelRatio) - gl.drawArrays(gl.LINES, 0, this.edgeCount*2) - this.edgeVAO.unbind() - } +var now = _dereq_('right-now') +var createView = _dereq_('3d-view') +var mouseChange = _dereq_('mouse-change') +var mouseWheel = _dereq_('mouse-wheel') +var mouseOffset = _dereq_('mouse-event-offset') +var hasPassive = _dereq_('has-passive-events') - if(this.pointCount > 0) { - var shader = this.pointShader - shader.bind() - shader.uniforms = uniforms +function createCamera(element, options) { + element = element || document.body + options = options || {} - this.pointVAO.bind() - gl.drawArrays(gl.POINTS, 0, this.pointCount) - this.pointVAO.unbind() + var limits = [ 0.01, Infinity ] + if('distanceLimits' in options) { + limits[0] = options.distanceLimits[0] + limits[1] = options.distanceLimits[1] + } + if('zoomMin' in options) { + limits[0] = options.zoomMin + } + if('zoomMax' in options) { + limits[1] = options.zoomMax } - if(this.contourEnable && this.contourCount > 0 && this.contourLineWidth > 0) { - var shader = this.contourShader - shader.bind() - shader.uniforms = uniforms + var view = createView({ + center: options.center || [0,0,0], + up: options.up || [0,1,0], + eye: options.eye || [0,0,10], + mode: options.mode || 'orbit', + distanceLimits: limits + }) - this.contourVAO.bind() - gl.drawArrays(gl.LINES, 0, this.contourCount) - this.contourVAO.unbind() + var pmatrix = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + var distance = 0.0 + var width = element.clientWidth + var height = element.clientHeight + + var camera = { + keyBindingMode: 'rotate', + enableWheel: true, + view: view, + element: element, + delay: options.delay || 16, + rotateSpeed: options.rotateSpeed || 1, + zoomSpeed: options.zoomSpeed || 1, + translateSpeed: options.translateSpeed || 1, + flipX: !!options.flipX, + flipY: !!options.flipY, + modes: view.modes, + _ortho: options._ortho || (options.projection && options.projection.type === 'orthographic') || false, + tick: function() { + var t = now() + var delay = this.delay + var ctime = t - 2 * delay + view.idle(t-delay) + view.recalcMatrix(ctime) + view.flush(t-(100+delay*2)) + var allEqual = true + var matrix = view.computedMatrix + for(var i=0; i<16; ++i) { + allEqual = allEqual && (pmatrix[i] === matrix[i]) + pmatrix[i] = matrix[i] + } + var sizeChanged = + element.clientWidth === width && + element.clientHeight === height + width = element.clientWidth + height = element.clientHeight + if(allEqual) { + return !sizeChanged + } + distance = Math.exp(view.computedRadius[0]) + return true + }, + lookAt: function(eye, center, up) { + view.lookAt(view.lastT(), eye, center, up) + }, + rotate: function(pitch, yaw, roll) { + view.rotate(view.lastT(), pitch, yaw, roll) + }, + pan: function(dx, dy, dz) { + view.pan(view.lastT(), dx, dy, dz) + }, + translate: function(dx, dy, dz) { + view.translate(view.lastT(), dx, dy, dz) + } } -} -proto.drawPick = function(params) { - params = params || {} + Object.defineProperties(camera, { + matrix: { + get: function() { + return view.computedMatrix + }, + set: function(mat) { + view.setMatrix(view.lastT(), mat) + return view.computedMatrix + }, + enumerable: true + }, + mode: { + get: function() { + return view.getMode() + }, + set: function(mode) { + var curUp = view.computedUp.slice() + var curEye = view.computedEye.slice() + var curCenter = view.computedCenter.slice() + view.setMode(mode) + if(mode === 'turntable') { + // Hacky time warping stuff to generate smooth animation + var t0 = now() + view._active.lookAt(t0, curEye, curCenter, curUp) + view._active.lookAt(t0 + 500, curEye, curCenter, [0, 0, 1]) + view._active.flush(t0) + } + return view.getMode() + }, + enumerable: true + }, + center: { + get: function() { + return view.computedCenter + }, + set: function(ncenter) { + view.lookAt(view.lastT(), null, ncenter) + return view.computedCenter + }, + enumerable: true + }, + eye: { + get: function() { + return view.computedEye + }, + set: function(neye) { + view.lookAt(view.lastT(), neye) + return view.computedEye + }, + enumerable: true + }, + up: { + get: function() { + return view.computedUp + }, + set: function(nup) { + view.lookAt(view.lastT(), null, null, nup) + return view.computedUp + }, + enumerable: true + }, + distance: { + get: function() { + return distance + }, + set: function(d) { + view.setDistance(view.lastT(), d) + return d + }, + enumerable: true + }, + distanceLimits: { + get: function() { + return view.getDistanceLimits(limits) + }, + set: function(v) { + view.setDistanceLimits(v) + return v + }, + enumerable: true + } + }) - var gl = this.gl + element.addEventListener('contextmenu', function(ev) { + ev.preventDefault() + return false + }) - var model = params.model || IDENTITY - var view = params.view || IDENTITY - var projection = params.projection || IDENTITY + camera._lastX = -1 + camera._lastY = -1 + camera._lastMods = {shift: false, control: false, alt: false, meta: false} - var clipBounds = [[-1e6,-1e6,-1e6],[1e6,1e6,1e6]] - for(var i=0; i<3; ++i) { - clipBounds[0][i] = Math.max(clipBounds[0][i], this.clipBounds[0][i]) - clipBounds[1][i] = Math.min(clipBounds[1][i], this.clipBounds[1][i]) - } + camera.enableMouseListeners = function() { - //Save camera parameters - this._model = [].slice.call(model) - this._view = [].slice.call(view) - this._projection = [].slice.call(projection) - this._resolution = [gl.drawingBufferWidth, gl.drawingBufferHeight] + camera.mouseListener = mouseChange(element, handleInteraction) - var uniforms = { - model: model, - view: view, - projection: projection, - clipBounds: clipBounds, - pickId: this.pickId / 255.0, - } + //enable simple touch interactions + element.addEventListener('touchstart', function (ev) { + var xy = mouseOffset(ev.changedTouches[0], element) + handleInteraction(0, xy[0], xy[1], camera._lastMods) + handleInteraction(1, xy[0], xy[1], camera._lastMods) + }, hasPassive ? {passive: true} : false) - var shader = this.pickShader - shader.bind() - shader.uniforms = uniforms + element.addEventListener('touchmove', function (ev) { + var xy = mouseOffset(ev.changedTouches[0], element) + handleInteraction(1, xy[0], xy[1], camera._lastMods) + ev.preventDefault() + }, hasPassive ? {passive: false} : false) - if(this.triangleCount > 0) { - this.triangleVAO.bind() - gl.drawArrays(gl.TRIANGLES, 0, this.triangleCount*3) - this.triangleVAO.unbind() - } + element.addEventListener('touchend', function (ev) { + handleInteraction(0, camera._lastX, camera._lastY, camera._lastMods) + }, hasPassive ? {passive: true} : false) - if(this.edgeCount > 0) { - this.edgeVAO.bind() - gl.lineWidth(this.lineWidth * this.pixelRatio) - gl.drawArrays(gl.LINES, 0, this.edgeCount*2) - this.edgeVAO.unbind() - } + function handleInteraction (buttons, x, y, mods) { + var keyBindingMode = camera.keyBindingMode - if(this.pointCount > 0) { - var shader = this.pointPickShader - shader.bind() - shader.uniforms = uniforms + if(keyBindingMode === false) return - this.pointVAO.bind() - gl.drawArrays(gl.POINTS, 0, this.pointCount) - this.pointVAO.unbind() - } -} + var rotate = keyBindingMode === 'rotate' + var pan = keyBindingMode === 'pan' + var zoom = keyBindingMode === 'zoom' + var ctrl = !!mods.control + var alt = !!mods.alt + var shift = !!mods.shift + var left = !!(buttons & 1) + var right = !!(buttons & 2) + var middle = !!(buttons & 4) -proto.pick = function(pickData) { - if(!pickData) { - return null - } - if(pickData.id !== this.pickId) { - return null - } + var scale = 1.0 / element.clientHeight + var dx = scale * (x - camera._lastX) + var dy = scale * (y - camera._lastY) - var cellId = pickData.value[0] + 256*pickData.value[1] + 65536*pickData.value[2] - var cell = this.cells[cellId] - var positions = this.positions + var flipX = camera.flipX ? 1 : -1 + var flipY = camera.flipY ? 1 : -1 - var simplex = new Array(cell.length) - for(var i=0; i Math.abs(dy)) { + view.rotate(t, 0, 0, -dx * flipX * Math.PI * camera.rotateSpeed / window.innerWidth) + } else { + if(!camera._ortho) { + var kzoom = -camera.zoomSpeed * flipY * dy / window.innerHeight * (t - view.lastT()) / 20.0 + view.pan(t, 0, 0, distance * (Math.exp(kzoom) - 1)) + } + } + }, true) } -} - -proto.dispose = function() { - this.texture.dispose() - - this.triShader.dispose() - this.lineShader.dispose() - this.pointShader.dispose() - this.pickShader.dispose() - this.pointPickShader.dispose() + camera.enableMouseListeners() - this.triangleVAO.dispose() - this.trianglePositions.dispose() - this.triangleColors.dispose() - this.triangleUVs.dispose() - this.triangleNormals.dispose() - this.triangleIds.dispose() + return camera +} - this.edgeVAO.dispose() - this.edgePositions.dispose() - this.edgeColors.dispose() - this.edgeUVs.dispose() - this.edgeIds.dispose() +},{"3d-view":55,"has-passive-events":440,"mouse-change":467,"mouse-event-offset":468,"mouse-wheel":470,"right-now":536}],319:[function(_dereq_,module,exports){ +var glslify = _dereq_('glslify') +var createShader = _dereq_('gl-shader') - this.pointVAO.dispose() - this.pointPositions.dispose() - this.pointColors.dispose() - this.pointUVs.dispose() - this.pointSizes.dispose() - this.pointIds.dispose() +var vertSrc = glslify(["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}"]) +var fragSrc = glslify(["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}"]) - this.contourVAO.dispose() - this.contourPositions.dispose() - this.contourShader.dispose() +module.exports = function(gl) { + return createShader(gl, vertSrc, fragSrc, null, [ { name: 'position', type: 'vec2'}]) } -function createMeshShader(gl) { - var shader = createShader(gl, meshShader.vertex, meshShader.fragment) - shader.attributes.position.location = 0 - shader.attributes.color.location = 2 - shader.attributes.uv.location = 3 - shader.attributes.normal.location = 4 - return shader -} +},{"gl-shader":334,"glslify":320}],320:[function(_dereq_,module,exports){ +arguments[4][257][0].apply(exports,arguments) +},{"dup":257}],321:[function(_dereq_,module,exports){ +'use strict' -function createWireShader(gl) { - var shader = createShader(gl, wireShader.vertex, wireShader.fragment) - shader.attributes.position.location = 0 - shader.attributes.color.location = 2 - shader.attributes.uv.location = 3 - return shader -} +var createCamera = _dereq_('./camera.js') +var createAxes = _dereq_('gl-axes3d') +var axesRanges = _dereq_('gl-axes3d/properties') +var createSpikes = _dereq_('gl-spikes3d') +var createSelect = _dereq_('gl-select-static') +var createFBO = _dereq_('gl-fbo') +var drawTriangle = _dereq_('a-big-triangle') +var mouseChange = _dereq_('mouse-change') +var perspective = _dereq_('gl-mat4/perspective') +var ortho = _dereq_('gl-mat4/ortho') +var createShader = _dereq_('./lib/shader') +var isMobile = _dereq_('is-mobile')({ tablet: true, featureDetect: true }) -function createPointShader(gl) { - var shader = createShader(gl, pointShader.vertex, pointShader.fragment) - shader.attributes.position.location = 0 - shader.attributes.color.location = 2 - shader.attributes.uv.location = 3 - shader.attributes.pointSize.location = 4 - return shader +module.exports = { + createScene: createScene, + createCamera: createCamera } -function createPickShader(gl) { - var shader = createShader(gl, pickShader.vertex, pickShader.fragment) - shader.attributes.position.location = 0 - shader.attributes.id.location = 1 - return shader +function MouseSelect() { + this.mouse = [-1,-1] + this.screen = null + this.distance = Infinity + this.index = null + this.dataCoordinate = null + this.dataPosition = null + this.object = null + this.data = null } -function createPointPickShader(gl) { - var shader = createShader(gl, pointPickShader.vertex, pointPickShader.fragment) - shader.attributes.position.location = 0 - shader.attributes.id.location = 1 - shader.attributes.pointSize.location = 4 - return shader +function getContext(canvas, options) { + var gl = null + try { + gl = canvas.getContext('webgl', options) + if(!gl) { + gl = canvas.getContext('experimental-webgl', options) + } + } catch(e) { + return null + } + return gl } -function createContourShader(gl) { - var shader = createShader(gl, contourShader.vertex, contourShader.fragment) - shader.attributes.position.location = 0 - return shader +function roundUpPow10(x) { + var y = Math.round(Math.log(Math.abs(x)) / Math.log(10)) + if(y < 0) { + var base = Math.round(Math.pow(10, -y)) + return Math.ceil(x*base) / base + } else if(y > 0) { + var base = Math.round(Math.pow(10, y)) + return Math.ceil(x/base) * base + } + return Math.ceil(x) } -function createSimplicialMesh(gl, params) { - if (arguments.length === 1) { - params = gl; - gl = params.gl; +function defaultBool(x) { + if(typeof x === 'boolean') { + return x } + return true +} - //enable derivatives for face normals - var ext = gl.getExtension('OES_standard_derivatives') || gl.getExtension('MOZ_OES_standard_derivatives') || gl.getExtension('WEBKIT_OES_standard_derivatives') - if (!ext) - throw new Error('derivatives not supported') - - var triShader = createMeshShader(gl) - var lineShader = createWireShader(gl) - var pointShader = createPointShader(gl) - var pickShader = createPickShader(gl) - var pointPickShader = createPointPickShader(gl) - var contourShader = createContourShader(gl) - - var meshTexture = createTexture(gl, - ndarray(new Uint8Array([255,255,255,255]), [1,1,4])) - meshTexture.generateMipmap() - meshTexture.minFilter = gl.LINEAR_MIPMAP_LINEAR - meshTexture.magFilter = gl.LINEAR - - var trianglePositions = createBuffer(gl) - var triangleColors = createBuffer(gl) - var triangleUVs = createBuffer(gl) - var triangleNormals = createBuffer(gl) - var triangleIds = createBuffer(gl) - var triangleVAO = createVAO(gl, [ - { buffer: trianglePositions, - type: gl.FLOAT, - size: 3 - }, - { buffer: triangleIds, - type: gl.UNSIGNED_BYTE, - size: 4, - normalized: true - }, - { buffer: triangleColors, - type: gl.FLOAT, - size: 4 - }, - { buffer: triangleUVs, - type: gl.FLOAT, - size: 2 - }, - { buffer: triangleNormals, - type: gl.FLOAT, - size: 3 - } - ]) +function createScene(options) { + options = options || {} + options.camera = options.camera || {} - var edgePositions = createBuffer(gl) - var edgeColors = createBuffer(gl) - var edgeUVs = createBuffer(gl) - var edgeIds = createBuffer(gl) - var edgeVAO = createVAO(gl, [ - { buffer: edgePositions, - type: gl.FLOAT, - size: 3 - }, - { buffer: edgeIds, - type: gl.UNSIGNED_BYTE, - size: 4, - normalized: true - }, - { buffer: edgeColors, - type: gl.FLOAT, - size: 4 - }, - { buffer: edgeUVs, - type: gl.FLOAT, - size: 2 + var canvas = options.canvas + if(!canvas) { + canvas = document.createElement('canvas') + if(options.container) { + var container = options.container + container.appendChild(canvas) + } else { + document.body.appendChild(canvas) } - ]) + } - var pointPositions = createBuffer(gl) - var pointColors = createBuffer(gl) - var pointUVs = createBuffer(gl) - var pointSizes = createBuffer(gl) - var pointIds = createBuffer(gl) - var pointVAO = createVAO(gl, [ - { buffer: pointPositions, - type: gl.FLOAT, - size: 3 - }, - { buffer: pointIds, - type: gl.UNSIGNED_BYTE, - size: 4, - normalized: true - }, - { buffer: pointColors, - type: gl.FLOAT, - size: 4 - }, - { buffer: pointUVs, - type: gl.FLOAT, - size: 2 - }, - { buffer: pointSizes, - type: gl.FLOAT, - size: 1 + var gl = options.gl + if(!gl) { + if(options.glOptions) { + isMobile = !!options.glOptions.preserveDrawingBuffer } - ]) - - var contourPositions = createBuffer(gl) - var contourVAO = createVAO(gl, [ - { buffer: contourPositions, - type: gl.FLOAT, - size: 3 - }]) - - var mesh = new SimplicialMesh(gl - , meshTexture - , triShader - , lineShader - , pointShader - , pickShader - , pointPickShader - , contourShader - , trianglePositions - , triangleIds - , triangleColors - , triangleUVs - , triangleNormals - , triangleVAO - , edgePositions - , edgeIds - , edgeColors - , edgeUVs - , edgeVAO - , pointPositions - , pointIds - , pointColors - , pointUVs - , pointSizes - , pointVAO - , contourPositions - , contourVAO) - - mesh.update(params) - return mesh -} + gl = getContext(canvas, + options.glOptions || { + premultipliedAlpha: true, + antialias: true, + preserveDrawingBuffer: isMobile + }) + } + if(!gl) { + throw new Error('webgl not supported') + } -module.exports = createSimplicialMesh + //Initial bounds + var bounds = options.bounds || [[-10,-10,-10], [10,10,10]] -},{"./lib/closest-point":307,"./lib/shaders":308,"colormap":131,"gl-buffer":259,"gl-mat4/invert":293,"gl-mat4/multiply":295,"gl-shader":335,"gl-texture2d":353,"gl-vao":358,"ndarray":495,"normals":498,"simplicial-complex-contour":556,"typedarray-pool":595}],310:[function(_dereq_,module,exports){ -arguments[4][257][0].apply(exports,arguments) -},{"dup":257}],311:[function(_dereq_,module,exports){ -'use strict' + //Create selection + var selection = new MouseSelect() -module.exports = createBoxes + //Accumulation buffer + var accumBuffer = createFBO(gl, + gl.drawingBufferWidth, gl.drawingBufferHeight, { + preferFloat: !isMobile + }) -var createBuffer = _dereq_('gl-buffer') -var createShader = _dereq_('gl-shader') + var accumShader = createShader(gl) -var shaders = _dereq_('./shaders') + var isOrtho = + (options.cameraObject && options.cameraObject._ortho === true) || + (options.camera.projection && options.camera.projection.type === 'orthographic') || + false -function Boxes(plot, vbo, shader) { - this.plot = plot - this.vbo = vbo - this.shader = shader -} + //Create a camera + var cameraOptions = { + eye: options.camera.eye || [2,0,0], + center: options.camera.center || [0,0,0], + up: options.camera.up || [0,1,0], + zoomMin: options.camera.zoomMax || 0.1, + zoomMax: options.camera.zoomMin || 100, + mode: options.camera.mode || 'turntable', + _ortho: isOrtho + } -var proto = Boxes.prototype + //Create axes + var axesOptions = options.axes || {} + var axes = createAxes(gl, axesOptions) + axes.enable = !axesOptions.disable -proto.bind = function() { - var shader = this.shader - this.vbo.bind() - this.shader.bind() - shader.attributes.coord.pointer() - shader.uniforms.screenBox = this.plot.screenBox -} + //Create spikes + var spikeOptions = options.spikes || {} + var spikes = createSpikes(gl, spikeOptions) -proto.drawBox = (function() { - var lo = [0,0] - var hi = [0,0] - return function(loX, loY, hiX, hiY, color) { - var plot = this.plot - var shader = this.shader - var gl = plot.gl + //Object list is empty initially + var objects = [] + var pickBufferIds = [] + var pickBufferCount = [] + var pickBuffers = [] - lo[0] = loX - lo[1] = loY - hi[0] = hiX - hi[1] = hiY + //Dirty flag, skip redraw if scene static + var dirty = true + var pickDirty = true - shader.uniforms.lo = lo - shader.uniforms.hi = hi - shader.uniforms.color = color + var projection = new Array(16) + var model = new Array(16) - gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4) + var cameraParams = { + view: null, + projection: projection, + model: model, + _ortho: false } -}()) - -proto.dispose = function() { - this.vbo.dispose() - this.shader.dispose() -} - -function createBoxes(plot) { - var gl = plot.gl - var vbo = createBuffer(gl, [ - 0,0, - 0,1, - 1,0, - 1,1]) - var shader = createShader(gl, shaders.boxVert, shaders.lineFrag) - return new Boxes(plot, vbo, shader) -} -},{"./shaders":314,"gl-buffer":259,"gl-shader":335}],312:[function(_dereq_,module,exports){ -'use strict' + var pickDirty = true -module.exports = createGrid + var viewShape = [ gl.drawingBufferWidth, gl.drawingBufferHeight ] -var createBuffer = _dereq_('gl-buffer') -var createShader = _dereq_('gl-shader') -var bsearch = _dereq_('binary-search-bounds') -var shaders = _dereq_('./shaders') + var camera = options.cameraObject || createCamera(canvas, cameraOptions) -function Grid(plot, vbo, shader, tickShader) { - this.plot = plot - this.vbo = vbo - this.shader = shader - this.tickShader = tickShader - this.ticks = [[], []] -} + //Create scene object + var scene = { + gl: gl, + contextLost: false, + pixelRatio: options.pixelRatio || 1, + canvas: canvas, + selection: selection, + camera: camera, + axes: axes, + axesPixels: null, + spikes: spikes, + bounds: bounds, + objects: objects, + shape: viewShape, + aspect: options.aspectRatio || [1,1,1], + pickRadius: options.pickRadius || 10, + zNear: options.zNear || 0.01, + zFar: options.zFar || 1000, + fovy: options.fovy || Math.PI/4, + clearColor: options.clearColor || [0,0,0,0], + autoResize: defaultBool(options.autoResize), + autoBounds: defaultBool(options.autoBounds), + autoScale: !!options.autoScale, + autoCenter: defaultBool(options.autoCenter), + clipToBounds: defaultBool(options.clipToBounds), + snapToData: !!options.snapToData, + onselect: options.onselect || null, + onrender: options.onrender || null, + onclick: options.onclick || null, + cameraParams: cameraParams, + oncontextloss: null, + mouseListener: null, + _stopped: false, -function compareTickNum(a, b) { - return a - b -} + getAspectratio: function() { + return { + x: this.aspect[0], + y: this.aspect[1], + z: this.aspect[2] + } + }, -var proto = Grid.prototype + setAspectratio: function(aspectratio) { + this.aspect[0] = aspectratio.x + this.aspect[1] = aspectratio.y + this.aspect[2] = aspectratio.z + pickDirty = true + }, -proto.draw = (function() { + setBounds: function(axisIndex, range) { + this.bounds[0][axisIndex] = range.min + this.bounds[1][axisIndex] = range.max + }, - var DATA_SHIFT = [0,0] - var DATA_SCALE = [0,0] - var DATA_AXIS = [0,0] + setClearColor: function(clearColor) { + this.clearColor = clearColor + }, - return function() { - var plot = this.plot - var vbo = this.vbo - var shader = this.shader - var ticks = this.ticks - var gl = plot.gl - var bounds = plot._tickBounds - var dataBox = plot.dataBox - var viewPixels = plot.viewBox - var lineWidth = plot.gridLineWidth - var gridColor = plot.gridLineColor - var gridEnable = plot.gridLineEnable - var pixelRatio = plot.pixelRatio + clearRGBA: function() { + this.gl.clearColor( + this.clearColor[0], + this.clearColor[1], + this.clearColor[2], + this.clearColor[3] + ) - for(var i=0; i<2; ++i) { - var lo = bounds[i] - var hi = bounds[i+2] - var boundScale = hi - lo - var dataCenter = 0.5 * (dataBox[i+2] + dataBox[i]) - var dataWidth = dataBox[i+2] - dataBox[i] - DATA_SCALE[i] = 2.0 * boundScale / dataWidth - DATA_SHIFT[i] = 2.0 * (lo - dataCenter) / dataWidth + this.gl.clear( + this.gl.COLOR_BUFFER_BIT | + this.gl.DEPTH_BUFFER_BIT + ) } + } - shader.bind() - vbo.bind() - shader.attributes.dataCoord.pointer() - shader.uniforms.dataShift = DATA_SHIFT - shader.uniforms.dataScale = DATA_SCALE + var pickShape = [ (gl.drawingBufferWidth/scene.pixelRatio)|0, (gl.drawingBufferHeight/scene.pixelRatio)|0 ] - var offset = 0 - for(var i=0; i<2; ++i) { - DATA_AXIS[0] = DATA_AXIS[1] = 0 - DATA_AXIS[i] = 1 - shader.uniforms.dataAxis = DATA_AXIS - shader.uniforms.lineWidth = lineWidth[i] / (viewPixels[i+2] - viewPixels[i]) * pixelRatio - shader.uniforms.color = gridColor[i] + function resizeListener() { + if(scene._stopped) { + return + } + if(!scene.autoResize) { + return + } + var parent = canvas.parentNode + var width = 1 + var height = 1 + if(parent && parent !== document.body) { + width = parent.clientWidth + height = parent.clientHeight + } else { + width = window.innerWidth + height = window.innerHeight + } + var nextWidth = Math.ceil(width * scene.pixelRatio)|0 + var nextHeight = Math.ceil(height * scene.pixelRatio)|0 + if(nextWidth !== canvas.width || nextHeight !== canvas.height) { + canvas.width = nextWidth + canvas.height = nextHeight + var style = canvas.style + style.position = style.position || 'absolute' + style.left = '0px' + style.top = '0px' + style.width = width + 'px' + style.height = height + 'px' + dirty = true + } + } + if(scene.autoResize) { + resizeListener() + } + window.addEventListener('resize', resizeListener) - var size = ticks[i].length * 6 - if(gridEnable[i] && size) { - gl.drawArrays(gl.TRIANGLES, offset, size) + function reallocPickIds() { + var numObjs = objects.length + var numPick = pickBuffers.length + for(var i=0; i 0 && pickBufferCount[numPick-1] === 0) { + pickBufferCount.pop() + pickBuffers.pop().dispose() } } -})() - -proto.drawTickMarks = (function() { - var DATA_SHIFT = [0,0] - var DATA_SCALE = [0,0] - var X_AXIS = [1,0] - var Y_AXIS = [0,1] - var SCR_OFFSET = [0,0] - var TICK_SCALE = [0,0] - - return function() { - var plot = this.plot - var vbo = this.vbo - var shader = this.tickShader - var ticks = this.ticks - var gl = plot.gl - var bounds = plot._tickBounds - var dataBox = plot.dataBox - var viewBox = plot.viewBox - var pixelRatio = plot.pixelRatio - var screenBox = plot.screenBox - var screenWidth = screenBox[2] - screenBox[0] - var screenHeight = screenBox[3] - screenBox[1] - var viewWidth = viewBox[2] - viewBox[0] - var viewHeight = viewBox[3] - viewBox[1] + scene.update = function(options) { - for(var i=0; i<2; ++i) { - var lo = bounds[i] - var hi = bounds[i+2] - var boundScale = hi - lo - var dataCenter = 0.5 * (dataBox[i+2] + dataBox[i]) - var dataWidth = (dataBox[i+2] - dataBox[i]) - DATA_SCALE[i] = 2.0 * boundScale / dataWidth - DATA_SHIFT[i] = 2.0 * (lo - dataCenter) / dataWidth + if(scene._stopped) { + return } + options = options || {} + dirty = true + pickDirty = true + } - DATA_SCALE[0] *= viewWidth / screenWidth - DATA_SHIFT[0] *= viewWidth / screenWidth - - DATA_SCALE[1] *= viewHeight / screenHeight - DATA_SHIFT[1] *= viewHeight / screenHeight - - shader.bind() - vbo.bind() - - shader.attributes.dataCoord.pointer() - - var uniforms = shader.uniforms - uniforms.dataShift = DATA_SHIFT - uniforms.dataScale = DATA_SCALE - - var tickMarkLength = plot.tickMarkLength - var tickMarkWidth = plot.tickMarkWidth - var tickMarkColor = plot.tickMarkColor + scene.add = function(obj) { + if(scene._stopped) { + return + } + obj.axes = axes + objects.push(obj) + pickBufferIds.push(-1) + dirty = true + pickDirty = true + reallocPickIds() + } - var xTicksOffset = 0 - var yTicksOffset = ticks[0].length * 6 + scene.remove = function(obj) { + if(scene._stopped) { + return + } + var idx = objects.indexOf(obj) + if(idx < 0) { + return + } + objects.splice(idx, 1) + pickBufferIds.pop() + dirty = true + pickDirty = true + reallocPickIds() + } - var xStart = Math.min(bsearch.ge(ticks[0], (dataBox[0] - bounds[0]) / (bounds[2] - bounds[0]), compareTickNum), ticks[0].length) - var xEnd = Math.min(bsearch.gt(ticks[0], (dataBox[2] - bounds[0]) / (bounds[2] - bounds[0]), compareTickNum), ticks[0].length) - var xOffset = xTicksOffset + 6 * xStart - var xCount = 6 * Math.max(0, xEnd - xStart) + scene.dispose = function() { + if(scene._stopped) { + return + } - var yStart = Math.min(bsearch.ge(ticks[1], (dataBox[1] - bounds[1]) / (bounds[3] - bounds[1]), compareTickNum), ticks[1].length) - var yEnd = Math.min(bsearch.gt(ticks[1], (dataBox[3] - bounds[1]) / (bounds[3] - bounds[1]), compareTickNum), ticks[1].length) - var yOffset = yTicksOffset + 6 * yStart - var yCount = 6 * Math.max(0, yEnd - yStart) + scene._stopped = true - SCR_OFFSET[0] = 2.0 * (viewBox[0] - tickMarkLength[1]) / screenWidth - 1.0 - SCR_OFFSET[1] = (viewBox[3] + viewBox[1]) / screenHeight - 1.0 - TICK_SCALE[0] = tickMarkLength[1] * pixelRatio / screenWidth - TICK_SCALE[1] = tickMarkWidth[1] * pixelRatio / screenHeight + window.removeEventListener('resize', resizeListener) + canvas.removeEventListener('webglcontextlost', checkContextLoss) + scene.mouseListener.enabled = false - if(yCount) { - uniforms.color = tickMarkColor[1] - uniforms.tickScale = TICK_SCALE - uniforms.dataAxis = Y_AXIS - uniforms.screenOffset = SCR_OFFSET - gl.drawArrays(gl.TRIANGLES, yOffset, yCount) + if(scene.contextLost) { + return } - SCR_OFFSET[0] = (viewBox[2] + viewBox[0]) / screenWidth - 1.0 - SCR_OFFSET[1] = 2.0 * (viewBox[1] - tickMarkLength[0]) / screenHeight - 1.0 - TICK_SCALE[0] = tickMarkWidth[0] * pixelRatio / screenWidth - TICK_SCALE[1] = tickMarkLength[0] * pixelRatio / screenHeight - - if(xCount) { - uniforms.color = tickMarkColor[0] - uniforms.tickScale = TICK_SCALE - uniforms.dataAxis = X_AXIS - uniforms.screenOffset = SCR_OFFSET - gl.drawArrays(gl.TRIANGLES, xOffset, xCount) + //Destroy objects + axes.dispose() + spikes.dispose() + for(var i=0; i selection.distance) { + continue + } + for(var j=0; j tickOffset[start]) { - shader.uniforms.dataAxis = DATA_AXIS - shader.uniforms.screenOffset = SCREEN_OFFSET - shader.uniforms.color = textColor[axis] - shader.uniforms.angle = textAngle[axis] - gl.drawArrays( - gl.TRIANGLES, - tickOffset[start], - tickOffset[end] - tickOffset[start]) + //Set clip bounds + if(scene.clipToBounds) { + obj.clipBounds = bounds } } - if(labelEnable[axis] && labelCount) { - SCREEN_OFFSET[axis^1] -= screenScale * pixelRatio * labelPad[axis] - shader.uniforms.dataAxis = ZERO_2 - shader.uniforms.screenOffset = SCREEN_OFFSET - shader.uniforms.color = labelColor[axis] - shader.uniforms.angle = labelAngle[axis] - gl.drawArrays( - gl.TRIANGLES, - labelOffset, - labelCount) + //Set spike parameters + if(selection.object) { + if(scene.snapToData) { + spikes.position = selection.dataCoordinate + } else { + spikes.position = selection.dataPosition + } + spikes.bounds = bounds } - SCREEN_OFFSET[axis^1] = screenScale * viewBox[2+(axis^1)] - 1.0 - if(tickEnable[axis+2]) { - SCREEN_OFFSET[axis^1] += screenScale * pixelRatio * tickPad[axis+2] - if(start < end && tickOffset[end] > tickOffset[start]) { - shader.uniforms.dataAxis = DATA_AXIS - shader.uniforms.screenOffset = SCREEN_OFFSET - shader.uniforms.color = textColor[axis+2] - shader.uniforms.angle = textAngle[axis+2] - gl.drawArrays( - gl.TRIANGLES, - tickOffset[start], - tickOffset[end] - tickOffset[start]) - } + //If state changed, then redraw pick buffers + if(pickDirty) { + pickDirty = false + renderPick() } - if(labelEnable[axis+2] && labelCount) { - SCREEN_OFFSET[axis^1] += screenScale * pixelRatio * labelPad[axis+2] - shader.uniforms.dataAxis = ZERO_2 - shader.uniforms.screenOffset = SCREEN_OFFSET - shader.uniforms.color = labelColor[axis+2] - shader.uniforms.angle = labelAngle[axis+2] - gl.drawArrays( - gl.TRIANGLES, - labelOffset, - labelCount) + + //Recalculate pixel data + scene.axesPixels = axesRanges(scene.axes, cameraParams, width, height) + + //Call render callback + if(scene.onrender) { + scene.onrender() } - } -})() + //Read value + gl.bindFramebuffer(gl.FRAMEBUFFER, null) + gl.viewport(0, 0, width, height) -proto.drawTitle = (function() { - var DATA_AXIS = [0,0] - var SCREEN_OFFSET = [0,0] + //General strategy: 3 steps + // 1. render non-transparent objects + // 2. accumulate transparent objects into separate fbo + // 3. composite final scene - return function() { - var plot = this.plot - var shader = this.shader - var gl = plot.gl - var screenBox = plot.screenBox - var titleCenter = plot.titleCenter - var titleAngle = plot.titleAngle - var titleColor = plot.titleColor - var pixelRatio = plot.pixelRatio + //Clear FBO + scene.clearRGBA() - if(!this.titleCount) { - return - } + gl.depthMask(true) + gl.colorMask(true, true, true, true) + gl.enable(gl.DEPTH_TEST) + gl.depthFunc(gl.LEQUAL) + gl.disable(gl.BLEND) + gl.disable(gl.CULL_FACE) //most visualization surfaces are 2 sided - for(var i=0; i<2; ++i) { - SCREEN_OFFSET[i] = 2.0 * (titleCenter[i]*pixelRatio - screenBox[i]) / - (screenBox[2+i] - screenBox[i]) - 1 + //Render opaque pass + var hasTransparent = false + if(axes.enable) { + hasTransparent = hasTransparent || axes.isTransparent() + axes.draw(cameraParams) + } + spikes.axes = axes + if(selection.object) { + spikes.draw(cameraParams) } - shader.bind() - shader.uniforms.dataAxis = DATA_AXIS - shader.uniforms.screenOffset = SCREEN_OFFSET - shader.uniforms.angle = titleAngle - shader.uniforms.color = titleColor + gl.disable(gl.CULL_FACE) //most visualization surfaces are 2 sided - gl.drawArrays(gl.TRIANGLES, this.titleOffset, this.titleCount) - } -})() + for(var i=0; i 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"]) +exports.pickVertex = glslify(["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"]) +exports.pickFragment = glslify(["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"]) -},{"./shaders":314,"binary-search-bounds":96,"gl-buffer":259,"gl-shader":335,"text-cache":575}],316:[function(_dereq_,module,exports){ -arguments[4][257][0].apply(exports,arguments) -},{"dup":257}],317:[function(_dereq_,module,exports){ +},{"glslify":438}],323:[function(_dereq_,module,exports){ 'use strict' -module.exports = createGLPlot2D - -var createPick = _dereq_('gl-select-static') - -var createGrid = _dereq_('./lib/grid') -var createText = _dereq_('./lib/text') -var createLine = _dereq_('./lib/line') -var createBox = _dereq_('./lib/box') +var createShader = _dereq_('gl-shader') +var createBuffer = _dereq_('gl-buffer') -function GLPlot2D(gl, pickBuffer) { - this.gl = gl - this.pickBuffer = pickBuffer +var pool = _dereq_('typedarray-pool') - this.screenBox = [0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight] - this.viewBox = [0, 0, 0, 0] - this.dataBox = [-10, -10, 10, 10] +var SHADERS = _dereq_('./lib/shader') - this.gridLineEnable = [true,true] - this.gridLineWidth = [1,1] - this.gridLineColor = [[0,0,0,1], - [0,0,0,1]] +module.exports = createPointcloud2D - this.pixelRatio = 1 +function Pointcloud2D(plot, offsetBuffer, pickBuffer, shader, pickShader) { + this.plot = plot + this.offsetBuffer = offsetBuffer + this.pickBuffer = pickBuffer + this.shader = shader + this.pickShader = pickShader + this.sizeMin = 0.5 + this.sizeMinCap = 2 + this.sizeMax = 20 + this.areaRatio = 1.0 + this.pointCount = 0 + this.color = [1, 0, 0, 1] + this.borderColor = [0, 0, 0, 1] + this.blend = false + this.pickOffset = 0 + this.points = null +} - this.tickMarkLength = [0,0,0,0] - this.tickMarkWidth = [0,0,0,0] - this.tickMarkColor = [[0,0,0,1], - [0,0,0,1], - [0,0,0,1], - [0,0,0,1]] +var proto = Pointcloud2D.prototype - this.tickPad = [15,15,15,15] - this.tickAngle = [0,0,0,0] - this.tickEnable = [true,true,true,true] - this.tickColor = [[0,0,0,1], - [0,0,0,1], - [0,0,0,1], - [0,0,0,1]] +proto.dispose = function() { + this.shader.dispose() + this.pickShader.dispose() + this.offsetBuffer.dispose() + this.pickBuffer.dispose() + this.plot.removeObject(this) +} - this.labelPad = [15,15,15,15] - this.labelAngle = [0,Math.PI/2,0,3.0*Math.PI/2] - this.labelEnable = [true,true,true,true] - this.labelColor = [[0,0,0,1], - [0,0,0,1], - [0,0,0,1], - [0,0,0,1]] +proto.update = function(options) { - this.titleCenter = [0,0] - this.titleEnable = true - this.titleAngle = 0 - this.titleColor = [0,0,0,1] + var i - this.borderColor = [0,0,0,0] - this.backgroundColor = [0,0,0,0] + options = options || {} - this.zeroLineEnable = [true, true] - this.zeroLineWidth = [4, 4] - this.zeroLineColor = [[0, 0, 0, 1],[0, 0, 0, 1]] + function dflt(opt, value) { + if(opt in options) { + return options[opt] + } + return value + } - this.borderLineEnable = [true,true,true,true] - this.borderLineWidth = [2,2,2,2] - this.borderLineColor = [[0,0,0,1], - [0,0,0,1], - [0,0,0,1], - [0,0,0,1]] + this.sizeMin = dflt('sizeMin', 0.5) + // this.sizeMinCap = dflt('sizeMinCap', 2) + this.sizeMax = dflt('sizeMax', 20) + this.color = dflt('color', [1, 0, 0, 1]).slice() + this.areaRatio = dflt('areaRatio', 1) + this.borderColor = dflt('borderColor', [0, 0, 0, 1]).slice() + this.blend = dflt('blend', false) - //Drawing parameters - this.grid = null - this.text = null - this.line = null - this.box = null - this.objects = [] - this.overlays = [] + //Update point data - this._tickBounds = [Infinity, Infinity, -Infinity, -Infinity] + // Attempt straight-through processing (STP) to avoid allocation and copy + // TODO eventually abstract out STP logic, maybe into `pool` or a layer above + var pointCount = options.positions.length >>> 1 + var dataStraightThrough = options.positions instanceof Float32Array + var idStraightThrough = options.idToIndex instanceof Int32Array && options.idToIndex.length >= pointCount // permit larger to help reuse - this.static = false + var data = options.positions + var packed = dataStraightThrough ? data : pool.mallocFloat32(data.length) + var packedId = idStraightThrough ? options.idToIndex : pool.mallocInt32(pointCount) - this.dirty = false - this.pickDirty = false - this.pickDelay = 120 - this.pickRadius = 10 - this._pickTimeout = null - this._drawPick = this.drawPick.bind(this) + if(!dataStraightThrough) { + packed.set(data) + } - this._depthCounter = 0 -} + if(!idStraightThrough) { + packed.set(data) + for(i = 0; i < pointCount; i++) { + packedId[i] = i + } + } -var proto = GLPlot2D.prototype + this.points = data -proto.setDirty = function() { - this.dirty = this.pickDirty = true -} + this.offsetBuffer.update(packed) + this.pickBuffer.update(packedId) -proto.setOverlayDirty = function() { - this.dirty = true -} + if(!dataStraightThrough) { + pool.free(packed) + } -proto.nextDepthValue = function() { - return (this._depthCounter++) / 65536.0 -} + if(!idStraightThrough) { + pool.free(packedId) + } -function lerp(a, b, t) { - var s = 0.5 * (t + 1.0) - return Math.floor((1.0-s)*a + s*b)|0 + this.pointCount = pointCount + this.pickOffset = 0 } -proto.draw = (function() { -var TICK_MARK_BOX = [0,0,0,0] -return function() { - var gl = this.gl - var screenBox = this.screenBox - var viewPixels = this.viewBox - var dataBox = this.dataBox - var pixelRatio = this.pixelRatio - var grid = this.grid - var line = this.line - var text = this.text - var objects = this.objects +function count(points, dataBox) { + var visiblePointCountEstimate = 0 + var length = points.length >>> 1 + var i + for(i = 0; i < length; i++) { + var x = points[i * 2] + var y = points[i * 2 + 1] + if(x >= dataBox[0] && x <= dataBox[2] && y >= dataBox[1] && y <= dataBox[3]) + visiblePointCountEstimate++ + } + return visiblePointCountEstimate +} - this._depthCounter = 0 +proto.unifiedDraw = (function() { + var MATRIX = [1, 0, 0, + 0, 1, 0, + 0, 0, 1] + var PICK_VEC4 = [0, 0, 0, 0] +return function(pickOffset) { + var pick = pickOffset !== void(0) - if(this.pickDirty) { - if(this._pickTimeout) { - clearTimeout(this._pickTimeout) - } - this.pickDirty = false - this._pickTimeout = setTimeout(this._drawPick, this.pickDelay) - } + var shader = pick ? this.pickShader : this.shader + var gl = this.plot.gl + var dataBox = this.plot.dataBox - if(!this.dirty) { - return + if(this.pointCount === 0) { + return pickOffset } - this.dirty = false - gl.bindFramebuffer(gl.FRAMEBUFFER, null) + var dataX = dataBox[2] - dataBox[0] + var dataY = dataBox[3] - dataBox[1] - //Turn on scissor - gl.enable(gl.SCISSOR_TEST) + var visiblePointCountEstimate = count(this.points, dataBox) + var basicPointSize = this.plot.pickPixelRatio * Math.max(Math.min(this.sizeMinCap, this.sizeMin), Math.min(this.sizeMax, this.sizeMax / Math.pow(visiblePointCountEstimate, 0.33333))) - //Turn off depth buffer - gl.disable(gl.DEPTH_TEST) - gl.depthFunc(gl.LESS) - gl.depthMask(false) + MATRIX[0] = 2.0 / dataX + MATRIX[4] = 2.0 / dataY + MATRIX[6] = -2.0 * dataBox[0] / dataX - 1.0 + MATRIX[7] = -2.0 * dataBox[1] / dataY - 1.0 - //Configure premultiplied alpha blending - gl.enable(gl.BLEND) - gl.blendEquation(gl.FUNC_ADD, gl.FUNC_ADD); - gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA); + this.offsetBuffer.bind() - //Draw border - if (this.borderColor) { - gl.scissor( - screenBox[0], - screenBox[1], - screenBox[2]-screenBox[0], - screenBox[3]-screenBox[1]) - var borderColor = this.borderColor - gl.clearColor( - borderColor[0]*borderColor[3], - borderColor[1]*borderColor[3], - borderColor[2]*borderColor[3], - borderColor[3]) - gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT) - } + shader.bind() + shader.attributes.position.pointer() + shader.uniforms.matrix = MATRIX + shader.uniforms.color = this.color + shader.uniforms.borderColor = this.borderColor + shader.uniforms.pointCloud = basicPointSize < 5 + shader.uniforms.pointSize = basicPointSize + shader.uniforms.centerFraction = Math.min(1, Math.max(0, Math.sqrt(1 - this.areaRatio))) - //Draw center pane - gl.scissor( - viewPixels[0], - viewPixels[1], - viewPixels[2]-viewPixels[0], - viewPixels[3]-viewPixels[1]) - gl.viewport( - viewPixels[0], - viewPixels[1], - viewPixels[2]-viewPixels[0], - viewPixels[3]-viewPixels[1]) - var backgroundColor = this.backgroundColor - gl.clearColor( - backgroundColor[0]*backgroundColor[3], - backgroundColor[1]*backgroundColor[3], - backgroundColor[2]*backgroundColor[3], - backgroundColor[3]) - gl.clear(gl.COLOR_BUFFER_BIT) + if(pick) { - //Draw grid - grid.draw() + PICK_VEC4[0] = ( pickOffset & 0xff) + PICK_VEC4[1] = ((pickOffset >> 8) & 0xff) + PICK_VEC4[2] = ((pickOffset >> 16) & 0xff) + PICK_VEC4[3] = ((pickOffset >> 24) & 0xff) - //Draw zero lines separately - var zeroLineEnable = this.zeroLineEnable - var zeroLineColor = this.zeroLineColor - var zeroLineWidth = this.zeroLineWidth - if(zeroLineEnable[0] || zeroLineEnable[1]) { - line.bind() - for(var i=0; i<2; ++i) { - if(!zeroLineEnable[i] || - !(dataBox[i] <= 0 && dataBox[i+2] >= 0)) { - continue - } + this.pickBuffer.bind() + shader.attributes.pickId.pointer(gl.UNSIGNED_BYTE) + shader.uniforms.pickOffset = PICK_VEC4 + this.pickOffset = pickOffset + } - var zeroIntercept = screenBox[i] - - dataBox[i] * (screenBox[i+2] - screenBox[i]) / (dataBox[i+2] - dataBox[i]) + // Worth switching these off, but we can't make assumptions about other + // renderers, so let's restore it after each draw + var blend = gl.getParameter(gl.BLEND) + var dither = gl.getParameter(gl.DITHER) - if(i === 0) { - line.drawLine( - zeroIntercept, screenBox[1], zeroIntercept, screenBox[3], - zeroLineWidth[i], - zeroLineColor[i]) - } else { - line.drawLine( - screenBox[0], zeroIntercept, screenBox[2], zeroIntercept, - zeroLineWidth[i], - zeroLineColor[i]) - } - } - } + if(blend && !this.blend) + gl.disable(gl.BLEND) + if(dither) + gl.disable(gl.DITHER) - //Draw traces - for(var i=0; i= pickOffset + pointCount) { + return null } - if(borderLineEnable[2]) { - line.drawLine( - viewPixels[0] - 0.5*borderLineWidth[0]*pixelRatio, viewPixels[3], - viewPixels[2] + 0.5*borderLineWidth[2]*pixelRatio, viewPixels[3], - borderLineWidth[2], borderLineColor[2]) + var pointId = value - pickOffset + var points = this.points + return { + object: this, + pointId: pointId, + dataCoord: [points[2 * pointId], points[2 * pointId + 1] ] } +} - //Draw text elements - text.bind() - for(var i=0; i<2; ++i) { - text.drawTicks(i) - } - if(this.titleEnable) { - text.drawTitle() - } +function createPointcloud2D(plot, options) { + var gl = plot.gl + var buffer = createBuffer(gl) + var pickBuffer = createBuffer(gl) + var shader = createShader(gl, SHADERS.pointVertex, SHADERS.pointFragment) + var pickShader = createShader(gl, SHADERS.pickVertex, SHADERS.pickFragment) - //Draw other overlay elements (select boxes, etc.) - var overlays = this.overlays - for(var i=0; i 0.000001) { + // standard case (slerp) + omega = Math.acos(cosom) + sinom = Math.sin(omega) + scale0 = Math.sin((1.0 - t) * omega) / sinom + scale1 = Math.sin(t * omega) / sinom + } else { + // "from" and "to" quaternions are very close + // ... so we can do a linear interpolation + scale0 = 1.0 - t + scale1 = t } + // calculate final values + out[0] = scale0 * ax + scale1 * bx + out[1] = scale0 * ay + scale1 * by + out[2] = scale0 * az + scale1 * bz + out[3] = scale0 * aw + scale1 * bw - pickBuffer.end() + return out } -})() -proto.pick = (function() { -return function(x, y) { - if (this.static) return; +},{}],325:[function(_dereq_,module,exports){ +'use strict'; - var pixelRatio = this.pixelRatio - var pickPixelRatio = this.pickPixelRatio - var viewBox = this.viewBox +module.exports = function(a){ + return (!a && a !== 0) ? '' : a.toString(); +} - var scrX = Math.round((x - viewBox[0] / pixelRatio) * pickPixelRatio)|0 - var scrY = Math.round((y - viewBox[1] / pixelRatio) * pickPixelRatio)|0 +},{}],326:[function(_dereq_,module,exports){ +"use strict" - var pickResult = this.pickBuffer.query(scrX, scrY, this.pickRadius) - if(!pickResult) { - return null - } +var vectorizeText = _dereq_("vectorize-text") - var pickValue = pickResult.id + - (pickResult.value[0]<<8) + - (pickResult.value[1]<<16) + - (pickResult.value[2]<<24) +module.exports = getGlyph - var objects = this.objects - for(var i=0; i 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}"]) +var orthographicVertSrc = glslify(["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}"]) +var projectionVertSrc = glslify(["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"]) +var drawFragSrc = glslify(["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"]) +var pickFragSrc = glslify(["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}"]) - if(different) { - dataBox[0] = nbox[0] - dataBox[1] = nbox[1] - dataBox[2] = nbox[2] - dataBox[3] = nbox[3] +var ATTRIBUTES = [ + {name: 'position', type: 'vec3'}, + {name: 'color', type: 'vec4'}, + {name: 'glyph', type: 'vec2'}, + {name: 'id', type: 'vec4'} +] - this.setDirty() +var perspective = { + vertex: perspectiveVertSrc, + fragment: drawFragSrc, + attributes: ATTRIBUTES + }, + ortho = { + vertex: orthographicVertSrc, + fragment: drawFragSrc, + attributes: ATTRIBUTES + }, + project = { + vertex: projectionVertSrc, + fragment: drawFragSrc, + attributes: ATTRIBUTES + }, + pickPerspective = { + vertex: perspectiveVertSrc, + fragment: pickFragSrc, + attributes: ATTRIBUTES + }, + pickOrtho = { + vertex: orthographicVertSrc, + fragment: pickFragSrc, + attributes: ATTRIBUTES + }, + pickProject = { + vertex: projectionVertSrc, + fragment: pickFragSrc, + attributes: ATTRIBUTES } -} - -proto.setViewBox = function(nbox) { - var pixelRatio = this.pixelRatio - var viewBox = this.viewBox - - viewBox[0] = Math.round(nbox[0] * pixelRatio)|0 - viewBox[1] = Math.round(nbox[1] * pixelRatio)|0 - viewBox[2] = Math.round(nbox[2] * pixelRatio)|0 - viewBox[3] = Math.round(nbox[3] * pixelRatio)|0 - var pickPixelRatio = this.pickPixelRatio - this.pickBuffer.shape = [ - Math.round((nbox[2] - nbox[0]) * pickPixelRatio)|0, - Math.round((nbox[3] - nbox[1]) * pickPixelRatio)|0 ] +function createShader(gl, src) { + var shader = createShaderWrapper(gl, src) + var attr = shader.attributes + attr.position.location = 0 + attr.color.location = 1 + attr.glyph.location = 2 + attr.id.location = 3 + return shader +} - this.setDirty() +exports.createPerspective = function(gl) { + return createShader(gl, perspective) +} +exports.createOrtho = function(gl) { + return createShader(gl, ortho) +} +exports.createProject = function(gl) { + return createShader(gl, project) +} +exports.createPickPerspective = function(gl) { + return createShader(gl, pickPerspective) +} +exports.createPickOrtho = function(gl) { + return createShader(gl, pickOrtho) +} +exports.createPickProject = function(gl) { + return createShader(gl, pickProject) } -proto.update = function(options) { - options = options || {} +},{"gl-shader":334,"glslify":328}],328:[function(_dereq_,module,exports){ +arguments[4][257][0].apply(exports,arguments) +},{"dup":257}],329:[function(_dereq_,module,exports){ +'use strict' - var gl = this.gl +var isAllBlank = _dereq_('is-string-blank') +var createBuffer = _dereq_('gl-buffer') +var createVAO = _dereq_('gl-vao') +var pool = _dereq_('typedarray-pool') +var mat4mult = _dereq_('gl-mat4/multiply') +var shaders = _dereq_('./lib/shaders') +var getGlyph = _dereq_('./lib/glyphs') +var getSimpleString = _dereq_('./lib/get-simple-string') - this.pixelRatio = options.pixelRatio || 1 +var IDENTITY = [1,0,0,0, + 0,1,0,0, + 0,0,1,0, + 0,0,0,1] - var pixelRatio = this.pixelRatio - this.pickPixelRatio = Math.max(pixelRatio, 1) +module.exports = createPointCloud - this.setScreenBox(options.screenBox || - [0, 0, gl.drawingBufferWidth/pixelRatio, gl.drawingBufferHeight/pixelRatio]) +function transformMat4(x, m) { + var x0 = x[0] + var x1 = x[1] + var x2 = x[2] + var x3 = x[3] + x[0] = m[0] * x0 + m[4] * x1 + m[8] * x2 + m[12] * x3 + x[1] = m[1] * x0 + m[5] * x1 + m[9] * x2 + m[13] * x3 + x[2] = m[2] * x0 + m[6] * x1 + m[10] * x2 + m[14] * x3 + x[3] = m[3] * x0 + m[7] * x1 + m[11] * x2 + m[15] * x3 + return x +} - var screenBox = this.screenBox - this.setViewBox(options.viewBox || - [0.125*(this.screenBox[2]-this.screenBox[0])/pixelRatio, - 0.125*(this.screenBox[3]-this.screenBox[1])/pixelRatio, - 0.875*(this.screenBox[2]-this.screenBox[0])/pixelRatio, - 0.875*(this.screenBox[3]-this.screenBox[1])/pixelRatio]) +function project(p, v, m, x) { + transformMat4(x, x, m) + transformMat4(x, x, v) + return transformMat4(x, x, p) +} - var viewBox = this.viewBox - var aspectRatio = (viewBox[2] - viewBox[0]) / (viewBox[3] - viewBox[1]) - this.setDataBox(options.dataBox || [-10, -10/aspectRatio, 10, 10/aspectRatio]) +function ScatterPlotPickResult(index, position) { + this.index = index + this.dataCoordinate = this.position = position +} - this.borderColor = options.borderColor !== false ? (options.borderColor || [0,0,0,0]).slice() : false - this.backgroundColor = (options.backgroundColor || [0,0,0,0]).slice() +function fixOpacity(a) { + if(a === true) return 1 + if(a > 1) return 1 + return a +} - this.gridLineEnable = (options.gridLineEnable || [true,true]).slice() - this.gridLineWidth = (options.gridLineWidth || [1,1]).slice() - this.gridLineColor = deepClone(options.gridLineColor || - [[0.5,0.5,0.5,1],[0.5,0.5,0.5,1]]) +function PointCloud( + gl, + shader, + orthoShader, + projectShader, + pointBuffer, + colorBuffer, + glyphBuffer, + idBuffer, + vao, + pickPerspectiveShader, + pickOrthoShader, + pickProjectShader) { - this.zeroLineEnable = (options.zeroLineEnable || [true, true]).slice() - this.zeroLineWidth = (options.zeroLineWidth || [4, 4]).slice() - this.zeroLineColor = deepClone(options.zeroLineColor || - [[0, 0, 0, 1],[0, 0, 0, 1]]) + this.gl = gl - this.tickMarkLength = (options.tickMarkLength || [0,0,0,0]).slice() - this.tickMarkWidth = (options.tickMarkWidth || [0,0,0,0]).slice() - this.tickMarkColor = deepClone(options.tickMarkColor || - [[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]]) + this.pixelRatio = 1 - this.titleCenter = (options.titleCenter || [ - 0.5*(viewBox[0]+viewBox[2])/pixelRatio,(viewBox[3]+120)/pixelRatio]).slice() - this.titleEnable = !('titleEnable' in options) || !!options.titleEnable - this.titleAngle = options.titleAngle || 0 - this.titleColor = (options.titleColor || [0,0,0,1]).slice() + this.shader = shader + this.orthoShader = orthoShader + this.projectShader = projectShader - this.labelPad = (options.labelPad || [15,15,15,15]).slice() - this.labelAngle = (options.labelAngle || - [0,Math.PI/2,0,3.0*Math.PI/2]).slice() - this.labelEnable = (options.labelEnable || [true,true,true,true]).slice() - this.labelColor = deepClone(options.labelColor || - [[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]]) + this.pointBuffer = pointBuffer + this.colorBuffer = colorBuffer + this.glyphBuffer = glyphBuffer + this.idBuffer = idBuffer + this.vao = vao + this.vertexCount = 0 + this.lineVertexCount = 0 - this.tickPad = (options.tickPad || [15,15,15,15]).slice() - this.tickAngle = (options.tickAngle || [0,0,0,0]).slice() - this.tickEnable = (options.tickEnable || [true,true,true,true]).slice() - this.tickColor = deepClone(options.tickColor || - [[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]]) + this.opacity = 1 + this.hasAlpha = false - this.borderLineEnable = (options.borderLineEnable || - [true,true,true,true]).slice() - this.borderLineWidth = (options.borderLineWidth || [2,2,2,2]).slice() - this.borderLineColor = deepClone(options.borderLineColor || - [[0,0,0,1], - [0,0,0,1], - [0,0,0,1], - [0,0,0,1]]) + this.lineWidth = 0 + this.projectScale = [2.0/3.0, 2.0/3.0, 2.0/3.0] + this.projectOpacity = [1, 1, 1] + this.projectHasAlpha = false - var ticks = options.ticks || [ [], [] ] + this.pickId = 0 + this.pickPerspectiveShader = pickPerspectiveShader + this.pickOrthoShader = pickOrthoShader + this.pickProjectShader = pickProjectShader + this.points = [] - //Compute bounds on ticks - var bounds = this._tickBounds - bounds[0] = bounds[1] = Infinity - bounds[2] = bounds[3] = -Infinity - for(var i=0; i<2; ++i) { - var axisTicks = ticks[i].slice(0) - if(axisTicks.length === 0) { - continue - } - axisTicks.sort(compareTicks) - bounds[i] = Math.min(bounds[i], axisTicks[0].x) - bounds[i+2] = Math.max(bounds[i+2], axisTicks[axisTicks.length-1].x) - } + this._selectResult = new ScatterPlotPickResult(0, [0,0,0]) - //Update grid - this.grid.update({ - bounds: bounds, - ticks: ticks - }) + this.useOrtho = true + this.bounds = [[ Infinity,Infinity,Infinity], + [-Infinity,-Infinity,-Infinity]] - //Update text - this.text.update({ - bounds: bounds, - ticks: ticks, - labels: options.labels || ['x', 'y'], - labelSize: options.labelSize || [12,12], - labelFont: options.labelFont || ['sans-serif', 'sans-serif'], - title: options.title || '', - titleSize: options.titleSize || 18, - titleFont: options.titleFont || 'sans-serif' - }) + //Axes projections + this.axesProject = [ true, true, true ] + this.axesBounds = [[-Infinity,-Infinity,-Infinity], + [ Infinity, Infinity, Infinity]] - this.static = !!options.static; + this.highlightId = [1,1,1,1] + this.highlightScale = 2 - this.setDirty() + this.clipBounds = [[-Infinity,-Infinity,-Infinity], + [ Infinity, Infinity, Infinity]] + + this.dirty = true } -proto.dispose = function() { - this.box.dispose() - this.grid.dispose() - this.text.dispose() - this.line.dispose() - for(var i=this.objects.length-1; i>=0; --i) { - this.objects[i].dispose() - } - this.objects.length = 0 - for(var i=this.overlays.length-1; i>=0; --i) { - this.overlays[i].dispose() - } - this.overlays.length = 0 +var proto = PointCloud.prototype - this.gl = null -} +proto.pickSlots = 1 -proto.addObject = function(object) { - if(this.objects.indexOf(object) < 0) { - this.objects.push(object) - this.setDirty() - } +proto.setPickBase = function(pickBase) { + this.pickId = pickBase } -proto.removeObject = function(object) { - var objects = this.objects - for(var i=0; i Math.abs(mdv[1])) { + var tmp = mdu + mdu = mdv + mdv = tmp + tmp = du + du = dv + dv = tmp + var t = u + u = v + v = t + } + if(mdu[0] < 0) { + du[u] = -1 + } + if(mdv[1] > 0) { + dv[v] = -1 + } + var su = 0.0 + var sv = 0.0 + for(var j=0; j<4; ++j) { + su += Math.pow(model[4*u+j], 2) + sv += Math.pow(model[4*v+j], 2) + } + du[u] /= Math.sqrt(su) + dv[v] /= Math.sqrt(sv) + uniforms.axes[0] = du + uniforms.axes[1] = dv - //enable simple touch interactions - element.addEventListener('touchstart', function (ev) { - var xy = mouseOffset(ev.changedTouches[0], element) - handleInteraction(0, xy[0], xy[1], camera._lastMods) - handleInteraction(1, xy[0], xy[1], camera._lastMods) - }, hasPassive ? {passive: true} : false) + //Update fragment clip bounds + uniforms.fragClipBounds[0] = setComponent(SCRATCH_VEC, clipBounds[0], i, -1e8) + uniforms.fragClipBounds[1] = setComponent(SCRATCH_VEC, clipBounds[1], i, 1e8) - element.addEventListener('touchmove', function (ev) { - var xy = mouseOffset(ev.changedTouches[0], element) - handleInteraction(1, xy[0], xy[1], camera._lastMods) - ev.preventDefault() - }, hasPassive ? {passive: false} : false) + points.vao.bind() - element.addEventListener('touchend', function (ev) { - handleInteraction(0, camera._lastX, camera._lastY, camera._lastMods) - }, hasPassive ? {passive: true} : false) + //Draw interior + points.vao.draw(gl.TRIANGLES, points.vertexCount) - function handleInteraction (buttons, x, y, mods) { - var keyBindingMode = camera.keyBindingMode + //Draw edges + if(points.lineWidth > 0) { + gl.lineWidth(points.lineWidth * pixelRatio) + points.vao.draw(gl.LINES, points.lineVertexCount, points.vertexCount) + } - if(keyBindingMode === false) return + points.vao.unbind() + } +} - var rotate = keyBindingMode === 'rotate' - var pan = keyBindingMode === 'pan' - var zoom = keyBindingMode === 'zoom' - var ctrl = !!mods.control - var alt = !!mods.alt - var shift = !!mods.shift - var left = !!(buttons & 1) - var right = !!(buttons & 2) - var middle = !!(buttons & 4) +var NEG_INFINITY3 = [-1e8, -1e8, -1e8] +var POS_INFINITY3 = [1e8, 1e8, 1e8] +var CLIP_GROUP = [NEG_INFINITY3, POS_INFINITY3] - var scale = 1.0 / element.clientHeight - var dx = scale * (x - camera._lastX) - var dy = scale * (y - camera._lastY) +function drawFull(shader, pshader, points, camera, pixelRatio, transparent, forceDraw) { + var gl = points.gl - var flipX = camera.flipX ? 1 : -1 - var flipY = camera.flipY ? 1 : -1 + if(transparent === points.projectHasAlpha || forceDraw) { + drawProject(pshader, points, camera, pixelRatio) + } - var drot = Math.PI * camera.rotateSpeed + if(transparent === points.hasAlpha || forceDraw) { - var t = now() + shader.bind() + var uniforms = shader.uniforms - if(camera._lastX !== -1 && camera._lastY !== -1) { - if((rotate && left && !ctrl && !alt && !shift) || (left && !ctrl && !alt && shift)) { - // Rotate - view.rotate(t, flipX * drot * dx, -flipY * drot * dy, 0) - } + uniforms.model = camera.model || IDENTITY + uniforms.view = camera.view || IDENTITY + uniforms.projection = camera.projection || IDENTITY - if((pan && left && !ctrl && !alt && !shift) || right || (left && ctrl && !alt && !shift)) { - // Pan - view.pan(t, -camera.translateSpeed * dx * distance, camera.translateSpeed * dy * distance, 0) - } + VIEW_SHAPE[0] = 2.0/gl.drawingBufferWidth + VIEW_SHAPE[1] = 2.0/gl.drawingBufferHeight + uniforms.screenSize = VIEW_SHAPE - if((zoom && left && !ctrl && !alt && !shift) || middle || (left && !ctrl && alt && !shift)) { - // Zoom - var kzoom = -camera.zoomSpeed * dy / window.innerHeight * (t - view.lastT()) * 100 - view.pan(t, 0, 0, distance * (Math.exp(kzoom) - 1)) - } - } + uniforms.highlightId = points.highlightId + uniforms.highlightScale = points.highlightScale - camera._lastX = x - camera._lastY = y - camera._lastMods = mods + uniforms.fragClipBounds = CLIP_GROUP + uniforms.clipBounds = points.axes.bounds - return true - } + uniforms.opacity = points.opacity + uniforms.pickGroup = points.pickId / 255.0 - camera.wheelListener = mouseWheel(element, function(dx, dy) { - // TODO remove now that we can disable scroll via scrollZoom? - if(camera.keyBindingMode === false) return - if(!camera.enableWheel) return + uniforms.pixelRatio = pixelRatio - var flipX = camera.flipX ? 1 : -1 - var flipY = camera.flipY ? 1 : -1 - var t = now() - if(Math.abs(dx) > Math.abs(dy)) { - view.rotate(t, 0, 0, -dx * flipX * Math.PI * camera.rotateSpeed / window.innerWidth) - } else { - if(!camera._ortho) { - var kzoom = -camera.zoomSpeed * flipY * dy / window.innerHeight * (t - view.lastT()) / 20.0 - view.pan(t, 0, 0, distance * (Math.exp(kzoom) - 1)) - } - } - }, true) - } + points.vao.bind() - camera.enableMouseListeners() + //Draw interior + points.vao.draw(gl.TRIANGLES, points.vertexCount) - return camera -} + //Draw edges + if(points.lineWidth > 0) { + gl.lineWidth(points.lineWidth * pixelRatio) + points.vao.draw(gl.LINES, points.lineVertexCount, points.vertexCount) + } -},{"3d-view":54,"has-passive-events":441,"mouse-change":483,"mouse-event-offset":484,"mouse-wheel":486,"right-now":542}],319:[function(_dereq_,module,exports){ -var glslify = _dereq_('glslify') -var createShader = _dereq_('gl-shader') + points.vao.unbind() + } -var vertSrc = glslify(["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}"]) -var fragSrc = glslify(["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}"]) -module.exports = function(gl) { - return createShader(gl, vertSrc, fragSrc, null, [ { name: 'position', type: 'vec2'}]) } -},{"gl-shader":335,"glslify":320}],320:[function(_dereq_,module,exports){ -arguments[4][257][0].apply(exports,arguments) -},{"dup":257}],321:[function(_dereq_,module,exports){ -'use strict' - -var createCamera = _dereq_('./camera.js') -var createAxes = _dereq_('gl-axes3d') -var axesRanges = _dereq_('gl-axes3d/properties') -var createSpikes = _dereq_('gl-spikes3d') -var createSelect = _dereq_('gl-select-static') -var createFBO = _dereq_('gl-fbo') -var drawTriangle = _dereq_('a-big-triangle') -var mouseChange = _dereq_('mouse-change') -var perspective = _dereq_('gl-mat4/perspective') -var ortho = _dereq_('gl-mat4/ortho') -var createShader = _dereq_('./lib/shader') -var isMobile = _dereq_('is-mobile')({ tablet: true, featureDetect: true }) +proto.draw = function(camera) { + var shader = this.useOrtho ? this.orthoShader : this.shader + drawFull(shader, this.projectShader, this, camera, this.pixelRatio, false, false) +} -module.exports = { - createScene: createScene, - createCamera: createCamera +proto.drawTransparent = function(camera) { + var shader = this.useOrtho ? this.orthoShader : this.shader + drawFull(shader, this.projectShader, this, camera, this.pixelRatio, true, false) } -function MouseSelect() { - this.mouse = [-1,-1] - this.screen = null - this.distance = Infinity - this.index = null - this.dataCoordinate = null - this.dataPosition = null - this.object = null - this.data = null +proto.drawPick = function(camera) { + var shader = this.useOrtho ? this.pickOrthoShader : this.pickPerspectiveShader + drawFull(shader, this.pickProjectShader, this, camera, 1, true, true) } -function getContext(canvas, options) { - var gl = null - try { - gl = canvas.getContext('webgl', options) - if(!gl) { - gl = canvas.getContext('experimental-webgl', options) - } - } catch(e) { +proto.pick = function(selected) { + if(!selected) { + return null + } + if(selected.id !== this.pickId) { + return null + } + var x = selected.value[2] + (selected.value[1]<<8) + (selected.value[0]<<16) + if(x >= this.pointCount || x < 0) { return null } - return gl -} -function roundUpPow10(x) { - var y = Math.round(Math.log(Math.abs(x)) / Math.log(10)) - if(y < 0) { - var base = Math.round(Math.pow(10, -y)) - return Math.ceil(x*base) / base - } else if(y > 0) { - var base = Math.round(Math.pow(10, y)) - return Math.ceil(x/base) * base + //Unpack result + var coord = this.points[x] + var result = this._selectResult + result.index = x + for(var i=0; i<3; ++i) { + result.position[i] = result.dataCoordinate[i] = coord[i] } - return Math.ceil(x) + return result } -function defaultBool(x) { - if(typeof x === 'boolean') { - return x +proto.highlight = function(selection) { + if(!selection) { + this.highlightId = [1,1,1,1] + } else { + var pointId = selection.index + var a0 = pointId &0xff + var a1 = (pointId>>8) &0xff + var a2 = (pointId>>16)&0xff + this.highlightId = [a0/255.0, a1/255.0, a2/255.0, 0] } - return true } -function createScene(options) { - options = options || {} - options.camera = options.camera || {} +function get_glyphData(glyphs, index, font, pixelRatio) { + var str - var canvas = options.canvas - if(!canvas) { - canvas = document.createElement('canvas') - if(options.container) { - var container = options.container - container.appendChild(canvas) + // use the data if presented in an array + if(Array.isArray(glyphs)) { + if(index < glyphs.length) { + str = glyphs[index] } else { - document.body.appendChild(canvas) + str = undefined } + } else { + str = glyphs } - var gl = options.gl - if(!gl) { - if(options.glOptions) { - isMobile = !!options.glOptions.preserveDrawingBuffer - } + str = getSimpleString(str) // this would handle undefined cases - gl = getContext(canvas, - options.glOptions || { - premultipliedAlpha: true, - antialias: true, - preserveDrawingBuffer: isMobile - }) - } - if(!gl) { - throw new Error('webgl not supported') + var visible = true + if(isAllBlank(str)) { + str = '▼' // Note: this special character may have minimum number of surfaces + visible = false } - //Initial bounds - var bounds = options.bounds || [[-10,-10,-10], [10,10,10]] + var glyph = getGlyph(str, font, pixelRatio) - //Create selection - var selection = new MouseSelect() + return { mesh:glyph[0], + lines:glyph[1], + bounds:glyph[2], + visible:visible }; +} - //Accumulation buffer - var accumBuffer = createFBO(gl, - gl.drawingBufferWidth, gl.drawingBufferHeight, { - preferFloat: !isMobile - }) - var accumShader = createShader(gl) - var isOrtho = - (options.cameraObject && options.cameraObject._ortho === true) || - (options.camera.projection && options.camera.projection.type === 'orthographic') || - false +proto.update = function(options) { - //Create a camera - var cameraOptions = { - eye: options.camera.eye || [2,0,0], - center: options.camera.center || [0,0,0], - up: options.camera.up || [0,1,0], - zoomMin: options.camera.zoomMax || 0.1, - zoomMax: options.camera.zoomMin || 100, - mode: options.camera.mode || 'turntable', - _ortho: isOrtho + options = options || {} + + if('perspective' in options) { + this.useOrtho = !options.perspective + } + if('orthographic' in options) { + this.useOrtho = !!options.orthographic + } + if('lineWidth' in options) { + this.lineWidth = options.lineWidth + } + if('project' in options) { + if(Array.isArray(options.project)) { + this.axesProject = options.project + } else { + var v = !!options.project + this.axesProject = [v,v,v] + } + } + if('projectScale' in options) { + if(Array.isArray(options.projectScale)) { + this.projectScale = options.projectScale.slice() + } else { + var s = +options.projectScale + this.projectScale = [s,s,s] + } } - //Create axes - var axesOptions = options.axes || {} - var axes = createAxes(gl, axesOptions) - axes.enable = !axesOptions.disable + this.projectHasAlpha = false // default to no transparent draw + if('projectOpacity' in options) { + if(Array.isArray(options.projectOpacity)) { + this.projectOpacity = options.projectOpacity.slice() + } else { + var s = +options.projectOpacity + this.projectOpacity = [s,s,s] + } + for(var i=0; i<3; ++i) { + this.projectOpacity[i] = fixOpacity(this.projectOpacity[i]); + if(this.projectOpacity[i] < 1) { + this.projectHasAlpha = true; + } + } + } - //Create spikes - var spikeOptions = options.spikes || {} - var spikes = createSpikes(gl, spikeOptions) + this.hasAlpha = false // default to no transparent draw + if('opacity' in options) { + this.opacity = fixOpacity(options.opacity) + if(this.opacity < 1) { + this.hasAlpha = true; + } + } - //Object list is empty initially - var objects = [] - var pickBufferIds = [] - var pickBufferCount = [] - var pickBuffers = [] + //Set dirty flag + this.dirty = true - //Dirty flag, skip redraw if scene static - var dirty = true - var pickDirty = true + //Create new buffers + var points = options.position - var projection = new Array(16) - var model = new Array(16) + //Text font + var font = options.font || 'normal' + var alignment = options.alignment || [0,0] - var cameraParams = { - view: null, - projection: projection, - model: model, - _ortho: false + var alignmentX; + var alignmentY; + if (alignment.length === 2) { + alignmentX = alignment[0] + alignmentY = alignment[1] + } else { + alignmentX = [] + alignmentY = [] + for (var i = 0; i < alignment.length; ++i) { + alignmentX[i] = alignment[i][0] + alignmentY[i] = alignment[i][1] + } } - var pickDirty = true + //Bounds + var lowerBound = [ Infinity, Infinity, Infinity] + var upperBound = [-Infinity,-Infinity,-Infinity] - var viewShape = [ gl.drawingBufferWidth, gl.drawingBufferHeight ] + //Unpack options + var glyphs = options.glyph + var colors = options.color + var sizes = options.size + var angles = options.angle + var lineColors = options.lineColor - var camera = options.cameraObject || createCamera(canvas, cameraOptions) + //Picking geometry + var pickCounter = -1 - //Create scene object - var scene = { - gl: gl, - contextLost: false, - pixelRatio: options.pixelRatio || 1, - canvas: canvas, - selection: selection, - camera: camera, - axes: axes, - axesPixels: null, - spikes: spikes, - bounds: bounds, - objects: objects, - shape: viewShape, - aspect: options.aspectRatio || [1,1,1], - pickRadius: options.pickRadius || 10, - zNear: options.zNear || 0.01, - zFar: options.zFar || 1000, - fovy: options.fovy || Math.PI/4, - clearColor: options.clearColor || [0,0,0,0], - autoResize: defaultBool(options.autoResize), - autoBounds: defaultBool(options.autoBounds), - autoScale: !!options.autoScale, - autoCenter: defaultBool(options.autoCenter), - clipToBounds: defaultBool(options.clipToBounds), - snapToData: !!options.snapToData, - onselect: options.onselect || null, - onrender: options.onrender || null, - onclick: options.onclick || null, - cameraParams: cameraParams, - oncontextloss: null, - mouseListener: null, - _stopped: false, + //First do pass to compute buffer sizes + var triVertexCount = 0 + var lineVertexCount = 0 - getAspectratio: function() { - return { - x: this.aspect[0], - y: this.aspect[1], - z: this.aspect[2] - } - }, + var numPoints = 0; - setAspectratio: function(aspectratio) { - this.aspect[0] = aspectratio.x - this.aspect[1] = aspectratio.y - this.aspect[2] = aspectratio.z - pickDirty = true - }, + if(points.length) { - setBounds: function(axisIndex, range) { - this.bounds[0][axisIndex] = range.min - this.bounds[1][axisIndex] = range.max - }, + //Count number of points and buffer size + numPoints = points.length - setClearColor: function(clearColor) { - this.clearColor = clearColor - }, + count_loop: + for(var i=0; i 0 && pickBufferCount[numPick-1] === 0) { - pickBufferCount.pop() - pickBuffers.pop().dispose() - } - } + if(vertexCount > 0) { + var triOffset = 0 + var lineOffset = triVertexCount + var color = [0,0,0,1] + var lineColor = [0,0,0,1] - scene.update = function(options) { + var isColorArray = Array.isArray(colors) && Array.isArray(colors[0]) + var isLineColorArray = Array.isArray(lineColors) && Array.isArray(lineColors[0]) - if(scene._stopped) { - return - } - options = options || {} - dirty = true - pickDirty = true - } + fill_loop: + for(var i=0; i selection.distance) { - continue - } - for(var j=0; j 0) ? (1 - glyphBounds[0][0]) : + (textOffsetX < 0) ? (1 + glyphBounds[1][0]) : 1; + + textOffsetY *= (textOffsetY > 0) ? (1 - glyphBounds[0][1]) : + (textOffsetY < 0) ? (1 + glyphBounds[1][1]) : 1; + + var textOffset = [textOffsetX, textOffsetY] + + //Write out inner marker + var cells = glyphMesh.cells || [] + var verts = glyphMesh.positions || [] + + for(var j=0; j 0) { - //General strategy: 3 steps - // 1. render non-transparent objects - // 2. accumulate transparent objects into separate fbo - // 3. composite final scene + //Draw border + var w = lineWidth * pixelRatio + boxes.drawBox(loX-w, loY-w, hiX+w, loY+w, borderColor) + boxes.drawBox(loX-w, hiY-w, hiX+w, hiY+w, borderColor) + boxes.drawBox(loX-w, loY-w, loX+w, hiY+w, borderColor) + boxes.drawBox(hiX-w, loY-w, hiX+w, hiY+w, borderColor) + } +} - //Clear FBO - scene.clearRGBA() +proto.update = function(options) { + options = options || {} - gl.depthMask(true) - gl.colorMask(true, true, true, true) - gl.enable(gl.DEPTH_TEST) - gl.depthFunc(gl.LEQUAL) - gl.disable(gl.BLEND) - gl.disable(gl.CULL_FACE) //most visualization surfaces are 2 sided + this.innerFill = !!options.innerFill + this.outerFill = !!options.outerFill + this.innerColor = (options.innerColor || [0,0,0,0.5]).slice() + this.outerColor = (options.outerColor || [0,0,0,0.5]).slice() + this.borderColor = (options.borderColor || [0,0,0,1]).slice() + this.borderWidth = options.borderWidth || 0 + this.selectBox = (options.selectBox || this.selectBox).slice() +} - //Render opaque pass - var hasTransparent = false - if(axes.enable) { - hasTransparent = hasTransparent || axes.isTransparent() - axes.draw(cameraParams) - } - spikes.axes = axes - if(selection.object) { - spikes.draw(cameraParams) - } +proto.dispose = function() { + this.boxBuffer.dispose() + this.boxShader.dispose() + this.plot.removeOverlay(this) +} - gl.disable(gl.CULL_FACE) //most visualization surfaces are 2 sided +function createSelectBox(plot, options) { + var gl = plot.gl + var buffer = createBuffer(gl, [ + 0, 0, + 0, 1, + 1, 0, + 1, 1 ]) + var shader = createShader(gl, SHADERS.boxVertex, SHADERS.boxFragment) + var selectBox = new SelectBox(plot, buffer, shader) + selectBox.update(options) + plot.addOverlay(selectBox) + return selectBox +} - for(var i=0; i this.buffer.length) { + pool.free(this.buffer) + var buffer = this.buffer = pool.mallocUint8(nextPow2(r*c*4)) + for(var i=0; i 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"]) -exports.pickVertex = glslify(["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"]) -exports.pickFragment = glslify(["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"]) +function createSelectBuffer(gl, shape) { + var width = shape[0] + var height = shape[1] + var options = {} + var fbo = createFBO(gl, width, height, options) + var buffer = pool.mallocUint8(width*height*4) + return new SelectBuffer(gl, fbo, buffer) +} -},{"glslify":323}],323:[function(_dereq_,module,exports){ -arguments[4][257][0].apply(exports,arguments) -},{"dup":257}],324:[function(_dereq_,module,exports){ +},{"bit-twiddle":100,"gl-fbo":269,"ndarray":480,"typedarray-pool":611}],334:[function(_dereq_,module,exports){ 'use strict' -var createShader = _dereq_('gl-shader') -var createBuffer = _dereq_('gl-buffer') +var createUniformWrapper = _dereq_('./lib/create-uniforms') +var createAttributeWrapper = _dereq_('./lib/create-attributes') +var makeReflect = _dereq_('./lib/reflect') +var shaderCache = _dereq_('./lib/shader-cache') +var runtime = _dereq_('./lib/runtime-reflect') +var GLError = _dereq_("./lib/GLError") -var pool = _dereq_('typedarray-pool') +//Shader object +function Shader(gl) { + this.gl = gl + this.gl.lastAttribCount = 0 // fixme where else should we store info, safe but not nice on the gl object -var SHADERS = _dereq_('./lib/shader') + //Default initialize these to null + this._vref = + this._fref = + this._relink = + this.vertShader = + this.fragShader = + this.program = + this.attributes = + this.uniforms = + this.types = null +} -module.exports = createPointcloud2D +var proto = Shader.prototype -function Pointcloud2D(plot, offsetBuffer, pickBuffer, shader, pickShader) { - this.plot = plot - this.offsetBuffer = offsetBuffer - this.pickBuffer = pickBuffer - this.shader = shader - this.pickShader = pickShader - this.sizeMin = 0.5 - this.sizeMinCap = 2 - this.sizeMax = 20 - this.areaRatio = 1.0 - this.pointCount = 0 - this.color = [1, 0, 0, 1] - this.borderColor = [0, 0, 0, 1] - this.blend = false - this.pickOffset = 0 - this.points = null -} +proto.bind = function() { + if(!this.program) { + this._relink() + } -var proto = Pointcloud2D.prototype + // ensuring that we have the right number of enabled vertex attributes + var i + var newAttribCount = this.gl.getProgramParameter(this.program, this.gl.ACTIVE_ATTRIBUTES) // more robust approach + //var newAttribCount = Object.keys(this.attributes).length // avoids the probably immaterial introspection slowdown + var oldAttribCount = this.gl.lastAttribCount + if(newAttribCount > oldAttribCount) { + for(i = oldAttribCount; i < newAttribCount; i++) { + this.gl.enableVertexAttribArray(i) + } + } else if(oldAttribCount > newAttribCount) { + for(i = newAttribCount; i < oldAttribCount; i++) { + this.gl.disableVertexAttribArray(i) + } + } -proto.dispose = function() { - this.shader.dispose() - this.pickShader.dispose() - this.offsetBuffer.dispose() - this.pickBuffer.dispose() - this.plot.removeObject(this) + this.gl.lastAttribCount = newAttribCount + + this.gl.useProgram(this.program) } -proto.update = function(options) { +proto.dispose = function() { - var i + // disabling vertex attributes so new shader starts with zero + // and it's also useful if all shaders are disposed but the + // gl context is reused for subsequent replotting + var oldAttribCount = this.gl.lastAttribCount + for (var i = 0; i < oldAttribCount; i++) { + this.gl.disableVertexAttribArray(i) + } + this.gl.lastAttribCount = 0 - options = options || {} + if(this._fref) { + this._fref.dispose() + } + if(this._vref) { + this._vref.dispose() + } + this.attributes = + this.types = + this.vertShader = + this.fragShader = + this.program = + this._relink = + this._fref = + this._vref = null +} - function dflt(opt, value) { - if(opt in options) { - return options[opt] - } - return value +function compareAttributes(a, b) { + if(a.name < b.name) { + return -1 } + return 1 +} - this.sizeMin = dflt('sizeMin', 0.5) - // this.sizeMinCap = dflt('sizeMinCap', 2) - this.sizeMax = dflt('sizeMax', 20) - this.color = dflt('color', [1, 0, 0, 1]).slice() - this.areaRatio = dflt('areaRatio', 1) - this.borderColor = dflt('borderColor', [0, 0, 0, 1]).slice() - this.blend = dflt('blend', false) +//Update export hook for glslify-live +proto.update = function( + vertSource + , fragSource + , uniforms + , attributes) { - //Update point data + //If only one object passed, assume glslify style output + if(!fragSource || arguments.length === 1) { + var obj = vertSource + vertSource = obj.vertex + fragSource = obj.fragment + uniforms = obj.uniforms + attributes = obj.attributes + } - // Attempt straight-through processing (STP) to avoid allocation and copy - // TODO eventually abstract out STP logic, maybe into `pool` or a layer above - var pointCount = options.positions.length >>> 1 - var dataStraightThrough = options.positions instanceof Float32Array - var idStraightThrough = options.idToIndex instanceof Int32Array && options.idToIndex.length >= pointCount // permit larger to help reuse + var wrapper = this + var gl = wrapper.gl - var data = options.positions - var packed = dataStraightThrough ? data : pool.mallocFloat32(data.length) - var packedId = idStraightThrough ? options.idToIndex : pool.mallocInt32(pointCount) + //Compile vertex and fragment shaders + var pvref = wrapper._vref + wrapper._vref = shaderCache.shader(gl, gl.VERTEX_SHADER, vertSource) + if(pvref) { + pvref.dispose() + } + wrapper.vertShader = wrapper._vref.shader + var pfref = this._fref + wrapper._fref = shaderCache.shader(gl, gl.FRAGMENT_SHADER, fragSource) + if(pfref) { + pfref.dispose() + } + wrapper.fragShader = wrapper._fref.shader - if(!dataStraightThrough) { - packed.set(data) + //If uniforms/attributes is not specified, use RT reflection + if(!uniforms || !attributes) { + + //Create initial test program + var testProgram = gl.createProgram() + gl.attachShader(testProgram, wrapper.fragShader) + gl.attachShader(testProgram, wrapper.vertShader) + gl.linkProgram(testProgram) + if(!gl.getProgramParameter(testProgram, gl.LINK_STATUS)) { + var errLog = gl.getProgramInfoLog(testProgram) + throw new GLError(errLog, 'Error linking program:' + errLog) + } + + //Load data from runtime + uniforms = uniforms || runtime.uniforms(gl, testProgram) + attributes = attributes || runtime.attributes(gl, testProgram) + + //Release test program + gl.deleteProgram(testProgram) } - if(!idStraightThrough) { - packed.set(data) - for(i = 0; i < pointCount; i++) { - packedId[i] = i + //Sort attributes lexicographically + // overrides undefined WebGL behavior for attribute locations + attributes = attributes.slice() + attributes.sort(compareAttributes) + + //Convert attribute types, read out locations + var attributeUnpacked = [] + var attributeNames = [] + var attributeLocations = [] + var i + for(i=0; i= 0) { + var size = attr.type.charAt(attr.type.length-1)|0 + var locVector = new Array(size) + for(var j=0; j= 0) { + curLocation += 1 + } + attributeLocations[i] = curLocation + } + } - this.offsetBuffer.update(packed) - this.pickBuffer.update(packedId) + //Rebuild program and recompute all uniform locations + var uniformLocations = new Array(uniforms.length) + function relink() { + wrapper.program = shaderCache.program( + gl + , wrapper._vref + , wrapper._fref + , attributeNames + , attributeLocations) - if(!dataStraightThrough) { - pool.free(packed) + for(var i=0; i>> 1 - var i - for(i = 0; i < length; i++) { - var x = points[i * 2] - var y = points[i * 2 + 1] - if(x >= dataBox[0] && x <= dataBox[2] && y >= dataBox[1] && y <= dataBox[3]) - visiblePointCountEstimate++ - } - return visiblePointCountEstimate +//Compiles and links a shader program with the given attribute and vertex list +function createShader( + gl + , vertSource + , fragSource + , uniforms + , attributes) { + + var shader = new Shader(gl) + + shader.update( + vertSource + , fragSource + , uniforms + , attributes) + + return shader } -proto.unifiedDraw = (function() { - var MATRIX = [1, 0, 0, - 0, 1, 0, - 0, 0, 1] - var PICK_VEC4 = [0, 0, 0, 0] -return function(pickOffset) { - var pick = pickOffset !== void(0) +module.exports = createShader - var shader = pick ? this.pickShader : this.shader - var gl = this.plot.gl - var dataBox = this.plot.dataBox +},{"./lib/GLError":335,"./lib/create-attributes":336,"./lib/create-uniforms":337,"./lib/reflect":338,"./lib/runtime-reflect":339,"./lib/shader-cache":340}],335:[function(_dereq_,module,exports){ +function GLError (rawError, shortMessage, longMessage) { + this.shortMessage = shortMessage || '' + this.longMessage = longMessage || '' + this.rawError = rawError || '' + this.message = + 'gl-shader: ' + (shortMessage || rawError || '') + + (longMessage ? '\n'+longMessage : '') + this.stack = (new Error()).stack +} +GLError.prototype = new Error +GLError.prototype.name = 'GLError' +GLError.prototype.constructor = GLError +module.exports = GLError - if(this.pointCount === 0) { - return pickOffset - } +},{}],336:[function(_dereq_,module,exports){ +'use strict' - var dataX = dataBox[2] - dataBox[0] - var dataY = dataBox[3] - dataBox[1] +module.exports = createAttributeWrapper - var visiblePointCountEstimate = count(this.points, dataBox) - var basicPointSize = this.plot.pickPixelRatio * Math.max(Math.min(this.sizeMinCap, this.sizeMin), Math.min(this.sizeMax, this.sizeMax / Math.pow(visiblePointCountEstimate, 0.33333))) +var GLError = _dereq_("./GLError") - MATRIX[0] = 2.0 / dataX - MATRIX[4] = 2.0 / dataY - MATRIX[6] = -2.0 * dataBox[0] / dataX - 1.0 - MATRIX[7] = -2.0 * dataBox[1] / dataY - 1.0 +function ShaderAttribute( + gl + , wrapper + , index + , locations + , dimension + , constFunc) { + this._gl = gl + this._wrapper = wrapper + this._index = index + this._locations = locations + this._dimension = dimension + this._constFunc = constFunc +} - this.offsetBuffer.bind() +var proto = ShaderAttribute.prototype - shader.bind() - shader.attributes.position.pointer() - shader.uniforms.matrix = MATRIX - shader.uniforms.color = this.color - shader.uniforms.borderColor = this.borderColor - shader.uniforms.pointCloud = basicPointSize < 5 - shader.uniforms.pointSize = basicPointSize - shader.uniforms.centerFraction = Math.min(1, Math.max(0, Math.sqrt(1 - this.areaRatio))) +proto.pointer = function setAttribPointer( + type + , normalized + , stride + , offset) { - if(pick) { + var self = this + var gl = self._gl + var location = self._locations[self._index] - PICK_VEC4[0] = ( pickOffset & 0xff) - PICK_VEC4[1] = ((pickOffset >> 8) & 0xff) - PICK_VEC4[2] = ((pickOffset >> 16) & 0xff) - PICK_VEC4[3] = ((pickOffset >> 24) & 0xff) + gl.vertexAttribPointer( + location + , self._dimension + , type || gl.FLOAT + , !!normalized + , stride || 0 + , offset || 0) + gl.enableVertexAttribArray(location) +} - this.pickBuffer.bind() - shader.attributes.pickId.pointer(gl.UNSIGNED_BYTE) - shader.uniforms.pickOffset = PICK_VEC4 - this.pickOffset = pickOffset - } +proto.set = function(x0, x1, x2, x3) { + return this._constFunc(this._locations[this._index], x0, x1, x2, x3) +} - // Worth switching these off, but we can't make assumptions about other - // renderers, so let's restore it after each draw - var blend = gl.getParameter(gl.BLEND) - var dither = gl.getParameter(gl.DITHER) +Object.defineProperty(proto, 'location', { + get: function() { + return this._locations[this._index] + } + , set: function(v) { + if(v !== this._locations[this._index]) { + this._locations[this._index] = v|0 + this._wrapper.program = null + } + return v|0 + } +}) - if(blend && !this.blend) - gl.disable(gl.BLEND) - if(dither) - gl.disable(gl.DITHER) +//Adds a vector attribute to obj +function addVectorAttribute( + gl + , wrapper + , index + , locations + , dimension + , obj + , name) { - gl.drawArrays(gl.POINTS, 0, this.pointCount) + //Construct constant function + var constFuncArgs = [ 'gl', 'v' ] + var varNames = [] + for(var i=0; i= pickOffset + pointCount) { - return null - } - var pointId = value - pickOffset - var points = this.points - return { - object: this, - pointId: pointId, - dataCoord: [points[2 * pointId], points[2 * pointId + 1] ] + var parts = new Array(dimension) + var attrs = new Array(dimension) + for(var i=0; i 0.000001) { - // standard case (slerp) - omega = Math.acos(cosom) - sinom = Math.sin(omega) - scale0 = Math.sin((1.0 - t) * omega) / sinom - scale1 = Math.sin(t * omega) / sinom - } else { - // "from" and "to" quaternions are very close - // ... so we can do a linear interpolation - scale0 = 1.0 - t - scale1 = t + default: + if(type.indexOf('vec') >= 0) { + var d = type.charCodeAt(type.length-1) - 48 + if(d < 2 || d > 4) { + throw new GLError('', 'Invalid data type for attribute ' + name + ': ' + type) + } + addVectorAttribute( + gl + , wrapper + , locs[0] + , locations + , d + , obj + , name) + } else if(type.indexOf('mat') >= 0) { + var d = type.charCodeAt(type.length-1) - 48 + if(d < 2 || d > 4) { + throw new GLError('', 'Invalid data type for attribute ' + name + ': ' + type) + } + addMatrixAttribute( + gl + , wrapper + , locs + , locations + , d + , obj + , name) + } else { + throw new GLError('', 'Unknown data type for attribute ' + name + ': ' + type) + } + break + } } - // calculate final values - out[0] = scale0 * ax + scale1 * bx - out[1] = scale0 * ay + scale1 * by - out[2] = scale0 * az + scale1 * bz - out[3] = scale0 * aw + scale1 * bw - - return out + return obj } -},{}],326:[function(_dereq_,module,exports){ -'use strict'; +},{"./GLError":335}],337:[function(_dereq_,module,exports){ +'use strict' -module.exports = function(a){ - return (!a && a !== 0) ? '' : a.toString(); -} +var coallesceUniforms = _dereq_('./reflect') +var GLError = _dereq_("./GLError") -},{}],327:[function(_dereq_,module,exports){ -"use strict" +module.exports = createUniformWrapper -var vectorizeText = _dereq_("vectorize-text") +//Binds a function and returns a value +function identity(x) { + var c = new Function('y', 'return function(){return y}') + return c(x) +} -module.exports = getGlyph +function makeVector(length, fill) { + var result = new Array(length) + for(var i=0; i 4) { + throw new GLError('', 'Invalid data type') + } + switch(type.charAt(0)) { + case 'b': + case 'i': + return 'gl.uniform' + d + 'iv(locations[' + index + '],obj' + path + ')' + case 'v': + return 'gl.uniform' + d + 'fv(locations[' + index + '],obj' + path + ')' + default: + throw new GLError('', 'Unrecognized data type for vector ' + name + ': ' + type) + } + } else if(type.indexOf('mat') === 0 && type.length === 4) { + var d = type.charCodeAt(type.length-1) - 48 + if(d < 2 || d > 4) { + throw new GLError('', 'Invalid uniform dimension type for matrix ' + name + ': ' + type) + } + return 'gl.uniformMatrix' + d + 'fv(locations[' + index + '],false,obj' + path + ')' + } else { + throw new GLError('', 'Unknown uniform data type for ' + name + ': ' + type) + } + break } } - //Get line and triangle meshes for glyph - config.triangles = true - var triSymbol = vectorizeText(symbol, config) - config.triangles = false - var lineSymbol = vectorizeText(symbol, config) - - var i, j - - if(pixelRatio && pixelRatio !== 1) { - for(i = 0; i < triSymbol.positions.length; ++i){ - for(j = 0; j < triSymbol.positions[i].length; ++j){ - triSymbol.positions[i][j] /= pixelRatio; + function enumerateIndices(prefix, type) { + if(typeof type !== 'object') { + return [ [prefix, type] ] + } + var indices = [] + for(var id in type) { + var prop = type[id] + var tprefix = prefix + if(parseInt(id) + '' === id) { + tprefix += '[' + id + ']' + } else { + tprefix += '.' + id + } + if(typeof prop === 'object') { + indices.push.apply(indices, enumerateIndices(tprefix, prop)) + } else { + indices.push([tprefix, prop]) } } + return indices + } - for(i = 0; i < lineSymbol.positions.length; ++i){ - for(j = 0; j < lineSymbol.positions[i].length; ++j){ - lineSymbol.positions[i][j] /= pixelRatio; + function makeSetter(type) { + var code = [ 'return function updateProperty(obj){' ] + var indices = enumerateIndices('', type) + for(var i=0; i 4) { + throw new GLError('', 'Invalid data type') + } + if(type.charAt(0) === 'b') { + return makeVector(d, false) + } + return makeVector(d, 0) + } else if(type.indexOf('mat') === 0 && type.length === 4) { + var d = type.charCodeAt(type.length-1) - 48 + if(d < 2 || d > 4) { + throw new GLError('', 'Invalid uniform dimension type for matrix ' + name + ': ' + type) + } + return makeVector(d*d, 0) + } else { + throw new GLError('', 'Unknown uniform data type for ' + name + ': ' + type) + } + break } } - //Save cached symbol - return fontCache[symbol] = [triSymbol, lineSymbol, bounds] -} -},{"vectorize-text":600}],328:[function(_dereq_,module,exports){ -var createShaderWrapper = _dereq_('gl-shader') -var glslify = _dereq_('glslify') - -var perspectiveVertSrc = glslify(["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 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}"]) -var orthographicVertSrc = glslify(["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}"]) -var projectionVertSrc = glslify(["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"]) -var drawFragSrc = glslify(["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"]) -var pickFragSrc = glslify(["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}"]) - -var ATTRIBUTES = [ - {name: 'position', type: 'vec3'}, - {name: 'color', type: 'vec4'}, - {name: 'glyph', type: 'vec2'}, - {name: 'id', type: 'vec4'} -] - -var perspective = { - vertex: perspectiveVertSrc, - fragment: drawFragSrc, - attributes: ATTRIBUTES - }, - ortho = { - vertex: orthographicVertSrc, - fragment: drawFragSrc, - attributes: ATTRIBUTES - }, - project = { - vertex: projectionVertSrc, - fragment: drawFragSrc, - attributes: ATTRIBUTES - }, - pickPerspective = { - vertex: perspectiveVertSrc, - fragment: pickFragSrc, - attributes: ATTRIBUTES - }, - pickOrtho = { - vertex: orthographicVertSrc, - fragment: pickFragSrc, - attributes: ATTRIBUTES - }, - pickProject = { - vertex: projectionVertSrc, - fragment: pickFragSrc, - attributes: ATTRIBUTES + function storeProperty(obj, prop, type) { + if(typeof type === 'object') { + var child = processObject(type) + Object.defineProperty(obj, prop, { + get: identity(child), + set: makeSetter(type), + enumerable: true, + configurable: false + }) + } else { + if(locations[type]) { + Object.defineProperty(obj, prop, { + get: makeGetter(type), + set: makeSetter(type), + enumerable: true, + configurable: false + }) + } else { + obj[prop] = defaultValue(uniforms[type].type) + } + } } -function createShader(gl, src) { - var shader = createShaderWrapper(gl, src) - var attr = shader.attributes - attr.position.location = 0 - attr.color.location = 1 - attr.glyph.location = 2 - attr.id.location = 3 - return shader -} + function processObject(obj) { + var result + if(Array.isArray(obj)) { + result = new Array(obj.length) + for(var i=0; i 1) { + if(!(x[0] in o)) { + o[x[0]] = [] + } + o = o[x[0]] + for(var k=1; k 1) return 1 - return a +function runtimeUniforms(gl, program) { + var numUniforms = gl.getProgramParameter(program, gl.ACTIVE_UNIFORMS) + var result = [] + for(var i=0; i 1) { + for(var j=0; j Math.abs(mdv[1])) { - var tmp = mdu - mdu = mdv - mdv = tmp - tmp = du - du = dv - dv = tmp - var t = u - u = v - v = t - } - if(mdu[0] < 0) { - du[u] = -1 - } - if(mdv[1] > 0) { - dv[v] = -1 - } - var su = 0.0 - var sv = 0.0 - for(var j=0; j<4; ++j) { - su += Math.pow(model[4*u+j], 2) - sv += Math.pow(model[4*v+j], 2) - } - du[u] /= Math.sqrt(su) - dv[v] /= Math.sqrt(sv) - uniforms.axes[0] = du - uniforms.axes[1] = dv +proto.draw = function() { + var spikeEnable = this.enable + var spikeWidth = this.width + var spikeColor = this.color + var spikeCenter = this.center + var plot = this.plot + var line = plot.line - //Update fragment clip bounds - uniforms.fragClipBounds[0] = setComponent(SCRATCH_VEC, clipBounds[0], i, -1e8) - uniforms.fragClipBounds[1] = setComponent(SCRATCH_VEC, clipBounds[1], i, 1e8) + var dataBox = plot.dataBox + var viewPixels = plot.viewBox - points.vao.bind() + line.bind() - //Draw interior - points.vao.draw(gl.TRIANGLES, points.vertexCount) + if(dataBox[0] <= spikeCenter[0] && spikeCenter[0] <= dataBox[2] && + dataBox[1] <= spikeCenter[1] && spikeCenter[1] <= dataBox[3]) { - //Draw edges - if(points.lineWidth > 0) { - gl.lineWidth(points.lineWidth * pixelRatio) - points.vao.draw(gl.LINES, points.lineVertexCount, points.vertexCount) - } + var centerX = viewPixels[0] + (spikeCenter[0] - dataBox[0]) / (dataBox[2] - dataBox[0]) * (viewPixels[2] - viewPixels[0]) + var centerY = viewPixels[1] + (spikeCenter[1] - dataBox[1]) / (dataBox[3] - dataBox[1]) * (viewPixels[3] - viewPixels[1]) - points.vao.unbind() + if(spikeEnable[0]) { + line.drawLine( + centerX, centerY, + viewPixels[0], centerY, + spikeWidth[0], spikeColor[0]) + } + if(spikeEnable[1]) { + line.drawLine( + centerX, centerY, + centerX, viewPixels[1], + spikeWidth[1], spikeColor[1]) + } + if(spikeEnable[2]) { + line.drawLine( + centerX, centerY, + viewPixels[2], centerY, + spikeWidth[2], spikeColor[2]) + } + if(spikeEnable[3]) { + line.drawLine( + centerX, centerY, + centerX, viewPixels[3], + spikeWidth[3], spikeColor[3]) + } } } +proto.dispose = function() { + this.plot.removeOverlay(this) +} -var NEG_INFINITY3 = [-1e8, -1e8, -1e8] -var POS_INFINITY3 = [1e8, 1e8, 1e8] -var CLIP_GROUP = [NEG_INFINITY3, POS_INFINITY3] - -function drawFull(shader, pshader, points, camera, pixelRatio, transparent, forceDraw) { - var gl = points.gl - - if(transparent === points.projectHasAlpha || forceDraw) { - drawProject(pshader, points, camera, pixelRatio) - } - - if(transparent === points.hasAlpha || forceDraw) { +function createSpikes2D(plot, options) { + var spikes = new GLSpikes2D(plot) + spikes.update(options) + plot.addOverlay(spikes) + return spikes +} - shader.bind() - var uniforms = shader.uniforms +},{}],342:[function(_dereq_,module,exports){ +arguments[4][257][0].apply(exports,arguments) +},{"dup":257}],343:[function(_dereq_,module,exports){ +'use strict' - uniforms.model = camera.model || IDENTITY - uniforms.view = camera.view || IDENTITY - uniforms.projection = camera.projection || IDENTITY +var glslify = _dereq_('glslify') +var createShader = _dereq_('gl-shader') - VIEW_SHAPE[0] = 2.0/gl.drawingBufferWidth - VIEW_SHAPE[1] = 2.0/gl.drawingBufferHeight - uniforms.screenSize = VIEW_SHAPE +var vertSrc = glslify(["precision mediump float;\n#define GLSLIFY 1\n\nattribute vec3 position, color;\nattribute float weight;\n\nuniform mat4 model, view, projection;\nuniform vec3 coordinates[3];\nuniform vec4 colors[3];\nuniform vec2 screenShape;\nuniform float lineWidth;\n\nvarying vec4 fragColor;\n\nvoid main() {\n vec3 vertexPosition = mix(coordinates[0],\n mix(coordinates[2], coordinates[1], 0.5 * (position + 1.0)), abs(position));\n\n vec4 clipPos = projection * view * model * vec4(vertexPosition, 1.0);\n vec2 clipOffset = (projection * view * model * vec4(color, 0.0)).xy;\n vec2 delta = weight * clipOffset * screenShape;\n vec2 lineOffset = normalize(vec2(delta.y, -delta.x)) / screenShape;\n\n gl_Position = vec4(clipPos.xy + clipPos.w * 0.5 * lineWidth * lineOffset, clipPos.z, clipPos.w);\n fragColor = color.x * colors[0] + color.y * colors[1] + color.z * colors[2];\n}\n"]) +var fragSrc = glslify(["precision mediump float;\n#define GLSLIFY 1\n\nvarying vec4 fragColor;\n\nvoid main() {\n gl_FragColor = fragColor;\n}"]) - uniforms.highlightId = points.highlightId - uniforms.highlightScale = points.highlightScale +module.exports = function(gl) { + return createShader(gl, vertSrc, fragSrc, null, [ + {name: 'position', type: 'vec3'}, + {name: 'color', type: 'vec3'}, + {name: 'weight', type: 'float'} + ]) +} - uniforms.fragClipBounds = CLIP_GROUP - uniforms.clipBounds = points.axes.bounds +},{"gl-shader":334,"glslify":342}],344:[function(_dereq_,module,exports){ +'use strict' - uniforms.opacity = points.opacity - uniforms.pickGroup = points.pickId / 255.0 +var createBuffer = _dereq_('gl-buffer') +var createVAO = _dereq_('gl-vao') +var createShader = _dereq_('./shaders/index') - uniforms.pixelRatio = pixelRatio +module.exports = createSpikes - points.vao.bind() +var identity = [1,0,0,0, + 0,1,0,0, + 0,0,1,0, + 0,0,0,1] - //Draw interior - points.vao.draw(gl.TRIANGLES, points.vertexCount) +function AxisSpikes(gl, buffer, vao, shader) { + this.gl = gl + this.buffer = buffer + this.vao = vao + this.shader = shader + this.pixelRatio = 1 + this.bounds = [[-1000,-1000,-1000], [1000,1000,1000]] + this.position = [0,0,0] + this.lineWidth = [2,2,2] + this.colors = [[0,0,0,1], [0,0,0,1], [0,0,0,1]] + this.enabled = [true,true,true] + this.drawSides = [true,true,true] + this.axes = null +} - //Draw edges - if(points.lineWidth > 0) { - gl.lineWidth(points.lineWidth * pixelRatio) - points.vao.draw(gl.LINES, points.lineVertexCount, points.vertexCount) - } +var proto = AxisSpikes.prototype - points.vao.unbind() - } +var OUTER_FACE = [0,0,0] +var INNER_FACE = [0,0,0] +var SHAPE = [0,0] +proto.isTransparent = function() { + return false } +proto.drawTransparent = function(camera) {} + proto.draw = function(camera) { - var shader = this.useOrtho ? this.orthoShader : this.shader - drawFull(shader, this.projectShader, this, camera, this.pixelRatio, false, false) -} + var gl = this.gl + var vao = this.vao + var shader = this.shader -proto.drawTransparent = function(camera) { - var shader = this.useOrtho ? this.orthoShader : this.shader - drawFull(shader, this.projectShader, this, camera, this.pixelRatio, true, false) -} + vao.bind() + shader.bind() -proto.drawPick = function(camera) { - var shader = this.useOrtho ? this.pickOrthoShader : this.pickPerspectiveShader - drawFull(shader, this.pickProjectShader, this, camera, 1, true, true) -} + var model = camera.model || identity + var view = camera.view || identity + var projection = camera.projection || identity -proto.pick = function(selected) { - if(!selected) { - return null - } - if(selected.id !== this.pickId) { - return null - } - var x = selected.value[2] + (selected.value[1]<<8) + (selected.value[0]<<16) - if(x >= this.pointCount || x < 0) { - return null + var axis + if(this.axes) { + axis = this.axes.lastCubeProps.axis } - //Unpack result - var coord = this.points[x] - var result = this._selectResult - result.index = x + var outerFace = OUTER_FACE + var innerFace = INNER_FACE for(var i=0; i<3; ++i) { - result.position[i] = result.dataCoordinate[i] = coord[i] - } - return result -} - -proto.highlight = function(selection) { - if(!selection) { - this.highlightId = [1,1,1,1] - } else { - var pointId = selection.index - var a0 = pointId &0xff - var a1 = (pointId>>8) &0xff - var a2 = (pointId>>16)&0xff - this.highlightId = [a0/255.0, a1/255.0, a2/255.0, 0] - } -} - -function get_glyphData(glyphs, index, font, pixelRatio) { - var str - - // use the data if presented in an array - if(Array.isArray(glyphs)) { - if(index < glyphs.length) { - str = glyphs[index] + if(axis && axis[i] < 0) { + outerFace[i] = this.bounds[0][i] + innerFace[i] = this.bounds[1][i] } else { - str = undefined + outerFace[i] = this.bounds[1][i] + innerFace[i] = this.bounds[0][i] } - } else { - str = glyphs } - str = getSimpleString(str) // this would handle undefined cases + SHAPE[0] = gl.drawingBufferWidth + SHAPE[1] = gl.drawingBufferHeight - var visible = true - if(isAllBlank(str)) { - str = '▼' // Note: this special character may have minimum number of surfaces - visible = false - } + shader.uniforms.model = model + shader.uniforms.view = view + shader.uniforms.projection = projection + shader.uniforms.coordinates = [this.position, outerFace, innerFace] + shader.uniforms.colors = this.colors + shader.uniforms.screenShape = SHAPE - var glyph = getGlyph(str, font, pixelRatio) + for(var i=0; i<3; ++i) { + shader.uniforms.lineWidth = this.lineWidth[i] * this.pixelRatio + if(this.enabled[i]) { + vao.draw(gl.TRIANGLES, 6, 6*i) + if(this.drawSides[i]) { + vao.draw(gl.TRIANGLES, 12, 18+12*i) + } + } + } - return { mesh:glyph[0], - lines:glyph[1], - bounds:glyph[2], - visible:visible }; + vao.unbind() } - - proto.update = function(options) { - - options = options || {} - - if('perspective' in options) { - this.useOrtho = !options.perspective + if(!options) { + return } - if('orthographic' in options) { - this.useOrtho = !!options.orthographic + if("bounds" in options) { + this.bounds = options.bounds } - if('lineWidth' in options) { + if("position" in options) { + this.position = options.position + } + if("lineWidth" in options) { this.lineWidth = options.lineWidth } - if('project' in options) { - if(Array.isArray(options.project)) { - this.axesProject = options.project - } else { - var v = !!options.project - this.axesProject = [v,v,v] - } + if("colors" in options) { + this.colors = options.colors } - if('projectScale' in options) { - if(Array.isArray(options.projectScale)) { - this.projectScale = options.projectScale.slice() - } else { - var s = +options.projectScale - this.projectScale = [s,s,s] - } + if("enabled" in options) { + this.enabled = options.enabled } - - this.projectHasAlpha = false // default to no transparent draw - if('projectOpacity' in options) { - if(Array.isArray(options.projectOpacity)) { - this.projectOpacity = options.projectOpacity.slice() - } else { - var s = +options.projectOpacity - this.projectOpacity = [s,s,s] - } - for(var i=0; i<3; ++i) { - this.projectOpacity[i] = fixOpacity(this.projectOpacity[i]); - if(this.projectOpacity[i] < 1) { - this.projectHasAlpha = true; - } - } + if("drawSides" in options) { + this.drawSides = options.drawSides } +} - this.hasAlpha = false // default to no transparent draw - if('opacity' in options) { - this.opacity = fixOpacity(options.opacity) - if(this.opacity < 1) { - this.hasAlpha = true; - } - } +proto.dispose = function() { + this.vao.dispose() + this.buffer.dispose() + this.shader.dispose() +} - //Set dirty flag - this.dirty = true - //Create new buffers - var points = options.position - //Text font - var font = options.font || 'normal' - var alignment = options.alignment || [0,0] +function createSpikes(gl, options) { + //Create buffers + var data = [ ] - var alignmentX; - var alignmentY; - if (alignment.length === 2) { - alignmentX = alignment[0] - alignmentY = alignment[1] - } else { - alignmentX = [] - alignmentY = [] - for (var i = 0; i < alignment.length; ++i) { - alignmentX[i] = alignment[i][0] - alignmentY[i] = alignment[i][1] - } + function line(x,y,z,i,l,h) { + var row = [x,y,z, 0,0,0, 1] + row[i+3] = 1 + row[i] = l + data.push.apply(data, row) + row[6] = -1 + data.push.apply(data, row) + row[i] = h + data.push.apply(data, row) + data.push.apply(data, row) + row[6] = 1 + data.push.apply(data, row) + row[i] = l + data.push.apply(data, row) } - //Bounds - var lowerBound = [ Infinity, Infinity, Infinity] - var upperBound = [-Infinity,-Infinity,-Infinity] + line(0,0,0, 0, 0, 1) + line(0,0,0, 1, 0, 1) + line(0,0,0, 2, 0, 1) - //Unpack options - var glyphs = options.glyph - var colors = options.color - var sizes = options.size - var angles = options.angle - var lineColors = options.lineColor + line(1,0,0, 1, -1,1) + line(1,0,0, 2, -1,1) - //Picking geometry - var pickCounter = -1 + line(0,1,0, 0, -1,1) + line(0,1,0, 2, -1,1) - //First do pass to compute buffer sizes - var triVertexCount = 0 - var lineVertexCount = 0 + line(0,0,1, 0, -1,1) + line(0,0,1, 1, -1,1) - var numPoints = 0; + var buffer = createBuffer(gl, data) + var vao = createVAO(gl, [{ + type: gl.FLOAT, + buffer: buffer, + size: 3, + offset: 0, + stride: 28 + }, { + type: gl.FLOAT, + buffer: buffer, + size: 3, + offset: 12, + stride: 28 + }, { + type: gl.FLOAT, + buffer: buffer, + size: 1, + offset: 24, + stride: 28 + }]) - if(points.length) { + //Create shader + var shader = createShader(gl) + shader.attributes.position.location = 0 + shader.attributes.color.location = 1 + shader.attributes.weight.location = 2 - //Count number of points and buffer size - numPoints = points.length + //Create spike object + var spikes = new AxisSpikes(gl, buffer, vao, shader) - count_loop: - for(var i=0; i 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"]) +var triFragSrc = glslify(["#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"]) +var pickVertSrc = glslify(["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"]) +var pickFragSrc = glslify(["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}"]) - var vertexCount = triVertexCount + lineVertexCount +exports.meshShader = { + vertex: triVertSrc, + fragment: triFragSrc, + attributes: [ + {name: 'position', type: 'vec4'}, + {name: 'color', type: 'vec4'}, + {name: 'uv', type: 'vec2'}, + {name: 'vector', type: 'vec4'} + ] +} +exports.pickShader = { + vertex: pickVertSrc, + fragment: pickFragSrc, + attributes: [ + {name: 'position', type: 'vec4'}, + {name: 'id', type: 'vec4'}, + {name: 'vector', type: 'vec4'} + ] +} - //Preallocate data - var positionArray = pool.mallocFloat(3*vertexCount) - var colorArray = pool.mallocFloat(4*vertexCount) - var glyphArray = pool.mallocFloat(2*vertexCount) - var idArray = pool.mallocUint32(vertexCount) +},{"glslify":346}],346:[function(_dereq_,module,exports){ +arguments[4][257][0].apply(exports,arguments) +},{"dup":257}],347:[function(_dereq_,module,exports){ +"use strict"; - if(vertexCount > 0) { - var triOffset = 0 - var lineOffset = triVertexCount - var color = [0,0,0,1] - var lineColor = [0,0,0,1] +var vec3 = _dereq_('gl-vec3'); +var vec4 = _dereq_('gl-vec4'); +var GRID_TYPES = ['xyz', 'xzy', 'yxz', 'yzx', 'zxy', 'zyx']; - var isColorArray = Array.isArray(colors) && Array.isArray(colors[0]) - var isLineColorArray = Array.isArray(lineColors) && Array.isArray(lineColors[0]) +var streamToTube = function(stream, maxDivergence, minDistance, maxNorm) { + var points = stream.points; + var velocities = stream.velocities; + var divergences = stream.divergences; - fill_loop: - for(var i=0; i 0) { + for (var a = 0; a < facets; a++) { + var a1 = (a+1) % facets; + verts.push( + previousVerts[a], + currentVerts[a], + currentVerts[a1], - //Get color - if(!glyphVisible) color = [1,1,1,0] - else if(Array.isArray(colors)) { - var c - if(isColorArray) { - if(i < colors.length) { - c = colors[i] - } else { - c = [0,0,0,0] - } - } else { - c = colors - } + currentVerts[a1], + previousVerts[a1], + previousVerts[a] + ); + vectors.push( + previousVector, + currentVector, + currentVector, - if(c.length === 3) { - for(var j=0; j<3; ++j) { - color[j] = c[j] - } - color[3] = 1 - } else if(c.length === 4) { - for(var j=0; j<4; ++j) { - color[j] = c[j] - } - if(!this.hasAlpha && c[3] < 1) this.hasAlpha = true - } - } else { - color[0] = color[1] = color[2] = 0 - color[3] = 1 - } + currentVector, + previousVector, + previousVector + ); + intensities.push( + previousIntensity, + currentIntensity, + currentIntensity, + currentIntensity, + previousIntensity, + previousIntensity + ); - //Get lineColor - if(!glyphVisible) lineColor = [1,1,1,0] - else if(Array.isArray(lineColors)) { - var c - if(isLineColorArray) { - if(i < lineColors.length) { - c = lineColors[i] - } else { - c = [0,0,0,0] - } - } else { - c = lineColors - } + var len = verts.length; + faces.push( + [len-6, len-5, len-4], + [len-3, len-2, len-1] + ); + } + } + var tmp1 = previousVerts; + previousVerts = currentVerts; + currentVerts = tmp1; - if(c.length === 3) { - for(var j=0; j<3; ++j) { - lineColor[j] = c[j] - } - lineColor[j] = 1 - } else if(c.length === 4) { - for(var j=0; j<4; ++j) { - lineColor[j] = c[j] - } - if(!this.hasAlpha && c[3] < 1) this.hasAlpha = true - } - } else { - lineColor[0] = lineColor[1] = lineColor[2] = 0 - lineColor[3] = 1 - } + var tmp2 = previousVector; + previousVector = currentVector; + currentVector = tmp2; + var tmp3 = previousIntensity; + previousIntensity = currentIntensity; + currentIntensity = tmp3; + } + return { + positions: verts, + cells: faces, + vectors: vectors, + vertexIntensity: intensities + }; +}; - var size = 0.5 - if(!glyphVisible) size = 0.0 - else if(Array.isArray(sizes)) { - if(i < sizes.length) { - size = +sizes[i] - } else { - size = 12 - } - } else if(sizes) { - size = +sizes - } else if(this.useOrtho) { - size = 12 - } +var createTubes = function(streams, colormap, maxDivergence, minDistance) { + var maxNorm = 0; + for (var i=0; i v) return i-1; + } + return i; +}; - //Calculate text offset - var textOffsetX = alignmentX - var textOffsetY = alignmentY +var clamp = function(v, min, max) { + return v < min ? min : (v > max ? max : v); +}; - var textOffsetX = 0 - if(Array.isArray(alignmentX)) { - if(i < alignmentX.length) { - textOffsetX = alignmentX[i] - } else { - textOffsetX = 0 - } - } else if(alignmentX) { - textOffsetX = alignmentX - } +var sampleMeshgrid = function(point, vectorField, gridInfo) { + var vectors = vectorField.vectors; + var meshgrid = vectorField.meshgrid; - var textOffsetY = 0 - if(Array.isArray(alignmentY)) { - if(i < alignmentY.length) { - textOffsetY = alignmentY[i] - } else { - textOffsetY = 0 - } - } else if(alignmentY) { - textOffsetY = alignmentY - } + var x = point[0]; + var y = point[1]; + var z = point[2]; - textOffsetX *= (textOffsetX > 0) ? (1 - glyphBounds[0][0]) : - (textOffsetX < 0) ? (1 + glyphBounds[1][0]) : 1; + var w = meshgrid[0].length; + var h = meshgrid[1].length; + var d = meshgrid[2].length; - textOffsetY *= (textOffsetY > 0) ? (1 - glyphBounds[0][1]) : - (textOffsetY < 0) ? (1 + glyphBounds[1][1]) : 1; + // Find the index of the nearest smaller value in the meshgrid for each coordinate of (x,y,z). + // The nearest smaller value index for x is the index x0 such that + // meshgrid[0][x0] < x and for all x1 > x0, meshgrid[0][x1] >= x. + var x0 = findLastSmallerIndex(meshgrid[0], x); + var y0 = findLastSmallerIndex(meshgrid[1], y); + var z0 = findLastSmallerIndex(meshgrid[2], z); - var textOffset = [textOffsetX, textOffsetY] + // Get the nearest larger meshgrid value indices. + // From the above "nearest smaller value", we know that + // meshgrid[0][x0] < x + // meshgrid[0][x0+1] >= x + var x1 = x0 + 1; + var y1 = y0 + 1; + var z1 = z0 + 1; - //Write out inner marker - var cells = glyphMesh.cells || [] - var verts = glyphMesh.positions || [] + x0 = clamp(x0, 0, w-1); + x1 = clamp(x1, 0, w-1); + y0 = clamp(y0, 0, h-1); + y1 = clamp(y1, 0, h-1); + z0 = clamp(z0, 0, d-1); + z1 = clamp(z1, 0, d-1); - for(var j=0; j w-1 || y1 > h-1 || z1 > d-1) { + return vec3.create(); + } - var cells = glyphLines.edges - var verts = glyphLines.positions + // Normalize point coordinates to 0..1 scaling factor between x0 and x1. + var mX0 = meshgrid[0][x0]; + var mX1 = meshgrid[0][x1]; + var mY0 = meshgrid[1][y0]; + var mY1 = meshgrid[1][y1]; + var mZ0 = meshgrid[2][z0]; + var mZ1 = meshgrid[2][z1]; + var xf = (x - mX0) / (mX1 - mX0); + var yf = (y - mY0) / (mY1 - mY0); + var zf = (z - mZ0) / (mZ1 - mZ0); - for(var j=0; j maxX || + y < minY || y > maxY || + z < minZ || z > maxZ + ); + }; - this.selectBox = [Infinity,Infinity,-Infinity,-Infinity] + var boundsSize = vec3.distance(bounds[0], bounds[1]); + var maxStepSize = 10 * boundsSize / maxLength; + var maxStepSizeSq = maxStepSize * maxStepSize; - this.borderColor = [0,0,0,1] - this.innerFill = false - this.innerColor = [0,0,0,0.25] - this.outerFill = true - this.outerColor = [0,0,0,0.5] - this.borderWidth = 10 -} + var minDistance = 1; + var maxDivergence = 0; // For component-wise divergence vec3.create(); -var proto = SelectBox.prototype + // In case we need to do component-wise divergence visualization + // var tmp = vec3.create(); -proto.draw = function() { - if(!this.enabled) { - return - } + var len = positions.length; + if (len > 1) { + minDistance = calculateMinPositionDistance(positions); + } - var plot = this.plot - var selectBox = this.selectBox - var lineWidth = this.borderWidth + for (var i = 0; i < len; i++) { + var p = vec3.create(); + vec3.copy(p, positions[i]); - var innerFill = this.innerFill - var innerColor = this.innerColor - var outerFill = this.outerFill - var outerColor = this.outerColor - var borderColor = this.borderColor + var stream = [p]; + var velocities = []; + var v = getVelocity(p); + var op = p; + velocities.push(v); - var boxes = plot.box - var screenBox = plot.screenBox - var dataBox = plot.dataBox - var viewBox = plot.viewBox - var pixelRatio = plot.pixelRatio + var divergences = []; - //Map select box into pixel coordinates - var loX = (selectBox[0]-dataBox[0])*(viewBox[2]-viewBox[0])/(dataBox[2]-dataBox[0])+viewBox[0] - var loY = (selectBox[1]-dataBox[1])*(viewBox[3]-viewBox[1])/(dataBox[3]-dataBox[1])+viewBox[1] - var hiX = (selectBox[2]-dataBox[0])*(viewBox[2]-viewBox[0])/(dataBox[2]-dataBox[0])+viewBox[0] - var hiY = (selectBox[3]-dataBox[1])*(viewBox[3]-viewBox[1])/(dataBox[3]-dataBox[1])+viewBox[1] + var dv = getDivergence(p, v); + var dvLength = vec3.length(dv); + if (isFinite(dvLength) && dvLength > maxDivergence) { + maxDivergence = dvLength; + } + // In case we need to do component-wise divergence visualization + // vec3.max(maxDivergence, maxDivergence, vabs(tmp, dv)); + divergences.push(dvLength); - loX = Math.max(loX, viewBox[0]) - loY = Math.max(loY, viewBox[1]) - hiX = Math.min(hiX, viewBox[2]) - hiY = Math.min(hiY, viewBox[3]) + streams.push({points: stream, velocities: velocities, divergences: divergences}); - if(hiX < loX || hiY < loY) { - return - } + var j = 0; - boxes.bind() + while (j < maxLength * 100 && stream.length < maxLength && inBounds(p)) { + j++; + var np = vec3.clone(v); + var sqLen = vec3.squaredLength(np); + if (sqLen === 0) { + break; + } else if (sqLen > maxStepSizeSq) { + vec3.scale(np, np, maxStepSize / Math.sqrt(sqLen)); + } + vec3.add(np, np, p); - //Draw box - var screenWidth = screenBox[2] - screenBox[0] - var screenHeight = screenBox[3] - screenBox[1] + v = getVelocity(np); - if(this.outerFill) { - boxes.drawBox(0, 0, screenWidth, loY, outerColor) - boxes.drawBox(0, loY, loX, hiY, outerColor) - boxes.drawBox(0, hiY, screenWidth, screenHeight, outerColor) - boxes.drawBox(hiX, loY, screenWidth, hiY, outerColor) - } + if (vec3.squaredDistance(op, np) - maxStepSizeSq > -0.0001 * maxStepSizeSq) { + stream.push(np); + op = np; + velocities.push(v); + var dv = getDivergence(np, v); + var dvLength = vec3.length(dv); + if (isFinite(dvLength) && dvLength > maxDivergence) { + maxDivergence = dvLength; + } + // In case we need to do component-wise divergence visualization + //vec3.max(maxDivergence, maxDivergence, vabs(tmp, dv)); + divergences.push(dvLength); + } - if(this.innerFill) { - boxes.drawBox(loX, loY, hiX, hiY, innerColor) - } + p = np; + } + } - //Draw border - if(lineWidth > 0) { + var tubes = createTubes(streams, vectorField.colormap, maxDivergence, minDistance); - //Draw border - var w = lineWidth * pixelRatio - boxes.drawBox(loX-w, loY-w, hiX+w, loY+w, borderColor) - boxes.drawBox(loX-w, hiY-w, hiX+w, hiY+w, borderColor) - boxes.drawBox(loX-w, loY-w, loX+w, hiY+w, borderColor) - boxes.drawBox(hiX-w, loY-w, hiX+w, hiY+w, borderColor) - } -} + if (absoluteTubeSize) { + tubes.tubeScale = absoluteTubeSize; + } else { + // Avoid division by zero. + if (maxDivergence === 0) { + maxDivergence = 1; + } + tubes.tubeScale = tubeSize * 0.5 * minDistance / maxDivergence; + } -proto.update = function(options) { - options = options || {} + return tubes; +}; - this.innerFill = !!options.innerFill - this.outerFill = !!options.outerFill - this.innerColor = (options.innerColor || [0,0,0,0.5]).slice() - this.outerColor = (options.outerColor || [0,0,0,0.5]).slice() - this.borderColor = (options.borderColor || [0,0,0,1]).slice() - this.borderWidth = options.borderWidth || 0 - this.selectBox = (options.selectBox || this.selectBox).slice() +var shaders = _dereq_('./lib/shaders'); +var createMesh = _dereq_('gl-cone3d').createMesh; +module.exports.createTubeMesh = function(gl, params) { + return createMesh(gl, params, { + shaders: shaders, + traceType: 'streamtube' + }); } -proto.dispose = function() { - this.boxBuffer.dispose() - this.boxShader.dispose() - this.plot.removeOverlay(this) -} +},{"./lib/shaders":345,"gl-cone3d":260,"gl-vec3":376,"gl-vec4":412}],348:[function(_dereq_,module,exports){ +var createShader = _dereq_('gl-shader') +var glslify = _dereq_('glslify') -function createSelectBox(plot, options) { - var gl = plot.gl - var buffer = createBuffer(gl, [ - 0, 0, - 0, 1, - 1, 0, - 1, 1 ]) - var shader = createShader(gl, SHADERS.boxVertex, SHADERS.boxFragment) - var selectBox = new SelectBox(plot, buffer, shader) - selectBox.update(options) - plot.addOverlay(selectBox) - return selectBox +var vertSrc = glslify(["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"]) +var fragSrc = glslify(["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 — 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"]) +var contourVertSrc = glslify(["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"]) +var pickSrc = glslify(["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"]) + +exports.createShader = function (gl) { + var shader = createShader(gl, vertSrc, fragSrc, null, [ + {name: 'uv', type: 'vec4'}, + {name: 'f', type: 'vec3'}, + {name: 'normal', type: 'vec3'} + ]) + shader.attributes.uv.location = 0 + shader.attributes.f.location = 1 + shader.attributes.normal.location = 2 + return shader +} +exports.createPickShader = function (gl) { + var shader = createShader(gl, vertSrc, pickSrc, null, [ + {name: 'uv', type: 'vec4'}, + {name: 'f', type: 'vec3'}, + {name: 'normal', type: 'vec3'} + ]) + shader.attributes.uv.location = 0 + shader.attributes.f.location = 1 + shader.attributes.normal.location = 2 + return shader +} +exports.createContourShader = function (gl) { + var shader = createShader(gl, contourVertSrc, fragSrc, null, [ + {name: 'uv', type: 'vec4'}, + {name: 'f', type: 'float'} + ]) + shader.attributes.uv.location = 0 + shader.attributes.f.location = 1 + return shader +} +exports.createPickContourShader = function (gl) { + var shader = createShader(gl, contourVertSrc, pickSrc, null, [ + {name: 'uv', type: 'vec4'}, + {name: 'f', type: 'float'} + ]) + shader.attributes.uv.location = 0 + shader.attributes.f.location = 1 + return shader } -},{"./lib/shaders":331,"gl-buffer":259,"gl-shader":335}],334:[function(_dereq_,module,exports){ +},{"gl-shader":334,"glslify":349}],349:[function(_dereq_,module,exports){ +arguments[4][257][0].apply(exports,arguments) +},{"dup":257}],350:[function(_dereq_,module,exports){ 'use strict' -module.exports = createSelectBuffer - -var createFBO = _dereq_('gl-fbo') -var pool = _dereq_('typedarray-pool') -var ndarray = _dereq_('ndarray') -var nextPow2 = _dereq_('bit-twiddle').nextPow2 +module.exports = createSurfacePlot -var selectRange = function(arr, x, y) { - var closestD2 = 1e8 - var closestX = -1 - var closestY = -1 +var bits = _dereq_('bit-twiddle') +var createBuffer = _dereq_('gl-buffer') +var createVAO = _dereq_('gl-vao') +var createTexture = _dereq_('gl-texture2d') +var pool = _dereq_('typedarray-pool') +var colormap = _dereq_('colormap') +var ops = _dereq_('ndarray-ops') +var pack = _dereq_('ndarray-pack') +var ndarray = _dereq_('ndarray') +var surfaceNets = _dereq_('surface-nets') +var multiply = _dereq_('gl-mat4/multiply') +var invert = _dereq_('gl-mat4/invert') +var bsearch = _dereq_('binary-search-bounds') +var gradient = _dereq_('ndarray-gradient') +var shaders = _dereq_('./lib/shaders') - var ni = arr.shape[0] - var nj = arr.shape[1] - for(var i = 0; i < ni; i++) { - for(var j = 0; j < nj; j++) { - var r = arr.get(i, j, 0) - var g = arr.get(i, j, 1) - var b = arr.get(i, j, 2) - var a = arr.get(i, j, 3) +var createShader = shaders.createShader +var createContourShader = shaders.createContourShader +var createPickShader = shaders.createPickShader +var createPickContourShader = shaders.createPickContourShader - if(r < 255 || g < 255 || b < 255 || a < 255) { - var dx = x - i - var dy = y - j - var d2 = dx*dx + dy*dy - if(d2 < closestD2) { - closestD2 = d2 - closestX = i - closestY = j - } - } - } - } +var SURFACE_VERTEX_SIZE = 4 * (4 + 3 + 3) - return [closestX, closestY, closestD2] -} +var IDENTITY = [ + 1, 0, 0, 0, + 0, 1, 0, 0, + 0, 0, 1, 0, + 0, 0, 0, 1 ] -function SelectResult(x, y, id, value, distance) { - this.coord = [x, y] - this.id = id - this.value = value - this.distance = distance -} +var QUAD = [ + [0, 0], + [0, 1], + [1, 0], + [1, 1], + [1, 0], + [0, 1] +] -function SelectBuffer(gl, fbo, buffer) { - this.gl = gl - this.fbo = fbo - this.buffer = buffer - this._readTimeout = null - var self = this +var PERMUTATIONS = [ + [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] +] - this._readCallback = function() { - if(!self.gl) { - return - } - fbo.bind() - gl.readPixels(0,0,fbo.shape[0],fbo.shape[1],gl.RGBA,gl.UNSIGNED_BYTE,self.buffer) - self._readTimeout = null +;(function () { + for (var i = 0; i < 3; ++i) { + var p = PERMUTATIONS[i] + var u = (i + 1) % 3 + var v = (i + 2) % 3 + p[u + 0] = 1 + p[v + 3] = 1 + p[i + 6] = 1 } -} +})() -var proto = SelectBuffer.prototype +function SurfacePickResult (position, index, uv, level, dataCoordinate) { + this.position = position + this.index = index + this.uv = uv + this.level = level + this.dataCoordinate = dataCoordinate +} -Object.defineProperty(proto, 'shape', { - get: function() { - if(!this.gl) { - return [0,0] - } - return this.fbo.shape.slice() - }, - set: function(v) { - if(!this.gl) { - return - } - this.fbo.shape = v - var c = this.fbo.shape[0] - var r = this.fbo.shape[1] - if(r*c*4 > this.buffer.length) { - pool.free(this.buffer) - var buffer = this.buffer = pool.mallocUint8(nextPow2(r*c*4)) - for(var i=0; i oldAttribCount) { - for(i = oldAttribCount; i < newAttribCount; i++) { - this.gl.enableVertexAttribArray(i) - } - } else if(oldAttribCount > newAttribCount) { - for(i = newAttribCount; i < oldAttribCount; i++) { - this.gl.disableVertexAttribArray(i) - } - } + var x = pack([colormap({ + colormap: name, + nshades: N_COLORS, + format: 'rgba' + }).map(function (c, i) { + var a = opacityscale ? getOpacityFromScale(i / 255.0, opacityscale) : c[3] + if(a < 1) hasAlpha = true + return [c[0], c[1], c[2], 255 * a] + })]) + ops.divseq(x, 255.0) - this.gl.lastAttribCount = newAttribCount + this.hasAlphaScale = hasAlpha + return x +} - this.gl.useProgram(this.program) +proto.isTransparent = function () { + return this.opacity < 1 || this.hasAlphaScale } -proto.dispose = function() { +proto.isOpaque = function () { + return !this.isTransparent() +} - // disabling vertex attributes so new shader starts with zero - // and it's also useful if all shaders are disposed but the - // gl context is reused for subsequent replotting - var oldAttribCount = this.gl.lastAttribCount - for (var i = 0; i < oldAttribCount; i++) { - this.gl.disableVertexAttribArray(i) - } - this.gl.lastAttribCount = 0 +proto.pickSlots = 1 - if(this._fref) { - this._fref.dispose() - } - if(this._vref) { - this._vref.dispose() - } - this.attributes = - this.types = - this.vertShader = - this.fragShader = - this.program = - this._relink = - this._fref = - this._vref = null +proto.setPickBase = function (id) { + this.pickId = id } -function compareAttributes(a, b) { - if(a.name < b.name) { - return -1 +function getOpacityFromScale(ratio, opacityscale) { // copied form gl-mesh3d + if(!opacityscale) return 1 + if(!opacityscale.length) return 1 + + for(var i = 0; i < opacityscale.length; ++i) { + if(opacityscale.length < 2) return 1 + if(opacityscale[i][0] === ratio) return opacityscale[i][1] + if(opacityscale[i][0] > ratio && i > 0) { + var d = (opacityscale[i][0] - ratio) / (opacityscale[i][0] - opacityscale[i - 1][0]) + return opacityscale[i][1] * (1 - d) + d * opacityscale[i - 1][1] + } } + return 1 } -//Update export hook for glslify-live -proto.update = function( - vertSource - , fragSource - , uniforms - , attributes) { +var ZERO_VEC = [0, 0, 0] - //If only one object passed, assume glslify style output - if(!fragSource || arguments.length === 1) { - var obj = vertSource - vertSource = obj.vertex - fragSource = obj.fragment - uniforms = obj.uniforms - attributes = obj.attributes - } +var PROJECT_DATA = { + showSurface: false, + showContour: false, + projections: [IDENTITY.slice(), IDENTITY.slice(), IDENTITY.slice()], + clipBounds: [ + [[0, 0, 0], [0, 0, 0]], + [[0, 0, 0], [0, 0, 0]], + [[0, 0, 0], [0, 0, 0]]] +} - var wrapper = this - var gl = wrapper.gl +function computeProjectionData (camera, obj) { + var i, j, k - //Compile vertex and fragment shaders - var pvref = wrapper._vref - wrapper._vref = shaderCache.shader(gl, gl.VERTEX_SHADER, vertSource) - if(pvref) { - pvref.dispose() - } - wrapper.vertShader = wrapper._vref.shader - var pfref = this._fref - wrapper._fref = shaderCache.shader(gl, gl.FRAGMENT_SHADER, fragSource) - if(pfref) { - pfref.dispose() - } - wrapper.fragShader = wrapper._fref.shader + // Compute cube properties + var cubeAxis = (obj.axes && obj.axes.lastCubeProps.axis) || ZERO_VEC - //If uniforms/attributes is not specified, use RT reflection - if(!uniforms || !attributes) { + var showSurface = obj.showSurface + var showContour = obj.showContour - //Create initial test program - var testProgram = gl.createProgram() - gl.attachShader(testProgram, wrapper.fragShader) - gl.attachShader(testProgram, wrapper.vertShader) - gl.linkProgram(testProgram) - if(!gl.getProgramParameter(testProgram, gl.LINK_STATUS)) { - var errLog = gl.getProgramInfoLog(testProgram) - throw new GLError(errLog, 'Error linking program:' + errLog) + for (i = 0; i < 3; ++i) { + showSurface = showSurface || obj.surfaceProject[i] + for (j = 0; j < 3; ++j) { + showContour = showContour || obj.contourProject[i][j] } - - //Load data from runtime - uniforms = uniforms || runtime.uniforms(gl, testProgram) - attributes = attributes || runtime.attributes(gl, testProgram) - - //Release test program - gl.deleteProgram(testProgram) } - //Sort attributes lexicographically - // overrides undefined WebGL behavior for attribute locations - attributes = attributes.slice() - attributes.sort(compareAttributes) - - //Convert attribute types, read out locations - var attributeUnpacked = [] - var attributeNames = [] - var attributeLocations = [] - var i - for(i=0; i= 0) { - var size = attr.type.charAt(attr.type.length-1)|0 - var locVector = new Array(size) - for(var j=0; j= 0) { - curLocation += 1 - } - attributeLocations[i] = curLocation + for (j = 0; j < 4; ++j) { + axisSquish[5 * j] = 1 } - } - - //Rebuild program and recompute all uniform locations - var uniformLocations = new Array(uniforms.length) - function relink() { - wrapper.program = shaderCache.program( - gl - , wrapper._vref - , wrapper._fref - , attributeNames - , attributeLocations) + axisSquish[5 * i] = 0 + axisSquish[12 + i] = obj.axesBounds[+(cubeAxis[i] > 0)][i] + multiply(axisSquish, camera.model, axisSquish) - for(var i=0; i= 0) { - var d = type.charCodeAt(type.length-1) - 48 - if(d < 2 || d > 4) { - throw new GLError('', 'Invalid data type for attribute ' + name + ': ' + type) - } - addVectorAttribute( - gl - , wrapper - , locs[0] - , locations - , d - , obj - , name) - } else if(type.indexOf('mat') >= 0) { - var d = type.charCodeAt(type.length-1) - 48 - if(d < 2 || d > 4) { - throw new GLError('', 'Invalid data type for attribute ' + name + ': ' + type) - } - addMatrixAttribute( - gl - , wrapper - , locs - , locations - , d - , obj - , name) - } else { - throw new GLError('', 'Unknown data type for attribute ' + name + ': ' + type) + shader.uniforms.contourColor = this.dynamicColor[i] + shader.uniforms.contourTint = this.dynamicTint[i] + shader.uniforms.height = this.dynamicLevel[i] + vao.draw(gl.LINES, this._dynamicCounts[i], this._dynamicOffsets[i]) + + for (j = 0; j < 3; ++j) { + if (!this.contourProject[j][i]) { + continue } - break + + shader.uniforms.model = projectData.projections[j] + shader.uniforms.clipBounds = projectData.clipBounds[j] + vao.draw(gl.LINES, this._dynamicCounts[i], this._dynamicOffsets[i]) + } } + + vao.unbind() } - return obj } -},{"./GLError":336}],338:[function(_dereq_,module,exports){ -'use strict' - -var coallesceUniforms = _dereq_('./reflect') -var GLError = _dereq_("./GLError") - -module.exports = createUniformWrapper +proto.draw = function (params) { + return drawCore.call(this, params, false) +} -//Binds a function and returns a value -function identity(x) { - var c = new Function('y', 'return function(){return y}') - return c(x) +proto.drawTransparent = function (params) { + return drawCore.call(this, params, true) } -function makeVector(length, fill) { - var result = new Array(length) - for(var i=0; i 4) { - throw new GLError('', 'Invalid data type') - } - switch(type.charAt(0)) { - case 'b': - case 'i': - return 'gl.uniform' + d + 'iv(locations[' + index + '],obj' + path + ')' - case 'v': - return 'gl.uniform' + d + 'fv(locations[' + index + '],obj' + path + ')' - default: - throw new GLError('', 'Unrecognized data type for vector ' + name + ': ' + type) - } - } else if(type.indexOf('mat') === 0 && type.length === 4) { - var d = type.charCodeAt(type.length-1) - 48 - if(d < 2 || d > 4) { - throw new GLError('', 'Invalid uniform dimension type for matrix ' + name + ': ' + type) - } - return 'gl.uniformMatrix' + d + 'fv(locations[' + index + '],false,obj' + path + ')' - } else { - throw new GLError('', 'Unknown uniform data type for ' + name + ': ' + type) - } - break + for (var i = 0; i < 2; ++i) { + var clipClamped = uniforms.clipBounds[i] + for (var j = 0; j < 3; ++j) { + clipClamped[j] = Math.min(Math.max(this.clipBounds[i][j], -1e8), 1e8) } } - function enumerateIndices(prefix, type) { - if(typeof type !== 'object') { - return [ [prefix, type] ] - } - var indices = [] - for(var id in type) { - var prop = type[id] - var tprefix = prefix - if(parseInt(id) + '' === id) { - tprefix += '[' + id + ']' - } else { - tprefix += '.' + id - } - if(typeof prop === 'object') { - indices.push.apply(indices, enumerateIndices(tprefix, prop)) - } else { - indices.push([tprefix, prop]) + var projectData = computeProjectionData(uniforms, this) + + if (projectData.showSurface) { + // Set up uniforms + this._pickShader.bind() + this._pickShader.uniforms = uniforms + + // Draw it + this._vao.bind() + this._vao.draw(gl.TRIANGLES, this._vertexCount) + + // Draw projections of surface + for (i = 0; i < 3; ++i) { + if (!this.surfaceProject[i]) { + continue } + this._pickShader.uniforms.model = projectData.projections[i] + this._pickShader.uniforms.clipBounds = projectData.clipBounds[i] + this._vao.draw(gl.TRIANGLES, this._vertexCount) } - return indices + + this._vao.unbind() } - function makeSetter(type) { - var code = [ 'return function updateProperty(obj){' ] - var indices = enumerateIndices('', type) - for(var i=0; i 4) { - throw new GLError('', 'Invalid data type') - } - if(type.charAt(0) === 'b') { - return makeVector(d, false) - } - return makeVector(d, 0) - } else if(type.indexOf('mat') === 0 && type.length === 4) { - var d = type.charCodeAt(type.length-1) - 48 - if(d < 2 || d > 4) { - throw new GLError('', 'Invalid uniform dimension type for matrix ' + name + ': ' + type) + // Draw projections of surface + for (i = 0; i < 3; ++i) { + shader.uniforms.model = projectData.projections[i] + shader.uniforms.clipBounds = projectData.clipBounds[i] + + for (j = 0; j < 3; ++j) { + if (!this.contourProject[i][j]) { + continue + } + + shader.uniforms.permutation = PERMUTATIONS[j] + gl.lineWidth(this.contourWidth[j] * this.pixelRatio) + for (var k = 0; k < this.contourLevels[j].length; ++k) { + if (this._contourCounts[j][k]) { + shader.uniforms.height = this.contourLevels[j][k] + vao.draw(gl.LINES, this._contourCounts[j][k], this._contourOffsets[j][k]) } - return makeVector(d*d, 0) - } else { - throw new GLError('', 'Unknown uniform data type for ' + name + ': ' + type) } - break + } } + + vao.unbind() } +} - function storeProperty(obj, prop, type) { - if(typeof type === 'object') { - var child = processObject(type) - Object.defineProperty(obj, prop, { - get: identity(child), - set: makeSetter(type), - enumerable: true, - configurable: false - }) - } else { - if(locations[type]) { - Object.defineProperty(obj, prop, { - get: makeGetter(type), - set: makeSetter(type), - enumerable: true, - configurable: false - }) - } else { - obj[prop] = defaultValue(uniforms[type].type) +proto.pick = function (selection) { + if (!selection) { + return null + } + + if (selection.id !== this.pickId) { + return null + } + + var shape = this._field[2].shape + + var result = this._pickResult + + // Compute uv coordinate + var x = shape[0] * (selection.value[0] + (selection.value[2] >> 4) / 16.0) / 255.0 + var ix = Math.floor(x) + var fx = x - ix + + var y = shape[1] * (selection.value[1] + (selection.value[2] & 15) / 16.0) / 255.0 + var iy = Math.floor(y) + var fy = y - iy + + ix += 1 + iy += 1 + + // Compute xyz coordinate + var pos = result.position + pos[0] = pos[1] = pos[2] = 0 + for (var dx = 0; dx < 2; ++dx) { + var s = dx ? fx : 1.0 - fx + for (var dy = 0; dy < 2; ++dy) { + var t = dy ? fy : 1.0 - fy + + var r = ix + dx + var c = iy + dy + var w = s * t + + for (var i = 0; i < 3; ++i) { + pos[i] += this._field[i].get(r, c) * w } } } - function processObject(obj) { - var result - if(Array.isArray(obj)) { - result = new Array(obj.length) - for(var i=0; i 0) { + levelIndex[j] = 0 } - } else { - result = {} - for(var id in obj) { - storeProperty(result, id, obj[id]) + } else if (levelIndex[j] < this.contourLevels[j].length - 1) { + var a = this.contourLevels[j][levelIndex[j]] + var b = this.contourLevels[j][levelIndex[j] + 1] + if (Math.abs(a - pos[j]) > Math.abs(b - pos[j])) { + levelIndex[j] += 1 } } - return result - } - - //Return data - var coallesced = coallesceUniforms(uniforms, true) - return { - get: identity(processObject(coallesced)), - set: makeSetter(coallesced), - enumerable: true, - configurable: true } -} -},{"./GLError":336,"./reflect":339}],339:[function(_dereq_,module,exports){ -'use strict' + result.index[0] = fx < 0.5 ? ix : (ix + 1) + result.index[1] = fy < 0.5 ? iy : (iy + 1) -module.exports = makeReflectTypes + result.uv[0] = x / shape[0] + result.uv[1] = y / shape[1] -//Construct type info for reflection. -// -// This iterates over the flattened list of uniform type values and smashes them into a JSON object. -// -// The leaves of the resulting object are either indices or type strings representing primitive glslify types -function makeReflectTypes(uniforms, useIndex) { - var obj = {} - for(var i=0; i 1) { - if(!(x[0] in o)) { - o[x[0]] = [] - } - o = o[x[0]] - for(var k=1; k 1) { - for(var j=0; j this._field[2].data.length) { + pool.freeFloat(this._field[2].data) + this._field[2].data = pool.mallocFloat(bits.nextPow2(fsize)) + } + + // Pad field + this._field[2] = ndarray(this._field[2].data, [field.shape[0] + 2, field.shape[1] + 2]) + this.padField(this._field[2], field) + + // Save shape of field + this.shape = field.shape.slice() + var shape = this.shape + + // Resize coordinate fields if necessary + for (var i = 0; i < 2; ++i) { + if (this._field[2].size > this._field[i].data.length) { + pool.freeFloat(this._field[i].data) + this._field[i].data = pool.mallocFloat(this._field[2].size) } + this._field[i] = ndarray(this._field[i].data, [shape[0] + 2, shape[1] + 2]) } - //Remove shader reference - gl.deleteShader(this.shader) - delete cache.shaders[(this.type === gl.FRAGMENT_SHADER)|0][this.src] - } -} + // Generate x/y coordinates + if (params.coords) { + var coords = params.coords + if (!Array.isArray(coords) || coords.length !== 3) { + throw new Error('gl-surface: invalid coordinates for x/y') + } + for (i = 0; i < 2; ++i) { + var coord = coords[i] + for (j = 0; j < 2; ++j) { + if (coord.shape[j] !== shape[j]) { + throw new Error('gl-surface: coords have incorrect shape') + } + } + this.padField(this._field[i], coord) + } + } else if (params.ticks) { + var ticks = params.ticks + if (!Array.isArray(ticks) || ticks.length !== 2) { + throw new Error('gl-surface: invalid ticks') + } + for (i = 0; i < 2; ++i) { + var tick = ticks[i] + if (Array.isArray(tick) || tick.length) { + tick = ndarray(tick) + } + if (tick.shape[0] !== shape[i]) { + throw new Error('gl-surface: invalid tick length') + } + // Make a copy view of the tick array + var tick2 = ndarray(tick.data, shape) + tick2.stride[i] = tick.stride[0] + tick2.stride[i ^ 1] = 0 -function ContextCache(gl) { - this.gl = gl - this.shaders = [{}, {}] - this.programs = {} -} + // Fill in field array + this.padField(this._field[i], tick2) + } + } else { + for (i = 0; i < 2; ++i) { + var offset = [0, 0] + offset[i] = 1 + this._field[i] = ndarray(this._field[i].data, [shape[0] + 2, shape[1] + 2], offset, 0) + } + this._field[0].set(0, 0, 0) + for (var j = 0; j < shape[0]; ++j) { + this._field[0].set(j + 1, 0, j) + } + this._field[0].set(shape[0] + 1, 0, shape[0] - 1) + this._field[1].set(0, 0, 0) + for (j = 0; j < shape[1]; ++j) { + this._field[1].set(0, j + 1, j) + } + this._field[1].set(0, shape[1] + 1, shape[1] - 1) + } -var proto = ContextCache.prototype + // Save shape + var fields = this._field -function compileShader(gl, type, src) { - var shader = gl.createShader(type) - gl.shaderSource(shader, src) - gl.compileShader(shader) - if(!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) { - var errLog = gl.getShaderInfoLog(shader) - try { - var fmt = formatCompilerError(errLog, src, type); - } catch (e){ - console.warn('Failed to format compiler error: ' + e); - throw new GLError(errLog, 'Error compiling shader:\n' + errLog) + // Compute surface normals + var dfields = ndarray(pool.mallocFloat(fields[2].size * 3 * 2), [3, shape[0] + 2, shape[1] + 2, 2]) + for (i = 0; i < 3; ++i) { + gradient(dfields.pick(i), fields[i], 'mirror') } - throw new GLError(errLog, fmt.short, fmt.long) - } - return shader -} + var normals = ndarray(pool.mallocFloat(fields[2].size * 3), [shape[0] + 2, shape[1] + 2, 3]) + for (i = 0; i < shape[0] + 2; ++i) { + for (j = 0; j < shape[1] + 2; ++j) { + var dxdu = dfields.get(0, i, j, 0) + var dxdv = dfields.get(0, i, j, 1) + var dydu = dfields.get(1, i, j, 0) + var dydv = dfields.get(1, i, j, 1) + var dzdu = dfields.get(2, i, j, 0) + var dzdv = dfields.get(2, i, j, 1) -proto.getShaderReference = function(type, src) { - var gl = this.gl - var shaders = this.shaders[(type === gl.FRAGMENT_SHADER)|0] - var shader = shaders[src] - if(!shader || !gl.isShader(shader.shader)) { - var shaderObj = compileShader(gl, type, src) - shader = shaders[src] = new ShaderReference( - SHADER_COUNTER++, - src, - type, - shaderObj, - [], - 1, - this) - } else { - shader.count += 1 - } - return shader -} + var nx = dydu * dzdv - dydv * dzdu + var ny = dzdu * dxdv - dzdv * dxdu + var nz = dxdu * dydv - dxdv * dydu + + var nl = Math.sqrt(nx * nx + ny * ny + nz * nz) + if (nl < 1e-8) { + nl = Math.max(Math.abs(nx), Math.abs(ny), Math.abs(nz)) + if (nl < 1e-8) { + nz = 1.0 + ny = nx = 0.0 + nl = 1.0 + } else { + nl = 1.0 / nl + } + } else { + nl = 1.0 / Math.sqrt(nl) + } + + normals.set(i, j, 0, nx * nl) + normals.set(i, j, 1, ny * nl) + normals.set(i, j, 2, nz * nl) + } + } + pool.free(dfields.data) + + // Initialize surface + var lo = [ Infinity, Infinity, Infinity ] + var hi = [ -Infinity, -Infinity, -Infinity ] + var lo_intensity = Infinity + var hi_intensity = -Infinity + var count = (shape[0] - 1) * (shape[1] - 1) * 6 + var tverts = pool.mallocFloat(bits.nextPow2(10 * count)) + var tptr = 0 + var vertexCount = 0 + for (i = 0; i < shape[0] - 1; ++i) { + j_loop: + for (j = 0; j < shape[1] - 1; ++j) { + // Test for NaNs + for (var dx = 0; dx < 2; ++dx) { + for (var dy = 0; dy < 2; ++dy) { + for (var k = 0; k < 3; ++k) { + var f = this._field[k].get(1 + i + dx, 1 + j + dy) + if (isNaN(f) || !isFinite(f)) { + continue j_loop + } + } + } + } + for (k = 0; k < 6; ++k) { + var r = i + QUAD[k][0] + var c = j + QUAD[k][1] -function linkProgram(gl, vshader, fshader, attribs, locations) { - var program = gl.createProgram() - gl.attachShader(program, vshader) - gl.attachShader(program, fshader) - for(var i=0; i 0) { + // If we already added first edge, pop off verts + for (var l = 0; l < 5; ++l) { + contourVerts.pop() + } + vertexCount -= 1 + } + continue edge_loop + } + } + } + levelCounts.push(vertexCount) + } - var axis - if(this.axes) { - axis = this.axes.lastCubeProps.axis - } + // Store results + this._contourOffsets[dim] = levelOffsets + this._contourCounts[dim] = levelCounts - var outerFace = OUTER_FACE - var innerFace = INNER_FACE - for(var i=0; i<3; ++i) { - if(axis && axis[i] < 0) { - outerFace[i] = this.bounds[0][i] - innerFace[i] = this.bounds[1][i] - } else { - outerFace[i] = this.bounds[1][i] - innerFace[i] = this.bounds[0][i] } - } - - SHAPE[0] = gl.drawingBufferWidth - SHAPE[1] = gl.drawingBufferHeight - shader.uniforms.model = model - shader.uniforms.view = view - shader.uniforms.projection = projection - shader.uniforms.coordinates = [this.position, outerFace, innerFace] - shader.uniforms.colors = this.colors - shader.uniforms.screenShape = SHAPE - - for(var i=0; i<3; ++i) { - shader.uniforms.lineWidth = this.lineWidth[i] * this.pixelRatio - if(this.enabled[i]) { - vao.draw(gl.TRIANGLES, 6, 6*i) - if(this.drawSides[i]) { - vao.draw(gl.TRIANGLES, 12, 18+12*i) - } + var floatBuffer = pool.mallocFloat(contourVerts.length) + for (i = 0; i < contourVerts.length; ++i) { + floatBuffer[i] = contourVerts[i] } + this._contourBuffer.update(floatBuffer) + pool.freeFloat(floatBuffer) } - - vao.unbind() } -proto.update = function(options) { - if(!options) { - return - } - if("bounds" in options) { - this.bounds = options.bounds - } - if("position" in options) { - this.position = options.position - } - if("lineWidth" in options) { - this.lineWidth = options.lineWidth - } - if("colors" in options) { - this.colors = options.colors - } - if("enabled" in options) { - this.enabled = options.enabled - } - if("drawSides" in options) { - this.drawSides = options.drawSides +proto.dispose = function () { + this._shader.dispose() + this._vao.dispose() + this._coordinateBuffer.dispose() + this._colorMap.dispose() + this._contourBuffer.dispose() + this._contourVAO.dispose() + this._contourShader.dispose() + this._contourPickShader.dispose() + this._dynamicBuffer.dispose() + this._dynamicVAO.dispose() + for (var i = 0; i < 3; ++i) { + pool.freeFloat(this._field[i].data) } } -proto.dispose = function() { - this.vao.dispose() - this.buffer.dispose() - this.shader.dispose() -} - - - -function createSpikes(gl, options) { - //Create buffers - var data = [ ] +proto.highlight = function (selection) { + var i - function line(x,y,z,i,l,h) { - var row = [x,y,z, 0,0,0, 1] - row[i+3] = 1 - row[i] = l - data.push.apply(data, row) - row[6] = -1 - data.push.apply(data, row) - row[i] = h - data.push.apply(data, row) - data.push.apply(data, row) - row[6] = 1 - data.push.apply(data, row) - row[i] = l - data.push.apply(data, row) + if (!selection) { + this._dynamicCounts = [0, 0, 0] + this.dyanamicLevel = [NaN, NaN, NaN] + this.highlightLevel = [-1, -1, -1] + return } - line(0,0,0, 0, 0, 1) - line(0,0,0, 1, 0, 1) - line(0,0,0, 2, 0, 1) - - line(1,0,0, 1, -1,1) - line(1,0,0, 2, -1,1) - - line(0,1,0, 0, -1,1) - line(0,1,0, 2, -1,1) - - line(0,0,1, 0, -1,1) - line(0,0,1, 1, -1,1) + for (i = 0; i < 3; ++i) { + if (this.enableHighlight[i]) { + this.highlightLevel[i] = selection.level[i] + } else { + this.highlightLevel[i] = -1 + } + } - var buffer = createBuffer(gl, data) - var vao = createVAO(gl, [{ - type: gl.FLOAT, - buffer: buffer, - size: 3, - offset: 0, - stride: 28 - }, { - type: gl.FLOAT, - buffer: buffer, - size: 3, - offset: 12, - stride: 28 - }, { - type: gl.FLOAT, - buffer: buffer, - size: 1, - offset: 24, - stride: 28 - }]) + var levels + if (this.snapToData) { + levels = selection.dataCoordinate + } else { + levels = selection.position + } + for (i = 0; i < 3; ++i) { + levels[i] -= this.objectOffset[i] + } + if ((!this.enableDynamic[0] || levels[0] === this.dynamicLevel[0]) && + (!this.enableDynamic[1] || levels[1] === this.dynamicLevel[1]) && + (!this.enableDynamic[2] || levels[2] === this.dynamicLevel[2])) { + return + } - //Create shader - var shader = createShader(gl) - shader.attributes.position.location = 0 - shader.attributes.color.location = 1 - shader.attributes.weight.location = 2 + var vertexCount = 0 + var shape = this.shape + var scratchBuffer = pool.mallocFloat(12 * shape[0] * shape[1]) - //Create spike object - var spikes = new AxisSpikes(gl, buffer, vao, shader) + for (var d = 0; d < 3; ++d) { + if (!this.enableDynamic[d]) { + this.dynamicLevel[d] = NaN + this._dynamicCounts[d] = 0 + continue + } - //Set parameters - spikes.update(options) + this.dynamicLevel[d] = levels[d] - //Return resulting object - return spikes -} + var u = (d + 1) % 3 + var v = (d + 2) % 3 -},{"./shaders/index":344,"gl-buffer":259,"gl-vao":358}],346:[function(_dereq_,module,exports){ -var glslify = _dereq_('glslify') + var f = this._field[d] + var g = this._field[u] + var h = this._field[v] -var triVertSrc = glslify(["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 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"]) -var triFragSrc = glslify(["#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"]) -var pickVertSrc = glslify(["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"]) -var pickFragSrc = glslify(["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}"]) + var graph = surfaceNets(f, levels[d]) + var edges = graph.cells + var positions = graph.positions -exports.meshShader = { - vertex: triVertSrc, - fragment: triFragSrc, - attributes: [ - {name: 'position', type: 'vec4'}, - {name: 'color', type: 'vec4'}, - {name: 'uv', type: 'vec2'}, - {name: 'vector', type: 'vec4'} - ] -} -exports.pickShader = { - vertex: pickVertSrc, - fragment: pickFragSrc, - attributes: [ - {name: 'position', type: 'vec4'}, - {name: 'id', type: 'vec4'}, - {name: 'vector', type: 'vec4'} - ] -} + this._dynamicOffsets[d] = vertexCount -},{"glslify":347}],347:[function(_dereq_,module,exports){ -arguments[4][257][0].apply(exports,arguments) -},{"dup":257}],348:[function(_dereq_,module,exports){ -"use strict"; + for (i = 0; i < edges.length; ++i) { + var e = edges[i] + for (var j = 0; j < 2; ++j) { + var p = positions[e[j]] -var vec3 = _dereq_('gl-vec3'); -var vec4 = _dereq_('gl-vec4'); -var GRID_TYPES = ['xyz', 'xzy', 'yxz', 'yzx', 'zxy', 'zyx']; + var x = +p[0] + var ix = x | 0 + var jx = Math.min(ix + 1, shape[0]) | 0 + var fx = x - ix + var hx = 1.0 - fx -var streamToTube = function(stream, maxDivergence, minDistance, maxNorm) { - var points = stream.points; - var velocities = stream.velocities; - var divergences = stream.divergences; + var y = +p[1] + var iy = y | 0 + var jy = Math.min(iy + 1, shape[1]) | 0 + var fy = y - iy + var hy = 1.0 - fy - var verts = []; - var faces = []; - var vectors = []; - var previousVerts = []; - var currentVerts = []; - var intensities = []; - var previousIntensity = 0; - var currentIntensity = 0; - var currentVector = vec4.create(); - var previousVector = vec4.create(); + var w00 = hx * hy + var w01 = hx * fy + var w10 = fx * hy + var w11 = fx * fy - var facets = 8; + var cu = w00 * g.get(ix, iy) + + w01 * g.get(ix, jy) + + w10 * g.get(jx, iy) + + w11 * g.get(jx, jy) - for (var i = 0; i < points.length; i++) { - var p = points[i]; - var fwd = velocities[i]; - var r = divergences[i]; - if (maxDivergence === 0) { - r = minDistance * 0.05; - } - currentIntensity = vec3.length(fwd) / maxNorm; + var cv = w00 * h.get(ix, iy) + + w01 * h.get(ix, jy) + + w10 * h.get(jx, iy) + + w11 * h.get(jx, jy) - currentVector = vec4.create(); - vec3.copy(currentVector, fwd); - currentVector[3] = r; + if (isNaN(cu) || isNaN(cv)) { + if (j) { + vertexCount -= 1 + } + break + } - for (var a = 0; a < facets; a++) { - currentVerts[a] = [p[0], p[1], p[2], a]; - } - if (previousVerts.length > 0) { - for (var a = 0; a < facets; a++) { - var a1 = (a+1) % facets; - verts.push( - previousVerts[a], - currentVerts[a], - currentVerts[a1], + scratchBuffer[2 * vertexCount + 0] = cu + scratchBuffer[2 * vertexCount + 1] = cv - currentVerts[a1], - previousVerts[a1], - previousVerts[a] - ); - vectors.push( - previousVector, - currentVector, - currentVector, + vertexCount += 1 + } + } - currentVector, - previousVector, - previousVector - ); - intensities.push( - previousIntensity, - currentIntensity, - currentIntensity, + this._dynamicCounts[d] = vertexCount - this._dynamicOffsets[d] + } - currentIntensity, - previousIntensity, - previousIntensity - ); + this._dynamicBuffer.update(scratchBuffer.subarray(0, 2 * vertexCount)) + pool.freeFloat(scratchBuffer) +} - var len = verts.length; - faces.push( - [len-6, len-5, len-4], - [len-3, len-2, len-1] - ); - } - } - var tmp1 = previousVerts; - previousVerts = currentVerts; - currentVerts = tmp1; +function createSurfacePlot (params) { + var gl = params.gl - var tmp2 = previousVector; - previousVector = currentVector; - currentVector = tmp2; + var shader = createShader(gl) + var pickShader = createPickShader(gl) + var contourShader = createContourShader(gl) + var contourPickShader = createPickContourShader(gl) - var tmp3 = previousIntensity; - previousIntensity = currentIntensity; - currentIntensity = tmp3; - } - return { - positions: verts, - cells: faces, - vectors: vectors, - vertexIntensity: intensities - }; -}; + var coordinateBuffer = createBuffer(gl) + var vao = createVAO(gl, [ + { buffer: coordinateBuffer, + size: 4, + stride: SURFACE_VERTEX_SIZE, + offset: 0 + }, + { buffer: coordinateBuffer, + size: 3, + stride: SURFACE_VERTEX_SIZE, + offset: 16 + }, + { + buffer: coordinateBuffer, + size: 3, + stride: SURFACE_VERTEX_SIZE, + offset: 28 + } + ]) -var createTubes = function(streams, colormap, maxDivergence, minDistance) { + var contourBuffer = createBuffer(gl) + var contourVAO = createVAO(gl, [ + { + buffer: contourBuffer, + size: 4, + stride: 20, + offset: 0 + }, + { + buffer: contourBuffer, + size: 1, + stride: 20, + offset: 16 + } + ]) - var maxNorm = 0; - for (var i=0; i v) return i-1; + var nparams = { + levels: [[], [], []] } - return i; -}; + for (var id in params) { + nparams[id] = params[id] + } + nparams.colormap = nparams.colormap || 'jet' -var clamp = function(v, min, max) { - return v < min ? min : (v > max ? max : v); -}; + surface.update(nparams) -var sampleMeshgrid = function(point, vectorField, gridInfo) { - var vectors = vectorField.vectors; - var meshgrid = vectorField.meshgrid; + return surface +} - var x = point[0]; - var y = point[1]; - var z = point[2]; +},{"./lib/shaders":348,"binary-search-bounds":99,"bit-twiddle":100,"colormap":133,"gl-buffer":259,"gl-mat4/invert":293,"gl-mat4/multiply":295,"gl-texture2d":352,"gl-vao":357,"ndarray":480,"ndarray-gradient":473,"ndarray-ops":475,"ndarray-pack":476,"surface-nets":585,"typedarray-pool":611}],351:[function(_dereq_,module,exports){ +'use strict' - var w = meshgrid[0].length; - var h = meshgrid[1].length; - var d = meshgrid[2].length; +var Font = _dereq_('css-font') +var pick = _dereq_('pick-by-alias') +var createRegl = _dereq_('regl') +var createGl = _dereq_('gl-util/context') +var WeakMap = _dereq_('es6-weak-map') +var rgba = _dereq_('color-normalize') +var fontAtlas = _dereq_('font-atlas') +var pool = _dereq_('typedarray-pool') +var parseRect = _dereq_('parse-rect') +var isObj = _dereq_('is-plain-obj') +var parseUnit = _dereq_('parse-unit') +var px = _dereq_('to-px') +var kerning = _dereq_('detect-kerning') +var extend = _dereq_('object-assign') +var metrics = _dereq_('font-measure') +var flatten = _dereq_('flatten-vertex-data') +var ref = _dereq_('bit-twiddle'); +var nextPow2 = ref.nextPow2; - // Find the index of the nearest smaller value in the meshgrid for each coordinate of (x,y,z). - // The nearest smaller value index for x is the index x0 such that - // meshgrid[0][x0] < x and for all x1 > x0, meshgrid[0][x1] >= x. - var x0 = findLastSmallerIndex(meshgrid[0], x); - var y0 = findLastSmallerIndex(meshgrid[1], y); - var z0 = findLastSmallerIndex(meshgrid[2], z); +var shaderCache = new WeakMap - // Get the nearest larger meshgrid value indices. - // From the above "nearest smaller value", we know that - // meshgrid[0][x0] < x - // meshgrid[0][x0+1] >= x - var x1 = x0 + 1; - var y1 = y0 + 1; - var z1 = z0 + 1; - x0 = clamp(x0, 0, w-1); - x1 = clamp(x1, 0, w-1); - y0 = clamp(y0, 0, h-1); - y1 = clamp(y1, 0, h-1); - z0 = clamp(z0, 0, d-1); - z1 = clamp(z1, 0, d-1); +// Safari does not support font-stretch +var isStretchSupported = false +if (document.body) { + var el = document.body.appendChild(document.createElement('div')) + el.style.font = 'italic small-caps bold condensed 16px/2 cursive' + if (getComputedStyle(el).fontStretch) { + isStretchSupported = true + } + document.body.removeChild(el) +} - // Reject points outside the meshgrid, return a zero vector. - if (x0 < 0 || y0 < 0 || z0 < 0 || x1 > w-1 || y1 > h-1 || z1 > d-1) { - return vec3.create(); +var GlText = function GlText (o) { + if (isRegl(o)) { + o = {regl: o} + this.gl = o.regl._gl } - - // Normalize point coordinates to 0..1 scaling factor between x0 and x1. - var mX0 = meshgrid[0][x0]; - var mX1 = meshgrid[0][x1]; - var mY0 = meshgrid[1][y0]; - var mY1 = meshgrid[1][y1]; - var mZ0 = meshgrid[2][z0]; - var mZ1 = meshgrid[2][z1]; - var xf = (x - mX0) / (mX1 - mX0); - var yf = (y - mY0) / (mY1 - mY0); - var zf = (z - mZ0) / (mZ1 - mZ0); - - if (!isFinite(xf)) xf = 0.5; - if (!isFinite(yf)) yf = 0.5; - if (!isFinite(zf)) zf = 0.5; - - var x0off; - var x1off; - var y0off; - var y1off; - var z0off; - var z1off; - - if(gridInfo.reversedX) { - x0 = w - 1 - x0; - x1 = w - 1 - x1; + else { + this.gl = createGl(o) } - if(gridInfo.reversedY) { - y0 = h - 1 - y0; - y1 = h - 1 - y1; - } + this.shader = shaderCache.get(this.gl) - if(gridInfo.reversedZ) { - z0 = d - 1 - z0; - z1 = d - 1 - z1; + if (!this.shader) { + this.regl = o.regl || createRegl({ gl: this.gl }) } - - switch(gridInfo.filled) { - case 5: // 'zyx' - z0off = z0; - z1off = z1; - y0off = y0*d; - y1off = y1*d; - x0off = x0*d*h; - x1off = x1*d*h; - break; - - case 4: // 'zxy' - z0off = z0; - z1off = z1; - x0off = x0*d; - x1off = x1*d; - y0off = y0*d*w; - y1off = y1*d*w; - break; - - case 3: // 'yzx' - y0off = y0; - y1off = y1; - z0off = z0*h; - z1off = z1*h; - x0off = x0*h*d; - x1off = x1*h*d; - break; - - case 2: // 'yxz' - y0off = y0; - y1off = y1; - x0off = x0*h; - x1off = x1*h; - z0off = z0*h*w; - z1off = z1*h*w; - break; - - case 1: // 'xzy' - x0off = x0; - x1off = x1; - z0off = z0*w; - z1off = z1*w; - y0off = y0*w*d; - y1off = y1*w*d; - break; - - default: // case 0: // 'xyz' - x0off = x0; - x1off = x1; - y0off = y0*w; - y1off = y1*w; - z0off = z0*w*h; - z1off = z1*w*h; - break; + else { + this.regl = this.shader.regl } - - // Sample data vectors around the (x,y,z) point. - var v000 = vectors[x0off + y0off + z0off]; - var v001 = vectors[x0off + y0off + z1off]; - var v010 = vectors[x0off + y1off + z0off]; - var v011 = vectors[x0off + y1off + z1off]; - var v100 = vectors[x1off + y0off + z0off]; - var v101 = vectors[x1off + y0off + z1off]; - var v110 = vectors[x1off + y1off + z0off]; - var v111 = vectors[x1off + y1off + z1off]; - - var c00 = vec3.create(); - var c01 = vec3.create(); - var c10 = vec3.create(); - var c11 = vec3.create(); - - vec3.lerp(c00, v000, v100, xf); - vec3.lerp(c01, v001, v101, xf); - vec3.lerp(c10, v010, v110, xf); - vec3.lerp(c11, v011, v111, xf); - - var c0 = vec3.create(); - var c1 = vec3.create(); - - vec3.lerp(c0, c00, c10, yf); - vec3.lerp(c1, c01, c11, yf); - - var c = vec3.create(); - - vec3.lerp(c, c0, c1, zf); - - return c; -}; - - -var vabs = function(dst, v) { - var x = v[0]; - var y = v[1]; - var z = v[2]; - dst[0] = x < 0 ? -x : x; - dst[1] = y < 0 ? -y : y; - dst[2] = z < 0 ? -z : z; - return dst; -}; - -var findMinSeparation = function(xs) { - var minSeparation = Infinity; - xs.sort(function(a, b) { return a - b; }); - var len = xs.length; - for (var i=1; i 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}" + }) - vec3.add(dp, p, [0, 0, e]); - var vz = getVelocity(dp); - vec3.subtract(vz, vz, v0); - vec3.scale(vz, vz, 1/e); + // per font-size atlas + var atlas = {} - vec3.add(dp, vx, vy); - vec3.add(dp, dp, vz); - return dp; - }; + return { regl: regl, draw: draw, atlas: atlas } +}; - var streams = []; +GlText.prototype.update = function update (o) { + var this$1 = this; - var minX = bounds[0][0], minY = bounds[0][1], minZ = bounds[0][2]; - var maxX = bounds[1][0], maxY = bounds[1][1], maxZ = bounds[1][2]; + if (typeof o === 'string') { o = { text: o } } + else if (!o) { return } - var inBounds = function(p) { - var x = p[0]; - var y = p[1]; - var z = p[2]; - return !( - x < minX || x > maxX || - y < minY || y > maxY || - z < minZ || z > maxZ - ); - }; + // FIXME: make this a static transform or more general approact + o = pick(o, { + 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' + }, true) - var boundsSize = vec3.distance(bounds[0], bounds[1]); - var maxStepSize = 10 * boundsSize / maxLength; - var maxStepSizeSq = maxStepSize * maxStepSize; - var minDistance = 1; - var maxDivergence = 0; // For component-wise divergence vec3.create(); + if (o.opacity != null) { + if (Array.isArray(o.opacity)) { + this.opacity = o.opacity.map(function (o) { return parseFloat(o); }) + } + else { + this.opacity = parseFloat(o.opacity) + } + } - // In case we need to do component-wise divergence visualization - // var tmp = vec3.create(); + if (o.viewport != null) { + this.viewport = parseRect(o.viewport) - var len = positions.length; - if (len > 1) { - minDistance = calculateMinPositionDistance(positions); + if (GlText.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] + + } + if (this.viewport == null) { + 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] } - for (var i = 0; i < len; i++) { - var p = vec3.create(); - vec3.copy(p, positions[i]); + if (o.kerning != null) { this.kerning = o.kerning } - var stream = [p]; - var velocities = []; - var v = getVelocity(p); - var op = p; - velocities.push(v); + if (o.offset != null) { + if (typeof o.offset === 'number') { o.offset = [o.offset, 0] } - var divergences = []; + this.positionOffset = flatten(o.offset) + } - var dv = getDivergence(p, v); - var dvLength = vec3.length(dv); - if (isFinite(dvLength) && dvLength > maxDivergence) { - maxDivergence = dvLength; - } - // In case we need to do component-wise divergence visualization - // vec3.max(maxDivergence, maxDivergence, vabs(tmp, dv)); - divergences.push(dvLength); + if (o.direction) { this.direction = o.direction } - streams.push({points: stream, velocities: velocities, divergences: divergences}); + if (o.range) { + this.range = o.range + this.scale = [1 / (o.range[2] - o.range[0]), 1 / (o.range[3] - o.range[1])] + this.translate = [-o.range[0], -o.range[1]] + } + if (o.scale) { this.scale = o.scale } + if (o.translate) { this.translate = o.translate } - var j = 0; + // default scale corresponds to viewport + if (!this.scale) { this.scale = [1 / this.viewport.width, 1 / this.viewport.height] } - while (j < maxLength * 100 && stream.length < maxLength && inBounds(p)) { - j++; - var np = vec3.clone(v); - var sqLen = vec3.squaredLength(np); - if (sqLen === 0) { - break; - } else if (sqLen > maxStepSizeSq) { - vec3.scale(np, np, maxStepSize / Math.sqrt(sqLen)); - } - vec3.add(np, np, p); + if (!this.translate) { this.translate = [0, 0] } - v = getVelocity(np); + if (!this.font.length && !o.font) { o.font = GlText.baseFontSize + 'px sans-serif' } - if (vec3.squaredDistance(op, np) - maxStepSizeSq > -0.0001 * maxStepSizeSq) { - stream.push(np); - op = np; - velocities.push(v); - var dv = getDivergence(np, v); - var dvLength = vec3.length(dv); - if (isFinite(dvLength) && dvLength > maxDivergence) { - maxDivergence = dvLength; + // normalize font caching string + var newFont = false, newFontSize = false + + // obtain new font data + if (o.font) { + (Array.isArray(o.font) ? o.font : [o.font]).forEach(function (font, i) { + // normalize font + if (typeof font === 'string') { + try { + font = Font.parse(font) + } catch (e) { + font = Font.parse(GlText.baseFontSize + 'px ' + font) } - // In case we need to do component-wise divergence visualization - //vec3.max(maxDivergence, maxDivergence, vabs(tmp, dv)); - divergences.push(dvLength); } + else { font = Font.parse(Font.stringify(font)) } - p = np; - } - } + var baseString = Font.stringify({ + size: GlText.baseFontSize, + family: font.family, + stretch: isStretchSupported ? font.stretch : undefined, + variant: font.variant, + weight: font.weight, + style: font.style + }) - var tubes = createTubes(streams, vectorField.colormap, maxDivergence, minDistance); + var unit = parseUnit(font.size) + var fs = Math.round(unit[0] * px(unit[1])) + if (fs !== this$1.fontSize[i]) { + newFontSize = true + this$1.fontSize[i] = fs + } - if (absoluteTubeSize) { - tubes.tubeScale = absoluteTubeSize; - } else { - // Avoid division by zero. - if (maxDivergence === 0) { - maxDivergence = 1; - } - tubes.tubeScale = tubeSize * 0.5 * minDistance / maxDivergence; - } + // calc new font metrics/atlas + if (!this$1.font[i] || baseString != this$1.font[i].baseString) { + newFont = true - return tubes; -}; + // obtain font cache or create one + this$1.font[i] = GlText.fonts[baseString] + if (!this$1.font[i]) { + var family = font.family.join(', ') + var style = [font.style] + if (font.style != font.variant) { style.push(font.variant) } + if (font.variant != font.weight) { style.push(font.weight) } + if (isStretchSupported && font.weight != font.stretch) { style.push(font.stretch) } -var shaders = _dereq_('./lib/shaders'); -var createMesh = _dereq_('gl-cone3d').createMesh; -module.exports.createTubeMesh = function(gl, params) { - return createMesh(gl, params, { - shaders: shaders, - traceType: 'streamtube' - }); -} + this$1.font[i] = { + baseString: baseString, -},{"./lib/shaders":346,"gl-cone3d":260,"gl-vec3":377,"gl-vec4":413}],349:[function(_dereq_,module,exports){ -var createShader = _dereq_('gl-shader') -var glslify = _dereq_('glslify') + // typeface + family: family, + weight: font.weight, + stretch: font.stretch, + style: font.style, + variant: font.variant, -var vertSrc = glslify(["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"]) -var fragSrc = glslify(["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 — 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"]) -var contourVertSrc = glslify(["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"]) -var pickSrc = glslify(["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"]) + // widths of characters + width: {}, -exports.createShader = function (gl) { - var shader = createShader(gl, vertSrc, fragSrc, null, [ - {name: 'uv', type: 'vec4'}, - {name: 'f', type: 'vec3'}, - {name: 'normal', type: 'vec3'} - ]) - shader.attributes.uv.location = 0 - shader.attributes.f.location = 1 - shader.attributes.normal.location = 2 - return shader -} -exports.createPickShader = function (gl) { - var shader = createShader(gl, vertSrc, pickSrc, null, [ - {name: 'uv', type: 'vec4'}, - {name: 'f', type: 'vec3'}, - {name: 'normal', type: 'vec3'} - ]) - shader.attributes.uv.location = 0 - shader.attributes.f.location = 1 - shader.attributes.normal.location = 2 - return shader -} -exports.createContourShader = function (gl) { - var shader = createShader(gl, contourVertSrc, fragSrc, null, [ - {name: 'uv', type: 'vec4'}, - {name: 'f', type: 'float'} - ]) - shader.attributes.uv.location = 0 - shader.attributes.f.location = 1 - return shader -} -exports.createPickContourShader = function (gl) { - var shader = createShader(gl, contourVertSrc, pickSrc, null, [ - {name: 'uv', type: 'vec4'}, - {name: 'f', type: 'float'} - ]) - shader.attributes.uv.location = 0 - shader.attributes.f.location = 1 - return shader -} + // kernin pairs offsets + kerning: {}, -},{"gl-shader":335,"glslify":350}],350:[function(_dereq_,module,exports){ -arguments[4][257][0].apply(exports,arguments) -},{"dup":257}],351:[function(_dereq_,module,exports){ -'use strict' + metrics: metrics(family, { + origin: 'top', + fontSize: GlText.baseFontSize, + fontStyle: style.join(' ') + }) + } -module.exports = createSurfacePlot + GlText.fonts[baseString] = this$1.font[i] + } + } + }) + } -var bits = _dereq_('bit-twiddle') -var createBuffer = _dereq_('gl-buffer') -var createVAO = _dereq_('gl-vao') -var createTexture = _dereq_('gl-texture2d') -var pool = _dereq_('typedarray-pool') -var colormap = _dereq_('colormap') -var ops = _dereq_('ndarray-ops') -var pack = _dereq_('ndarray-pack') -var ndarray = _dereq_('ndarray') -var surfaceNets = _dereq_('surface-nets') -var multiply = _dereq_('gl-mat4/multiply') -var invert = _dereq_('gl-mat4/invert') -var bsearch = _dereq_('binary-search-bounds') -var gradient = _dereq_('ndarray-gradient') -var shaders = _dereq_('./lib/shaders') + // FIXME: make independend font-size + // if (o.fontSize) { + // let unit = parseUnit(o.fontSize) + // let fs = Math.round(unit[0] * px(unit[1])) -var createShader = shaders.createShader -var createContourShader = shaders.createContourShader -var createPickShader = shaders.createPickShader -var createPickContourShader = shaders.createPickContourShader + // if (fs != this.fontSize) { + // newFontSize = true + // this.fontSize = fs + // } + // } -var SURFACE_VERTEX_SIZE = 4 * (4 + 3 + 3) + if (newFont || newFontSize) { + this.font.forEach(function (font, i) { + var fontString = Font.stringify({ + size: this$1.fontSize[i], + family: font.family, + stretch: isStretchSupported ? font.stretch : undefined, + variant: font.variant, + weight: font.weight, + style: font.style + }) -var IDENTITY = [ - 1, 0, 0, 0, - 0, 1, 0, 0, - 0, 0, 1, 0, - 0, 0, 0, 1 ] + // calc new font size atlas + this$1.fontAtlas[i] = this$1.shader.atlas[fontString] -var QUAD = [ - [0, 0], - [0, 1], - [1, 0], - [1, 1], - [1, 0], - [0, 1] -] + if (!this$1.fontAtlas[i]) { + var metrics = font.metrics -var PERMUTATIONS = [ - [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] -] + this$1.shader.atlas[fontString] = + this$1.fontAtlas[i] = { + fontString: fontString, + // even step is better for rendered characters + step: Math.ceil(this$1.fontSize[i] * metrics.bottom * .5) * 2, + em: this$1.fontSize[i], + cols: 0, + rows: 0, + height: 0, + width: 0, + chars: [], + ids: {}, + texture: this$1.regl.texture() + } + } -;(function () { - for (var i = 0; i < 3; ++i) { - var p = PERMUTATIONS[i] - var u = (i + 1) % 3 - var v = (i + 2) % 3 - p[u + 0] = 1 - p[v + 3] = 1 - p[i + 6] = 1 - } -})() + // bump atlas characters + if (o.text == null) { o.text = this$1.text } + }) + } -function SurfacePickResult (position, index, uv, level, dataCoordinate) { - this.position = position - this.index = index - this.uv = uv - this.level = level - this.dataCoordinate = dataCoordinate -} + // if multiple positions - duplicate text arguments + // FIXME: this possibly can be done better to avoid array spawn + if (typeof o.text === 'string' && o.position && o.position.length > 2) { + var textArray = Array(o.position.length * .5) + for (var i = 0; i < textArray.length; i++) { + textArray[i] = o.text + } + o.text = textArray + } -var N_COLORS = 256 + // calculate offsets for the new font/text + var newAtlasChars + if (o.text != null || newFont) { + // FIXME: ignore spaces + // text offsets within the text buffer + this.textOffsets = [0] -function SurfacePlot ( - gl, - shape, - bounds, - shader, - pickShader, - coordinates, - vao, - colorMap, - contourShader, - contourPickShader, - contourBuffer, - contourVAO, - dynamicBuffer, - dynamicVAO, - objectOffset) { - this.gl = gl - this.shape = shape - this.bounds = bounds - this.objectOffset = objectOffset - this.intensityBounds = [] + if (Array.isArray(o.text)) { + this.count = o.text[0].length + this.counts = [this.count] + for (var i$1 = 1; i$1 < o.text.length; i$1++) { + this.textOffsets[i$1] = this.textOffsets[i$1 - 1] + o.text[i$1 - 1].length + this.count += o.text[i$1].length + this.counts.push(o.text[i$1].length) + } + this.text = o.text.join('') + } + else { + this.text = o.text + this.count = this.text.length + this.counts = [this.count] + } - this._shader = shader - this._pickShader = pickShader - this._coordinateBuffer = coordinates - this._vao = vao - this._colorMap = colorMap + newAtlasChars = [] - this._contourShader = contourShader - this._contourPickShader = contourPickShader - this._contourBuffer = contourBuffer - this._contourVAO = contourVAO - this._contourOffsets = [[], [], []] - this._contourCounts = [[], [], []] - this._vertexCount = 0 + // detect & measure new characters + this.font.forEach(function (font, idx) { + GlText.atlasContext.font = font.baseString - this._pickResult = new SurfacePickResult([0, 0, 0], [0, 0], [0, 0], [0, 0, 0], [0, 0, 0]) + var atlas = this$1.fontAtlas[idx] - this._dynamicBuffer = dynamicBuffer - this._dynamicVAO = dynamicVAO - this._dynamicOffsets = [0, 0, 0] - this._dynamicCounts = [0, 0, 0] + for (var i = 0; i < this$1.text.length; i++) { + var char = this$1.text.charAt(i) - this.contourWidth = [ 1, 1, 1 ] - this.contourLevels = [[1], [1], [1]] - this.contourTint = [0, 0, 0] - this.contourColor = [[0.5, 0.5, 0.5, 1], [0.5, 0.5, 0.5, 1], [0.5, 0.5, 0.5, 1]] + if (atlas.ids[char] == null) { + atlas.ids[char] = atlas.chars.length + atlas.chars.push(char) + newAtlasChars.push(char) + } - this.showContour = true - this.showSurface = true + if (font.width[char] == null) { + font.width[char] = GlText.atlasContext.measureText(char).width / GlText.baseFontSize - this.enableHighlight = [true, true, true] - this.highlightColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]] - this.highlightTint = [ 1, 1, 1 ] - this.highlightLevel = [-1, -1, -1] + // measure kerning pairs for the new character + if (this$1.kerning) { + var pairs = [] + for (var baseChar in font.width) { + pairs.push(baseChar + char, char + baseChar) + } + extend(font.kerning, kerning(font.family, { + pairs: pairs + })) + } + } + } + }) + } - // Dynamic contour options - this.enableDynamic = [ true, true, true ] - 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 ] + // create single position buffer (faster than batch or multiple separate instances) + if (o.position) { + if (o.position.length > 2) { + var flat = !o.position[0].length + var positionData = pool.mallocFloat(this.count * 2) + for (var i$2 = 0, ptr = 0; i$2 < this.counts.length; i$2++) { + var count = this.counts[i$2] + if (flat) { + for (var j = 0; j < count; j++) { + positionData[ptr++] = o.position[i$2 * 2] + positionData[ptr++] = o.position[i$2 * 2 + 1] + } + } + else { + for (var j$1 = 0; j$1 < count; j$1++) { + positionData[ptr++] = o.position[i$2][0] + positionData[ptr++] = o.position[i$2][1] + } + } + } + if (this.position.call) { + this.position({ + type: 'float', + data: positionData + }) + } else { + this.position = this.regl.buffer({ + type: 'float', + data: positionData + }) + } + pool.freeFloat(positionData) + } + else { + if (this.position.destroy) { this.position.destroy() } + this.position = { + constant: o.position + } + } + } - this.axesBounds = [[Infinity, Infinity, Infinity], [-Infinity, -Infinity, -Infinity]] - this.surfaceProject = [ false, false, false ] - this.contourProject = [[ false, false, false ], - [ false, false, false ], - [ false, false, false ]] + // populate text/offset buffers if font/text has changed + // as [charWidth, offset, charWidth, offset...] + // that is in em units since font-size can change often + if (o.text || newFont) { + var charIds = pool.mallocUint8(this.count) + var sizeData = pool.mallocFloat(this.count * 2) + this.textWidth = [] - this.colorBounds = [ false, false ] + for (var i$3 = 0, ptr$1 = 0; i$3 < this.counts.length; i$3++) { + var count$1 = this.counts[i$3] + var font = this.font[i$3] || this.font[0] + var atlas = this.fontAtlas[i$3] || this.fontAtlas[0] - // Store xyz fields, need this for picking - this._field = [ - ndarray(pool.mallocFloat(1024), [0, 0]), - ndarray(pool.mallocFloat(1024), [0, 0]), - ndarray(pool.mallocFloat(1024), [0, 0]) ] + for (var j$2 = 0; j$2 < count$1; j$2++) { + var char = this.text.charAt(ptr$1) + var prevChar = this.text.charAt(ptr$1 - 1) - this.pickId = 1 - this.clipBounds = [[-Infinity, -Infinity, -Infinity], [Infinity, Infinity, Infinity]] + charIds[ptr$1] = atlas.ids[char] + sizeData[ptr$1 * 2] = font.width[char] - this.snapToData = false + if (j$2) { + var prevWidth = sizeData[ptr$1 * 2 - 2] + var currWidth = sizeData[ptr$1 * 2] + var prevOffset = sizeData[ptr$1 * 2 - 1] + var offset = prevOffset + prevWidth * .5 + currWidth * .5; - this.pixelRatio = 1 + if (this.kerning) { + var kerning$1 = font.kerning[prevChar + char] + if (kerning$1) { + offset += kerning$1 * 1e-3 + } + } - this.opacity = 1.0 + sizeData[ptr$1 * 2 + 1] = offset + } + else { + sizeData[ptr$1 * 2 + 1] = sizeData[ptr$1 * 2] * .5 + } - this.lightPosition = [10, 10000, 0] - this.ambientLight = 0.8 - this.diffuseLight = 0.8 - this.specularLight = 2.0 - this.roughness = 0.5 - this.fresnel = 1.5 - this.vertexColor = 0 + ptr$1++ + } + this.textWidth.push( + !sizeData.length ? 0 : + // last offset + half last width + sizeData[ptr$1 * 2 - 2] * .5 + sizeData[ptr$1 * 2 - 1] + ) + } - this.dirty = true -} -var proto = SurfacePlot.prototype + // bump recalc align offset + if (!o.align) { o.align = this.align } + this.charBuffer({data: charIds, type: 'uint8', usage: 'stream'}) + this.sizeBuffer({data: sizeData, type: 'float', usage: 'stream'}) + pool.freeUint8(charIds) + pool.freeFloat(sizeData) -proto.genColormap = function (name, opacityscale) { - var hasAlpha = false + // udpate font atlas and texture + if (newAtlasChars.length) { + this.font.forEach(function (font, i) { + var atlas = this$1.fontAtlas[i] - var x = pack([colormap({ - colormap: name, - nshades: N_COLORS, - format: 'rgba' - }).map(function (c, i) { - var a = opacityscale ? getOpacityFromScale(i / 255.0, opacityscale) : c[3] - if(a < 1) hasAlpha = true - return [c[0], c[1], c[2], 255 * a] - })]) - ops.divseq(x, 255.0) + // FIXME: insert metrics-based ratio here + var step = atlas.step - this.hasAlphaScale = hasAlpha - return x -} + var maxCols = Math.floor(GlText.maxAtlasSize / step) + var cols = Math.min(maxCols, atlas.chars.length) + var rows = Math.ceil(atlas.chars.length / cols) -proto.isTransparent = function () { - return this.opacity < 1 || this.hasAlphaScale -} + var atlasWidth = nextPow2( cols * step ) + // let atlasHeight = Math.min(rows * step + step * .5, GlText.maxAtlasSize); + var atlasHeight = nextPow2( rows * step ); -proto.isOpaque = function () { - return !this.isTransparent() -} + atlas.width = atlasWidth + atlas.height = atlasHeight; + atlas.rows = rows + atlas.cols = cols -proto.pickSlots = 1 + if (!atlas.em) { return } -proto.setPickBase = function (id) { - this.pickId = id -} + atlas.texture({ + data: fontAtlas({ + canvas: GlText.atlasCanvas, + font: atlas.fontString, + chars: atlas.chars, + shape: [atlasWidth, atlasHeight], + step: [step, step] + }) + }) -function getOpacityFromScale(ratio, opacityscale) { // copied form gl-mesh3d - if(!opacityscale) return 1 - if(!opacityscale.length) return 1 + }) + } + } - for(var i = 0; i < opacityscale.length; ++i) { - if(opacityscale.length < 2) return 1 - if(opacityscale[i][0] === ratio) return opacityscale[i][1] - if(opacityscale[i][0] > ratio && i > 0) { - var d = (opacityscale[i][0] - ratio) / (opacityscale[i][0] - opacityscale[i - 1][0]) - return opacityscale[i][1] * (1 - d) + d * opacityscale[i - 1][1] - } - } + if (o.align) { + this.align = o.align + this.alignOffset = this.textWidth.map(function (textWidth, i) { + var align = !Array.isArray(this$1.align) ? this$1.align : this$1.align.length > 1 ? this$1.align[i] : this$1.align[0] - return 1 -} + if (typeof align === 'number') { return align } + switch (align) { + case 'right': + case 'end': + return -textWidth + case 'center': + case 'centre': + case 'middle': + return -textWidth * .5 + } -var ZERO_VEC = [0, 0, 0] + return 0 + }) + } -var PROJECT_DATA = { - showSurface: false, - showContour: false, - projections: [IDENTITY.slice(), IDENTITY.slice(), IDENTITY.slice()], - clipBounds: [ - [[0, 0, 0], [0, 0, 0]], - [[0, 0, 0], [0, 0, 0]], - [[0, 0, 0], [0, 0, 0]]] -} + if (this.baseline == null && o.baseline == null) { + o.baseline = 0 + } + if (o.baseline != null) { + this.baseline = o.baseline + if (!Array.isArray(this.baseline)) { this.baseline = [this.baseline] } + this.baselineOffset = this.baseline.map(function (baseline, i) { + var m = (this$1.font[i] || this$1.font[0]).metrics + var base = 0 -function computeProjectionData (camera, obj) { - var i, j, k + base += m.bottom * .5 - // Compute cube properties - var cubeAxis = (obj.axes && obj.axes.lastCubeProps.axis) || ZERO_VEC + if (typeof baseline === 'number') { + base += (baseline - m.baseline) + } + else { + base += -m[baseline] + } - var showSurface = obj.showSurface - var showContour = obj.showContour + if (!GlText.normalViewport) { base *= -1 } + return base + }) + } - for (i = 0; i < 3; ++i) { - showSurface = showSurface || obj.surfaceProject[i] - for (j = 0; j < 3; ++j) { - showContour = showContour || obj.contourProject[i][j] - } - } + // flatten colors to a single uint8 array + if (o.color != null) { + if (!o.color) { o.color = 'transparent' } - for (i = 0; i < 3; ++i) { - // Construct projection onto axis - var axisSquish = PROJECT_DATA.projections[i] - for (j = 0; j < 16; ++j) { - axisSquish[j] = 0 - } - for (j = 0; j < 4; ++j) { - axisSquish[5 * j] = 1 - } - axisSquish[5 * i] = 0 - axisSquish[12 + i] = obj.axesBounds[+(cubeAxis[i] > 0)][i] - multiply(axisSquish, camera.model, axisSquish) + // single color + if (typeof o.color === 'string' || !isNaN(o.color)) { + this.color = rgba(o.color, 'uint8') + } + // array + else { + var colorData - var nclipBounds = PROJECT_DATA.clipBounds[i] - for (k = 0; k < 2; ++k) { - for (j = 0; j < 3; ++j) { - nclipBounds[k][j] = camera.clipBounds[k][j] - } - } - nclipBounds[0][i] = -1e8 - nclipBounds[1][i] = 1e8 - } + // flat array + if (typeof o.color[0] === 'number' && o.color.length > this.counts.length) { + var l = o.color.length + colorData = pool.mallocUint8(l) + var sub = (o.color.subarray || o.color.slice).bind(o.color) + for (var i$4 = 0; i$4 < l; i$4 += 4) { + colorData.set(rgba(sub(i$4, i$4 + 4), 'uint8'), i$4) + } + } + // nested array + else { + var l$1 = o.color.length + colorData = pool.mallocUint8(l$1 * 4) + for (var i$5 = 0; i$5 < l$1; i$5++) { + colorData.set(rgba(o.color[i$5] || 0, 'uint8'), i$5 * 4) + } + } - PROJECT_DATA.showSurface = showSurface - PROJECT_DATA.showContour = showContour + this.color = colorData + } + } - return PROJECT_DATA -} + // update render batch + if (o.position || o.text || o.color || o.baseline || o.align || o.font || o.offset || o.opacity) { + var isBatch = (this.color.length > 4) + || (this.baselineOffset.length > 1) + || (this.align && this.align.length > 1) + || (this.fontAtlas.length > 1) + || (this.positionOffset.length > 2) + if (isBatch) { + var length = Math.max( + this.position.length * .5 || 0, + this.color.length * .25 || 0, + this.baselineOffset.length || 0, + this.alignOffset.length || 0, + this.font.length || 0, + this.opacity.length || 0, + this.positionOffset.length * .5 || 0 + ) + this.batch = Array(length) + for (var i$6 = 0; i$6 < this.batch.length; i$6++) { + this.batch[i$6] = { + count: this.counts.length > 1 ? this.counts[i$6] : this.counts[0], + offset: this.textOffsets.length > 1 ? this.textOffsets[i$6] : this.textOffsets[0], + color: !this.color ? [0,0,0,255] : this.color.length <= 4 ? this.color : this.color.subarray(i$6 * 4, i$6 * 4 + 4), + opacity: Array.isArray(this.opacity) ? this.opacity[i$6] : this.opacity, + baseline: this.baselineOffset[i$6] != null ? this.baselineOffset[i$6] : this.baselineOffset[0], + align: !this.align ? 0 : this.alignOffset[i$6] != null ? this.alignOffset[i$6] : this.alignOffset[0], + atlas: this.fontAtlas[i$6] || this.fontAtlas[0], + positionOffset: this.positionOffset.length > 2 ? this.positionOffset.subarray(i$6 * 2, i$6 * 2 + 2) : this.positionOffset + } + } + } + // single-color, single-baseline, single-align batch is faster to render + else { + if (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 + }] + } + else { + this.batch = [] + } + } + } +}; -var UNIFORMS = { - model: IDENTITY, - view: IDENTITY, - projection: IDENTITY, - inverseModel: IDENTITY.slice(), - lowerBound: [0, 0, 0], - upperBound: [0, 0, 0], - colorMap: 0, - clipBounds: [[0, 0, 0], [0, 0, 0]], - height: 0.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: [1000, 1000, 1000], - eyePosition: [0, 0, 0], - roughness: 1, - fresnel: 1, - opacity: 1, - vertexColor: 0 -} +GlText.prototype.destroy = function destroy () { + // TODO: count instances of atlases and destroy all on null +}; -var MATRIX_INVERSE = IDENTITY.slice() -var DEFAULT_PERM = [1, 0, 0, 0, 1, 0, 0, 0, 1] -function drawCore (params, transparent) { - params = params || {} - var gl = this.gl +// defaults +GlText.prototype.kerning = true +GlText.prototype.position = { constant: new Float32Array(2) } +GlText.prototype.translate = null +GlText.prototype.scale = null +GlText.prototype.font = null +GlText.prototype.text = '' +GlText.prototype.positionOffset = [0, 0] +GlText.prototype.opacity = 1 +GlText.prototype.color = new Uint8Array([0, 0, 0, 255]) +GlText.prototype.alignOffset = [0, 0] - gl.disable(gl.CULL_FACE) - this._colorMap.bind(0) +// whether viewport should be top↓bottom 2d one (true) or webgl one (false) +GlText.normalViewport = false - var uniforms = UNIFORMS - uniforms.model = params.model || IDENTITY - uniforms.view = params.view || IDENTITY - uniforms.projection = params.projection || IDENTITY - uniforms.lowerBound = [this.bounds[0][0], this.bounds[0][1], this.colorBounds[0] || this.bounds[0][2]] - uniforms.upperBound = [this.bounds[1][0], this.bounds[1][1], this.colorBounds[1] || this.bounds[1][2]] - uniforms.objectOffset = this.objectOffset - uniforms.contourColor = this.contourColor[0] +// size of an atlas +GlText.maxAtlasSize = 1024 - uniforms.inverseModel = invert(uniforms.inverseModel, uniforms.model) +// font atlas canvas is singleton +GlText.atlasCanvas = document.createElement('canvas') +GlText.atlasContext = GlText.atlasCanvas.getContext('2d', {alpha: false}) - for (var i = 0; i < 2; ++i) { - var clipClamped = uniforms.clipBounds[i] - for (var j = 0; j < 3; ++j) { - clipClamped[j] = Math.min(Math.max(this.clipBounds[i][j], -1e8), 1e8) - } - } +// font-size used for metrics, atlas step calculation +GlText.baseFontSize = 64 - uniforms.kambient = this.ambientLight - uniforms.kdiffuse = this.diffuseLight - uniforms.kspecular = this.specularLight +// fonts storage +GlText.fonts = {} - uniforms.roughness = this.roughness - uniforms.fresnel = this.fresnel - uniforms.opacity = this.opacity +// max number of different font atlases/textures cached +// FIXME: enable atlas size limitation via LRU +// GlText.atlasCacheSize = 64 - uniforms.height = 0.0 - uniforms.permutation = DEFAULT_PERM +function isRegl (o) { + return typeof o === 'function' && + o._gl && + o.prop && + o.texture && + o.buffer +} - uniforms.vertexColor = this.vertexColor - // Compute camera matrix inverse - var invCameraMatrix = MATRIX_INVERSE - multiply(invCameraMatrix, uniforms.view, uniforms.model) - multiply(invCameraMatrix, uniforms.projection, invCameraMatrix) - invert(invCameraMatrix, invCameraMatrix) +module.exports = GlText - for (i = 0; i < 3; ++i) { - uniforms.eyePosition[i] = invCameraMatrix[12 + i] / invCameraMatrix[15] - } - var w = invCameraMatrix[15] - for (i = 0; i < 3; ++i) { - w += this.lightPosition[i] * invCameraMatrix[4 * i + 3] - } - for (i = 0; i < 3; ++i) { - var s = invCameraMatrix[12 + i] - for (j = 0; j < 3; ++j) { - s += invCameraMatrix[4 * j + i] * this.lightPosition[j] - } - uniforms.lightPosition[i] = s / w - } +},{"bit-twiddle":100,"color-normalize":127,"css-font":146,"detect-kerning":173,"es6-weak-map":233,"flatten-vertex-data":244,"font-atlas":245,"font-measure":246,"gl-util/context":353,"is-plain-obj":453,"object-assign":484,"parse-rect":489,"parse-unit":491,"pick-by-alias":495,"regl":534,"to-px":594,"typedarray-pool":611}],352:[function(_dereq_,module,exports){ +'use strict' - var projectData = computeProjectionData(uniforms, this) +var ndarray = _dereq_('ndarray') +var ops = _dereq_('ndarray-ops') +var pool = _dereq_('typedarray-pool') - if (projectData.showSurface) { - // Set up uniforms - this._shader.bind() - this._shader.uniforms = uniforms +module.exports = createTexture2D - // Draw it - this._vao.bind() +var linearTypes = null +var filterTypes = null +var wrapTypes = null - if (this.showSurface && this._vertexCount) { - this._vao.draw(gl.TRIANGLES, this._vertexCount) - } +function lazyInitLinearTypes(gl) { + linearTypes = [ + gl.LINEAR, + gl.NEAREST_MIPMAP_LINEAR, + gl.LINEAR_MIPMAP_NEAREST, + gl.LINEAR_MIPMAP_NEAREST + ] + filterTypes = [ + gl.NEAREST, + gl.LINEAR, + gl.NEAREST_MIPMAP_NEAREST, + gl.NEAREST_MIPMAP_LINEAR, + gl.LINEAR_MIPMAP_NEAREST, + gl.LINEAR_MIPMAP_LINEAR + ] + wrapTypes = [ + gl.REPEAT, + gl.CLAMP_TO_EDGE, + gl.MIRRORED_REPEAT + ] +} - // Draw projections of surface - for (i = 0; i < 3; ++i) { - if (!this.surfaceProject[i] || !this.vertexCount) { - continue - } - this._shader.uniforms.model = projectData.projections[i] - this._shader.uniforms.clipBounds = projectData.clipBounds[i] - this._vao.draw(gl.TRIANGLES, this._vertexCount) - } +function acceptTextureDOM (obj) { + return ( + ('undefined' != typeof HTMLCanvasElement && obj instanceof HTMLCanvasElement) || + ('undefined' != typeof HTMLImageElement && obj instanceof HTMLImageElement) || + ('undefined' != typeof HTMLVideoElement && obj instanceof HTMLVideoElement) || + ('undefined' != typeof ImageData && obj instanceof ImageData)) +} - this._vao.unbind() - } +var convertFloatToUint8 = function(out, inp) { + ops.muls(out, inp, 255.0) +} - if (projectData.showContour) { - var shader = this._contourShader +function reshapeTexture(tex, w, h) { + var gl = tex.gl + var maxSize = gl.getParameter(gl.MAX_TEXTURE_SIZE) + if(w < 0 || w > maxSize || h < 0 || h > maxSize) { + throw new Error('gl-texture2d: Invalid texture size') + } + tex._shape = [w, h] + tex.bind() + gl.texImage2D(gl.TEXTURE_2D, 0, tex.format, w, h, 0, tex.format, tex.type, null) + tex._mipLevels = [0] + return tex +} - // Don't apply lighting to contours - uniforms.kambient = 1.0 - uniforms.kdiffuse = 0.0 - uniforms.kspecular = 0.0 - uniforms.opacity = 1.0 +function Texture2D(gl, handle, width, height, format, type) { + this.gl = gl + this.handle = handle + this.format = format + this.type = type + this._shape = [width, height] + this._mipLevels = [0] + this._magFilter = gl.NEAREST + this._minFilter = gl.NEAREST + this._wrapS = gl.CLAMP_TO_EDGE + this._wrapT = gl.CLAMP_TO_EDGE + this._anisoSamples = 1 - shader.bind() - shader.uniforms = uniforms + var parent = this + var wrapVector = [this._wrapS, this._wrapT] + Object.defineProperties(wrapVector, [ + { + get: function() { + return parent._wrapS + }, + set: function(v) { + return parent.wrapS = v + } + }, + { + get: function() { + return parent._wrapT + }, + set: function(v) { + return parent.wrapT = v + } + } + ]) + this._wrapVector = wrapVector - // Draw contour lines - var vao = this._contourVAO - vao.bind() + var shapeVector = [this._shape[0], this._shape[1]] + Object.defineProperties(shapeVector, [ + { + get: function() { + return parent._shape[0] + }, + set: function(v) { + return parent.width = v + } + }, + { + get: function() { + return parent._shape[1] + }, + set: function(v) { + return parent.height = v + } + } + ]) + this._shapeVector = shapeVector +} - // Draw contour levels - for (i = 0; i < 3; ++i) { - shader.uniforms.permutation = PERMUTATIONS[i] - gl.lineWidth(this.contourWidth[i] * this.pixelRatio) +var proto = Texture2D.prototype - for (j = 0; j < this.contourLevels[i].length; ++j) { - if (j === this.highlightLevel[i]) { - shader.uniforms.contourColor = this.highlightColor[i] - shader.uniforms.contourTint = this.highlightTint[i] - } else if (j === 0 || (j - 1) === this.highlightLevel[i]) { - shader.uniforms.contourColor = this.contourColor[i] - shader.uniforms.contourTint = this.contourTint[i] +Object.defineProperties(proto, { + minFilter: { + get: function() { + return this._minFilter + }, + set: function(v) { + this.bind() + var gl = this.gl + if(this.type === gl.FLOAT && linearTypes.indexOf(v) >= 0) { + if(!gl.getExtension('OES_texture_float_linear')) { + v = gl.NEAREST } - if (!this._contourCounts[i][j]) { - continue + } + if(filterTypes.indexOf(v) < 0) { + throw new Error('gl-texture2d: Unknown filter mode ' + v) + } + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, v) + return this._minFilter = v + } + }, + magFilter: { + get: function() { + return this._magFilter + }, + set: function(v) { + this.bind() + var gl = this.gl + if(this.type === gl.FLOAT && linearTypes.indexOf(v) >= 0) { + if(!gl.getExtension('OES_texture_float_linear')) { + v = gl.NEAREST + } + } + if(filterTypes.indexOf(v) < 0) { + throw new Error('gl-texture2d: Unknown filter mode ' + v) + } + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, v) + return this._magFilter = v + } + }, + mipSamples: { + get: function() { + return this._anisoSamples + }, + set: function(i) { + var psamples = this._anisoSamples + this._anisoSamples = Math.max(i, 1)|0 + if(psamples !== this._anisoSamples) { + var ext = this.gl.getExtension('EXT_texture_filter_anisotropic') + if(ext) { + this.gl.texParameterf(this.gl.TEXTURE_2D, ext.TEXTURE_MAX_ANISOTROPY_EXT, this._anisoSamples) } - - shader.uniforms.height = this.contourLevels[i][j] - vao.draw(gl.LINES, this._contourCounts[i][j], this._contourOffsets[i][j]) } + return this._anisoSamples } - - // Draw projections of surface - for (i = 0; i < 3; ++i) { - shader.uniforms.model = projectData.projections[i] - shader.uniforms.clipBounds = projectData.clipBounds[i] - for (j = 0; j < 3; ++j) { - if (!this.contourProject[i][j]) { - continue + }, + wrapS: { + get: function() { + return this._wrapS + }, + set: function(v) { + this.bind() + if(wrapTypes.indexOf(v) < 0) { + throw new Error('gl-texture2d: Unknown wrap mode ' + v) + } + this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_WRAP_S, v) + return this._wrapS = v + } + }, + wrapT: { + get: function() { + return this._wrapT + }, + set: function(v) { + this.bind() + if(wrapTypes.indexOf(v) < 0) { + throw new Error('gl-texture2d: Unknown wrap mode ' + v) + } + this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_WRAP_T, v) + return this._wrapT = v + } + }, + wrap: { + get: function() { + return this._wrapVector + }, + set: function(v) { + if(!Array.isArray(v)) { + v = [v,v] + } + if(v.length !== 2) { + throw new Error('gl-texture2d: Must specify wrap mode for rows and columns') + } + for(var i=0; i<2; ++i) { + if(wrapTypes.indexOf(v[i]) < 0) { + throw new Error('gl-texture2d: Unknown wrap mode ' + v) } - shader.uniforms.permutation = PERMUTATIONS[j] - gl.lineWidth(this.contourWidth[j] * this.pixelRatio) - for (var k = 0; k < this.contourLevels[j].length; ++k) { - if (k === this.highlightLevel[j]) { - shader.uniforms.contourColor = this.highlightColor[j] - shader.uniforms.contourTint = this.highlightTint[j] - } else if (k === 0 || (k - 1) === this.highlightLevel[j]) { - shader.uniforms.contourColor = this.contourColor[j] - shader.uniforms.contourTint = this.contourTint[j] - } - if (!this._contourCounts[j][k]) { - continue - } + } + this._wrapS = v[0] + this._wrapT = v[1] - shader.uniforms.height = this.contourLevels[j][k] - vao.draw(gl.LINES, this._contourCounts[j][k], this._contourOffsets[j][k]) + var gl = this.gl + this.bind() + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, this._wrapS) + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, this._wrapT) + + return v + } + }, + shape: { + get: function() { + return this._shapeVector + }, + set: function(x) { + if(!Array.isArray(x)) { + x = [x|0,x|0] + } else { + if(x.length !== 2) { + throw new Error('gl-texture2d: Invalid texture shape') } } + reshapeTexture(this, x[0]|0, x[1]|0) + return [x[0]|0, x[1]|0] + } + }, + width: { + get: function() { + return this._shape[0] + }, + set: function(w) { + w = w|0 + reshapeTexture(this, w, this._shape[1]) + return w + } + }, + height: { + get: function() { + return this._shape[1] + }, + set: function(h) { + h = h|0 + reshapeTexture(this, this._shape[0], h) + return h } + } +}) - vao.unbind() +proto.bind = function(unit) { + var gl = this.gl + if(unit !== undefined) { + gl.activeTexture(gl.TEXTURE0 + (unit|0)) + } + gl.bindTexture(gl.TEXTURE_2D, this.handle) + if(unit !== undefined) { + return (unit|0) + } + return gl.getParameter(gl.ACTIVE_TEXTURE) - gl.TEXTURE0 +} - // Draw dynamic contours - vao = this._dynamicVAO - vao.bind() +proto.dispose = function() { + this.gl.deleteTexture(this.handle) +} - // Draw contour levels - for (i = 0; i < 3; ++i) { - if (this._dynamicCounts[i] === 0) { - continue - } +proto.generateMipmap = function() { + this.bind() + this.gl.generateMipmap(this.gl.TEXTURE_2D) - shader.uniforms.model = uniforms.model - shader.uniforms.clipBounds = uniforms.clipBounds - shader.uniforms.permutation = PERMUTATIONS[i] - gl.lineWidth(this.dynamicWidth[i] * this.pixelRatio) + //Update mip levels + var l = Math.min(this._shape[0], this._shape[1]) + for(var i=0; l>0; ++i, l>>>=1) { + if(this._mipLevels.indexOf(i) < 0) { + this._mipLevels.push(i) + } + } +} - shader.uniforms.contourColor = this.dynamicColor[i] - shader.uniforms.contourTint = this.dynamicTint[i] - shader.uniforms.height = this.dynamicLevel[i] - vao.draw(gl.LINES, this._dynamicCounts[i], this._dynamicOffsets[i]) +proto.setPixels = function(data, x_off, y_off, mip_level) { + var gl = this.gl + this.bind() + if(Array.isArray(x_off)) { + mip_level = y_off + y_off = x_off[1]|0 + x_off = x_off[0]|0 + } else { + x_off = x_off || 0 + y_off = y_off || 0 + } + mip_level = mip_level || 0 + var directData = acceptTextureDOM(data) ? data : data.raw + if(directData) { + var needsMip = this._mipLevels.indexOf(mip_level) < 0 + if(needsMip) { + gl.texImage2D(gl.TEXTURE_2D, 0, this.format, this.format, this.type, directData) + this._mipLevels.push(mip_level) + } else { + gl.texSubImage2D(gl.TEXTURE_2D, mip_level, x_off, y_off, this.format, this.type, directData) + } + } else if(data.shape && data.stride && data.data) { + if(data.shape.length < 2 || + x_off + data.shape[1] > this._shape[1]>>>mip_level || + y_off + data.shape[0] > this._shape[0]>>>mip_level || + x_off < 0 || + y_off < 0) { + throw new Error('gl-texture2d: Texture dimensions are out of bounds') + } + texSubImageArray(gl, x_off, y_off, mip_level, this.format, this.type, this._mipLevels, data) + } else { + throw new Error('gl-texture2d: Unsupported data type') + } +} - for (j = 0; j < 3; ++j) { - if (!this.contourProject[j][i]) { - continue - } - shader.uniforms.model = projectData.projections[j] - shader.uniforms.clipBounds = projectData.clipBounds[j] - vao.draw(gl.LINES, this._dynamicCounts[i], this._dynamicOffsets[i]) +function isPacked(shape, stride) { + if(shape.length === 3) { + return (stride[2] === 1) && + (stride[1] === shape[0]*shape[2]) && + (stride[0] === shape[2]) + } + return (stride[0] === 1) && + (stride[1] === shape[0]) +} + +function texSubImageArray(gl, x_off, y_off, mip_level, cformat, ctype, mipLevels, array) { + var dtype = array.dtype + var shape = array.shape.slice() + if(shape.length < 2 || shape.length > 3) { + throw new Error('gl-texture2d: Invalid ndarray, must be 2d or 3d') + } + var type = 0, format = 0 + var packed = isPacked(shape, array.stride.slice()) + if(dtype === 'float32') { + type = gl.FLOAT + } else if(dtype === 'float64') { + type = gl.FLOAT + packed = false + dtype = 'float32' + } else if(dtype === 'uint8') { + type = gl.UNSIGNED_BYTE + } else { + type = gl.UNSIGNED_BYTE + packed = false + dtype = 'uint8' + } + var channels = 1 + if(shape.length === 2) { + format = gl.LUMINANCE + shape = [shape[0], shape[1], 1] + array = ndarray(array.data, shape, [array.stride[0], array.stride[1], 1], array.offset) + } else if(shape.length === 3) { + if(shape[2] === 1) { + format = gl.ALPHA + } else if(shape[2] === 2) { + format = gl.LUMINANCE_ALPHA + } else if(shape[2] === 3) { + format = gl.RGB + } else if(shape[2] === 4) { + format = gl.RGBA + } else { + throw new Error('gl-texture2d: Invalid shape for pixel coords') + } + channels = shape[2] + } else { + throw new Error('gl-texture2d: Invalid shape for texture') + } + //For 1-channel textures allow conversion between formats + if((format === gl.LUMINANCE || format === gl.ALPHA) && + (cformat === gl.LUMINANCE || cformat === gl.ALPHA)) { + format = cformat + } + if(format !== cformat) { + throw new Error('gl-texture2d: Incompatible texture format for setPixels') + } + var size = array.size + var needsMip = mipLevels.indexOf(mip_level) < 0 + if(needsMip) { + mipLevels.push(mip_level) + } + if(type === ctype && packed) { + //Array data types are compatible, can directly copy into texture + if(array.offset === 0 && array.data.length === size) { + if(needsMip) { + gl.texImage2D(gl.TEXTURE_2D, mip_level, cformat, shape[0], shape[1], 0, cformat, ctype, array.data) + } else { + gl.texSubImage2D(gl.TEXTURE_2D, mip_level, x_off, y_off, shape[0], shape[1], cformat, ctype, array.data) + } + } else { + if(needsMip) { + gl.texImage2D(gl.TEXTURE_2D, mip_level, cformat, shape[0], shape[1], 0, cformat, ctype, array.data.subarray(array.offset, array.offset+size)) + } else { + gl.texSubImage2D(gl.TEXTURE_2D, mip_level, x_off, y_off, shape[0], shape[1], cformat, ctype, array.data.subarray(array.offset, array.offset+size)) } } + } else { + //Need to do type conversion to pack data into buffer + var pack_buffer + if(ctype === gl.FLOAT) { + pack_buffer = pool.mallocFloat32(size) + } else { + pack_buffer = pool.mallocUint8(size) + } + var pack_view = ndarray(pack_buffer, shape, [shape[2], shape[2]*shape[0], 1]) + if(type === gl.FLOAT && ctype === gl.UNSIGNED_BYTE) { + convertFloatToUint8(pack_view, array) + } else { + ops.assign(pack_view, array) + } + if(needsMip) { + gl.texImage2D(gl.TEXTURE_2D, mip_level, cformat, shape[0], shape[1], 0, cformat, ctype, pack_buffer.subarray(0, size)) + } else { + gl.texSubImage2D(gl.TEXTURE_2D, mip_level, x_off, y_off, shape[0], shape[1], cformat, ctype, pack_buffer.subarray(0, size)) + } + if(ctype === gl.FLOAT) { + pool.freeFloat32(pack_buffer) + } else { + pool.freeUint8(pack_buffer) + } + } +} - vao.unbind() +function initTexture(gl) { + var tex = gl.createTexture() + gl.bindTexture(gl.TEXTURE_2D, tex) + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST) + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST) + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE) + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE) + return tex +} + +function createTextureShape(gl, width, height, format, type) { + var maxTextureSize = gl.getParameter(gl.MAX_TEXTURE_SIZE) + if(width < 0 || width > maxTextureSize || height < 0 || height > maxTextureSize) { + throw new Error('gl-texture2d: Invalid texture shape') } + if(type === gl.FLOAT && !gl.getExtension('OES_texture_float')) { + throw new Error('gl-texture2d: Floating point textures not supported on this platform') + } + var tex = initTexture(gl) + gl.texImage2D(gl.TEXTURE_2D, 0, format, width, height, 0, format, type, null) + return new Texture2D(gl, tex, width, height, format, type) } -proto.draw = function (params) { - return drawCore.call(this, params, false) +function createTextureDOM(gl, directData, width, height, format, type) { + var tex = initTexture(gl) + gl.texImage2D(gl.TEXTURE_2D, 0, format, format, type, directData) + return new Texture2D(gl, tex, width, height, format, type) } -proto.drawTransparent = function (params) { - return drawCore.call(this, params, true) +//Creates a texture from an ndarray +function createTextureArray(gl, array) { + var dtype = array.dtype + var shape = array.shape.slice() + var maxSize = gl.getParameter(gl.MAX_TEXTURE_SIZE) + if(shape[0] < 0 || shape[0] > maxSize || shape[1] < 0 || shape[1] > maxSize) { + throw new Error('gl-texture2d: Invalid texture size') + } + var packed = isPacked(shape, array.stride.slice()) + var type = 0 + if(dtype === 'float32') { + type = gl.FLOAT + } else if(dtype === 'float64') { + type = gl.FLOAT + packed = false + dtype = 'float32' + } else if(dtype === 'uint8') { + type = gl.UNSIGNED_BYTE + } else { + type = gl.UNSIGNED_BYTE + packed = false + dtype = 'uint8' + } + var format = 0 + if(shape.length === 2) { + format = gl.LUMINANCE + shape = [shape[0], shape[1], 1] + array = ndarray(array.data, shape, [array.stride[0], array.stride[1], 1], array.offset) + } else if(shape.length === 3) { + if(shape[2] === 1) { + format = gl.ALPHA + } else if(shape[2] === 2) { + format = gl.LUMINANCE_ALPHA + } else if(shape[2] === 3) { + format = gl.RGB + } else if(shape[2] === 4) { + format = gl.RGBA + } else { + throw new Error('gl-texture2d: Invalid shape for pixel coords') + } + } else { + throw new Error('gl-texture2d: Invalid shape for texture') + } + if(type === gl.FLOAT && !gl.getExtension('OES_texture_float')) { + type = gl.UNSIGNED_BYTE + packed = false + } + var buffer, buf_store + var size = array.size + if(!packed) { + var stride = [shape[2], shape[2]*shape[0], 1] + buf_store = pool.malloc(size, dtype) + var buf_array = ndarray(buf_store, shape, stride, 0) + if((dtype === 'float32' || dtype === 'float64') && type === gl.UNSIGNED_BYTE) { + convertFloatToUint8(buf_array, array) + } else { + ops.assign(buf_array, array) + } + buffer = buf_store.subarray(0, size) + } else if (array.offset === 0 && array.data.length === size) { + buffer = array.data + } else { + buffer = array.data.subarray(array.offset, array.offset + size) + } + var tex = initTexture(gl) + gl.texImage2D(gl.TEXTURE_2D, 0, format, shape[0], shape[1], 0, format, type, buffer) + if(!packed) { + pool.free(buf_store) + } + return new Texture2D(gl, tex, shape[0], shape[1], format, type) } -var PICK_UNIFORMS = { - model: IDENTITY, - view: IDENTITY, - projection: IDENTITY, - inverseModel: IDENTITY, - clipBounds: [[0, 0, 0], [0, 0, 0]], - height: 0.0, - shape: [0, 0], - pickId: 0, - lowerBound: [0, 0, 0], - upperBound: [0, 0, 0], - zOffset: 0.0, - objectOffset: [0, 0, 0], - permutation: [1, 0, 0, 0, 1, 0, 0, 0, 1], - lightPosition: [0, 0, 0], - eyePosition: [0, 0, 0] +function createTexture2D(gl) { + if(arguments.length <= 1) { + throw new Error('gl-texture2d: Missing arguments for texture2d constructor') + } + if(!linearTypes) { + lazyInitLinearTypes(gl) + } + if(typeof arguments[1] === 'number') { + return createTextureShape(gl, arguments[1], arguments[2], arguments[3]||gl.RGBA, arguments[4]||gl.UNSIGNED_BYTE) + } + if(Array.isArray(arguments[1])) { + return createTextureShape(gl, arguments[1][0]|0, arguments[1][1]|0, arguments[2]||gl.RGBA, arguments[3]||gl.UNSIGNED_BYTE) + } + if(typeof arguments[1] === 'object') { + var obj = arguments[1] + var directData = acceptTextureDOM(obj) ? obj : obj.raw + if (directData) { + return createTextureDOM(gl, directData, obj.width|0, obj.height|0, arguments[2]||gl.RGBA, arguments[3]||gl.UNSIGNED_BYTE) + } else if(obj.shape && obj.data && obj.stride) { + return createTextureArray(gl, obj) + } + } + throw new Error('gl-texture2d: Invalid arguments for texture2d constructor') } -proto.drawPick = function (params) { - params = params || {} - var gl = this.gl - gl.disable(gl.CULL_FACE) +},{"ndarray":480,"ndarray-ops":475,"typedarray-pool":611}],353:[function(_dereq_,module,exports){ +(function (global){(function (){ +/** @module gl-util/context */ +'use strict' + +var pick = _dereq_('pick-by-alias') + +module.exports = function setContext (o) { + if (!o) o = {} + else if (typeof o === 'string') o = {container: o} + + // HTMLCanvasElement + if (isCanvas(o)) { + o = {container: o} + } + // HTMLElement + else if (isElement(o)) { + o = {container: o} + } + // WebGLContext + else if (isContext(o)) { + o = {gl: o} + } + // options object + else { + o = pick(o, { + 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' + }, true) + } + + if (!o.pixelRatio) o.pixelRatio = global.pixelRatio || 1 + + // make sure there is container and canvas + if (o.gl) { + return o.gl + } + if (o.canvas) { + o.container = o.canvas.parentNode + } + if (o.container) { + if (typeof o.container === 'string') { + var c = document.querySelector(o.container) + if (!c) throw Error('Element ' + o.container + ' is not found') + o.container = c + } + if (isCanvas(o.container)) { + o.canvas = o.container + o.container = o.canvas.parentNode + } + else if (!o.canvas) { + o.canvas = createCanvas() + o.container.appendChild(o.canvas) + resize(o) + } + } + // blank new canvas + else if (!o.canvas) { + if (typeof document !== 'undefined') { + o.container = document.body || document.documentElement + o.canvas = createCanvas() + o.container.appendChild(o.canvas) + resize(o) + } + else { + throw Error('Not DOM environment. Use headless-gl.') + } + } + + // make sure there is context + if (!o.gl) { + try { + o.gl = o.canvas.getContext('webgl', o.attrs) + } catch (e) { + try { + o.gl = o.canvas.getContext('experimental-webgl', o.attrs) + } + catch (e) { + o.gl = o.canvas.getContext('webgl-experimental', o.attrs) + } + } + } + + return o.gl +} + + +function resize (o) { + if (o.container) { + if (o.container == document.body) { + if (!document.body.style.width) o.canvas.width = o.width || (o.pixelRatio * global.innerWidth) + if (!document.body.style.height) o.canvas.height = o.height || (o.pixelRatio * global.innerHeight) + } + else { + var bounds = o.container.getBoundingClientRect() + o.canvas.width = o.width || (bounds.right - bounds.left) + o.canvas.height = o.height || (bounds.bottom - bounds.top) + } + } +} + +function isCanvas (e) { + return typeof e.getContext === 'function' + && 'width' in e + && 'height' in e +} + +function isElement (e) { + return typeof e.nodeName === 'string' && + typeof e.appendChild === 'function' && + typeof e.getBoundingClientRect === 'function' +} + +function isContext (e) { + return typeof e.drawArrays === 'function' || + typeof e.drawElements === 'function' +} + +function createCanvas () { + var canvas = document.createElement('canvas') + canvas.style.position = 'absolute' + canvas.style.top = 0 + canvas.style.left = 0 + + return canvas +} - var uniforms = PICK_UNIFORMS - uniforms.model = params.model || IDENTITY - uniforms.view = params.view || IDENTITY - uniforms.projection = params.projection || IDENTITY - uniforms.shape = this._field[2].shape - uniforms.pickId = this.pickId / 255.0 - uniforms.lowerBound = this.bounds[0] - uniforms.upperBound = this.bounds[1] - uniforms.objectOffset = this.objectOffset - uniforms.permutation = DEFAULT_PERM +}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{"pick-by-alias":495}],354:[function(_dereq_,module,exports){ +"use strict" - for (var i = 0; i < 2; ++i) { - var clipClamped = uniforms.clipBounds[i] - for (var j = 0; j < 3; ++j) { - clipClamped[j] = Math.min(Math.max(this.clipBounds[i][j], -1e8), 1e8) +function doBind(gl, elements, attributes) { + if(elements) { + elements.bind() + } else { + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null) + } + var nattribs = gl.getParameter(gl.MAX_VERTEX_ATTRIBS)|0 + if(attributes) { + if(attributes.length > nattribs) { + throw new Error("gl-vao: Too many vertex attributes") + } + for(var i=0; i> 4) / 16.0) / 255.0 - var ix = Math.floor(x) - var fx = x - ix +function createVAONative(gl, ext) { + return new VAONative(gl, ext, ext.createVertexArrayOES()) +} - var y = shape[1] * (selection.value[1] + (selection.value[2] & 15) / 16.0) / 255.0 - var iy = Math.floor(y) - var fy = y - iy +module.exports = createVAONative +},{"./do-bind.js":354}],357:[function(_dereq_,module,exports){ +"use strict" - ix += 1 - iy += 1 +var createVAONative = _dereq_("./lib/vao-native.js") +var createVAOEmulated = _dereq_("./lib/vao-emulated.js") - // Compute xyz coordinate - var pos = result.position - pos[0] = pos[1] = pos[2] = 0 - for (var dx = 0; dx < 2; ++dx) { - var s = dx ? fx : 1.0 - fx - for (var dy = 0; dy < 2; ++dy) { - var t = dy ? fy : 1.0 - fy +function ExtensionShim (gl) { + this.bindVertexArrayOES = gl.bindVertexArray.bind(gl) + this.createVertexArrayOES = gl.createVertexArray.bind(gl) + this.deleteVertexArrayOES = gl.deleteVertexArray.bind(gl) +} - var r = ix + dx - var c = iy + dy - var w = s * t +function createVAO(gl, attributes, elements, elementsType) { + var ext = gl.createVertexArray + ? new ExtensionShim(gl) + : gl.getExtension('OES_vertex_array_object') + var vao - for (var i = 0; i < 3; ++i) { - pos[i] += this._field[i].get(r, c) * w - } - } + if(ext) { + vao = createVAONative(gl, ext) + } else { + vao = createVAOEmulated(gl) } + vao.update(attributes, elements, elementsType) + return vao +} - // Find closest level - var levelIndex = this._pickResult.level - for (var j = 0; j < 3; ++j) { - levelIndex[j] = bsearch.le(this.contourLevels[j], pos[j]) - if (levelIndex[j] < 0) { - if (this.contourLevels[j].length > 0) { - levelIndex[j] = 0 - } - } else if (levelIndex[j] < this.contourLevels[j].length - 1) { - var a = this.contourLevels[j][levelIndex[j]] - var b = this.contourLevels[j][levelIndex[j] + 1] - if (Math.abs(a - pos[j]) > Math.abs(b - pos[j])) { - levelIndex[j] += 1 - } - } - } +module.exports = createVAO - result.index[0] = fx < 0.5 ? ix : (ix + 1) - result.index[1] = fy < 0.5 ? iy : (iy + 1) +},{"./lib/vao-emulated.js":355,"./lib/vao-native.js":356}],358:[function(_dereq_,module,exports){ +module.exports = add; - result.uv[0] = x / shape[0] - result.uv[1] = y / shape[1] +/** + * Adds two vec3's + * + * @param {vec3} out the receiving vector + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @returns {vec3} out + */ +function add(out, a, b) { + out[0] = a[0] + b[0] + out[1] = a[1] + b[1] + out[2] = a[2] + b[2] + return out +} +},{}],359:[function(_dereq_,module,exports){ +module.exports = angle - for (i = 0; i < 3; ++i) { - result.dataCoordinate[i] = this._field[i].get(result.index[0], result.index[1]) - } +var fromValues = _dereq_('./fromValues') +var normalize = _dereq_('./normalize') +var dot = _dereq_('./dot') - return result -} +/** + * Get the angle between two 3D vectors + * @param {vec3} a The first operand + * @param {vec3} b The second operand + * @returns {Number} The angle in radians + */ +function angle(a, b) { + var tempA = fromValues(a[0], a[1], a[2]) + var tempB = fromValues(b[0], b[1], b[2]) + + normalize(tempA, tempA) + normalize(tempB, tempB) + + var cosine = dot(tempA, tempB) -proto.padField = function(dstField, srcField) { - var srcShape = srcField.shape.slice() - var dstShape = dstField.shape.slice() + if(cosine > 1.0){ + return 0 + } else { + return Math.acos(cosine) + } +} - // Center - ops.assign(dstField.lo(1, 1).hi(srcShape[0], srcShape[1]), srcField) +},{"./dot":369,"./fromValues":375,"./normalize":386}],360:[function(_dereq_,module,exports){ +module.exports = ceil - // Edges - ops.assign(dstField.lo(1).hi(srcShape[0], 1), - srcField.hi(srcShape[0], 1)) - ops.assign(dstField.lo(1, dstShape[1] - 1).hi(srcShape[0], 1), - srcField.lo(0, srcShape[1] - 1).hi(srcShape[0], 1)) - ops.assign(dstField.lo(0, 1).hi(1, srcShape[1]), - srcField.hi(1)) - ops.assign(dstField.lo(dstShape[0] - 1, 1).hi(1, srcShape[1]), - srcField.lo(srcShape[0] - 1)) - // Corners - dstField.set(0, 0, srcField.get(0, 0)) - dstField.set(0, dstShape[1] - 1, srcField.get(0, srcShape[1] - 1)) - dstField.set(dstShape[0] - 1, 0, srcField.get(srcShape[0] - 1, 0)) - dstField.set(dstShape[0] - 1, dstShape[1] - 1, srcField.get(srcShape[0] - 1, srcShape[1] - 1)) +/** + * Math.ceil the components of a vec3 + * + * @param {vec3} out the receiving vector + * @param {vec3} a vector to ceil + * @returns {vec3} out + */ +function ceil(out, a) { + out[0] = Math.ceil(a[0]) + out[1] = Math.ceil(a[1]) + out[2] = Math.ceil(a[2]) + return out } -function handleArray (param, ctor) { - if (Array.isArray(param)) { - return [ ctor(param[0]), ctor(param[1]), ctor(param[2]) ] - } - return [ ctor(param), ctor(param), ctor(param) ] +},{}],361:[function(_dereq_,module,exports){ +module.exports = clone; + +/** + * Creates a new vec3 initialized with values from an existing vector + * + * @param {vec3} a vector to clone + * @returns {vec3} a new 3D vector + */ +function clone(a) { + var out = new Float32Array(3) + out[0] = a[0] + out[1] = a[1] + out[2] = a[2] + return out } +},{}],362:[function(_dereq_,module,exports){ +module.exports = copy; -function toColor (x) { - if (Array.isArray(x)) { - if (x.length === 3) { - return [x[0], x[1], x[2], 1] - } - return [x[0], x[1], x[2], x[3]] - } - return [0, 0, 0, 1] +/** + * Copy the values from one vec3 to another + * + * @param {vec3} out the receiving vector + * @param {vec3} a the source vector + * @returns {vec3} out + */ +function copy(out, a) { + out[0] = a[0] + out[1] = a[1] + out[2] = a[2] + return out } +},{}],363:[function(_dereq_,module,exports){ +module.exports = create; -function handleColor (param) { - if (Array.isArray(param)) { - if (Array.isArray(param)) { - return [ - toColor(param[0]), - toColor(param[1]), - toColor(param[2]) ] - } else { - var c = toColor(param) - return [ - c.slice(), - c.slice(), - c.slice() ] - } - } +/** + * Creates a new, empty vec3 + * + * @returns {vec3} a new 3D vector + */ +function create() { + var out = new Float32Array(3) + out[0] = 0 + out[1] = 0 + out[2] = 0 + return out } +},{}],364:[function(_dereq_,module,exports){ +module.exports = cross; -proto.update = function (params) { - params = params || {} +/** + * Computes the cross product of two vec3's + * + * @param {vec3} out the receiving vector + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @returns {vec3} out + */ +function cross(out, a, b) { + var ax = a[0], ay = a[1], az = a[2], + bx = b[0], by = b[1], bz = b[2] - this.objectOffset = params.objectOffset || this.objectOffset + out[0] = ay * bz - az * by + out[1] = az * bx - ax * bz + out[2] = ax * by - ay * bx + return out +} +},{}],365:[function(_dereq_,module,exports){ +module.exports = _dereq_('./distance') - this.dirty = true +},{"./distance":366}],366:[function(_dereq_,module,exports){ +module.exports = distance; - if ('contourWidth' in params) { - this.contourWidth = handleArray(params.contourWidth, Number) - } - if ('showContour' in params) { - this.showContour = handleArray(params.showContour, Boolean) - } - if ('showSurface' in params) { - this.showSurface = !!params.showSurface - } - if ('contourTint' in params) { - this.contourTint = handleArray(params.contourTint, Boolean) - } - if ('contourColor' in params) { - this.contourColor = handleColor(params.contourColor) - } - if ('contourProject' in params) { - this.contourProject = handleArray(params.contourProject, function (x) { - return handleArray(x, Boolean) - }) - } - if ('surfaceProject' in params) { - this.surfaceProject = params.surfaceProject - } - if ('dynamicColor' in params) { - this.dynamicColor = handleColor(params.dynamicColor) - } - if ('dynamicTint' in params) { - this.dynamicTint = handleArray(params.dynamicTint, Number) - } - if ('dynamicWidth' in params) { - this.dynamicWidth = handleArray(params.dynamicWidth, Number) - } - if ('opacity' in params) { - this.opacity = params.opacity - } - if('opacityscale' in params) { - this.opacityscale = params.opacityscale - } - if ('colorBounds' in params) { - this.colorBounds = params.colorBounds - } - if ('vertexColor' in params) { - this.vertexColor = params.vertexColor ? 1 : 0; - } - if ('colormap' in params) { - this._colorMap.setPixels(this.genColormap(params.colormap, this.opacityscale)) - } +/** + * Calculates the euclidian distance between two vec3's + * + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @returns {Number} distance between a and b + */ +function distance(a, b) { + var x = b[0] - a[0], + y = b[1] - a[1], + z = b[2] - a[2] + return Math.sqrt(x*x + y*y + z*z) +} +},{}],367:[function(_dereq_,module,exports){ +module.exports = _dereq_('./divide') - var field = params.field || (params.coords && params.coords[2]) || null - var levelsChanged = false +},{"./divide":368}],368:[function(_dereq_,module,exports){ +module.exports = divide; - if (!field) { - if (this._field[2].shape[0] || this._field[2].shape[2]) { - field = this._field[2].lo(1, 1).hi(this._field[2].shape[0] - 2, this._field[2].shape[1] - 2) - } else { - field = this._field[2].hi(0, 0) - } - } +/** + * Divides two vec3's + * + * @param {vec3} out the receiving vector + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @returns {vec3} out + */ +function divide(out, a, b) { + out[0] = a[0] / b[0] + out[1] = a[1] / b[1] + out[2] = a[2] / b[2] + return out +} +},{}],369:[function(_dereq_,module,exports){ +module.exports = dot; - // Update field - if ('field' in params || 'coords' in params) { - var fsize = (field.shape[0] + 2) * (field.shape[1] + 2) +/** + * Calculates the dot product of two vec3's + * + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @returns {Number} dot product of a and b + */ +function dot(a, b) { + return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] +} +},{}],370:[function(_dereq_,module,exports){ +module.exports = 0.000001 - // Resize if necessary - if (fsize > this._field[2].data.length) { - pool.freeFloat(this._field[2].data) - this._field[2].data = pool.mallocFloat(bits.nextPow2(fsize)) - } +},{}],371:[function(_dereq_,module,exports){ +module.exports = equals - // Pad field - this._field[2] = ndarray(this._field[2].data, [field.shape[0] + 2, field.shape[1] + 2]) - this.padField(this._field[2], field) +var EPSILON = _dereq_('./epsilon') - // Save shape of field - this.shape = field.shape.slice() - var shape = this.shape +/** + * Returns whether or not the vectors have approximately the same elements in the same position. + * + * @param {vec3} a The first vector. + * @param {vec3} b The second vector. + * @returns {Boolean} True if the vectors are equal, false otherwise. + */ +function equals(a, b) { + var a0 = a[0] + var a1 = a[1] + var a2 = a[2] + var b0 = b[0] + var b1 = b[1] + var b2 = b[2] + return (Math.abs(a0 - b0) <= EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && + Math.abs(a1 - b1) <= EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && + Math.abs(a2 - b2) <= EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2))) +} - // Resize coordinate fields if necessary - for (var i = 0; i < 2; ++i) { - if (this._field[2].size > this._field[i].data.length) { - pool.freeFloat(this._field[i].data) - this._field[i].data = pool.mallocFloat(this._field[2].size) - } - this._field[i] = ndarray(this._field[i].data, [shape[0] + 2, shape[1] + 2]) - } +},{"./epsilon":370}],372:[function(_dereq_,module,exports){ +module.exports = exactEquals - // Generate x/y coordinates - if (params.coords) { - var coords = params.coords - if (!Array.isArray(coords) || coords.length !== 3) { - throw new Error('gl-surface: invalid coordinates for x/y') - } - for (i = 0; i < 2; ++i) { - var coord = coords[i] - for (j = 0; j < 2; ++j) { - if (coord.shape[j] !== shape[j]) { - throw new Error('gl-surface: coords have incorrect shape') - } - } - this.padField(this._field[i], coord) - } - } else if (params.ticks) { - var ticks = params.ticks - if (!Array.isArray(ticks) || ticks.length !== 2) { - throw new Error('gl-surface: invalid ticks') - } - for (i = 0; i < 2; ++i) { - var tick = ticks[i] - if (Array.isArray(tick) || tick.length) { - tick = ndarray(tick) - } - if (tick.shape[0] !== shape[i]) { - throw new Error('gl-surface: invalid tick length') - } - // Make a copy view of the tick array - var tick2 = ndarray(tick.data, shape) - tick2.stride[i] = tick.stride[0] - tick2.stride[i ^ 1] = 0 +/** + * Returns whether or not the vectors exactly have the same elements in the same position (when compared with ===) + * + * @param {vec3} a The first vector. + * @param {vec3} b The second vector. + * @returns {Boolean} True if the vectors are equal, false otherwise. + */ +function exactEquals(a, b) { + return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] +} - // Fill in field array - this.padField(this._field[i], tick2) - } - } else { - for (i = 0; i < 2; ++i) { - var offset = [0, 0] - offset[i] = 1 - this._field[i] = ndarray(this._field[i].data, [shape[0] + 2, shape[1] + 2], offset, 0) - } - this._field[0].set(0, 0, 0) - for (var j = 0; j < shape[0]; ++j) { - this._field[0].set(j + 1, 0, j) - } - this._field[0].set(shape[0] + 1, 0, shape[0] - 1) - this._field[1].set(0, 0, 0) - for (j = 0; j < shape[1]; ++j) { - this._field[1].set(0, j + 1, j) - } - this._field[1].set(0, shape[1] + 1, shape[1] - 1) - } +},{}],373:[function(_dereq_,module,exports){ +module.exports = floor - // Save shape - var fields = this._field +/** + * Math.floor the components of a vec3 + * + * @param {vec3} out the receiving vector + * @param {vec3} a vector to floor + * @returns {vec3} out + */ +function floor(out, a) { + out[0] = Math.floor(a[0]) + out[1] = Math.floor(a[1]) + out[2] = Math.floor(a[2]) + return out +} - // Compute surface normals - var dfields = ndarray(pool.mallocFloat(fields[2].size * 3 * 2), [3, shape[0] + 2, shape[1] + 2, 2]) - for (i = 0; i < 3; ++i) { - gradient(dfields.pick(i), fields[i], 'mirror') - } - var normals = ndarray(pool.mallocFloat(fields[2].size * 3), [shape[0] + 2, shape[1] + 2, 3]) - for (i = 0; i < shape[0] + 2; ++i) { - for (j = 0; j < shape[1] + 2; ++j) { - var dxdu = dfields.get(0, i, j, 0) - var dxdv = dfields.get(0, i, j, 1) - var dydu = dfields.get(1, i, j, 0) - var dydv = dfields.get(1, i, j, 1) - var dzdu = dfields.get(2, i, j, 0) - var dzdv = dfields.get(2, i, j, 1) +},{}],374:[function(_dereq_,module,exports){ +module.exports = forEach; - var nx = dydu * dzdv - dydv * dzdu - var ny = dzdu * dxdv - dzdv * dxdu - var nz = dxdu * dydv - dxdv * dydu +var vec = _dereq_('./create')() - var nl = Math.sqrt(nx * nx + ny * ny + nz * nz) - if (nl < 1e-8) { - nl = Math.max(Math.abs(nx), Math.abs(ny), Math.abs(nz)) - if (nl < 1e-8) { - nz = 1.0 - ny = nx = 0.0 - nl = 1.0 - } else { - nl = 1.0 / nl - } - } else { - nl = 1.0 / Math.sqrt(nl) +/** + * Perform some operation over an array of vec3s. + * + * @param {Array} a the array of vectors to iterate over + * @param {Number} stride Number of elements between the start of each vec3. If 0 assumes tightly packed + * @param {Number} offset Number of elements to skip at the beginning of the array + * @param {Number} count Number of vec3s to iterate over. If 0 iterates over entire array + * @param {Function} fn Function to call for each vector in the array + * @param {Object} [arg] additional argument to pass to fn + * @returns {Array} a + * @function + */ +function forEach(a, stride, offset, count, fn, arg) { + var i, l + if(!stride) { + stride = 3 } - normals.set(i, j, 0, nx * nl) - normals.set(i, j, 1, ny * nl) - normals.set(i, j, 2, nz * nl) - } - } - pool.free(dfields.data) - - // Initialize surface - var lo = [ Infinity, Infinity, Infinity ] - var hi = [ -Infinity, -Infinity, -Infinity ] - var lo_intensity = Infinity - var hi_intensity = -Infinity - var count = (shape[0] - 1) * (shape[1] - 1) * 6 - var tverts = pool.mallocFloat(bits.nextPow2(10 * count)) - var tptr = 0 - var vertexCount = 0 - for (i = 0; i < shape[0] - 1; ++i) { - j_loop: - for (j = 0; j < shape[1] - 1; ++j) { - // Test for NaNs - for (var dx = 0; dx < 2; ++dx) { - for (var dy = 0; dy < 2; ++dy) { - for (var k = 0; k < 3; ++k) { - var f = this._field[k].get(1 + i + dx, 1 + j + dy) - if (isNaN(f) || !isFinite(f)) { - continue j_loop - } - } - } + if(!offset) { + offset = 0 + } + + if(count) { + l = Math.min((count * stride) + offset, a.length) + } else { + l = a.length } - for (k = 0; k < 6; ++k) { - var r = i + QUAD[k][0] - var c = j + QUAD[k][1] - - var tx = this._field[0].get(r + 1, c + 1) - var ty = this._field[1].get(r + 1, c + 1) - f = this._field[2].get(r + 1, c + 1) - nx = normals.get(r + 1, c + 1, 0) - ny = normals.get(r + 1, c + 1, 1) - nz = normals.get(r + 1, c + 1, 2) + for(i = offset; i < l; i += stride) { + vec[0] = a[i] + vec[1] = a[i+1] + vec[2] = a[i+2] + fn(vec, vec, arg) + a[i] = vec[0] + a[i+1] = vec[1] + a[i+2] = vec[2] + } + + return a +} +},{"./create":363}],375:[function(_dereq_,module,exports){ +module.exports = fromValues; - if (params.intensity) { - vf = params.intensity.get(r, c) - } +/** + * Creates a new vec3 initialized with the given values + * + * @param {Number} x X component + * @param {Number} y Y component + * @param {Number} z Z component + * @returns {vec3} a new 3D vector + */ +function fromValues(x, y, z) { + var out = new Float32Array(3) + out[0] = x + out[1] = y + out[2] = z + return out +} +},{}],376:[function(_dereq_,module,exports){ +module.exports = { + EPSILON: _dereq_('./epsilon') + , create: _dereq_('./create') + , clone: _dereq_('./clone') + , angle: _dereq_('./angle') + , fromValues: _dereq_('./fromValues') + , copy: _dereq_('./copy') + , set: _dereq_('./set') + , equals: _dereq_('./equals') + , exactEquals: _dereq_('./exactEquals') + , add: _dereq_('./add') + , subtract: _dereq_('./subtract') + , sub: _dereq_('./sub') + , multiply: _dereq_('./multiply') + , mul: _dereq_('./mul') + , divide: _dereq_('./divide') + , div: _dereq_('./div') + , min: _dereq_('./min') + , max: _dereq_('./max') + , floor: _dereq_('./floor') + , ceil: _dereq_('./ceil') + , round: _dereq_('./round') + , scale: _dereq_('./scale') + , scaleAndAdd: _dereq_('./scaleAndAdd') + , distance: _dereq_('./distance') + , dist: _dereq_('./dist') + , squaredDistance: _dereq_('./squaredDistance') + , sqrDist: _dereq_('./sqrDist') + , length: _dereq_('./length') + , len: _dereq_('./len') + , squaredLength: _dereq_('./squaredLength') + , sqrLen: _dereq_('./sqrLen') + , negate: _dereq_('./negate') + , inverse: _dereq_('./inverse') + , normalize: _dereq_('./normalize') + , dot: _dereq_('./dot') + , cross: _dereq_('./cross') + , lerp: _dereq_('./lerp') + , random: _dereq_('./random') + , transformMat4: _dereq_('./transformMat4') + , transformMat3: _dereq_('./transformMat3') + , transformQuat: _dereq_('./transformQuat') + , rotateX: _dereq_('./rotateX') + , rotateY: _dereq_('./rotateY') + , rotateZ: _dereq_('./rotateZ') + , forEach: _dereq_('./forEach') +} - var vf = (params.intensity) ? - params.intensity.get(r, c) : - f + this.objectOffset[2]; +},{"./add":358,"./angle":359,"./ceil":360,"./clone":361,"./copy":362,"./create":363,"./cross":364,"./dist":365,"./distance":366,"./div":367,"./divide":368,"./dot":369,"./epsilon":370,"./equals":371,"./exactEquals":372,"./floor":373,"./forEach":374,"./fromValues":375,"./inverse":377,"./len":378,"./length":379,"./lerp":380,"./max":381,"./min":382,"./mul":383,"./multiply":384,"./negate":385,"./normalize":386,"./random":387,"./rotateX":388,"./rotateY":389,"./rotateZ":390,"./round":391,"./scale":392,"./scaleAndAdd":393,"./set":394,"./sqrDist":395,"./sqrLen":396,"./squaredDistance":397,"./squaredLength":398,"./sub":399,"./subtract":400,"./transformMat3":401,"./transformMat4":402,"./transformQuat":403}],377:[function(_dereq_,module,exports){ +module.exports = inverse; - tverts[tptr++] = r - tverts[tptr++] = c - tverts[tptr++] = tx - tverts[tptr++] = ty - tverts[tptr++] = f - tverts[tptr++] = 0 - tverts[tptr++] = vf - tverts[tptr++] = nx - tverts[tptr++] = ny - tverts[tptr++] = nz +/** + * Returns the inverse of the components of a vec3 + * + * @param {vec3} out the receiving vector + * @param {vec3} a vector to invert + * @returns {vec3} out + */ +function inverse(out, a) { + out[0] = 1.0 / a[0] + out[1] = 1.0 / a[1] + out[2] = 1.0 / a[2] + return out +} +},{}],378:[function(_dereq_,module,exports){ +module.exports = _dereq_('./length') - lo[0] = Math.min(lo[0], tx + this.objectOffset[0]) - lo[1] = Math.min(lo[1], ty + this.objectOffset[1]) - lo[2] = Math.min(lo[2], f + this.objectOffset[2]) - lo_intensity = Math.min(lo_intensity, vf) +},{"./length":379}],379:[function(_dereq_,module,exports){ +module.exports = length; - hi[0] = Math.max(hi[0], tx + this.objectOffset[0]) - hi[1] = Math.max(hi[1], ty + this.objectOffset[1]) - hi[2] = Math.max(hi[2], f + this.objectOffset[2]) - hi_intensity = Math.max(hi_intensity, vf) +/** + * Calculates the length of a vec3 + * + * @param {vec3} a vector to calculate length of + * @returns {Number} length of a + */ +function length(a) { + var x = a[0], + y = a[1], + z = a[2] + return Math.sqrt(x*x + y*y + z*z) +} +},{}],380:[function(_dereq_,module,exports){ +module.exports = lerp; - vertexCount += 1 - } - } - } +/** + * Performs a linear interpolation between two vec3's + * + * @param {vec3} out the receiving vector + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @param {Number} t interpolation amount between the two inputs + * @returns {vec3} out + */ +function lerp(out, a, b, t) { + var ax = a[0], + ay = a[1], + az = a[2] + out[0] = ax + t * (b[0] - ax) + out[1] = ay + t * (b[1] - ay) + out[2] = az + t * (b[2] - az) + return out +} +},{}],381:[function(_dereq_,module,exports){ +module.exports = max; - if (params.intensityBounds) { - lo_intensity = +params.intensityBounds[0] - hi_intensity = +params.intensityBounds[1] - } +/** + * Returns the maximum of two vec3's + * + * @param {vec3} out the receiving vector + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @returns {vec3} out + */ +function max(out, a, b) { + out[0] = Math.max(a[0], b[0]) + out[1] = Math.max(a[1], b[1]) + out[2] = Math.max(a[2], b[2]) + return out +} +},{}],382:[function(_dereq_,module,exports){ +module.exports = min; - // Scale all vertex intensities - for (i = 6; i < tptr; i += 10) { - tverts[i] = (tverts[i] - lo_intensity) / (hi_intensity - lo_intensity) - } +/** + * Returns the minimum of two vec3's + * + * @param {vec3} out the receiving vector + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @returns {vec3} out + */ +function min(out, a, b) { + out[0] = Math.min(a[0], b[0]) + out[1] = Math.min(a[1], b[1]) + out[2] = Math.min(a[2], b[2]) + return out +} +},{}],383:[function(_dereq_,module,exports){ +module.exports = _dereq_('./multiply') - this._vertexCount = vertexCount - this._coordinateBuffer.update(tverts.subarray(0, tptr)) - pool.freeFloat(tverts) - pool.free(normals.data) +},{"./multiply":384}],384:[function(_dereq_,module,exports){ +module.exports = multiply; - // Update bounds - this.bounds = [lo, hi] +/** + * Multiplies two vec3's + * + * @param {vec3} out the receiving vector + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @returns {vec3} out + */ +function multiply(out, a, b) { + out[0] = a[0] * b[0] + out[1] = a[1] * b[1] + out[2] = a[2] * b[2] + return out +} +},{}],385:[function(_dereq_,module,exports){ +module.exports = negate; - // Save intensity - this.intensity = params.intensity || this._field[2] +/** + * Negates the components of a vec3 + * + * @param {vec3} out the receiving vector + * @param {vec3} a vector to negate + * @returns {vec3} out + */ +function negate(out, a) { + out[0] = -a[0] + out[1] = -a[1] + out[2] = -a[2] + return out +} +},{}],386:[function(_dereq_,module,exports){ +module.exports = normalize; - if(this.intensityBounds[0] !== lo_intensity || this.intensityBounds[1] !== hi_intensity) { - levelsChanged = true +/** + * Normalize a vec3 + * + * @param {vec3} out the receiving vector + * @param {vec3} a vector to normalize + * @returns {vec3} out + */ +function normalize(out, a) { + var x = a[0], + y = a[1], + z = a[2] + var len = x*x + y*y + z*z + if (len > 0) { + //TODO: evaluate use of glm_invsqrt here? + len = 1 / Math.sqrt(len) + out[0] = a[0] * len + out[1] = a[1] * len + out[2] = a[2] * len } + return out +} +},{}],387:[function(_dereq_,module,exports){ +module.exports = random; - // Save intensity bound - this.intensityBounds = [lo_intensity, hi_intensity] - } +/** + * Generates a random vector with the given scale + * + * @param {vec3} out the receiving vector + * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned + * @returns {vec3} out + */ +function random(out, scale) { + scale = scale || 1.0 - // Update level crossings - if ('levels' in params) { - var levels = params.levels - if (!Array.isArray(levels[0])) { - levels = [ [], [], levels ] - } else { - levels = levels.slice() - } - for (i = 0; i < 3; ++i) { - levels[i] = levels[i].slice() - levels[i].sort(function (a, b) { - return a - b - }) - } - for (i = 0; i < 3; ++i) { - for (j = 0; j < levels[i].length; ++j) { - levels[i][j] -= this.objectOffset[i] - } - } - change_test: - for (i = 0; i < 3; ++i) { - if (levels[i].length !== this.contourLevels[i].length) { - levelsChanged = true - break - } - for (j = 0; j < levels[i].length; ++j) { - if (levels[i][j] !== this.contourLevels[i][j]) { - levelsChanged = true - break change_test - } - } - } - this.contourLevels = levels - } + var r = Math.random() * 2.0 * Math.PI + var z = (Math.random() * 2.0) - 1.0 + var zScale = Math.sqrt(1.0-z*z) * scale - if (levelsChanged) { - fields = this._field - shape = this.shape + out[0] = Math.cos(r) * zScale + out[1] = Math.sin(r) * zScale + out[2] = z * scale + return out +} +},{}],388:[function(_dereq_,module,exports){ +module.exports = rotateX; - // Update contour lines - var contourVerts = [] +/** + * Rotate a 3D vector around the x-axis + * @param {vec3} out The receiving vec3 + * @param {vec3} a The vec3 point to rotate + * @param {vec3} b The origin of the rotation + * @param {Number} c The angle of rotation + * @returns {vec3} out + */ +function rotateX(out, a, b, c){ + var by = b[1] + var bz = b[2] - for (var dim = 0; dim < 3; ++dim) { - var contourLevel = this.contourLevels[dim] + // Translate point to the origin + var py = a[1] - by + var pz = a[2] - bz - var levelOffsets = [] - var levelCounts = [] + var sc = Math.sin(c) + var cc = Math.cos(c) - var parts = [0, 0, 0] + // perform rotation and translate to correct position + out[0] = a[0] + out[1] = by + py * cc - pz * sc + out[2] = bz + py * sc + pz * cc - for (i = 0; i < contourLevel.length; ++i) { - var graph = surfaceNets(this._field[dim], contourLevel[i]) + return out +} - levelOffsets.push((contourVerts.length / 5) | 0) - vertexCount = 0 +},{}],389:[function(_dereq_,module,exports){ +module.exports = rotateY; - edge_loop: - for (j = 0; j < graph.cells.length; ++j) { - var e = graph.cells[j] - for (k = 0; k < 2; ++k) { - var p = graph.positions[e[k]] +/** + * Rotate a 3D vector around the y-axis + * @param {vec3} out The receiving vec3 + * @param {vec3} a The vec3 point to rotate + * @param {vec3} b The origin of the rotation + * @param {Number} c The angle of rotation + * @returns {vec3} out + */ +function rotateY(out, a, b, c){ + var bx = b[0] + var bz = b[2] - var x = p[0] - var ix = Math.floor(x) | 0 - var fx = x - ix + // translate point to the origin + var px = a[0] - bx + var pz = a[2] - bz + + var sc = Math.sin(c) + var cc = Math.cos(c) + + // perform rotation and translate to correct position + out[0] = bx + pz * sc + px * cc + out[1] = a[1] + out[2] = bz + pz * cc - px * sc + + return out +} - var y = p[1] - var iy = Math.floor(y) | 0 - var fy = y - iy +},{}],390:[function(_dereq_,module,exports){ +module.exports = rotateZ; - var hole = false - axis_loop: - for (var axis = 0; axis < 3; ++axis) { - parts[axis] = 0.0 - var iu = (dim + axis + 1) % 3 - for (dx = 0; dx < 2; ++dx) { - var s = dx ? fx : 1.0 - fx - r = Math.min(Math.max(ix + dx, 0), shape[0]) | 0 - for (dy = 0; dy < 2; ++dy) { - var t = dy ? fy : 1.0 - fy - c = Math.min(Math.max(iy + dy, 0), shape[1]) | 0 +/** + * Rotate a 3D vector around the z-axis + * @param {vec3} out The receiving vec3 + * @param {vec3} a The vec3 point to rotate + * @param {vec3} b The origin of the rotation + * @param {Number} c The angle of rotation + * @returns {vec3} out + */ +function rotateZ(out, a, b, c){ + var bx = b[0] + var by = b[1] - if (axis < 2) { - f = this._field[iu].get(r, c) - } else { - f = (this.intensity.get(r, c) - this.intensityBounds[0]) / (this.intensityBounds[1] - this.intensityBounds[0]) - } - if (!isFinite(f) || isNaN(f)) { - hole = true - break axis_loop - } + //Translate point to the origin + var px = a[0] - bx + var py = a[1] - by + + var sc = Math.sin(c) + var cc = Math.cos(c) + + // perform rotation and translate to correct position + out[0] = bx + px * cc - py * sc + out[1] = by + px * sc + py * cc + out[2] = a[2] + + return out +} - var w = s * t - parts[axis] += w * f - } - } - } +},{}],391:[function(_dereq_,module,exports){ +module.exports = round - if (!hole) { - contourVerts.push( - parts[0], - parts[1], - p[0], - p[1], - parts[2] - ) - vertexCount += 1 - } else { - if (k > 0) { - // If we already added first edge, pop off verts - for (var l = 0; l < 5; ++l) { - contourVerts.pop() - } - vertexCount -= 1 - } - continue edge_loop - } - } - } - levelCounts.push(vertexCount) - } +/** + * Math.round the components of a vec3 + * + * @param {vec3} out the receiving vector + * @param {vec3} a vector to round + * @returns {vec3} out + */ +function round(out, a) { + out[0] = Math.round(a[0]) + out[1] = Math.round(a[1]) + out[2] = Math.round(a[2]) + return out +} - // Store results - this._contourOffsets[dim] = levelOffsets - this._contourCounts[dim] = levelCounts +},{}],392:[function(_dereq_,module,exports){ +module.exports = scale; - } +/** + * Scales a vec3 by a scalar number + * + * @param {vec3} out the receiving vector + * @param {vec3} a the vector to scale + * @param {Number} b amount to scale the vector by + * @returns {vec3} out + */ +function scale(out, a, b) { + out[0] = a[0] * b + out[1] = a[1] * b + out[2] = a[2] * b + return out +} +},{}],393:[function(_dereq_,module,exports){ +module.exports = scaleAndAdd; - var floatBuffer = pool.mallocFloat(contourVerts.length) - for (i = 0; i < contourVerts.length; ++i) { - floatBuffer[i] = contourVerts[i] - } - this._contourBuffer.update(floatBuffer) - pool.freeFloat(floatBuffer) - } +/** + * Adds two vec3's after scaling the second operand by a scalar value + * + * @param {vec3} out the receiving vector + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @param {Number} scale the amount to scale b by before adding + * @returns {vec3} out + */ +function scaleAndAdd(out, a, b, scale) { + out[0] = a[0] + (b[0] * scale) + out[1] = a[1] + (b[1] * scale) + out[2] = a[2] + (b[2] * scale) + return out } +},{}],394:[function(_dereq_,module,exports){ +module.exports = set; -proto.dispose = function () { - this._shader.dispose() - this._vao.dispose() - this._coordinateBuffer.dispose() - this._colorMap.dispose() - this._contourBuffer.dispose() - this._contourVAO.dispose() - this._contourShader.dispose() - this._contourPickShader.dispose() - this._dynamicBuffer.dispose() - this._dynamicVAO.dispose() - for (var i = 0; i < 3; ++i) { - pool.freeFloat(this._field[i].data) - } +/** + * Set the components of a vec3 to the given values + * + * @param {vec3} out the receiving vector + * @param {Number} x X component + * @param {Number} y Y component + * @param {Number} z Z component + * @returns {vec3} out + */ +function set(out, x, y, z) { + out[0] = x + out[1] = y + out[2] = z + return out } +},{}],395:[function(_dereq_,module,exports){ +module.exports = _dereq_('./squaredDistance') -proto.highlight = function (selection) { - var i +},{"./squaredDistance":397}],396:[function(_dereq_,module,exports){ +module.exports = _dereq_('./squaredLength') - if (!selection) { - this._dynamicCounts = [0, 0, 0] - this.dyanamicLevel = [NaN, NaN, NaN] - this.highlightLevel = [-1, -1, -1] - return - } +},{"./squaredLength":398}],397:[function(_dereq_,module,exports){ +module.exports = squaredDistance; - for (i = 0; i < 3; ++i) { - if (this.enableHighlight[i]) { - this.highlightLevel[i] = selection.level[i] - } else { - this.highlightLevel[i] = -1 - } - } +/** + * Calculates the squared euclidian distance between two vec3's + * + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @returns {Number} squared distance between a and b + */ +function squaredDistance(a, b) { + var x = b[0] - a[0], + y = b[1] - a[1], + z = b[2] - a[2] + return x*x + y*y + z*z +} +},{}],398:[function(_dereq_,module,exports){ +module.exports = squaredLength; - var levels - if (this.snapToData) { - levels = selection.dataCoordinate - } else { - levels = selection.position - } - for (i = 0; i < 3; ++i) { - levels[i] -= this.objectOffset[i] - } - if ((!this.enableDynamic[0] || levels[0] === this.dynamicLevel[0]) && - (!this.enableDynamic[1] || levels[1] === this.dynamicLevel[1]) && - (!this.enableDynamic[2] || levels[2] === this.dynamicLevel[2])) { - return - } +/** + * Calculates the squared length of a vec3 + * + * @param {vec3} a vector to calculate squared length of + * @returns {Number} squared length of a + */ +function squaredLength(a) { + var x = a[0], + y = a[1], + z = a[2] + return x*x + y*y + z*z +} +},{}],399:[function(_dereq_,module,exports){ +module.exports = _dereq_('./subtract') - var vertexCount = 0 - var shape = this.shape - var scratchBuffer = pool.mallocFloat(12 * shape[0] * shape[1]) +},{"./subtract":400}],400:[function(_dereq_,module,exports){ +module.exports = subtract; - for (var d = 0; d < 3; ++d) { - if (!this.enableDynamic[d]) { - this.dynamicLevel[d] = NaN - this._dynamicCounts[d] = 0 - continue - } +/** + * Subtracts vector b from vector a + * + * @param {vec3} out the receiving vector + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @returns {vec3} out + */ +function subtract(out, a, b) { + out[0] = a[0] - b[0] + out[1] = a[1] - b[1] + out[2] = a[2] - b[2] + return out +} +},{}],401:[function(_dereq_,module,exports){ +module.exports = transformMat3; - this.dynamicLevel[d] = levels[d] +/** + * Transforms the vec3 with a mat3. + * + * @param {vec3} out the receiving vector + * @param {vec3} a the vector to transform + * @param {mat4} m the 3x3 matrix to transform with + * @returns {vec3} out + */ +function transformMat3(out, a, m) { + var x = a[0], y = a[1], z = a[2] + out[0] = x * m[0] + y * m[3] + z * m[6] + out[1] = x * m[1] + y * m[4] + z * m[7] + out[2] = x * m[2] + y * m[5] + z * m[8] + return out +} +},{}],402:[function(_dereq_,module,exports){ +module.exports = transformMat4; - var u = (d + 1) % 3 - var v = (d + 2) % 3 +/** + * Transforms the vec3 with a mat4. + * 4th vector component is implicitly '1' + * + * @param {vec3} out the receiving vector + * @param {vec3} a the vector to transform + * @param {mat4} m matrix to transform with + * @returns {vec3} out + */ +function transformMat4(out, a, m) { + var x = a[0], y = a[1], z = a[2], + w = m[3] * x + m[7] * y + m[11] * z + m[15] + w = w || 1.0 + out[0] = (m[0] * x + m[4] * y + m[8] * z + m[12]) / w + out[1] = (m[1] * x + m[5] * y + m[9] * z + m[13]) / w + out[2] = (m[2] * x + m[6] * y + m[10] * z + m[14]) / w + return out +} +},{}],403:[function(_dereq_,module,exports){ +module.exports = transformQuat; - var f = this._field[d] - var g = this._field[u] - var h = this._field[v] +/** + * Transforms the vec3 with a quat + * + * @param {vec3} out the receiving vector + * @param {vec3} a the vector to transform + * @param {quat} q quaternion to transform with + * @returns {vec3} out + */ +function transformQuat(out, a, q) { + // benchmarks: http://jsperf.com/quaternion-transform-vec3-implementations - var graph = surfaceNets(f, levels[d]) - var edges = graph.cells - var positions = graph.positions + var x = a[0], y = a[1], z = a[2], + qx = q[0], qy = q[1], qz = q[2], qw = q[3], - this._dynamicOffsets[d] = vertexCount + // calculate quat * vec + ix = qw * x + qy * z - qz * y, + iy = qw * y + qz * x - qx * z, + iz = qw * z + qx * y - qy * x, + iw = -qx * x - qy * y - qz * z - for (i = 0; i < edges.length; ++i) { - var e = edges[i] - for (var j = 0; j < 2; ++j) { - var p = positions[e[j]] + // calculate result * inverse quat + out[0] = ix * qw + iw * -qx + iy * -qz - iz * -qy + out[1] = iy * qw + iw * -qy + iz * -qx - ix * -qz + out[2] = iz * qw + iw * -qz + ix * -qy - iy * -qx + return out +} +},{}],404:[function(_dereq_,module,exports){ +module.exports = add - var x = +p[0] - var ix = x | 0 - var jx = Math.min(ix + 1, shape[0]) | 0 - var fx = x - ix - var hx = 1.0 - fx +/** + * Adds two vec4's + * + * @param {vec4} out the receiving vector + * @param {vec4} a the first operand + * @param {vec4} b the second operand + * @returns {vec4} out + */ +function add (out, a, b) { + out[0] = a[0] + b[0] + out[1] = a[1] + b[1] + out[2] = a[2] + b[2] + out[3] = a[3] + b[3] + return out +} - var y = +p[1] - var iy = y | 0 - var jy = Math.min(iy + 1, shape[1]) | 0 - var fy = y - iy - var hy = 1.0 - fy +},{}],405:[function(_dereq_,module,exports){ +module.exports = clone - var w00 = hx * hy - var w01 = hx * fy - var w10 = fx * hy - var w11 = fx * fy +/** + * Creates a new vec4 initialized with values from an existing vector + * + * @param {vec4} a vector to clone + * @returns {vec4} a new 4D vector + */ +function clone (a) { + var out = new Float32Array(4) + out[0] = a[0] + out[1] = a[1] + out[2] = a[2] + out[3] = a[3] + return out +} - var cu = w00 * g.get(ix, iy) + - w01 * g.get(ix, jy) + - w10 * g.get(jx, iy) + - w11 * g.get(jx, jy) +},{}],406:[function(_dereq_,module,exports){ +module.exports = copy - var cv = w00 * h.get(ix, iy) + - w01 * h.get(ix, jy) + - w10 * h.get(jx, iy) + - w11 * h.get(jx, jy) +/** + * Copy the values from one vec4 to another + * + * @param {vec4} out the receiving vector + * @param {vec4} a the source vector + * @returns {vec4} out + */ +function copy (out, a) { + out[0] = a[0] + out[1] = a[1] + out[2] = a[2] + out[3] = a[3] + return out +} - if (isNaN(cu) || isNaN(cv)) { - if (j) { - vertexCount -= 1 - } - break - } +},{}],407:[function(_dereq_,module,exports){ +module.exports = create - scratchBuffer[2 * vertexCount + 0] = cu - scratchBuffer[2 * vertexCount + 1] = cv +/** + * Creates a new, empty vec4 + * + * @returns {vec4} a new 4D vector + */ +function create () { + var out = new Float32Array(4) + out[0] = 0 + out[1] = 0 + out[2] = 0 + out[3] = 0 + return out +} - vertexCount += 1 - } - } +},{}],408:[function(_dereq_,module,exports){ +module.exports = distance - this._dynamicCounts[d] = vertexCount - this._dynamicOffsets[d] - } +/** + * Calculates the euclidian distance between two vec4's + * + * @param {vec4} a the first operand + * @param {vec4} b the second operand + * @returns {Number} distance between a and b + */ +function distance (a, b) { + var x = b[0] - a[0], + y = b[1] - a[1], + z = b[2] - a[2], + w = b[3] - a[3] + return Math.sqrt(x * x + y * y + z * z + w * w) +} - this._dynamicBuffer.update(scratchBuffer.subarray(0, 2 * vertexCount)) - pool.freeFloat(scratchBuffer) +},{}],409:[function(_dereq_,module,exports){ +module.exports = divide + +/** + * Divides two vec4's + * + * @param {vec4} out the receiving vector + * @param {vec4} a the first operand + * @param {vec4} b the second operand + * @returns {vec4} out + */ +function divide (out, a, b) { + out[0] = a[0] / b[0] + out[1] = a[1] / b[1] + out[2] = a[2] / b[2] + out[3] = a[3] / b[3] + return out } -function createSurfacePlot (params) { - var gl = params.gl +},{}],410:[function(_dereq_,module,exports){ +module.exports = dot - var shader = createShader(gl) - var pickShader = createPickShader(gl) - var contourShader = createContourShader(gl) - var contourPickShader = createPickContourShader(gl) +/** + * Calculates the dot product of two vec4's + * + * @param {vec4} a the first operand + * @param {vec4} b the second operand + * @returns {Number} dot product of a and b + */ +function dot (a, b) { + return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3] +} - var coordinateBuffer = createBuffer(gl) - var vao = createVAO(gl, [ - { buffer: coordinateBuffer, - size: 4, - stride: SURFACE_VERTEX_SIZE, - offset: 0 - }, - { buffer: coordinateBuffer, - size: 3, - stride: SURFACE_VERTEX_SIZE, - offset: 16 - }, - { - buffer: coordinateBuffer, - size: 3, - stride: SURFACE_VERTEX_SIZE, - offset: 28 - } - ]) +},{}],411:[function(_dereq_,module,exports){ +module.exports = fromValues - var contourBuffer = createBuffer(gl) - var contourVAO = createVAO(gl, [ - { - buffer: contourBuffer, - size: 4, - stride: 20, - offset: 0 - }, - { - buffer: contourBuffer, - size: 1, - stride: 20, - offset: 16 - } - ]) +/** + * Creates a new vec4 initialized with the given values + * + * @param {Number} x X component + * @param {Number} y Y component + * @param {Number} z Z component + * @param {Number} w W component + * @returns {vec4} a new 4D vector + */ +function fromValues (x, y, z, w) { + var out = new Float32Array(4) + out[0] = x + out[1] = y + out[2] = z + out[3] = w + return out +} - var dynamicBuffer = createBuffer(gl) - var dynamicVAO = createVAO(gl, [ - { - buffer: dynamicBuffer, - size: 2, - type: gl.FLOAT - }]) +},{}],412:[function(_dereq_,module,exports){ +module.exports = { + create: _dereq_('./create'), + clone: _dereq_('./clone'), + fromValues: _dereq_('./fromValues'), + copy: _dereq_('./copy'), + set: _dereq_('./set'), + add: _dereq_('./add'), + subtract: _dereq_('./subtract'), + multiply: _dereq_('./multiply'), + divide: _dereq_('./divide'), + min: _dereq_('./min'), + max: _dereq_('./max'), + scale: _dereq_('./scale'), + scaleAndAdd: _dereq_('./scaleAndAdd'), + distance: _dereq_('./distance'), + squaredDistance: _dereq_('./squaredDistance'), + length: _dereq_('./length'), + squaredLength: _dereq_('./squaredLength'), + negate: _dereq_('./negate'), + inverse: _dereq_('./inverse'), + normalize: _dereq_('./normalize'), + dot: _dereq_('./dot'), + lerp: _dereq_('./lerp'), + random: _dereq_('./random'), + transformMat4: _dereq_('./transformMat4'), + transformQuat: _dereq_('./transformQuat') +} - var cmap = createTexture(gl, 1, N_COLORS, gl.RGBA, gl.UNSIGNED_BYTE) - cmap.minFilter = gl.LINEAR - cmap.magFilter = gl.LINEAR +},{"./add":404,"./clone":405,"./copy":406,"./create":407,"./distance":408,"./divide":409,"./dot":410,"./fromValues":411,"./inverse":413,"./length":414,"./lerp":415,"./max":416,"./min":417,"./multiply":418,"./negate":419,"./normalize":420,"./random":421,"./scale":422,"./scaleAndAdd":423,"./set":424,"./squaredDistance":425,"./squaredLength":426,"./subtract":427,"./transformMat4":428,"./transformQuat":429}],413:[function(_dereq_,module,exports){ +module.exports = inverse - var surface = new SurfacePlot( - gl, - [0, 0], // shape - [[0, 0, 0], [0, 0, 0]], // bounds - shader, - pickShader, - coordinateBuffer, - vao, - cmap, - contourShader, - contourPickShader, - contourBuffer, - contourVAO, - dynamicBuffer, - dynamicVAO, - [0, 0, 0] // objectOffset - ) +/** + * Returns the inverse of the components of a vec4 + * + * @param {vec4} out the receiving vector + * @param {vec4} a vector to invert + * @returns {vec4} out + */ +function inverse (out, a) { + out[0] = 1.0 / a[0] + out[1] = 1.0 / a[1] + out[2] = 1.0 / a[2] + out[3] = 1.0 / a[3] + return out +} - var nparams = { - levels: [[], [], []] - } - for (var id in params) { - nparams[id] = params[id] - } - nparams.colormap = nparams.colormap || 'jet' +},{}],414:[function(_dereq_,module,exports){ +module.exports = length - surface.update(nparams) +/** + * Calculates the length of a vec4 + * + * @param {vec4} a vector to calculate length of + * @returns {Number} length of a + */ +function length (a) { + var x = a[0], + y = a[1], + z = a[2], + w = a[3] + return Math.sqrt(x * x + y * y + z * z + w * w) +} - return surface +},{}],415:[function(_dereq_,module,exports){ +module.exports = lerp + +/** + * Performs a linear interpolation between two vec4's + * + * @param {vec4} out the receiving vector + * @param {vec4} a the first operand + * @param {vec4} b the second operand + * @param {Number} t interpolation amount between the two inputs + * @returns {vec4} out + */ +function lerp (out, a, b, t) { + var ax = a[0], + ay = a[1], + az = a[2], + aw = a[3] + out[0] = ax + t * (b[0] - ax) + out[1] = ay + t * (b[1] - ay) + out[2] = az + t * (b[2] - az) + out[3] = aw + t * (b[3] - aw) + return out } -},{"./lib/shaders":349,"binary-search-bounds":96,"bit-twiddle":97,"colormap":131,"gl-buffer":259,"gl-mat4/invert":293,"gl-mat4/multiply":295,"gl-texture2d":353,"gl-vao":358,"ndarray":495,"ndarray-gradient":488,"ndarray-ops":490,"ndarray-pack":491,"surface-nets":570,"typedarray-pool":595}],352:[function(_dereq_,module,exports){ -'use strict' +},{}],416:[function(_dereq_,module,exports){ +module.exports = max -var Font = _dereq_('css-font') -var pick = _dereq_('pick-by-alias') -var createRegl = _dereq_('regl') -var createGl = _dereq_('gl-util/context') -var WeakMap = _dereq_('es6-weak-map') -var rgba = _dereq_('color-normalize') -var fontAtlas = _dereq_('font-atlas') -var pool = _dereq_('typedarray-pool') -var parseRect = _dereq_('parse-rect') -var isObj = _dereq_('is-plain-obj') -var parseUnit = _dereq_('parse-unit') -var px = _dereq_('to-px') -var kerning = _dereq_('detect-kerning') -var extend = _dereq_('object-assign') -var metrics = _dereq_('font-measure') -var flatten = _dereq_('flatten-vertex-data') -var ref = _dereq_('bit-twiddle'); -var nextPow2 = ref.nextPow2; +/** + * Returns the maximum of two vec4's + * + * @param {vec4} out the receiving vector + * @param {vec4} a the first operand + * @param {vec4} b the second operand + * @returns {vec4} out + */ +function max (out, a, b) { + out[0] = Math.max(a[0], b[0]) + out[1] = Math.max(a[1], b[1]) + out[2] = Math.max(a[2], b[2]) + out[3] = Math.max(a[3], b[3]) + return out +} -var shaderCache = new WeakMap +},{}],417:[function(_dereq_,module,exports){ +module.exports = min + +/** + * Returns the minimum of two vec4's + * + * @param {vec4} out the receiving vector + * @param {vec4} a the first operand + * @param {vec4} b the second operand + * @returns {vec4} out + */ +function min (out, a, b) { + out[0] = Math.min(a[0], b[0]) + out[1] = Math.min(a[1], b[1]) + out[2] = Math.min(a[2], b[2]) + out[3] = Math.min(a[3], b[3]) + return out +} +},{}],418:[function(_dereq_,module,exports){ +module.exports = multiply -// Safari does not support font-stretch -var isStretchSupported = false -if (document.body) { - var el = document.body.appendChild(document.createElement('div')) - el.style.font = 'italic small-caps bold condensed 16px/2 cursive' - if (getComputedStyle(el).fontStretch) { - isStretchSupported = true - } - document.body.removeChild(el) +/** + * Multiplies two vec4's + * + * @param {vec4} out the receiving vector + * @param {vec4} a the first operand + * @param {vec4} b the second operand + * @returns {vec4} out + */ +function multiply (out, a, b) { + out[0] = a[0] * b[0] + out[1] = a[1] * b[1] + out[2] = a[2] * b[2] + out[3] = a[3] * b[3] + return out } -var GlText = function GlText (o) { - if (isRegl(o)) { - o = {regl: o} - this.gl = o.regl._gl - } - else { - this.gl = createGl(o) - } +},{}],419:[function(_dereq_,module,exports){ +module.exports = negate - this.shader = shaderCache.get(this.gl) +/** + * Negates the components of a vec4 + * + * @param {vec4} out the receiving vector + * @param {vec4} a vector to negate + * @returns {vec4} out + */ +function negate (out, a) { + out[0] = -a[0] + out[1] = -a[1] + out[2] = -a[2] + out[3] = -a[3] + return out +} - if (!this.shader) { - this.regl = o.regl || createRegl({ gl: this.gl }) - } - else { - this.regl = this.shader.regl - } +},{}],420:[function(_dereq_,module,exports){ +module.exports = normalize - this.charBuffer = this.regl.buffer({ type: 'uint8', usage: 'stream' }) - this.sizeBuffer = this.regl.buffer({ type: 'float', usage: 'stream' }) +/** + * Normalize a vec4 + * + * @param {vec4} out the receiving vector + * @param {vec4} a vector to normalize + * @returns {vec4} out + */ +function normalize (out, a) { + var x = a[0], + y = a[1], + z = a[2], + w = a[3] + var len = x * x + y * y + z * z + w * w + if (len > 0) { + len = 1 / Math.sqrt(len) + out[0] = x * len + out[1] = y * len + out[2] = z * len + out[3] = w * len + } + return out +} - if (!this.shader) { - this.shader = this.createShader() - shaderCache.set(this.gl, this.shader) - } +},{}],421:[function(_dereq_,module,exports){ +var vecNormalize = _dereq_('./normalize') +var vecScale = _dereq_('./scale') - this.batch = [] +module.exports = random - // multiple options initial state - this.fontSize = [] - this.font = [] - this.fontAtlas = [] +/** + * Generates a random vector with the given scale + * + * @param {vec4} out the receiving vector + * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned + * @returns {vec4} out + */ +function random (out, scale) { + scale = scale || 1.0 - this.draw = this.shader.draw.bind(this) - this.render = function () { - // FIXME: add Safari regl report here: - // charBuffer and width just do not trigger - this.regl._refresh() - this.draw(this.batch) - } - this.canvas = this.gl.canvas + // TODO: This is a pretty awful way of doing this. Find something better. + out[0] = Math.random() + out[1] = Math.random() + out[2] = Math.random() + out[3] = Math.random() + vecNormalize(out, out) + vecScale(out, out, scale) + return out +} - this.update(isObj(o) ? o : {}) -}; +},{"./normalize":420,"./scale":422}],422:[function(_dereq_,module,exports){ +module.exports = scale -GlText.prototype.createShader = function createShader () { - var regl = this.regl +/** + * Scales a vec4 by a scalar number + * + * @param {vec4} out the receiving vector + * @param {vec4} a the vector to scale + * @param {Number} b amount to scale the vector by + * @returns {vec4} out + */ +function scale (out, a, b) { + out[0] = a[0] * b + out[1] = a[1] * b + out[2] = a[2] * b + out[3] = a[3] * b + return out +} - // FIXME: store 2 shader versions: with normal viewport and without - // draw texture method - var draw = regl({ - blend: { - enable: true, - color: [0,0,0,1], +},{}],423:[function(_dereq_,module,exports){ +module.exports = scaleAndAdd - func: { - srcRGB: 'src alpha', - dstRGB: 'one minus src alpha', - srcAlpha: 'one minus dst alpha', - dstAlpha: 'one' - } - }, - stencil: {enable: false}, - depth: {enable: false}, +/** + * Adds two vec4's after scaling the second operand by a scalar value + * + * @param {vec4} out the receiving vector + * @param {vec4} a the first operand + * @param {vec4} b the second operand + * @param {Number} scale the amount to scale b by before adding + * @returns {vec4} out + */ +function scaleAndAdd (out, a, b, scale) { + out[0] = a[0] + (b[0] * scale) + out[1] = a[1] + (b[1] * scale) + out[2] = a[2] + (b[2] * scale) + out[3] = a[3] + (b[3] * scale) + return out +} - count: regl.prop('count'), - offset: regl.prop('offset'), - attributes: { - charOffset: { - offset: 4, - stride: 8, - buffer: regl.this('sizeBuffer') - }, - width: { - offset: 0, - stride: 8, - buffer: regl.this('sizeBuffer') - }, - char: regl.this('charBuffer'), - position: regl.this('position') - }, - uniforms: { - atlasSize: function (c, p) { return [p.atlas.width, p.atlas.height]; }, - atlasDim: function (c, p) { return [p.atlas.cols, p.atlas.rows]; }, - atlas: function (c, p) { return p.atlas.texture; }, - charStep: function (c, p) { return p.atlas.step; }, - em: function (c, p) { return p.atlas.em; }, - color: regl.prop('color'), - opacity: regl.prop('opacity'), - viewport: regl.this('viewportArray'), - scale: regl.this('scale'), - align: regl.prop('align'), - baseline: regl.prop('baseline'), - translate: regl.this('translate'), - positionOffset: regl.prop('positionOffset') - }, - primitive: 'points', - viewport: regl.this('viewport'), +},{}],424:[function(_dereq_,module,exports){ +module.exports = set - vert: ("\n\t\t\tprecision highp float;\n\t\t\tattribute float width, charOffset, char;\n\t\t\tattribute vec2 position;\n\t\t\tuniform float fontSize, charStep, em, align, baseline;\n\t\t\tuniform vec4 viewport;\n\t\t\tuniform vec4 color;\n\t\t\tuniform vec2 atlasSize, atlasDim, scale, translate, positionOffset;\n\t\t\tvarying vec2 charCoord, charId;\n\t\t\tvarying float charWidth;\n\t\t\tvarying vec4 fontColor;\n\t\t\tvoid main () {\n\t\t\t\t" + (!GlText.normalViewport ? 'vec2 positionOffset = vec2(positionOffset.x,- positionOffset.y);' : '') + "\n\n\t\t\t\tvec2 offset = floor(em * (vec2(align + charOffset, baseline)\n\t\t\t\t\t+ positionOffset))\n\t\t\t\t\t/ (viewport.zw * scale.xy);\n\n\t\t\t\tvec2 position = (position + translate) * scale;\n\t\t\t\tposition += offset * scale;\n\n\t\t\t\t" + (GlText.normalViewport ? 'position.y = 1. - position.y;' : '') + "\n\n\t\t\t\tcharCoord = position * viewport.zw + viewport.xy;\n\n\t\t\t\tgl_Position = vec4(position * 2. - 1., 0, 1);\n\n\t\t\t\tgl_PointSize = charStep;\n\n\t\t\t\tcharId.x = mod(char, atlasDim.x);\n\t\t\t\tcharId.y = floor(char / atlasDim.x);\n\n\t\t\t\tcharWidth = width * em;\n\n\t\t\t\tfontColor = color / 255.;\n\t\t\t}"), +/** + * Set the components of a vec4 to the given values + * + * @param {vec4} out the receiving vector + * @param {Number} x X component + * @param {Number} y Y component + * @param {Number} z Z component + * @param {Number} w W component + * @returns {vec4} out + */ +function set (out, x, y, z, w) { + out[0] = x + out[1] = y + out[2] = z + out[3] = w + return out +} - frag: "\n\t\t\tprecision highp float;\n\t\t\tuniform sampler2D atlas;\n\t\t\tuniform float fontSize, charStep, opacity;\n\t\t\tuniform vec2 atlasSize;\n\t\t\tuniform vec4 viewport;\n\t\t\tvarying vec4 fontColor;\n\t\t\tvarying vec2 charCoord, charId;\n\t\t\tvarying float charWidth;\n\n\t\t\tfloat lightness(vec4 color) {\n\t\t\t\treturn color.r * 0.299 + color.g * 0.587 + color.b * 0.114;\n\t\t\t}\n\n\t\t\tvoid main () {\n\t\t\t\tvec2 uv = gl_FragCoord.xy - charCoord + charStep * .5;\n\t\t\t\tfloat halfCharStep = floor(charStep * .5 + .5);\n\n\t\t\t\t// invert y and shift by 1px (FF expecially needs that)\n\t\t\t\tuv.y = charStep - uv.y;\n\n\t\t\t\t// ignore points outside of character bounding box\n\t\t\t\tfloat halfCharWidth = ceil(charWidth * .5);\n\t\t\t\tif (floor(uv.x) > 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}" - }) +},{}],425:[function(_dereq_,module,exports){ +module.exports = squaredDistance - // per font-size atlas - var atlas = {} +/** + * Calculates the squared euclidian distance between two vec4's + * + * @param {vec4} a the first operand + * @param {vec4} b the second operand + * @returns {Number} squared distance between a and b + */ +function squaredDistance (a, b) { + var x = b[0] - a[0], + y = b[1] - a[1], + z = b[2] - a[2], + w = b[3] - a[3] + return x * x + y * y + z * z + w * w +} - return { regl: regl, draw: draw, atlas: atlas } -}; +},{}],426:[function(_dereq_,module,exports){ +module.exports = squaredLength -GlText.prototype.update = function update (o) { - var this$1 = this; +/** + * Calculates the squared length of a vec4 + * + * @param {vec4} a vector to calculate squared length of + * @returns {Number} squared length of a + */ +function squaredLength (a) { + var x = a[0], + y = a[1], + z = a[2], + w = a[3] + return x * x + y * y + z * z + w * w +} - if (typeof o === 'string') { o = { text: o } } - else if (!o) { return } +},{}],427:[function(_dereq_,module,exports){ +module.exports = subtract - // FIXME: make this a static transform or more general approact - o = pick(o, { - 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' - }, true) +/** + * Subtracts vector b from vector a + * + * @param {vec4} out the receiving vector + * @param {vec4} a the first operand + * @param {vec4} b the second operand + * @returns {vec4} out + */ +function subtract (out, a, b) { + out[0] = a[0] - b[0] + out[1] = a[1] - b[1] + out[2] = a[2] - b[2] + out[3] = a[3] - b[3] + return out +} +},{}],428:[function(_dereq_,module,exports){ +module.exports = transformMat4 - if (o.opacity != null) { - if (Array.isArray(o.opacity)) { - this.opacity = o.opacity.map(function (o) { return parseFloat(o); }) - } - else { - this.opacity = parseFloat(o.opacity) - } - } +/** + * Transforms the vec4 with a mat4. + * + * @param {vec4} out the receiving vector + * @param {vec4} a the vector to transform + * @param {mat4} m matrix to transform with + * @returns {vec4} out + */ +function transformMat4 (out, a, m) { + var x = a[0], y = a[1], z = a[2], w = a[3] + out[0] = m[0] * x + m[4] * y + m[8] * z + m[12] * w + out[1] = m[1] * x + m[5] * y + m[9] * z + m[13] * w + out[2] = m[2] * x + m[6] * y + m[10] * z + m[14] * w + out[3] = m[3] * x + m[7] * y + m[11] * z + m[15] * w + return out +} - if (o.viewport != null) { - this.viewport = parseRect(o.viewport) +},{}],429:[function(_dereq_,module,exports){ +module.exports = transformQuat - if (GlText.normalViewport) { - this.viewport.y = this.canvas.height - this.viewport.y - this.viewport.height - } +/** + * Transforms the vec4 with a quat + * + * @param {vec4} out the receiving vector + * @param {vec4} a the vector to transform + * @param {quat} q quaternion to transform with + * @returns {vec4} out + */ +function transformQuat (out, a, q) { + var x = a[0], y = a[1], z = a[2], + qx = q[0], qy = q[1], qz = q[2], qw = q[3], - this.viewportArray = [this.viewport.x, this.viewport.y, this.viewport.width, this.viewport.height] + // calculate quat * vec + ix = qw * x + qy * z - qz * y, + iy = qw * y + qz * x - qx * z, + iz = qw * z + qx * y - qy * x, + iw = -qx * x - qy * y - qz * z - } - if (this.viewport == null) { - 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] - } + // calculate result * inverse quat + out[0] = ix * qw + iw * -qx + iy * -qz - iz * -qy + out[1] = iy * qw + iw * -qy + iz * -qx - ix * -qz + out[2] = iz * qw + iw * -qz + ix * -qy - iy * -qx + out[3] = a[3] + return out +} - if (o.kerning != null) { this.kerning = o.kerning } +},{}],430:[function(_dereq_,module,exports){ +var tokenize = _dereq_('glsl-tokenizer') +var atob = _dereq_('atob-lite') - if (o.offset != null) { - if (typeof o.offset === 'number') { o.offset = [o.offset, 0] } +module.exports = getName - this.positionOffset = flatten(o.offset) - } +function getName(src) { + var tokens = Array.isArray(src) + ? src + : tokenize(src) - if (o.direction) { this.direction = o.direction } + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i] + if (token.type !== 'preprocessor') continue + var match = token.data.match(/\#define\s+SHADER_NAME(_B64)?\s+(.+)$/) + if (!match) continue + if (!match[2]) continue - if (o.range) { - this.range = o.range - this.scale = [1 / (o.range[2] - o.range[0]), 1 / (o.range[3] - o.range[1])] - this.translate = [-o.range[0], -o.range[1]] - } - if (o.scale) { this.scale = o.scale } - if (o.translate) { this.translate = o.translate } + var b64 = match[1] + var name = match[2] - // default scale corresponds to viewport - if (!this.scale) { this.scale = [1 / this.viewport.width, 1 / this.viewport.height] } + return (b64 ? atob(name) : name).trim() + } +} - if (!this.translate) { this.translate = [0, 0] } +},{"atob-lite":80,"glsl-tokenizer":437}],431:[function(_dereq_,module,exports){ +module.exports = tokenize + +var literals100 = _dereq_('./lib/literals') + , operators = _dereq_('./lib/operators') + , builtins100 = _dereq_('./lib/builtins') + , literals300es = _dereq_('./lib/literals-300es') + , builtins300es = _dereq_('./lib/builtins-300es') + +var NORMAL = 999 // <-- never emitted + , TOKEN = 9999 // <-- never emitted + , BLOCK_COMMENT = 0 + , LINE_COMMENT = 1 + , PREPROCESSOR = 2 + , OPERATOR = 3 + , INTEGER = 4 + , FLOAT = 5 + , IDENT = 6 + , BUILTIN = 7 + , KEYWORD = 8 + , WHITESPACE = 9 + , EOF = 10 + , HEX = 11 + +var map = [ + 'block-comment' + , 'line-comment' + , 'preprocessor' + , 'operator' + , 'integer' + , 'float' + , 'ident' + , 'builtin' + , 'keyword' + , 'whitespace' + , 'eof' + , 'integer' +] + +function tokenize(opt) { + var i = 0 + , total = 0 + , mode = NORMAL + , c + , last + , content = [] + , tokens = [] + , token_idx = 0 + , token_offs = 0 + , line = 1 + , col = 0 + , start = 0 + , isnum = false + , isoperator = false + , input = '' + , len + + opt = opt || {} + var allBuiltins = builtins100 + var allLiterals = literals100 + if (opt.version === '300 es') { + allBuiltins = builtins300es + allLiterals = literals300es + } + + // cache by name + var builtinsDict = {}, literalsDict = {} + for (var i = 0; i < allBuiltins.length; i++) { + builtinsDict[allBuiltins[i]] = true + } + for (var i = 0; i < allLiterals.length; i++) { + literalsDict[allLiterals[i]] = true + } + + return function(data) { + tokens = [] + if (data !== null) return write(data) + return end() + } + + function token(data) { + if (data.length) { + tokens.push({ + type: map[mode] + , data: data + , position: start + , line: line + , column: col + }) + } + } + + function write(chunk) { + i = 0 + + if (chunk.toString) chunk = chunk.toString() + + input += chunk.replace(/\r\n/g, '\n') + len = input.length + + + var last + + while(c = input[i], i < len) { + last = i + + switch(mode) { + case BLOCK_COMMENT: i = block_comment(); break + case LINE_COMMENT: i = line_comment(); break + case PREPROCESSOR: i = preprocessor(); break + case OPERATOR: i = operator(); break + case INTEGER: i = integer(); break + case HEX: i = hex(); break + case FLOAT: i = decimal(); break + case TOKEN: i = readtoken(); break + case WHITESPACE: i = whitespace(); break + case NORMAL: i = normal(); break + } + + if(last !== i) { + switch(input[last]) { + case '\n': col = 0; ++line; break + default: ++col; break + } + } + } + + total += i + input = input.slice(i) + return tokens + } + + function end(chunk) { + if(content.length) { + token(content.join('')) + } + + mode = EOF + token('(eof)') + return tokens + } + + function normal() { + content = content.length ? [] : content + + if(last === '/' && c === '*') { + start = total + i - 1 + mode = BLOCK_COMMENT + last = c + return i + 1 + } + + if(last === '/' && c === '/') { + start = total + i - 1 + mode = LINE_COMMENT + last = c + return i + 1 + } + + if(c === '#') { + mode = PREPROCESSOR + start = total + i + return i + } + + if(/\s/.test(c)) { + mode = WHITESPACE + start = total + i + return i + } + + isnum = /\d/.test(c) + isoperator = /[^\w_]/.test(c) + + start = total + i + mode = isnum ? INTEGER : isoperator ? OPERATOR : TOKEN + return i + } + + function whitespace() { + if(/[^\s]/g.test(c)) { + token(content.join('')) + mode = NORMAL + return i + } + content.push(c) + last = c + return i + 1 + } + + function preprocessor() { + if((c === '\r' || c === '\n') && last !== '\\') { + token(content.join('')) + mode = NORMAL + return i + } + content.push(c) + last = c + return i + 1 + } + + function line_comment() { + return preprocessor() + } + + function block_comment() { + if(c === '/' && last === '*') { + content.push(c) + token(content.join('')) + mode = NORMAL + return i + 1 + } + + content.push(c) + last = c + return i + 1 + } + + function operator() { + if(last === '.' && /\d/.test(c)) { + mode = FLOAT + return i + } + + if(last === '/' && c === '*') { + mode = BLOCK_COMMENT + return i + } + + if(last === '/' && c === '/') { + mode = LINE_COMMENT + return i + } + + if(c === '.' && content.length) { + while(determine_operator(content)); + + mode = FLOAT + return i + } + + if(c === ';' || c === ')' || c === '(') { + if(content.length) while(determine_operator(content)); + token(c) + mode = NORMAL + return i + 1 + } + + var is_composite_operator = content.length === 2 && c !== '=' + if(/[\w_\d\s]/.test(c) || is_composite_operator) { + while(determine_operator(content)); + mode = NORMAL + return i + } + + content.push(c) + last = c + return i + 1 + } + + function determine_operator(buf) { + var j = 0 + , idx + , res + + do { + idx = operators.indexOf(buf.slice(0, buf.length + j).join('')) + res = operators[idx] + + if(idx === -1) { + if(j-- + buf.length > 0) continue + res = buf.slice(0, 1).join('') + } + + token(res) + + start += res.length + content = content.slice(res.length) + return content.length + } while(1) + } + + function hex() { + if(/[^a-fA-F0-9]/.test(c)) { + token(content.join('')) + mode = NORMAL + return i + } + + content.push(c) + last = c + return i + 1 + } + + function integer() { + if(c === '.') { + content.push(c) + mode = FLOAT + last = c + return i + 1 + } + + if(/[eE]/.test(c)) { + content.push(c) + mode = FLOAT + last = c + return i + 1 + } + + if(c === 'x' && content.length === 1 && content[0] === '0') { + mode = HEX + content.push(c) + last = c + return i + 1 + } + + if(/[^\d]/.test(c)) { + token(content.join('')) + mode = NORMAL + return i + } + + content.push(c) + last = c + return i + 1 + } + + function decimal() { + if(c === 'f') { + content.push(c) + last = c + i += 1 + } + + if(/[eE]/.test(c)) { + content.push(c) + last = c + return i + 1 + } + + if ((c === '-' || c === '+') && /[eE]/.test(last)) { + content.push(c) + last = c + return i + 1 + } + + if(/[^\d]/.test(c)) { + token(content.join('')) + mode = NORMAL + return i + } + + content.push(c) + last = c + return i + 1 + } + + function readtoken() { + if(/[^\d\w_]/.test(c)) { + var contentstr = content.join('') + if(literalsDict[contentstr]) { + mode = KEYWORD + } else if(builtinsDict[contentstr]) { + mode = BUILTIN + } else { + mode = IDENT + } + token(content.join('')) + mode = NORMAL + return i + } + content.push(c) + last = c + return i + 1 + } +} - if (!this.font.length && !o.font) { o.font = GlText.baseFontSize + 'px sans-serif' } +},{"./lib/builtins":433,"./lib/builtins-300es":432,"./lib/literals":435,"./lib/literals-300es":434,"./lib/operators":436}],432:[function(_dereq_,module,exports){ +// 300es builtins/reserved words that were previously valid in v100 +var v100 = _dereq_('./builtins') + +// The texture2D|Cube functions have been removed +// And the gl_ features are updated +v100 = v100.slice().filter(function (b) { + return !/^(gl\_|texture)/.test(b) +}) + +module.exports = v100.concat([ + // the updated gl_ constants + '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' + + // other builtins + , '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' +]) - // normalize font caching string - var newFont = false, newFontSize = false +},{"./builtins":433}],433:[function(_dereq_,module,exports){ +module.exports = [ + // Keep this list sorted + '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' +] - // obtain new font data - if (o.font) { - (Array.isArray(o.font) ? o.font : [o.font]).forEach(function (font, i) { - // normalize font - if (typeof font === 'string') { - try { - font = Font.parse(font) - } catch (e) { - font = Font.parse(GlText.baseFontSize + 'px ' + font) - } - } - else { font = Font.parse(Font.stringify(font)) } +},{}],434:[function(_dereq_,module,exports){ +var v100 = _dereq_('./literals') + +module.exports = v100.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' +]) - var baseString = Font.stringify({ - size: GlText.baseFontSize, - family: font.family, - stretch: isStretchSupported ? font.stretch : undefined, - variant: font.variant, - weight: font.weight, - style: font.style - }) +},{"./literals":435}],435:[function(_dereq_,module,exports){ +module.exports = [ + // current + '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' + + // future + , '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' +] - var unit = parseUnit(font.size) - var fs = Math.round(unit[0] * px(unit[1])) - if (fs !== this$1.fontSize[i]) { - newFontSize = true - this$1.fontSize[i] = fs - } +},{}],436:[function(_dereq_,module,exports){ +module.exports = [ + '<<=' + , '>>=' + , '++' + , '--' + , '<<' + , '>>' + , '<=' + , '>=' + , '==' + , '!=' + , '&&' + , '||' + , '+=' + , '-=' + , '*=' + , '/=' + , '%=' + , '&=' + , '^^' + , '^=' + , '|=' + , '(' + , ')' + , '[' + , ']' + , '.' + , '!' + , '~' + , '*' + , '/' + , '%' + , '+' + , '-' + , '<' + , '>' + , '&' + , '^' + , '|' + , '?' + , ':' + , '=' + , ',' + , ';' + , '{' + , '}' +] - // calc new font metrics/atlas - if (!this$1.font[i] || baseString != this$1.font[i].baseString) { - newFont = true +},{}],437:[function(_dereq_,module,exports){ +var tokenize = _dereq_('./index') + +module.exports = tokenizeString + +function tokenizeString(str, opt) { + var generator = tokenize(opt) + var tokens = [] + + tokens = tokens.concat(generator(str)) + tokens = tokens.concat(generator(null)) + + return tokens +} - // obtain font cache or create one - this$1.font[i] = GlText.fonts[baseString] - if (!this$1.font[i]) { - var family = font.family.join(', ') - var style = [font.style] - if (font.style != font.variant) { style.push(font.variant) } - if (font.variant != font.weight) { style.push(font.weight) } - if (isStretchSupported && font.weight != font.stretch) { style.push(font.stretch) } +},{"./index":431}],438:[function(_dereq_,module,exports){ +arguments[4][257][0].apply(exports,arguments) +},{"dup":257}],439:[function(_dereq_,module,exports){ +(function (global){(function (){ +'use strict' + +var isBrowser = _dereq_('is-browser') +var hasHover + +if (typeof global.matchMedia === 'function') { + hasHover = !global.matchMedia('(hover: none)').matches +} +else { + hasHover = isBrowser +} + +module.exports = hasHover - this$1.font[i] = { - baseString: baseString, +}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{"is-browser":448}],440:[function(_dereq_,module,exports){ +'use strict' + +var isBrowser = _dereq_('is-browser') + +function detect() { + var supported = false + + try { + var opts = Object.defineProperty({}, 'passive', { + get: function() { + supported = true + } + }) + + window.addEventListener('test', null, opts) + window.removeEventListener('test', null, opts) + } catch(e) { + supported = false + } + + return supported +} + +module.exports = isBrowser && detect() - // typeface - family: family, - weight: font.weight, - stretch: font.stretch, - style: font.style, - variant: font.variant, +},{"is-browser":448}],441:[function(_dereq_,module,exports){ +exports.read = function (buffer, offset, isLE, mLen, nBytes) { + var e, m + var eLen = (nBytes * 8) - mLen - 1 + var eMax = (1 << eLen) - 1 + var eBias = eMax >> 1 + var nBits = -7 + var i = isLE ? (nBytes - 1) : 0 + var d = isLE ? -1 : 1 + var s = buffer[offset + i] - // widths of characters - width: {}, + i += d - // kernin pairs offsets - kerning: {}, + e = s & ((1 << (-nBits)) - 1) + s >>= (-nBits) + nBits += eLen + for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {} - metrics: metrics(family, { - origin: 'top', - fontSize: GlText.baseFontSize, - fontStyle: style.join(' ') - }) - } + m = e & ((1 << (-nBits)) - 1) + e >>= (-nBits) + nBits += mLen + for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {} - GlText.fonts[baseString] = this$1.font[i] - } - } - }) - } + if (e === 0) { + e = 1 - eBias + } else if (e === eMax) { + return m ? NaN : ((s ? -1 : 1) * Infinity) + } else { + m = m + Math.pow(2, mLen) + e = e - eBias + } + return (s ? -1 : 1) * m * Math.pow(2, e - mLen) +} - // FIXME: make independend font-size - // if (o.fontSize) { - // let unit = parseUnit(o.fontSize) - // let fs = Math.round(unit[0] * px(unit[1])) +exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { + var e, m, c + var eLen = (nBytes * 8) - mLen - 1 + var eMax = (1 << eLen) - 1 + var eBias = eMax >> 1 + var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0) + var i = isLE ? 0 : (nBytes - 1) + var d = isLE ? 1 : -1 + var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0 - // if (fs != this.fontSize) { - // newFontSize = true - // this.fontSize = fs - // } - // } + value = Math.abs(value) + + if (isNaN(value) || value === Infinity) { + m = isNaN(value) ? 1 : 0 + e = eMax + } else { + e = Math.floor(Math.log(value) / Math.LN2) + if (value * (c = Math.pow(2, -e)) < 1) { + e-- + c *= 2 + } + if (e + eBias >= 1) { + value += rt / c + } else { + value += rt * Math.pow(2, 1 - eBias) + } + if (value * c >= 2) { + e++ + c /= 2 + } - if (newFont || newFontSize) { - this.font.forEach(function (font, i) { - var fontString = Font.stringify({ - size: this$1.fontSize[i], - family: font.family, - stretch: isStretchSupported ? font.stretch : undefined, - variant: font.variant, - weight: font.weight, - style: font.style - }) + if (e + eBias >= eMax) { + m = 0 + e = eMax + } else if (e + eBias >= 1) { + m = ((value * c) - 1) * Math.pow(2, mLen) + e = e + eBias + } else { + m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen) + e = 0 + } + } - // calc new font size atlas - this$1.fontAtlas[i] = this$1.shader.atlas[fontString] + for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} - if (!this$1.fontAtlas[i]) { - var metrics = font.metrics + e = (e << mLen) | m + eLen += mLen + for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} - this$1.shader.atlas[fontString] = - this$1.fontAtlas[i] = { - fontString: fontString, - // even step is better for rendered characters - step: Math.ceil(this$1.fontSize[i] * metrics.bottom * .5) * 2, - em: this$1.fontSize[i], - cols: 0, - rows: 0, - height: 0, - width: 0, - chars: [], - ids: {}, - texture: this$1.regl.texture() - } - } + buffer[offset + i - d] |= s * 128 +} - // bump atlas characters - if (o.text == null) { o.text = this$1.text } - }) - } +},{}],442:[function(_dereq_,module,exports){ +"use strict" - // if multiple positions - duplicate text arguments - // FIXME: this possibly can be done better to avoid array spawn - if (typeof o.text === 'string' && o.position && o.position.length > 2) { - var textArray = Array(o.position.length * .5) - for (var i = 0; i < textArray.length; i++) { - textArray[i] = o.text - } - o.text = textArray - } +//High level idea: +// 1. Use Clarkson's incremental construction to find convex hull +// 2. Point location in triangulation by jump and walk - // calculate offsets for the new font/text - var newAtlasChars - if (o.text != null || newFont) { - // FIXME: ignore spaces - // text offsets within the text buffer - this.textOffsets = [0] +module.exports = incrementalConvexHull - if (Array.isArray(o.text)) { - this.count = o.text[0].length - this.counts = [this.count] - for (var i$1 = 1; i$1 < o.text.length; i$1++) { - this.textOffsets[i$1] = this.textOffsets[i$1 - 1] + o.text[i$1 - 1].length - this.count += o.text[i$1].length - this.counts.push(o.text[i$1].length) - } - this.text = o.text.join('') - } - else { - this.text = o.text - this.count = this.text.length - this.counts = [this.count] - } +var orient = _dereq_("robust-orientation") +var compareCell = _dereq_("simplicial-complex").compareCells - newAtlasChars = [] +function compareInt(a, b) { + return a - b +} - // detect & measure new characters - this.font.forEach(function (font, idx) { - GlText.atlasContext.font = font.baseString +function Simplex(vertices, adjacent, boundary) { + this.vertices = vertices + this.adjacent = adjacent + this.boundary = boundary + this.lastVisited = -1 +} - var atlas = this$1.fontAtlas[idx] +Simplex.prototype.flip = function() { + var t = this.vertices[0] + this.vertices[0] = this.vertices[1] + this.vertices[1] = t + var u = this.adjacent[0] + this.adjacent[0] = this.adjacent[1] + this.adjacent[1] = u +} - for (var i = 0; i < this$1.text.length; i++) { - var char = this$1.text.charAt(i) +function GlueFacet(vertices, cell, index) { + this.vertices = vertices + this.cell = cell + this.index = index +} - if (atlas.ids[char] == null) { - atlas.ids[char] = atlas.chars.length - atlas.chars.push(char) - newAtlasChars.push(char) - } +function compareGlue(a, b) { + return compareCell(a.vertices, b.vertices) +} - if (font.width[char] == null) { - font.width[char] = GlText.atlasContext.measureText(char).width / GlText.baseFontSize +function bakeOrient(d) { + var code = ["function orient(){var tuple=this.tuple;return test("] + for(var i=0; i<=d; ++i) { + if(i > 0) { + code.push(",") + } + code.push("tuple[", i, "]") + } + code.push(")}return orient") + var proc = new Function("test", code.join("")) + var test = orient[d+1] + if(!test) { + test = orient + } + return proc(test) +} - // measure kerning pairs for the new character - if (this$1.kerning) { - var pairs = [] - for (var baseChar in font.width) { - pairs.push(baseChar + char, char + baseChar) - } - extend(font.kerning, kerning(font.family, { - pairs: pairs - })) - } - } - } - }) - } +var BAKED = [] - // create single position buffer (faster than batch or multiple separate instances) - if (o.position) { - if (o.position.length > 2) { - var flat = !o.position[0].length - var positionData = pool.mallocFloat(this.count * 2) - for (var i$2 = 0, ptr = 0; i$2 < this.counts.length; i$2++) { - var count = this.counts[i$2] - if (flat) { - for (var j = 0; j < count; j++) { - positionData[ptr++] = o.position[i$2 * 2] - positionData[ptr++] = o.position[i$2 * 2 + 1] - } - } - else { - for (var j$1 = 0; j$1 < count; j$1++) { - positionData[ptr++] = o.position[i$2][0] - positionData[ptr++] = o.position[i$2][1] - } - } - } - if (this.position.call) { - this.position({ - type: 'float', - data: positionData - }) - } else { - this.position = this.regl.buffer({ - type: 'float', - data: positionData - }) - } - pool.freeFloat(positionData) - } - else { - if (this.position.destroy) { this.position.destroy() } - this.position = { - constant: o.position - } - } - } +function Triangulation(dimension, vertices, simplices) { + this.dimension = dimension + this.vertices = vertices + this.simplices = simplices + this.interior = simplices.filter(function(c) { + return !c.boundary + }) - // populate text/offset buffers if font/text has changed - // as [charWidth, offset, charWidth, offset...] - // that is in em units since font-size can change often - if (o.text || newFont) { - var charIds = pool.mallocUint8(this.count) - var sizeData = pool.mallocFloat(this.count * 2) - this.textWidth = [] + this.tuple = new Array(dimension+1) + for(var i=0; i<=dimension; ++i) { + this.tuple[i] = this.vertices[i] + } - for (var i$3 = 0, ptr$1 = 0; i$3 < this.counts.length; i$3++) { - var count$1 = this.counts[i$3] - var font = this.font[i$3] || this.font[0] - var atlas = this.fontAtlas[i$3] || this.fontAtlas[0] + var o = BAKED[dimension] + if(!o) { + o = BAKED[dimension] = bakeOrient(dimension) + } + this.orient = o +} - for (var j$2 = 0; j$2 < count$1; j$2++) { - var char = this.text.charAt(ptr$1) - var prevChar = this.text.charAt(ptr$1 - 1) +var proto = Triangulation.prototype - charIds[ptr$1] = atlas.ids[char] - sizeData[ptr$1 * 2] = font.width[char] +//Degenerate situation where we are on boundary, but coplanar to face +proto.handleBoundaryDegeneracy = function(cell, point) { + var d = this.dimension + var n = this.vertices.length - 1 + var tuple = this.tuple + var verts = this.vertices - if (j$2) { - var prevWidth = sizeData[ptr$1 * 2 - 2] - var currWidth = sizeData[ptr$1 * 2] - var prevOffset = sizeData[ptr$1 * 2 - 1] - var offset = prevOffset + prevWidth * .5 + currWidth * .5; + //Dumb solution: Just do dfs from boundary cell until we find any peak, or terminate + var toVisit = [ cell ] + cell.lastVisited = -n + while(toVisit.length > 0) { + cell = toVisit.pop() + var cellVerts = cell.vertices + var cellAdj = cell.adjacent + for(var i=0; i<=d; ++i) { + var neighbor = cellAdj[i] + if(!neighbor.boundary || neighbor.lastVisited <= -n) { + continue + } + var nv = neighbor.vertices + for(var j=0; j<=d; ++j) { + var vv = nv[j] + if(vv < 0) { + tuple[j] = point + } else { + tuple[j] = verts[vv] + } + } + var o = this.orient() + if(o > 0) { + return neighbor + } + neighbor.lastVisited = -n + if(o === 0) { + toVisit.push(neighbor) + } + } + } + return null +} - if (this.kerning) { - var kerning$1 = font.kerning[prevChar + char] - if (kerning$1) { - offset += kerning$1 * 1e-3 - } - } +proto.walk = function(point, random) { + //Alias local properties + var n = this.vertices.length - 1 + var d = this.dimension + var verts = this.vertices + var tuple = this.tuple - sizeData[ptr$1 * 2 + 1] = offset - } - else { - sizeData[ptr$1 * 2 + 1] = sizeData[ptr$1 * 2] * .5 - } + //Compute initial jump cell + var initIndex = random ? (this.interior.length * Math.random())|0 : (this.interior.length-1) + var cell = this.interior[ initIndex ] - ptr$1++ - } - this.textWidth.push( - !sizeData.length ? 0 : - // last offset + half last width - sizeData[ptr$1 * 2 - 2] * .5 + sizeData[ptr$1 * 2 - 1] - ) - } + //Start walking +outerLoop: + while(!cell.boundary) { + var cellVerts = cell.vertices + var cellAdj = cell.adjacent + for(var i=0; i<=d; ++i) { + tuple[i] = verts[cellVerts[i]] + } + cell.lastVisited = n - // bump recalc align offset - if (!o.align) { o.align = this.align } - this.charBuffer({data: charIds, type: 'uint8', usage: 'stream'}) - this.sizeBuffer({data: sizeData, type: 'float', usage: 'stream'}) - pool.freeUint8(charIds) - pool.freeFloat(sizeData) + //Find farthest adjacent cell + for(var i=0; i<=d; ++i) { + var neighbor = cellAdj[i] + if(neighbor.lastVisited >= n) { + continue + } + var prev = tuple[i] + tuple[i] = point + var o = this.orient() + tuple[i] = prev + if(o < 0) { + cell = neighbor + continue outerLoop + } else { + if(!neighbor.boundary) { + neighbor.lastVisited = n + } else { + neighbor.lastVisited = -n + } + } + } + return + } - // udpate font atlas and texture - if (newAtlasChars.length) { - this.font.forEach(function (font, i) { - var atlas = this$1.fontAtlas[i] + return cell +} - // FIXME: insert metrics-based ratio here - var step = atlas.step +proto.addPeaks = function(point, cell) { + var n = this.vertices.length - 1 + var d = this.dimension + var verts = this.vertices + var tuple = this.tuple + var interior = this.interior + var simplices = this.simplices - var maxCols = Math.floor(GlText.maxAtlasSize / step) - var cols = Math.min(maxCols, atlas.chars.length) - var rows = Math.ceil(atlas.chars.length / cols) + //Walking finished at boundary, time to add peaks + var tovisit = [ cell ] - var atlasWidth = nextPow2( cols * step ) - // let atlasHeight = Math.min(rows * step + step * .5, GlText.maxAtlasSize); - var atlasHeight = nextPow2( rows * step ); + //Stretch initial boundary cell into a peak + cell.lastVisited = n + cell.vertices[cell.vertices.indexOf(-1)] = n + cell.boundary = false + interior.push(cell) - atlas.width = atlasWidth - atlas.height = atlasHeight; - atlas.rows = rows - atlas.cols = cols + //Record a list of all new boundaries created by added peaks so we can glue them together when we are all done + var glueFacets = [] - if (!atlas.em) { return } + //Do a traversal of the boundary walking outward from starting peak + while(tovisit.length > 0) { + //Pop off peak and walk over adjacent cells + var cell = tovisit.pop() + var cellVerts = cell.vertices + var cellAdj = cell.adjacent + var indexOfN = cellVerts.indexOf(n) + if(indexOfN < 0) { + continue + } - atlas.texture({ - data: fontAtlas({ - canvas: GlText.atlasCanvas, - font: atlas.fontString, - chars: atlas.chars, - shape: [atlasWidth, atlasHeight], - step: [step, step] - }) - }) + for(var i=0; i<=d; ++i) { + if(i === indexOfN) { + continue + } - }) - } - } + //For each boundary neighbor of the cell + var neighbor = cellAdj[i] + if(!neighbor.boundary || neighbor.lastVisited >= n) { + continue + } - if (o.align) { - this.align = o.align - this.alignOffset = this.textWidth.map(function (textWidth, i) { - var align = !Array.isArray(this$1.align) ? this$1.align : this$1.align.length > 1 ? this$1.align[i] : this$1.align[0] + var nv = neighbor.vertices - if (typeof align === 'number') { return align } - switch (align) { - case 'right': - case 'end': - return -textWidth - case 'center': - case 'centre': - case 'middle': - return -textWidth * .5 - } + //Test if neighbor is a peak + if(neighbor.lastVisited !== -n) { + //Compute orientation of p relative to each boundary peak + var indexOfNeg1 = 0 + for(var j=0; j<=d; ++j) { + if(nv[j] < 0) { + indexOfNeg1 = j + tuple[j] = point + } else { + tuple[j] = verts[nv[j]] + } + } + var o = this.orient() - return 0 - }) - } + //Test if neighbor cell is also a peak + if(o > 0) { + nv[indexOfNeg1] = n + neighbor.boundary = false + interior.push(neighbor) + tovisit.push(neighbor) + neighbor.lastVisited = n + continue + } else { + neighbor.lastVisited = -n + } + } - if (this.baseline == null && o.baseline == null) { - o.baseline = 0 - } - if (o.baseline != null) { - this.baseline = o.baseline - if (!Array.isArray(this.baseline)) { this.baseline = [this.baseline] } - this.baselineOffset = this.baseline.map(function (baseline, i) { - var m = (this$1.font[i] || this$1.font[0]).metrics - var base = 0 + var na = neighbor.adjacent - base += m.bottom * .5 + //Otherwise, replace neighbor with new face + var vverts = cellVerts.slice() + var vadj = cellAdj.slice() + var ncell = new Simplex(vverts, vadj, true) + simplices.push(ncell) - if (typeof baseline === 'number') { - base += (baseline - m.baseline) - } - else { - base += -m[baseline] - } + //Connect to neighbor + var opposite = na.indexOf(cell) + if(opposite < 0) { + continue + } + na[opposite] = ncell + vadj[indexOfN] = neighbor - if (!GlText.normalViewport) { base *= -1 } - return base - }) - } + //Connect to cell + vverts[i] = -1 + vadj[i] = cell + cellAdj[i] = ncell - // flatten colors to a single uint8 array - if (o.color != null) { - if (!o.color) { o.color = 'transparent' } + //Flip facet + ncell.flip() - // single color - if (typeof o.color === 'string' || !isNaN(o.color)) { - this.color = rgba(o.color, 'uint8') - } - // array - else { - var colorData + //Add to glue list + for(var j=0; j<=d; ++j) { + var uu = vverts[j] + if(uu < 0 || uu === n) { + continue + } + var nface = new Array(d-1) + var nptr = 0 + for(var k=0; k<=d; ++k) { + var vv = vverts[k] + if(vv < 0 || k === j) { + continue + } + nface[nptr++] = vv + } + glueFacets.push(new GlueFacet(nface, ncell, j)) + } + } + } - // flat array - if (typeof o.color[0] === 'number' && o.color.length > this.counts.length) { - var l = o.color.length - colorData = pool.mallocUint8(l) - var sub = (o.color.subarray || o.color.slice).bind(o.color) - for (var i$4 = 0; i$4 < l; i$4 += 4) { - colorData.set(rgba(sub(i$4, i$4 + 4), 'uint8'), i$4) - } - } - // nested array - else { - var l$1 = o.color.length - colorData = pool.mallocUint8(l$1 * 4) - for (var i$5 = 0; i$5 < l$1; i$5++) { - colorData.set(rgba(o.color[i$5] || 0, 'uint8'), i$5 * 4) - } - } + //Glue boundary facets together + glueFacets.sort(compareGlue) - this.color = colorData - } - } + for(var i=0; i+1 4) - || (this.baselineOffset.length > 1) - || (this.align && this.align.length > 1) - || (this.fontAtlas.length > 1) - || (this.positionOffset.length > 2) - if (isBatch) { - var length = Math.max( - this.position.length * .5 || 0, - this.color.length * .25 || 0, - this.baselineOffset.length || 0, - this.alignOffset.length || 0, - this.font.length || 0, - this.opacity.length || 0, - this.positionOffset.length * .5 || 0 - ) - this.batch = Array(length) - for (var i$6 = 0; i$6 < this.batch.length; i$6++) { - this.batch[i$6] = { - count: this.counts.length > 1 ? this.counts[i$6] : this.counts[0], - offset: this.textOffsets.length > 1 ? this.textOffsets[i$6] : this.textOffsets[0], - color: !this.color ? [0,0,0,255] : this.color.length <= 4 ? this.color : this.color.subarray(i$6 * 4, i$6 * 4 + 4), - opacity: Array.isArray(this.opacity) ? this.opacity[i$6] : this.opacity, - baseline: this.baselineOffset[i$6] != null ? this.baselineOffset[i$6] : this.baselineOffset[0], - align: !this.align ? 0 : this.alignOffset[i$6] != null ? this.alignOffset[i$6] : this.alignOffset[0], - atlas: this.fontAtlas[i$6] || this.fontAtlas[0], - positionOffset: this.positionOffset.length > 2 ? this.positionOffset.subarray(i$6 * 2, i$6 * 2 + 2) : this.positionOffset - } - } - } - // single-color, single-baseline, single-align batch is faster to render - else { - if (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 - }] - } - else { - this.batch = [] - } - } - } -}; +proto.insert = function(point, random) { + //Add point + var verts = this.vertices + verts.push(point) -GlText.prototype.destroy = function destroy () { - // TODO: count instances of atlases and destroy all on null -}; + var cell = this.walk(point, random) + if(!cell) { + return + } + //Alias local properties + var d = this.dimension + var tuple = this.tuple -// defaults -GlText.prototype.kerning = true -GlText.prototype.position = { constant: new Float32Array(2) } -GlText.prototype.translate = null -GlText.prototype.scale = null -GlText.prototype.font = null -GlText.prototype.text = '' -GlText.prototype.positionOffset = [0, 0] -GlText.prototype.opacity = 1 -GlText.prototype.color = new Uint8Array([0, 0, 0, 255]) -GlText.prototype.alignOffset = [0, 0] + //Degenerate case: If point is coplanar to cell, then walk until we find a non-degenerate boundary + for(var i=0; i<=d; ++i) { + var vv = cell.vertices[i] + if(vv < 0) { + tuple[i] = point + } else { + tuple[i] = verts[vv] + } + } + var o = this.orient(tuple) + if(o < 0) { + return + } else if(o === 0) { + cell = this.handleBoundaryDegeneracy(cell, point) + if(!cell) { + return + } + } + //Add peaks + this.addPeaks(point, cell) +} -// whether viewport should be top↓bottom 2d one (true) or webgl one (false) -GlText.normalViewport = false +//Extract all boundary cells +proto.boundary = function() { + var d = this.dimension + var boundary = [] + var cells = this.simplices + var nc = cells.length + for(var i=0; i= 0) { + bcell[ptr++] = cv[j] + } else { + parity = j&1 + } + } + if(parity === (d&1)) { + var t = bcell[0] + bcell[0] = bcell[1] + bcell[1] = t + } + boundary.push(bcell) + } + } + return boundary +} -// size of an atlas -GlText.maxAtlasSize = 1024 +function incrementalConvexHull(points, randomSearch) { + var n = points.length + if(n === 0) { + throw new Error("Must have at least d+1 points") + } + var d = points[0].length + if(n <= d) { + throw new Error("Must input at least d+1 points") + } -// font atlas canvas is singleton -GlText.atlasCanvas = document.createElement('canvas') -GlText.atlasContext = GlText.atlasCanvas.getContext('2d', {alpha: false}) + //FIXME: This could be degenerate, but need to select d+1 non-coplanar points to bootstrap process + var initialSimplex = points.slice(0, d+1) -// font-size used for metrics, atlas step calculation -GlText.baseFontSize = 64 + //Make sure initial simplex is positively oriented + var o = orient.apply(void 0, initialSimplex) + if(o === 0) { + throw new Error("Input not in general position") + } + var initialCoords = new Array(d+1) + for(var i=0; i<=d; ++i) { + initialCoords[i] = i + } + if(o < 0) { + initialCoords[0] = 1 + initialCoords[1] = 0 + } -// fonts storage -GlText.fonts = {} + //Create initial topological index, glue pointers together (kind of messy) + var initialCell = new Simplex(initialCoords, new Array(d+1), false) + var boundary = initialCell.adjacent + var list = new Array(d+2) + for(var i=0; i<=d; ++i) { + var verts = initialCoords.slice() + for(var j=0; j<=d; ++j) { + if(j === i) { + verts[j] = -1 + } + } + var t = verts[0] + verts[0] = verts[1] + verts[1] = t + var cell = new Simplex(verts, new Array(d+1), true) + boundary[i] = cell + list[i] = cell + } + list[d+1] = initialCell + for(var i=0; i<=d; ++i) { + var verts = boundary[i].vertices + var adj = boundary[i].adjacent + for(var j=0; j<=d; ++j) { + var v = verts[j] + if(v < 0) { + adj[j] = initialCell + continue + } + for(var k=0; k<=d; ++k) { + if(boundary[k].vertices.indexOf(v) < 0) { + adj[j] = boundary[k] + } + } + } + } -// max number of different font atlases/textures cached -// FIXME: enable atlas size limitation via LRU -// GlText.atlasCacheSize = 64 + //Initialize triangles + var triangles = new Triangulation(d, initialSimplex, list) -function isRegl (o) { - return typeof o === 'function' && - o._gl && - o.prop && - o.texture && - o.buffer + //Insert remaining points + var useRandom = !!randomSearch + for(var i=d+1; i maxSize || h < 0 || h > maxSize) { - throw new Error('gl-texture2d: Invalid texture size') +function rebuildWithoutInterval(node, interval) { + var intervals = node.intervals([]) + var idx = intervals.indexOf(interval) + if(idx < 0) { + return NOT_FOUND } - tex._shape = [w, h] - tex.bind() - gl.texImage2D(gl.TEXTURE_2D, 0, tex.format, w, h, 0, tex.format, tex.type, null) - tex._mipLevels = [0] - return tex + intervals.splice(idx, 1) + rebuild(node, intervals) + return SUCCESS } -function Texture2D(gl, handle, width, height, format, type) { - this.gl = gl - this.handle = handle - this.format = format - this.type = type - this._shape = [width, height] - this._mipLevels = [0] - this._magFilter = gl.NEAREST - this._minFilter = gl.NEAREST - this._wrapS = gl.CLAMP_TO_EDGE - this._wrapT = gl.CLAMP_TO_EDGE - this._anisoSamples = 1 +proto.intervals = function(result) { + result.push.apply(result, this.leftPoints) + if(this.left) { + this.left.intervals(result) + } + if(this.right) { + this.right.intervals(result) + } + return result +} - var parent = this - var wrapVector = [this._wrapS, this._wrapT] - Object.defineProperties(wrapVector, [ - { - get: function() { - return parent._wrapS - }, - set: function(v) { - return parent.wrapS = v - } - }, - { - get: function() { - return parent._wrapT - }, - set: function(v) { - return parent.wrapT = v +proto.insert = function(interval) { + var weight = this.count - this.leftPoints.length + this.count += 1 + if(interval[1] < this.mid) { + if(this.left) { + if(4*(this.left.count+1) > 3*(weight+1)) { + rebuildWithInterval(this, interval) + } else { + this.left.insert(interval) } + } else { + this.left = createIntervalTree([interval]) } - ]) - this._wrapVector = wrapVector - - var shapeVector = [this._shape[0], this._shape[1]] - Object.defineProperties(shapeVector, [ - { - get: function() { - return parent._shape[0] - }, - set: function(v) { - return parent.width = v - } - }, - { - get: function() { - return parent._shape[1] - }, - set: function(v) { - return parent.height = v + } else if(interval[0] > this.mid) { + if(this.right) { + if(4*(this.right.count+1) > 3*(weight+1)) { + rebuildWithInterval(this, interval) + } else { + this.right.insert(interval) } + } else { + this.right = createIntervalTree([interval]) } - ]) - this._shapeVector = shapeVector + } else { + var l = bounds.ge(this.leftPoints, interval, compareBegin) + var r = bounds.ge(this.rightPoints, interval, compareEnd) + this.leftPoints.splice(l, 0, interval) + this.rightPoints.splice(r, 0, interval) + } } -var proto = Texture2D.prototype - -Object.defineProperties(proto, { - minFilter: { - get: function() { - return this._minFilter - }, - set: function(v) { - this.bind() - var gl = this.gl - if(this.type === gl.FLOAT && linearTypes.indexOf(v) >= 0) { - if(!gl.getExtension('OES_texture_float_linear')) { - v = gl.NEAREST - } - } - if(filterTypes.indexOf(v) < 0) { - throw new Error('gl-texture2d: Unknown filter mode ' + v) - } - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, v) - return this._minFilter = v +proto.remove = function(interval) { + var weight = this.count - this.leftPoints + if(interval[1] < this.mid) { + if(!this.left) { + return NOT_FOUND } - }, - magFilter: { - get: function() { - return this._magFilter - }, - set: function(v) { - this.bind() - var gl = this.gl - if(this.type === gl.FLOAT && linearTypes.indexOf(v) >= 0) { - if(!gl.getExtension('OES_texture_float_linear')) { - v = gl.NEAREST - } - } - if(filterTypes.indexOf(v) < 0) { - throw new Error('gl-texture2d: Unknown filter mode ' + v) - } - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, v) - return this._magFilter = v + var rw = this.right ? this.right.count : 0 + if(4 * rw > 3 * (weight-1)) { + return rebuildWithoutInterval(this, interval) + } + var r = this.left.remove(interval) + if(r === EMPTY) { + this.left = null + this.count -= 1 + return SUCCESS + } else if(r === SUCCESS) { + this.count -= 1 } - }, - mipSamples: { - get: function() { - return this._anisoSamples - }, - set: function(i) { - var psamples = this._anisoSamples - this._anisoSamples = Math.max(i, 1)|0 - if(psamples !== this._anisoSamples) { - var ext = this.gl.getExtension('EXT_texture_filter_anisotropic') - if(ext) { - this.gl.texParameterf(this.gl.TEXTURE_2D, ext.TEXTURE_MAX_ANISOTROPY_EXT, this._anisoSamples) - } - } - return this._anisoSamples + return r + } else if(interval[0] > this.mid) { + if(!this.right) { + return NOT_FOUND } - }, - wrapS: { - get: function() { - return this._wrapS - }, - set: function(v) { - this.bind() - if(wrapTypes.indexOf(v) < 0) { - throw new Error('gl-texture2d: Unknown wrap mode ' + v) - } - this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_WRAP_S, v) - return this._wrapS = v + var lw = this.left ? this.left.count : 0 + if(4 * lw > 3 * (weight-1)) { + return rebuildWithoutInterval(this, interval) } - }, - wrapT: { - get: function() { - return this._wrapT - }, - set: function(v) { - this.bind() - if(wrapTypes.indexOf(v) < 0) { - throw new Error('gl-texture2d: Unknown wrap mode ' + v) - } - this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_WRAP_T, v) - return this._wrapT = v + var r = this.right.remove(interval) + if(r === EMPTY) { + this.right = null + this.count -= 1 + return SUCCESS + } else if(r === SUCCESS) { + this.count -= 1 } - }, - wrap: { - get: function() { - return this._wrapVector - }, - set: function(v) { - if(!Array.isArray(v)) { - v = [v,v] - } - if(v.length !== 2) { - throw new Error('gl-texture2d: Must specify wrap mode for rows and columns') + return r + } else { + if(this.count === 1) { + if(this.leftPoints[0] === interval) { + return EMPTY + } else { + return NOT_FOUND } - for(var i=0; i<2; ++i) { - if(wrapTypes.indexOf(v[i]) < 0) { - throw new Error('gl-texture2d: Unknown wrap mode ' + v) + } + if(this.leftPoints.length === 1 && this.leftPoints[0] === interval) { + if(this.left && this.right) { + var p = this + var n = this.left + while(n.right) { + p = n + n = n.right + } + if(p === this) { + n.right = this.right + } else { + var l = this.left + var r = this.right + p.count -= n.count + p.right = n.left + n.left = l + n.right = r } + copy(this, n) + this.count = (this.left?this.left.count:0) + (this.right?this.right.count:0) + this.leftPoints.length + } else if(this.left) { + copy(this, this.left) + } else { + copy(this, this.right) } - this._wrapS = v[0] - this._wrapT = v[1] - - var gl = this.gl - this.bind() - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, this._wrapS) - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, this._wrapT) - - return v + return SUCCESS } - }, - shape: { - get: function() { - return this._shapeVector - }, - set: function(x) { - if(!Array.isArray(x)) { - x = [x|0,x|0] - } else { - if(x.length !== 2) { - throw new Error('gl-texture2d: Invalid texture shape') + for(var l = bounds.ge(this.leftPoints, interval, compareBegin); l=0 && arr[i][1] >= lo; --i) { + var r = cb(arr[i]) + if(r) { return r } + } } -proto.generateMipmap = function() { - this.bind() - this.gl.generateMipmap(this.gl.TEXTURE_2D) - - //Update mip levels - var l = Math.min(this._shape[0], this._shape[1]) - for(var i=0; l>0; ++i, l>>>=1) { - if(this._mipLevels.indexOf(i) < 0) { - this._mipLevels.push(i) - } +function reportRange(arr, cb) { + for(var i=0; i this._shape[1]>>>mip_level || - y_off + data.shape[0] > this._shape[0]>>>mip_level || - x_off < 0 || - y_off < 0) { - throw new Error('gl-texture2d: Texture dimensions are out of bounds') + return reportLeftRange(this.leftPoints, x, cb) + } else if(x > this.mid) { + if(this.right) { + var r = this.right.queryPoint(x, cb) + if(r) { return r } } - texSubImageArray(gl, x_off, y_off, mip_level, this.format, this.type, this._mipLevels, data) + return reportRightRange(this.rightPoints, x, cb) } else { - throw new Error('gl-texture2d: Unsupported data type') - } -} - - -function isPacked(shape, stride) { - if(shape.length === 3) { - return (stride[2] === 1) && - (stride[1] === shape[0]*shape[2]) && - (stride[0] === shape[2]) + return reportRange(this.leftPoints, cb) } - return (stride[0] === 1) && - (stride[1] === shape[0]) } -function texSubImageArray(gl, x_off, y_off, mip_level, cformat, ctype, mipLevels, array) { - var dtype = array.dtype - var shape = array.shape.slice() - if(shape.length < 2 || shape.length > 3) { - throw new Error('gl-texture2d: Invalid ndarray, must be 2d or 3d') +proto.queryInterval = function(lo, hi, cb) { + if(lo < this.mid && this.left) { + var r = this.left.queryInterval(lo, hi, cb) + if(r) { return r } } - var type = 0, format = 0 - var packed = isPacked(shape, array.stride.slice()) - if(dtype === 'float32') { - type = gl.FLOAT - } else if(dtype === 'float64') { - type = gl.FLOAT - packed = false - dtype = 'float32' - } else if(dtype === 'uint8') { - type = gl.UNSIGNED_BYTE - } else { - type = gl.UNSIGNED_BYTE - packed = false - dtype = 'uint8' + if(hi > this.mid && this.right) { + var r = this.right.queryInterval(lo, hi, cb) + if(r) { return r } } - var channels = 1 - if(shape.length === 2) { - format = gl.LUMINANCE - shape = [shape[0], shape[1], 1] - array = ndarray(array.data, shape, [array.stride[0], array.stride[1], 1], array.offset) - } else if(shape.length === 3) { - if(shape[2] === 1) { - format = gl.ALPHA - } else if(shape[2] === 2) { - format = gl.LUMINANCE_ALPHA - } else if(shape[2] === 3) { - format = gl.RGB - } else if(shape[2] === 4) { - format = gl.RGBA - } else { - throw new Error('gl-texture2d: Invalid shape for pixel coords') - } - channels = shape[2] + if(hi < this.mid) { + return reportLeftRange(this.leftPoints, hi, cb) + } else if(lo > this.mid) { + return reportRightRange(this.rightPoints, lo, cb) } else { - throw new Error('gl-texture2d: Invalid shape for texture') - } - //For 1-channel textures allow conversion between formats - if((format === gl.LUMINANCE || format === gl.ALPHA) && - (cformat === gl.LUMINANCE || cformat === gl.ALPHA)) { - format = cformat + return reportRange(this.leftPoints, cb) } - if(format !== cformat) { - throw new Error('gl-texture2d: Incompatible texture format for setPixels') +} + +function compareNumbers(a, b) { + return a - b +} + +function compareBegin(a, b) { + var d = a[0] - b[0] + if(d) { return d } + return a[1] - b[1] +} + +function compareEnd(a, b) { + var d = a[1] - b[1] + if(d) { return d } + return a[0] - b[0] +} + +function createIntervalTree(intervals) { + if(intervals.length === 0) { + return null } - var size = array.size - var needsMip = mipLevels.indexOf(mip_level) < 0 - if(needsMip) { - mipLevels.push(mip_level) + var pts = [] + for(var i=0; i>1] + + var leftIntervals = [] + var rightIntervals = [] + var centerIntervals = [] + for(var i=0; i maxTextureSize || height < 0 || height > maxTextureSize) { - throw new Error('gl-texture2d: Invalid texture shape') - } - if(type === gl.FLOAT && !gl.getExtension('OES_texture_float')) { - throw new Error('gl-texture2d: Floating point textures not supported on this platform') +var tproto = IntervalTree.prototype + +tproto.insert = function(interval) { + if(this.root) { + this.root.insert(interval) + } else { + this.root = new IntervalTreeNode(interval[0], null, null, [interval], [interval]) } - var tex = initTexture(gl) - gl.texImage2D(gl.TEXTURE_2D, 0, format, width, height, 0, format, type, null) - return new Texture2D(gl, tex, width, height, format, type) } -function createTextureDOM(gl, directData, width, height, format, type) { - var tex = initTexture(gl) - gl.texImage2D(gl.TEXTURE_2D, 0, format, format, type, directData) - return new Texture2D(gl, tex, width, height, format, type) +tproto.remove = function(interval) { + if(this.root) { + var r = this.root.remove(interval) + if(r === EMPTY) { + this.root = null + } + return r !== NOT_FOUND + } + return false } -//Creates a texture from an ndarray -function createTextureArray(gl, array) { - var dtype = array.dtype - var shape = array.shape.slice() - var maxSize = gl.getParameter(gl.MAX_TEXTURE_SIZE) - if(shape[0] < 0 || shape[0] > maxSize || shape[1] < 0 || shape[1] > maxSize) { - throw new Error('gl-texture2d: Invalid texture size') +tproto.queryPoint = function(p, cb) { + if(this.root) { + return this.root.queryPoint(p, cb) } - var packed = isPacked(shape, array.stride.slice()) - var type = 0 - if(dtype === 'float32') { - type = gl.FLOAT - } else if(dtype === 'float64') { - type = gl.FLOAT - packed = false - dtype = 'float32' - } else if(dtype === 'uint8') { - type = gl.UNSIGNED_BYTE - } else { - type = gl.UNSIGNED_BYTE - packed = false - dtype = 'uint8' +} + +tproto.queryInterval = function(lo, hi, cb) { + if(lo <= hi && this.root) { + return this.root.queryInterval(lo, hi, cb) } - var format = 0 - if(shape.length === 2) { - format = gl.LUMINANCE - shape = [shape[0], shape[1], 1] - array = ndarray(array.data, shape, [array.stride[0], array.stride[1], 1], array.offset) - } else if(shape.length === 3) { - if(shape[2] === 1) { - format = gl.ALPHA - } else if(shape[2] === 2) { - format = gl.LUMINANCE_ALPHA - } else if(shape[2] === 3) { - format = gl.RGB - } else if(shape[2] === 4) { - format = gl.RGBA - } else { - throw new Error('gl-texture2d: Invalid shape for pixel coords') +} + +Object.defineProperty(tproto, "count", { + get: function() { + if(this.root) { + return this.root.count } - } else { - throw new Error('gl-texture2d: Invalid shape for texture') - } - if(type === gl.FLOAT && !gl.getExtension('OES_texture_float')) { - type = gl.UNSIGNED_BYTE - packed = false + return 0 } - var buffer, buf_store - var size = array.size - if(!packed) { - var stride = [shape[2], shape[2]*shape[0], 1] - buf_store = pool.malloc(size, dtype) - var buf_array = ndarray(buf_store, shape, stride, 0) - if((dtype === 'float32' || dtype === 'float64') && type === gl.UNSIGNED_BYTE) { - convertFloatToUint8(buf_array, array) - } else { - ops.assign(buf_array, array) +}) + +Object.defineProperty(tproto, "intervals", { + get: function() { + if(this.root) { + return this.root.intervals([]) } - buffer = buf_store.subarray(0, size) - } else if (array.offset === 0 && array.data.length === size) { - buffer = array.data - } else { - buffer = array.data.subarray(array.offset, array.offset + size) + return [] } - var tex = initTexture(gl) - gl.texImage2D(gl.TEXTURE_2D, 0, format, shape[0], shape[1], 0, format, type, buffer) - if(!packed) { - pool.free(buf_store) +}) + +function createWrapper(intervals) { + if(!intervals || intervals.length === 0) { + return new IntervalTree(null) } - return new Texture2D(gl, tex, shape[0], shape[1], format, type) + return new IntervalTree(createIntervalTree(intervals)) } -function createTexture2D(gl) { - if(arguments.length <= 1) { - throw new Error('gl-texture2d: Missing arguments for texture2d constructor') - } - if(!linearTypes) { - lazyInitLinearTypes(gl) - } - if(typeof arguments[1] === 'number') { - return createTextureShape(gl, arguments[1], arguments[2], arguments[3]||gl.RGBA, arguments[4]||gl.UNSIGNED_BYTE) - } - if(Array.isArray(arguments[1])) { - return createTextureShape(gl, arguments[1][0]|0, arguments[1][1]|0, arguments[2]||gl.RGBA, arguments[3]||gl.UNSIGNED_BYTE) +},{"binary-search-bounds":445}],445:[function(_dereq_,module,exports){ +arguments[4][243][0].apply(exports,arguments) +},{"dup":243}],446:[function(_dereq_,module,exports){ +"use strict" + +function invertPermutation(pi, result) { + result = result || new Array(pi.length) + for(var i=0; i + * @license MIT + */ + +// The _isBuffer check is for Safari 5-7 support, because it's missing +// Object.prototype.constructor. Remove this eventually +module.exports = function (obj) { + return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer) +} + +function isBuffer (obj) { + return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj) +} + +// For Node v0.10 support. Remove this eventually. +function isSlowBuffer (obj) { + return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0)) +} + +},{}],450:[function(_dereq_,module,exports){ +'use strict'; +module.exports = typeof navigator !== 'undefined' && + (/MSIE/.test(navigator.userAgent) || /Trident\//.test(navigator.appVersion)); + +},{}],451:[function(_dereq_,module,exports){ 'use strict' -var pick = _dereq_('pick-by-alias') +module.exports = isMobile +module.exports.isMobile = isMobile +module.exports.default = isMobile -module.exports = function setContext (o) { - if (!o) o = {} - else if (typeof o === 'string') o = {container: o} +var mobileRE = /(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 - // HTMLCanvasElement - if (isCanvas(o)) { - o = {container: o} - } - // HTMLElement - else if (isElement(o)) { - o = {container: o} - } - // WebGLContext - else if (isContext(o)) { - o = {gl: o} - } - // options object - else { - o = pick(o, { - 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' - }, true) - } +var tabletRE = /(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 - if (!o.pixelRatio) o.pixelRatio = global.pixelRatio || 1 +function isMobile (opts) { + if (!opts) opts = {} + var ua = opts.ua + if (!ua && typeof navigator !== 'undefined') ua = navigator.userAgent + if (ua && ua.headers && typeof ua.headers['user-agent'] === 'string') { + ua = ua.headers['user-agent'] + } + if (typeof ua !== 'string') return false - // make sure there is container and canvas - if (o.gl) { - return o.gl - } - if (o.canvas) { - o.container = o.canvas.parentNode - } - if (o.container) { - if (typeof o.container === 'string') { - var c = document.querySelector(o.container) - if (!c) throw Error('Element ' + o.container + ' is not found') - o.container = c - } - if (isCanvas(o.container)) { - o.canvas = o.container - o.container = o.canvas.parentNode - } - else if (!o.canvas) { - o.canvas = createCanvas() - o.container.appendChild(o.canvas) - resize(o) - } - } - // blank new canvas - else if (!o.canvas) { - if (typeof document !== 'undefined') { - o.container = document.body || document.documentElement - o.canvas = createCanvas() - o.container.appendChild(o.canvas) - resize(o) - } - else { - throw Error('Not DOM environment. Use headless-gl.') - } - } + var result = opts.tablet ? tabletRE.test(ua) : mobileRE.test(ua) - // make sure there is context - if (!o.gl) { - try { - o.gl = o.canvas.getContext('webgl', o.attrs) - } catch (e) { - try { - o.gl = o.canvas.getContext('experimental-webgl', o.attrs) - } - catch (e) { - o.gl = o.canvas.getContext('webgl-experimental', o.attrs) - } - } - } + if ( + !result && + opts.tablet && + opts.featureDetect && + navigator && + navigator.maxTouchPoints > 1 && + ua.indexOf('Macintosh') !== -1 && + ua.indexOf('Safari') !== -1 + ) { + result = true + } - return o.gl + return result } + +},{}],452:[function(_dereq_,module,exports){ +'use strict'; +module.exports = function (x) { + var type = typeof x; + return x !== null && (type === 'object' || type === 'function'); +}; + +},{}],453:[function(_dereq_,module,exports){ +'use strict'; +var toString = Object.prototype.toString; + +module.exports = function (x) { + var prototype; + return toString.call(x) === '[object Object]' && (prototype = Object.getPrototypeOf(x), prototype === null || prototype === Object.getPrototypeOf({})); +}; + +},{}],454:[function(_dereq_,module,exports){ +'use strict'; +/** + * Is this string all whitespace? + * This solution kind of makes my brain hurt, but it's significantly faster + * than !str.trim() or any other solution I could find. + * + * whitespace codes from: http://en.wikipedia.org/wiki/Whitespace_character + * and verified with: + * + * for(var i = 0; i < 65536; i++) { + * var s = String.fromCharCode(i); + * if(+s===0 && !s.trim()) console.log(i, s); + * } + * + * which counts a couple of these as *not* whitespace, but finds nothing else + * that *is* whitespace. Note that charCodeAt stops at 16 bits, but it appears + * that there are no whitespace characters above this, and code points above + * this do not map onto white space characters. + */ -function resize (o) { - if (o.container) { - if (o.container == document.body) { - if (!document.body.style.width) o.canvas.width = o.width || (o.pixelRatio * global.innerWidth) - if (!document.body.style.height) o.canvas.height = o.height || (o.pixelRatio * global.innerHeight) - } - else { - var bounds = o.container.getBoundingClientRect() - o.canvas.width = o.width || (bounds.right - bounds.left) - o.canvas.height = o.height || (bounds.bottom - bounds.top) - } - } -} - -function isCanvas (e) { - return typeof e.getContext === 'function' - && 'width' in e - && 'height' in e +module.exports = function(str){ + var l = str.length, + a; + for(var i = 0; i < l; i++) { + a = str.charCodeAt(i); + if((a < 9 || a > 13) && (a !== 32) && (a !== 133) && (a !== 160) && + (a !== 5760) && (a !== 6158) && (a < 8192 || a > 8205) && + (a !== 8232) && (a !== 8233) && (a !== 8239) && (a !== 8287) && + (a !== 8288) && (a !== 12288) && (a !== 65279)) { + return false; + } + } + return true; } + +},{}],455:[function(_dereq_,module,exports){ +'use strict' -function isElement (e) { - return typeof e.nodeName === 'string' && - typeof e.appendChild === 'function' && - typeof e.getBoundingClientRect === 'function' -} +module.exports = function isPath(str) { + if (typeof str !== 'string') return false -function isContext (e) { - return typeof e.drawArrays === 'function' || - typeof e.drawElements === 'function' -} + str = str.trim() -function createCanvas () { - var canvas = document.createElement('canvas') - canvas.style.position = 'absolute' - canvas.style.top = 0 - canvas.style.left = 0 + // https://www.w3.org/TR/SVG/paths.html#PathDataBNF + if (/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(str) && /[\dz]$/i.test(str) && str.length > 4) return true - return canvas + return false } -}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"pick-by-alias":511}],355:[function(_dereq_,module,exports){ -"use strict" +},{}],456:[function(_dereq_,module,exports){ +function lerp(v0, v1, t) { + return v0*(1-t)+v1*t +} +module.exports = lerp +},{}],457:[function(_dereq_,module,exports){ +/* Mapbox GL JS is licensed under the 3-Clause BSD License. Full text of license: https://github.com/mapbox/mapbox-gl-js/blob/v1.10.1/LICENSE.txt */ +(function (global, factory) { +typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : +typeof define === 'function' && define.amd ? define(factory) : +(global = global || self, global.mapboxgl = factory()); +}(this, (function () { 'use strict'; -function doBind(gl, elements, attributes) { - if(elements) { - elements.bind() - } else { - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null) - } - var nattribs = gl.getParameter(gl.MAX_VERTEX_ATTRIBS)|0 - if(attributes) { - if(attributes.length > nattribs) { - throw new Error("gl-vao: Too many vertex attributes") +/* eslint-disable */ + +var shared, worker, mapboxgl; +// define gets called three times: one for each chunk. we rely on the order +// they're imported to know which is which +function define(_, chunk) { +if (!shared) { + shared = chunk; +} else if (!worker) { + worker = chunk; +} else { + var workerBundleString = 'var sharedChunk = {}; (' + shared + ')(sharedChunk); (' + worker + ')(sharedChunk);' + + var sharedChunk = {}; + shared(sharedChunk); + mapboxgl = chunk(sharedChunk); + mapboxgl.workerUrl = window.URL.createObjectURL(new Blob([workerBundleString], { type: 'text/javascript' })); +} +} + + +define(["exports"],(function(t){"use strict";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 u(t,e,r){return Math.min(r,Math.max(e,t))}function l(t,e,r){var n=r-e,i=((t-e)%n+n)%n+e;return i===e?r:i}function p(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 y(t){return !!t&&/^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(t)}function d(t,e){t.forEach((function(t){e[t]&&(e[t]=e[t].bind(e));}));}function m(t,e){return -1!==t.indexOf(e,t.length-e.length)}function v(t,e,r){var n={};for(var i in t)n[i]=e.call(r||this,t[i],i,t);return n}function g(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 w(t){b[t]||("undefined"!=typeof console&&console.warn(t),b[t]=!0);}function _(t,e,r){return (r.y-t.y)*(e.x-t.x)>(e.y-t.y)*(r.x-t.x)}function A(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 I=null;function z(t){if(null==I){var e=t.navigator?t.navigator.userAgent:null;I=!!t.safari||!(!e||!(/\b(iPad|iPhone|iPod)\b/.test(e)||e.match("Safari")&&!e.match("Chrome")));}return I}function C(t){try{var e=self[t];return e.setItem("_mapbox_test_",1),e.removeItem("_mapbox_test_"),!0}catch(t){return !1}}var M,E,T,P,B=self.performance&&self.performance.now?self.performance.now.bind(self.performance):Date.now.bind(Date),V=self.requestAnimationFrame||self.mozRequestAnimationFrame||self.webkitRequestAnimationFrame||self.msRequestAnimationFrame,F=self.cancelAnimationFrame||self.mozCancelAnimationFrame||self.webkitCancelAnimationFrame||self.msCancelAnimationFrame,D={now:B,frame:function(t){var e=V(t);return {cancel:function(){return F(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 M||(M=self.document.createElement("a")),M.href=t,M.href},hardwareConcurrency:self.navigator.hardwareConcurrency||4,get devicePixelRatio(){return self.devicePixelRatio},get prefersReducedMotion(){return !!self.matchMedia&&(null==E&&(E=self.matchMedia("(prefers-reduced-motion: reduce)")),E.matches)}},L={API_URL:"https://api.mapbox.com",get EVENTS_URL(){return this.API_URL?0===this.API_URL.indexOf("https://api.mapbox.cn")?"https://events.mapbox.cn/events/v2":0===this.API_URL.indexOf("https://api.mapbox.com")?"https://events.mapbox.com/events/v2":null:null},FEEDBACK_URL:"https://apps.mapbox.com/feedback",REQUIRE_ACCESS_TOKEN:!0,ACCESS_TOKEN:null,MAX_PARALLEL_IMAGE_REQUESTS:16},R={supported:!1,testSupport:function(t){!O&&P&&(U?j(t):T=t);}},O=!1,U=!1;function j(t){var e=t.createTexture();t.bindTexture(t.TEXTURE_2D,e);try{if(t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,P),t.isContextLost())return;R.supported=!0;}catch(t){}t.deleteTexture(e),O=!0;}self.document&&((P=self.document.createElement("img")).onload=function(){T&&j(T),T=null,U=!0;},P.onerror=function(){O=!0,T=null;},P.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA=");var q="01",N=function(t,e){this._transformRequestFn=t,this._customAccessToken=e,this._createSkuToken();};function K(t){return 0===t.indexOf("mapbox:")}N.prototype._createSkuToken=function(){var t=function(){for(var t="",e=0;e<10;e++)t+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[Math.floor(62*Math.random())];return {token:["1",q,t].join(""),tokenExpiresAt:Date.now()+432e5}}();this._skuToken=t.token,this._skuTokenExpiresAt=t.tokenExpiresAt;},N.prototype._isSkuTokenExpired=function(){return Date.now()>this._skuTokenExpiresAt},N.prototype.transformRequest=function(t,e){return this._transformRequestFn&&this._transformRequestFn(t,e)||{url:t}},N.prototype.normalizeStyleURL=function(t,e){if(!K(t))return t;var r=J(t);return r.path="/styles/v1"+r.path,this._makeAPIURL(r,this._customAccessToken||e)},N.prototype.normalizeGlyphsURL=function(t,e){if(!K(t))return t;var r=J(t);return r.path="/fonts/v1"+r.path,this._makeAPIURL(r,this._customAccessToken||e)},N.prototype.normalizeSourceURL=function(t,e){if(!K(t))return t;var r=J(t);return r.path="/v4/"+r.authority+".json",r.params.push("secure"),this._makeAPIURL(r,this._customAccessToken||e)},N.prototype.normalizeSpriteURL=function(t,e,r,n){var i=J(t);return K(t)?(i.path="/styles/v1"+i.path+"/sprite"+e+r,this._makeAPIURL(i,this._customAccessToken||n)):(i.path+=""+e+r,H(i))},N.prototype.normalizeTileURL=function(t,e){if(this._isSkuTokenExpired()&&this._createSkuToken(),t&&!K(t))return t;var r=J(t);r.path=r.path.replace(/(\.(png|jpg)\d*)(?=$)/,(D.devicePixelRatio>=2||512===e?"@2x":"")+(R.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){w("Unable to write to LocalStorage");}},$.prototype.processRequests=function(t){},$.prototype.postEvent=function(t,e,r,n){var i=this;if(L.EVENTS_URL){var a=J(L.EVENTS_URL);a.params.push("access_token="+(n||L.ACCESS_TOKEN||""));var o={event:this.type,created:new Date(t).toISOString(),sdkIdentifier:"mapbox-gl-js",sdkVersion:"1.10.1",skuId:q,userId:this.anonId},s=e?p(o,e):o,u={url:H(a),headers:{"Content-Type":"text/plain"},body:JSON.stringify([s])};this.pendingRequest=xt(u,(function(t){i.pendingRequest=null,r(t),i.saveEventData(),i.processRequests(n);}));}},$.prototype.queueRequest=function(t,e){this.queue.push(t),this.processRequests(e);};var W,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,(L.EVENTS_URL&&n||L.ACCESS_TOKEN&&Array.isArray(t)&&t.some((function(t){return K(t)||Z(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(),y(this.anonId)||(this.anonId=f()),this.postEvent(i,{skuToken:this.skuToken},(function(t){t||n&&(e.success[n]=!0);}),t));}},e}($),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){L.EVENTS_URL&&L.ACCESS_TOKEN&&Array.isArray(t)&&t.some((function(t){return K(t)||Z(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=Y(L.ACCESS_TOKEN),n=r?r.u:L.ACCESS_TOKEN,i=n!==this.eventData.tokenU;y(this.anonId)||(this.anonId=f(),i=!0);var a=this.queue.shift();if(this.eventData.lastSuccess){var o=new Date(this.eventData.lastSuccess),s=new Date(a),u=(a-this.eventData.lastSuccess)/864e5;i=i||u>=1||u<-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}($)),rt=et.postTurnstileEvent.bind(et),nt=new tt,it=nt.postMapLoadEvent.bind(nt),at=500,ot=50;function st(){self.caches&&!W&&(W=self.caches.open("mapbox-tiles"));}function ut(t){var e=t.indexOf("?");return e<0?t:t.slice(0,e)}var lt,pt=1/0;function ct(){return null==lt&&(lt=self.OffscreenCanvas&&new self.OffscreenCanvas(1,1).getContext("2d")&&"function"==typeof self.createImageBitmap),lt}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 ft=function(t){function e(e,r,n){401===r&&Z(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),yt=S()?function(){return self.worker&&self.worker.referrer}:function(){return ("blob:"===self.location.protocol?self.parent:self).location.href};var dt,mt,vt=function(t,e){if(!(/^file:/.test(r=t.url)||/^file:/.test(yt())&&!/^\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:yt(),signal:n.signal}),a=!1,o=!1,s=(r=i.url).indexOf("sku=")>0&&Z(r);"json"===t.type&&i.headers.set("Accept","application/json");var u=function(r,n,a){if(!o){if(r&&"SecurityError"!==r.message&&w(r),n&&a)return l(n);var u=Date.now();self.fetch(i).then((function(r){if(r.ok){var n=s?r.clone():null;return l(r,n,u)}return e(new ft(r.statusText,r.status,t.url))})).catch((function(t){20!==t.code&&e(new Error(t.message));}));}},l=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(),W){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=k(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===Q)try{new Response(new ReadableStream),Q=!0;}catch(t){Q=!1;}Q?e(t.body):t.blob().then(e);}(e,(function(e){var r=new self.Response(e,n);st(),W&&W.then((function(e){return e.put(ut(t.url),r)})).catch((function(t){return w(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(),!W)return e(null);var r=ut(t.url);W.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=k(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,u):u(null,null),{cancel:function(){o=!0,a||n.abort();}}}(t,e);if(S()&&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 ft(r.statusText,r.status,t.url));},r.send(t.body),{cancel:function(){return r.abort()}}}(t,e)},gt=function(t,e){return vt(p(t,{type:"arrayBuffer"}),e)},xt=function(t,e){return vt(p(t,{method:"POST"}),e)};dt=[],mt=0;var bt=function(t,e){if(R.supported&&(t.headers||(t.headers={}),t.headers.accept="image/webp,*/*"),mt>=L.MAX_PARALLEL_IMAGE_REQUESTS){var r={requestParameters:t,callback:e,cancelled:!1,cancel:function(){this.cancelled=!0;}};return dt.push(r),r}mt++;var n=!1,i=function(){if(!n)for(n=!0,mt--;dt.length&&mt0||this._oneTimeListeners&&this._oneTimeListeners[t]&&this._oneTimeListeners[t].length>0||this._eventedParent&&this._eventedParent.listens(t)},kt.prototype.setEventedParent=function(t,e){return this._eventedParent=t,this._eventedParentData=e,this};var It={$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"}}},zt=function(t,e,r,n){this.message=(t?t+": ":"")+r,n&&(this.identifier=n),null!=e&&e.__line__&&(this.line=e.__line__);};function Ct(t){var e=t.value;return e?[new zt(t.key,e,"constants have been deprecated as of v8")]:[]}function Mt(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=[Vt,Ft,Dt,Lt,Rt,qt,Ot,Kt(Ut),Nt];function Xt(t,e){if("error"===e.kind)return null;if("array"===t.kind){if("array"===e.kind&&(0===e.N&&"value"===e.itemType.kind||!Xt(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 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 u=s.indexOf("("),l=s.indexOf(")");if(-1!==u&&l+1===s.length){var p=s.substr(0,u),c=s.substr(u+1,l-(u+1)).split(","),h=1;switch(p){case"rgba":if(4!==c.length)return null;h=a(c.pop());case"rgb":return 3!==c.length?null:[i(c[0]),i(c[1]),i(c[2]),h];case"hsla":if(4!==c.length)return null;h=a(c.pop());case"hsl":if(3!==c.length)return null;var f=(parseFloat(c[0])%360+360)%360/360,y=a(c[1]),d=a(c[2]),m=d<=.5?d*(y+1):d+y-d*y,v=2*d-m;return [n(255*o(v,m,f+1/3)),n(255*o(v,m,f)),n(255*o(v,m,f-1/3)),h];default:return null}}return null};}catch(t){}})).parseCSSColor,$t=function(t,e,r,n){void 0===n&&(n=1),this.r=t,this.g=e,this.b=r,this.a=n;};$t.parse=function(t){if(t){if(t instanceof $t)return t;if("string"==typeof t){var e=Yt(t);if(e)return new $t(e[0]/255*e[3],e[1]/255*e[3],e[2]/255*e[3],e[3])}}},$t.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+")"},$t.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]},$t.black=new $t(0,0,0,1),$t.white=new $t(1,1,1,1),$t.transparent=new $t(0,0,0,0),$t.red=new $t(1,0,0,1);var Wt=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"});};Wt.prototype.compare=function(t,e){return this.collator.compare(t,e)},Wt.prototype.resolvedLocale=function(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale};var Qt=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 Qt(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 $t)return !0;if(t instanceof Wt)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 ue)||"object"===s)return e.error('The item type argument of "array" must be one of string, number, boolean',1);a=ue[s],n++;}else a=Ut;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=Kt(a,o);}else r=ue[i];for(var u=[];n1)&&e.push(n);}}return e.concat(this.args.map((function(t){return t.serialize()})))};var pe=function(t){this.type=qt,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,Ft)))return null;var u=null;if(o["text-font"]&&!(u=e.parse(o["text-font"],1,Kt(Dt))))return null;var l=null;if(o["text-color"]&&!(l=e.parse(o["text-color"],1,Rt)))return null;var p=n[n.length-1];p.scale=s,p.font=u,p.textColor=l;}else {var c=e.parse(t[a],1,Ut);if(!c)return null;var h=c.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:c,scale:null,font:null,textColor:null});}}return new pe(n)},pe.prototype.evaluate=function(t){return new te(this.sections.map((function(e){var r=e.content.evaluate(t);return ie(r)===Nt?new Qt("",r,null,null,null):new Qt(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)})))},pe.prototype.eachChild=function(t){for(var e=0,r=this.sections;e-1),r},ce.prototype.eachChild=function(t){t(this.input);},ce.prototype.outputDefined=function(){return !1},ce.prototype.serialize=function(){return ["image",this.input.serialize()]};var he={"to-boolean":Lt,"to-color":Rt,"to-number":Ft,"to-string":Dt},fe=function(t,e){this.type=t,this.args=e;};fe.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 $t(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,u=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 we(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 _e(t,e){for(var r,n,i,a,o,s,u,l=!1,p=0,c=e.length;p0&&s<0||o<0&&s>0}function ke(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;}ge(e,t);}function Te(t,e,r,n){for(var i=8192*Math.pow(2,n.z),a=[8192*n.x,8192*n.y],o=[],s=0,u=t;s=0)return !1;var r=!0;return t.eachChild((function(t){r&&!De(t,e)&&(r=!1);})),r}Be.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}Re.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)},Re.prototype._parse=function(t,e){function r(t,e,r){return "assert"===r?new le(e,[t]):"coerce"===r?new fe(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 Le)return t(e.boundExpression);if(e instanceof me&&"error"===e.name)return !1;if(e instanceof ve)return !1;if(e instanceof Be)return !1;var r=e instanceof fe||e instanceof le,n=!0;return e.eachChild((function(e){n=r?n&&t(e):n&&e instanceof oe;})),!!n&&Ve(e)&&De(e,["zoom","heatmap-density","line-progress","accumulated","is-supported-script"])}(a)){var u=new de;try{a=new oe(a.type,a.evaluate(u));}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.")},Re.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 Re(this.registry,n,e||null,i,this.errors)},Re.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));},Re.prototype.checkSubtype=function(t,e){var r=Xt(t,e);return r&&this.error(r),r};var Ue=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.',u);var p=e.parse(s,l,i);if(!p)return null;i=i||p.type,n.push([o,p]);}return new Ue(i,r,n)},Ue.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[Oe(e,n)].evaluate(t)},Ue.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 qe=Object.freeze({__proto__:null,number:je,color:function(t,e,r){return new $t(je(t.r,e.r,r),je(t.g,e.g,r),je(t.b,e.b,r),je(t.a,e.a,r))},array:function(t,e,r){return t.map((function(t,n){return je(t,e[n],r)}))}}),Ne=6/29*3*(6/29),Ke=Math.PI/180,Ge=180/Math.PI;function Ze(t){return t>.008856451679035631?Math.pow(t,1/3):t/Ne+4/29}function Xe(t){return t>6/29?t*t*t:Ne*(t-4/29)}function Je(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function He(t){return (t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Ye(t){var e=He(t.r),r=He(t.g),n=He(t.b),i=Ze((.4124564*e+.3575761*r+.1804375*n)/.95047),a=Ze((.2126729*e+.7151522*r+.072175*n)/1);return {l:116*a-16,a:500*(i-a),b:200*(a-Ze((.0193339*e+.119192*r+.9503041*n)/1.08883)),alpha:t.a}}function $e(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*Xe(e),r=.95047*Xe(r),n=1.08883*Xe(n),new $t(Je(3.2404542*r-1.5371385*e-.4985314*n),Je(-.969266*r+1.8760108*e+.041556*n),Je(.0556434*r-.2040259*e+1.0572252*n),t.alpha)}function We(t,e,r){var n=e-t;return t+r*(n>180||n<-180?n-360*Math.round(n/360):n)}var Qe={forward:Ye,reverse:$e,interpolate:function(t,e,r){return {l:je(t.l,e.l,r),a:je(t.a,e.a,r),b:je(t.b,e.b,r),alpha:je(t.alpha,e.alpha,r)}}},tr={forward:function(t){var e=Ye(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*Ke,r=t.c;return $e({l:t.l,a:Math.cos(e)*r,b:Math.sin(e)*r,alpha:t.alpha})},interpolate:function(t,e,r){return {h:We(t.h,e.h,r),c:je(t.c,e.c,r),l:je(t.l,e.l,r),alpha:je(t.alpha,e.alpha,r)}}},er=Object.freeze({__proto__:null,lab:Qe,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,Ft)))return null;var u=[],l=null;"interpolate-hcl"===r||"interpolate-lab"===r?l=Rt:e.expectedType&&"value"!==e.expectedType.kind&&(l=e.expectedType);for(var p=0;p=c)return e.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',f);var d=e.parse(h,y,l);if(!d)return null;l=l||d.type,u.push([c,d]);}return "number"===l.kind||"color"===l.kind||"array"===l.kind&&"number"===l.itemType.kind&&"number"==typeof l.N?new rr(l,r,n,i,u):e.error("Type "+Gt(l)+" 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=Oe(e,n),o=rr.interpolationFactor(this.interpolation,n,e[a],e[a+1]),s=r[a].evaluate(t),u=r[a+1].evaluate(t);return "interpolate"===this.operator?qe[this.type.kind.toLowerCase()](s,u,o):"interpolate-hcl"===this.operator?tr.reverse(tr.interpolate(tr.forward(s),tr.forward(u),o)):Qe.reverse(Qe.interpolate(Qe.forward(s),Qe.forward(u),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=Lt,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,Ut),n=e.parse(t[2],2,Ut);return r&&n?Jt(r.type,[Lt,Dt,Ft,Vt,Ut])?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(!Ht(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(!Ht(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 ur=function(t,e,r){this.type=Ft,this.needle=t,this.haystack=e,this.fromIndex=r;};ur.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,Ut),n=e.parse(t[2],2,Ut);if(!r||!n)return null;if(!Jt(r.type,[Lt,Dt,Ft,Vt,Ut]))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,Ft);return i?new ur(r,n,i):null}return new ur(r,n)},ur.prototype.evaluate=function(t){var e=this.needle.evaluate(t),r=this.haystack.evaluate(t);if(!Ht(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(!Ht(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)},ur.prototype.eachChild=function(t){t(this.needle),t(this.haystack),this.fromIndex&&t(this.fromIndex);},ur.prototype.outputDefined=function(){return !1},ur.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 lr=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;};lr.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 l.error("Branch labels must be integers no larger than "+Number.MAX_SAFE_INTEGER+".");if("number"==typeof h&&Math.floor(h)!==h)return l.error("Numeric branch labels must be integer values.");if(r){if(l.checkSubtype(r,ie(h)))return null}else r=ie(h);if(void 0!==i[String(h)])return l.error("Branch labels must be unique.");i[String(h)]=a.length;}var f=e.parse(u,o,n);if(!f)return null;n=n||f.type,a.push(f);}var y=e.parse(t[1],1,Ut);if(!y)return null;var d=e.parse(t[t.length-1],t.length-1,n);return d?"value"!==y.type.kind&&e.concat(1).checkSubtype(r,y.type)?null:new lr(r,n,y,i,a,d):null},lr.prototype.evaluate=function(t){var e=this.input.evaluate(t);return (ie(e)===this.inputType&&this.outputs[this.cases[e]]||this.otherwise).evaluate(t)},lr.prototype.eachChild=function(t){t(this.input),this.outputs.forEach(t),t(this.otherwise);},lr.prototype.outputDefined=function(){return this.outputs.every((function(t){return t.outputDefined()}))&&this.otherwise.outputDefined()},lr.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,Ut),n=e.parse(t[2],2,Ft);if(!r||!n)return null;if(!Jt(r.type,[Kt(Ut),Dt,Ut]))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,Ft);return i?new cr(r.type,r,n,i):null}return new cr(r.type,r,n)},cr.prototype.evaluate=function(t){var e=this.input.evaluate(t),r=this.beginIndex.evaluate(t);if(!Ht(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)},cr.prototype.eachChild=function(t){t(this.input),t(this.beginIndex),this.endIndex&&t(this.endIndex);},cr.prototype.outputDefined=function(){return !1},cr.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 dr=yr("==",(function(t,e,r){return e===r}),fr),mr=yr("!=",(function(t,e,r){return e!==r}),(function(t,e,r,n){return !fr(0,e,r,n)})),vr=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})),xr=yr("<=",(function(t,e,r){return e<=r}),(function(t,e,r,n){return n.compare(e,r)<=0})),br=yr(">=",(function(t,e,r){return e>=r}),(function(t,e,r,n){return n.compare(e,r)>=0})),wr=function(t,e,r,n,i){this.type=Dt,this.number=t,this.locale=e,this.currency=r,this.minFractionDigits=n,this.maxFractionDigits=i;};wr.parse=function(t,e){if(3!==t.length)return e.error("Expected two arguments.");var r=e.parse(t[1],1,Ft);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,Dt)))return null;var a=null;if(n.currency&&!(a=e.parse(n.currency,1,Dt)))return null;var o=null;if(n["min-fraction-digits"]&&!(o=e.parse(n["min-fraction-digits"],1,Ft)))return null;var s=null;return n["max-fraction-digits"]&&!(s=e.parse(n["max-fraction-digits"],1,Ft))?null:new wr(r,i,a,o,s)},wr.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))},wr.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);},wr.prototype.outputDefined=function(){return !1},wr.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 _r=function(t){this.type=Ft,this.input=t;};_r.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 _r(r):null},_r.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.")},_r.prototype.eachChild=function(t){t(this.input);},_r.prototype.outputDefined=function(){return !1},_r.prototype.serialize=function(){var t=["length"];return this.eachChild((function(e){t.push(e.serialize());})),t};var Ar={"==":dr,"!=":mr,">":gr,"<":vr,">=":br,"<=":xr,array:le,at:or,boolean:le,case:pr,coalesce:ir,collator:ve,format:pe,image:ce,in:sr,"index-of":ur,interpolate:rr,"interpolate-hcl":rr,"interpolate-lab":rr,length:_r,let:ar,literal:oe,match:lr,number:le,"number-format":wr,object:le,slice:cr,step:Ue,string:le,"to-boolean":fe,"to-color":fe,"to-number":fe,"to-string":fe,var:Le,within:Be};function Sr(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 $t(r/255*o,n/255*o,i/255*o,o)}function kr(t,e){return t in e}function Ir(t,e){var r=e[t];return void 0===r?null:r}function zr(t){return {type:t}}function Cr(t){return {result:"success",value:t}}function Mr(t){return {result:"error",value:t}}function Er(t){return "data-driven"===t["property-type"]||"cross-faded-data-driven"===t["property-type"]}function Tr(t){return !!t.expression&&t.expression.parameters.indexOf("zoom")>-1}function Pr(t){return !!t.expression&&t.expression.interpolated}function Br(t){return t instanceof Number?"number":t instanceof String?"string":t instanceof Boolean?"boolean":Array.isArray(t)?"array":null===t?"null":typeof t}function Vr(t){return "object"==typeof t&&null!==t&&!Array.isArray(t)}function Fr(t){return t}function Dr(t,e,r){return void 0!==t?t:void 0!==e?e:void 0!==r?r:void 0}function Lr(t,e,r,n,i){return Dr(typeof r===i?n[r]:void 0,t.default,e.default)}function Rr(t,e,r){if("number"!==Br(r))return Dr(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=Oe(t.stops.map((function(t){return t[0]})),r);return t.stops[i][1]}function Or(t,e,r){var n=void 0!==t.base?t.base:1;if("number"!==Br(r))return Dr(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=Oe(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],u=t.stops[a+1][1],l=qe[e.type]||Fr;if(t.colorSpace&&"rgb"!==t.colorSpace){var p=er[t.colorSpace];l=function(t,e){return p.reverse(p.interpolate(p.forward(t),p.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=u.evaluate.apply(void 0,t);if(void 0!==r&&void 0!==n)return l(r,n,o)}}:l(s,u,o)}function Ur(t,e,r){return "color"===e.type?r=$t.parse(r):"formatted"===e.type?r=te.fromString(r.toString()):"resolvedImage"===e.type?r=ee.fromString(r.toString()):Br(r)===e.type||"enum"===e.type&&e.values[r]||(r=void 0),Dr(r,t.default,e.default)}me.register(Ar,{error:[{kind:"error"},[Dt],function(t,e){throw new se(e[0].evaluate(t))}],typeof:[Dt,[Ut],function(t,e){return Gt(ie(e[0].evaluate(t)))}],"to-rgba":[Kt(Ft,4),[Rt],function(t,e){return e[0].evaluate(t).toArray()}],rgb:[Rt,[Ft,Ft,Ft],Sr],rgba:[Rt,[Ft,Ft,Ft,Ft],Sr],has:{type:Lt,overloads:[[[Dt],function(t,e){return kr(e[0].evaluate(t),t.properties())}],[[Dt,Ot],function(t,e){var r=e[1];return kr(e[0].evaluate(t),r.evaluate(t))}]]},get:{type:Ut,overloads:[[[Dt],function(t,e){return Ir(e[0].evaluate(t),t.properties())}],[[Dt,Ot],function(t,e){var r=e[1];return Ir(e[0].evaluate(t),r.evaluate(t))}]]},"feature-state":[Ut,[Dt],function(t,e){return Ir(e[0].evaluate(t),t.featureState||{})}],properties:[Ot,[],function(t){return t.properties()}],"geometry-type":[Dt,[],function(t){return t.geometryType()}],id:[Ut,[],function(t){return t.id()}],zoom:[Ft,[],function(t){return t.globals.zoom}],"heatmap-density":[Ft,[],function(t){return t.globals.heatmapDensity||0}],"line-progress":[Ft,[],function(t){return t.globals.lineProgress||0}],accumulated:[Ut,[],function(t){return void 0===t.globals.accumulated?null:t.globals.accumulated}],"+":[Ft,zr(Ft),function(t,e){for(var r=0,n=0,i=e;n":[Lt,[Dt,Ut],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->":[Lt,[Ut],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n>i}],"filter-<=":[Lt,[Dt,Ut],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-<=":[Lt,[Ut],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n<=i}],"filter->=":[Lt,[Dt,Ut],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->=":[Lt,[Ut],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n>=i}],"filter-has":[Lt,[Ut],function(t,e){return e[0].value in t.properties()}],"filter-has-id":[Lt,[],function(t){return null!==t.id()&&void 0!==t.id()}],"filter-type-in":[Lt,[Kt(Dt)],function(t,e){return e[0].value.indexOf(t.geometryType())>=0}],"filter-id-in":[Lt,[Kt(Ut)],function(t,e){return e[0].value.indexOf(t.id())>=0}],"filter-in-small":[Lt,[Dt,Kt(Ut)],function(t,e){var r=e[0];return e[1].value.indexOf(t.properties()[r.value])>=0}],"filter-in-large":[Lt,[Dt,Kt(Ut)],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:Lt,overloads:[[[Lt,Lt],function(t,e){var r=e[1];return e[0].evaluate(t)&&r.evaluate(t)}],[zr(Lt),function(t,e){for(var r=0,n=e;r0&&"string"==typeof t[0]&&t[0]in Ar}function Nr(t,e){var r=new Re(Ar,[],e?function(t){var e={color:Rt,string:Dt,number:Ft,enum:Dt,boolean:Lt,formatted:qt,resolvedImage:Nt};return "array"===t.type?Kt(e[t.value]||Ut,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?Cr(new jr(n,e)):Mr(r.errors)}jr.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)},jr.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 Kr=function(t,e){this.kind=t,this._styleExpression=e,this.isStateDependent="constant"!==t&&!Fe(e.expression);};Kr.prototype.evaluateWithoutErrorHandling=function(t,e,r,n,i,a){return this._styleExpression.evaluateWithoutErrorHandling(t,e,r,n,i,a)},Kr.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&&!Fe(e.expression),this.interpolationType=n;};function Zr(t,e){if("error"===(t=Nr(t,e)).result)return t;var r=t.value.expression,n=Ve(r);if(!n&&!Er(e))return Mr([new Pt("","data expressions not supported")]);var i=De(r,["zoom"]);if(!i&&!Tr(e))return Mr([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 zt(e,r,r+" is greater than the maximum value "+n.maximum)]:[]}function $r(t){var e,r,n,i=t.valueSpec,a=Et(t.value.type),o={},s="categorical"!==a&&void 0===t.value.property,u=!s,l="array"===Br(t.value.stops)&&"array"===Br(t.value.stops[0])&&"object"===Br(t.value.stops[0][0]),p=Jr({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 zt(t.key,t.value,'identity function may not have a "stops" property')];var e=[],r=t.value;return e=e.concat(Hr({key:t.key,value:r,valueSpec:t.valueSpec,style:t.style,styleSpec:t.styleSpec,arrayElementValidator:c})),"array"===Br(r)&&0===r.length&&e.push(new zt(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&&p.push(new zt(t.key,t.value,'missing required property "property"')),"identity"===a||t.value.stops||p.push(new zt(t.key,t.value,'missing required property "stops"')),"exponential"===a&&t.valueSpec.expression&&!Pr(t.valueSpec)&&p.push(new zt(t.key,t.value,"exponential functions not supported")),t.styleSpec.$version>=8&&(u&&!Er(t.valueSpec)?p.push(new zt(t.key,t.value,"property functions not supported")):s&&!Tr(t.valueSpec)&&p.push(new zt(t.key,t.value,"zoom functions not supported"))),"categorical"!==a&&!l||void 0!==t.value.property||p.push(new zt(t.key,t.value,'"property" property is required')),p;function c(t){var e=[],a=t.value,s=t.key;if("array"!==Br(a))return [new zt(s,a,"array expected, "+Br(a)+" found")];if(2!==a.length)return [new zt(s,a,"array length 2 expected, length "+a.length+" found")];if(l){if("object"!==Br(a[0]))return [new zt(s,a,"object expected, "+Br(a[0])+" found")];if(void 0===a[0].zoom)return [new zt(s,a,"object stop key must have zoom")];if(void 0===a[0].value)return [new zt(s,a,"object stop key must have value")];if(n&&n>Et(a[0].zoom))return [new zt(s,a[0].zoom,"stop zoom values must appear in ascending order")];Et(a[0].zoom)!==n&&(n=Et(a[0].zoom),r=void 0,o={}),e=e.concat(Jr({key:s+"[0]",value:a[0],valueSpec:{zoom:{}},style:t.style,styleSpec:t.styleSpec,objectElementValidators:{zoom:Yr,value:h}}));}else e=e.concat(h({key:s+"[0]",value:a[0],valueSpec:{},style:t.style,styleSpec:t.styleSpec},a));return qr(Tt(a[1]))?e.concat([new zt(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=Br(t.value),u=Et(t.value),l=null!==t.value?t.value:n;if(e){if(s!==e)return [new zt(t.key,l,s+" stop domain type must match previous stop domain type "+e)]}else e=s;if("number"!==s&&"string"!==s&&"boolean"!==s)return [new zt(t.key,l,"stop domain value must be a number, string, or boolean")];if("number"!==s&&"categorical"!==a){var p="number expected, "+s+" found";return Er(i)&&void 0===a&&(p+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new zt(t.key,l,p)]}return "categorical"!==a||"number"!==s||isFinite(u)&&Math.floor(u)===u?"categorical"!==a&&"number"===s&&void 0!==r&&u=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?ln(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(ln)):"in"===r?sn(t[1],t.slice(2)):"!in"===r?ln(sn(t[1],t.slice(2))):"has"===r?un(t[1]):"!has"===r?ln(un(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 un(t){switch(t){case"$type":return !0;case"$id":return ["filter-has-id"];default:return ["filter-has",t]}}function ln(t){return ["!",t]}function pn(t){return tn(Tt(t.value))?Wr(Mt({},t,{expressionContext:"filter",valueSpec:{value:"boolean"}})):function t(e){var r=e.value,n=e.key;if("array"!==Br(r))return [new zt(n,r,"array expected, "+Br(r)+" found")];var i,a=e.styleSpec,o=[];if(r.length<1)return [new zt(n,r,"filter array must have at least 1 element")];switch(o=o.concat(Qr({key:n+"[0]",value:r[0],valueSpec:a.filter_operator,style:e.style,styleSpec:e.styleSpec})),Et(r[0])){case"<":case"<=":case">":case">=":r.length>=2&&"$type"===Et(r[1])&&o.push(new zt(n,r,'"$type" cannot be use with operator "'+r[0]+'"'));case"==":case"!=":3!==r.length&&o.push(new zt(n,r,'filter array for operator "'+r[0]+'" must have 3 elements'));case"in":case"!in":r.length>=2&&"string"!==(i=Br(r[1]))&&o.push(new zt(n+"[1]",r[1],"string expected, "+i+" found"));for(var s=2;s=p[f+0]&&n>=p[f+1])?(o[h]=!0,a.push(l[h])):o[h]=!1;}}},Tn.prototype._forEachCell=function(t,e,r,n,i,a,o,s){for(var u=this._convertToCellCoord(t),l=this._convertToCellCoord(e),p=this._convertToCellCoord(r),c=this._convertToCellCoord(n),h=u;h<=p;h++)for(var f=l;f<=c;f++){var y=this.d*f+h;if((!s||s(this._convertFromCellCoord(h),this._convertFromCellCoord(f),this._convertFromCellCoord(h+1),this._convertFromCellCoord(f+1)))&&i.call(this,t,e,r,n,y,a,o,s))return}},Tn.prototype._convertFromCellCoord=function(t){return (t-this.padding)/this.scale},Tn.prototype._convertToCellCoord=function(t){return Math.max(0,Math.min(this.d-1,Math.floor(t*this.scale)+this.padding))},Tn.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 p=t[l];u[l]=Vn[s].shallow.indexOf(l)>=0?p:On(p,e);}t instanceof Error&&(u.message=t.message);}if(u.$name)throw new Error("$name property is reserved for worker serialization logic.");return "Object"!==s&&(u.$name=s),u}throw new Error("can't serialize object of type "+typeof t)}function Un(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||Ln(t)||Rn(t)||ArrayBuffer.isView(t)||t instanceof Pn)return t;if(Array.isArray(t))return t.map(Un);if("object"==typeof t){var e=t.$name||"Object",r=Vn[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:Un(s);}}return n}throw new Error("can't deserialize object of type "+typeof t)}var jn=function(){this.first=!0;};jn.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 Nn(t){for(var e=0,r=t;e=65097&&t<=65103)||qn["CJK Compatibility Ideographs"](t)||qn["CJK Compatibility"](t)||qn["CJK Radicals Supplement"](t)||qn["CJK Strokes"](t)||!(!qn["CJK Symbols and Punctuation"](t)||t>=12296&&t<=12305||t>=12308&&t<=12319||12336===t)||qn["CJK Unified Ideographs Extension A"](t)||qn["CJK Unified Ideographs"](t)||qn["Enclosed CJK Letters and Months"](t)||qn["Hangul Compatibility Jamo"](t)||qn["Hangul Jamo Extended-A"](t)||qn["Hangul Jamo Extended-B"](t)||qn["Hangul Jamo"](t)||qn["Hangul Syllables"](t)||qn.Hiragana(t)||qn["Ideographic Description Characters"](t)||qn.Kanbun(t)||qn["Kangxi Radicals"](t)||qn["Katakana Phonetic Extensions"](t)||qn.Katakana(t)&&12540!==t||!(!qn["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)||!(!qn["Small Form Variants"](t)||t>=65112&&t<=65118||t>=65123&&t<=65126)||qn["Unified Canadian Aboriginal Syllabics"](t)||qn["Unified Canadian Aboriginal Syllabics Extended"](t)||qn["Vertical Forms"](t)||qn["Yijing Hexagram Symbols"](t)||qn["Yi Syllables"](t)||qn["Yi Radicals"](t))))}function Gn(t){return !(Kn(t)||function(t){return !!(qn["Latin-1 Supplement"](t)&&(167===t||169===t||174===t||177===t||188===t||189===t||190===t||215===t||247===t)||qn["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)||qn["Letterlike Symbols"](t)||qn["Number Forms"](t)||qn["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)||qn["Control Pictures"](t)&&9251!==t||qn["Optical Character Recognition"](t)||qn["Enclosed Alphanumerics"](t)||qn["Geometric Shapes"](t)||qn["Miscellaneous Symbols"](t)&&!(t>=9754&&t<=9759)||qn["Miscellaneous Symbols and Arrows"](t)&&(t>=11026&&t<=11055||t>=11088&&t<=11097||t>=11192&&t<=11243)||qn["CJK Symbols and Punctuation"](t)||qn.Katakana(t)||qn["Private Use Area"](t)||qn["CJK Compatibility Forms"](t)||qn["Small Form Variants"](t)||qn["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 Zn(t){return t>=1424&&t<=2303||qn["Arabic Presentation Forms-A"](t)||qn["Arabic Presentation Forms-B"](t)}function Xn(t,e){return !(!e&&Zn(t)||t>=2304&&t<=3583||t>=3840&&t<=4255||qn.Khmer(t))}function Jn(t){for(var e=0,r=t;e-1&&(Yn="error"),Hn&&Hn(t);};function Qn(){ti.fire(new At("pluginStateChange",{pluginStatus:Yn,pluginURL:$n}));}var ti=new kt,ei=function(){return Yn},ri=function(){if("deferred"!==Yn||!$n)throw new Error("rtl-text-plugin cannot be downloaded unless a pluginURL is specified");Yn="loading",Qn(),$n&>({url:$n},(function(t){t?Wn(t):(Yn="loaded",Qn());}));},ni={applyArabicShaping:null,processBidirectionalText:null,processStyledBidirectionalText:null,isLoaded:function(){return "loaded"===Yn||null!=ni.applyArabicShaping},isLoading:function(){return "loading"===Yn},setState:function(t){Yn=t.pluginStatus,$n=t.pluginURL;},isParsed:function(){return null!=ni.applyArabicShaping&&null!=ni.processBidirectionalText&&null!=ni.processStyledBidirectionalText},getPluginURL:function(){return $n}},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 jn,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(Vr(t))return new Xr(t,e);if(qr(t)){var r=Zr(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=$t.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 ui(this.property,this.value,e,p({},t.transition,this.transition),t.now)},oi.prototype.untransitioned=function(){return new ui(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 li=function(t){this._properties=t,this._values=Object.create(t.defaultTransitioningPropertyValues);};li.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}(yi),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 gi=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({});}};Fn("DataDrivenProperty",yi),Fn("DataConstantProperty",fi),Fn("CrossFadedDataDrivenProperty",di),Fn("CrossFadedProperty",mi),Fn("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 pi(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(Cn,"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(zn,"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),g(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)&&Mn(this,t.call(kn,{key:e,layerType:this.type,objectKey:r,value:n,styleSpec:It,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 ci&&Er(e.property.specification)&&("source"===e.value.kind||"composite"===e.value.kind)&&e.value.isStateDependent)return !0}return !1},e}(kt),bi={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array},wi=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;},_i=function(){this.isTransferred=!1,this.capacity=-1,this.resize(0);};function Ai(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=Si(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:Si(r,Math.max(n,e)),alignment:e}}function Si(t,e){return Math.ceil(t/e)*e}_i.serialize=function(t,e){return t._trim(),e&&(t.isTransferred=!0,e.push(t.arrayBuffer)),{length:t.length,arrayBuffer:t.arrayBuffer}},_i.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},_i.prototype._trim=function(){this.length!==this.capacity&&(this.capacity=this.length,this.arrayBuffer=this.arrayBuffer.slice(0,this.length*this.bytesPerElement),this._refreshViews());},_i.prototype.clear=function(){this.length=0;},_i.prototype.resize=function(t){this.reserve(t),this.length=t;},_i.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);}},_i.prototype._refreshViews=function(){throw new Error("_refreshViews() must be implemented by each concrete StructArray layout")};var ki=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}(_i);ki.prototype.bytesPerElement=4,Fn("StructArrayLayout2i4",ki);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.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}(_i);Ii.prototype.bytesPerElement=8,Fn("StructArrayLayout4i8",Ii);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);},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}(_i);zi.prototype.bytesPerElement=12,Fn("StructArrayLayout2i4i12",zi);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.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,u=8*t;return this.int16[s+0]=e,this.int16[s+1]=r,this.uint8[u+4]=n,this.uint8[u+5]=i,this.uint8[u+6]=a,this.uint8[u+7]=o,t},e}(_i);Ci.prototype.bytesPerElement=8,Fn("StructArrayLayout2i4ub8",Ci);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.uint16=new Uint16Array(this.arrayBuffer);},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,u,l){var p=this.length;return this.resize(p+1),this.emplace(p,t,e,r,n,i,a,o,s,u,l)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,u,l,p){var c=9*t,h=18*t;return this.uint16[c+0]=e,this.uint16[c+1]=r,this.uint16[c+2]=n,this.uint16[c+3]=i,this.uint16[c+4]=a,this.uint16[c+5]=o,this.uint16[c+6]=s,this.uint16[c+7]=u,this.uint8[h+16]=l,this.uint8[h+17]=p,t},e}(_i);Mi.prototype.bytesPerElement=18,Fn("StructArrayLayout8ui2ub18",Mi);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),this.uint16=new Uint16Array(this.arrayBuffer);},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,u,l,p,c){var h=this.length;return this.resize(h+1),this.emplace(h,t,e,r,n,i,a,o,s,u,l,p,c)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,u,l,p,c,h){var f=12*t;return this.int16[f+0]=e,this.int16[f+1]=r,this.int16[f+2]=n,this.int16[f+3]=i,this.uint16[f+4]=a,this.uint16[f+5]=o,this.uint16[f+6]=s,this.uint16[f+7]=u,this.int16[f+8]=l,this.int16[f+9]=p,this.int16[f+10]=c,this.int16[f+11]=h,t},e}(_i);Ei.prototype.bytesPerElement=24,Fn("StructArrayLayout4i4ui4i24",Ei);var Ti=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}(_i);Ti.prototype.bytesPerElement=12,Fn("StructArrayLayout3f12",Ti);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}(_i);Pi.prototype.bytesPerElement=4,Fn("StructArrayLayout1ul4",Pi);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.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,u){var l=this.length;return this.resize(l+1),this.emplace(l,t,e,r,n,i,a,o,s,u)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,u,l){var p=10*t,c=5*t;return this.int16[p+0]=e,this.int16[p+1]=r,this.int16[p+2]=n,this.int16[p+3]=i,this.int16[p+4]=a,this.int16[p+5]=o,this.uint32[c+3]=s,this.uint16[p+8]=u,this.uint16[p+9]=l,t},e}(_i);Bi.prototype.bytesPerElement=20,Fn("StructArrayLayout6i1ul2ui20",Bi);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.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}(_i);Vi.prototype.bytesPerElement=12,Fn("StructArrayLayout2i2i2i12",Vi);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.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}(_i);Fi.prototype.bytesPerElement=16,Fn("StructArrayLayout2f1f2i16",Fi);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);},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}(_i);Di.prototype.bytesPerElement=12,Fn("StructArrayLayout2ub2f12",Di);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.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}(_i);Li.prototype.bytesPerElement=6,Fn("StructArrayLayout3ui6",Li);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.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,u,l,p,c,h,f,y,d,m){var v=this.length;return this.resize(v+1),this.emplace(v,t,e,r,n,i,a,o,s,u,l,p,c,h,f,y,d,m)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,u,l,p,c,h,f,y,d,m,v){var g=24*t,x=12*t,b=48*t;return this.int16[g+0]=e,this.int16[g+1]=r,this.uint16[g+2]=n,this.uint16[g+3]=i,this.uint32[x+2]=a,this.uint32[x+3]=o,this.uint32[x+4]=s,this.uint16[g+10]=u,this.uint16[g+11]=l,this.uint16[g+12]=p,this.float32[x+7]=c,this.float32[x+8]=h,this.uint8[b+36]=f,this.uint8[b+37]=y,this.uint8[b+38]=d,this.uint32[x+10]=m,this.int16[g+22]=v,t},e}(_i);Ri.prototype.bytesPerElement=48,Fn("StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48",Ri);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),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,u,l,p,c,h,f,y,d,m,v,g,x,b,w,_,A,S,k,I,z){var C=this.length;return this.resize(C+1),this.emplace(C,t,e,r,n,i,a,o,s,u,l,p,c,h,f,y,d,m,v,g,x,b,w,_,A,S,k,I,z)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,u,l,p,c,h,f,y,d,m,v,g,x,b,w,_,A,S,k,I,z,C){var M=34*t,E=17*t;return this.int16[M+0]=e,this.int16[M+1]=r,this.int16[M+2]=n,this.int16[M+3]=i,this.int16[M+4]=a,this.int16[M+5]=o,this.int16[M+6]=s,this.int16[M+7]=u,this.uint16[M+8]=l,this.uint16[M+9]=p,this.uint16[M+10]=c,this.uint16[M+11]=h,this.uint16[M+12]=f,this.uint16[M+13]=y,this.uint16[M+14]=d,this.uint16[M+15]=m,this.uint16[M+16]=v,this.uint16[M+17]=g,this.uint16[M+18]=x,this.uint16[M+19]=b,this.uint16[M+20]=w,this.uint16[M+21]=_,this.uint16[M+22]=A,this.uint32[E+12]=S,this.float32[E+13]=k,this.float32[E+14]=I,this.float32[E+15]=z,this.float32[E+16]=C,t},e}(_i);Oi.prototype.bytesPerElement=68,Fn("StructArrayLayout8i15ui1ul4f68",Oi);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.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}(_i);Ui.prototype.bytesPerElement=4,Fn("StructArrayLayout1f4",Ui);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.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}(_i);ji.prototype.bytesPerElement=6,Fn("StructArrayLayout3i6",ji);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.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}(_i);qi.prototype.bytesPerElement=8,Fn("StructArrayLayout1ul2ui8",qi);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.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}(_i);Ni.prototype.bytesPerElement=4,Fn("StructArrayLayout2ui4",Ni);var Ki=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}(_i);Ki.prototype.bytesPerElement=2,Fn("StructArrayLayout1ui2",Ki);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}(_i);Gi.prototype.bytesPerElement=8,Fn("StructArrayLayout2f8",Gi);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.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}(_i);Zi.prototype.bytesPerElement=16,Fn("StructArrayLayout4f16",Zi);var Xi=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}(wi);Xi.prototype.size=20;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 Xi(this,t)},e}(Bi);Fn("CollisionBoxArray",Ji);var Hi=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}(wi);Hi.prototype.size=48;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.get=function(t){return new Hi(this,t)},e}(Ri);Fn("PlacedSymbolArray",Yi);var $i=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}(wi);$i.prototype.size=68;var Wi=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 $i(this,t)},e}(Oi);Fn("SymbolInstanceArray",Wi);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.getoffsetX=function(t){return this.float32[1*t+0]},e}(Ui);Fn("GlyphOffsetArray",Qi);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}(ji);Fn("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}(wi);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}(qi);Fn("FeatureIndexArray",ra);var na=Ai([{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=u(Math.floor(t),0,255))+u(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&&w("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|u>>>17))*s+(((u>>>16)*s&65535)<<16)&4294967295)<<13|i>>>19))+((5*(i>>>16)&65535)<<16)&4294967295))+((58964+(a>>>16)&65535)<<16);switch(u=0,r){case 3:u^=(255&t.charCodeAt(l+2))<<16;case 2:u^=(255&t.charCodeAt(l+1))<<8;case 1:i^=u=(65535&(u=(u=(65535&(u^=255&t.charCodeAt(l)))*o+(((u>>>16)*o&65535)<<16)&4294967295)<<15|u>>>17))*s+(((u>>>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};})),ua=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};})),la=sa,pa=ua;la.murmur3=sa,la.murmur2=pa;var ca=function(){this.ids=[],this.positions=[],this.indexed=!1;};ca.prototype.add=function(t,e,r,n){this.ids.push(fa(t)),this.positions.push(e,r,n);},ca.prototype.getPositions=function(t){for(var e=fa(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},ca.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;ya(e,o,s),ya(r,3*o,3*s),ya(r,3*o+1,3*s+1),ya(r,3*o+2,3*s+2);}s-nVa.max||o.yVa.max)&&(w("Geometry exceeds allowed extent, reduce your vector tile buffer size"),o.x=u(o.x,Va.min,Va.max),o.y=u(o.y,Va.min,Va.max));}return r}function Da(t,e,r,n,i){t.emplaceBack(2*e+(n+1)/2,2*r+(i+1)/2);}var La=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 ki,this.indexArray=new Li,this.segments=new ia,this.programConfigurations=new Ta(na,t.layers,t.zoom),this.stateDependentLayerIds=this.layers.filter((function(t){return t.isStateDependent()})).map((function(t){return t.id}));};function Ra(t,e){for(var r=0;r1){if(qa(t,e))return !0;for(var n=0;n1?r:r.sub(e)._mult(i)._add(e))}function Za(t,e){for(var r,n,i,a=!1,o=0;oe.y!=(i=r[u]).y>e.y&&e.x<(i.x-n.x)*(e.y-n.y)/(i.y-n.y)+n.x&&(a=!a);return a}function Xa(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 Ja(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=_(t,e,r[0]);return a!==_(t,e,r[1])||a!==_(t,e,r[2])||a!==_(t,e,r[3])}function Ha(t,e,r){var n=e.paint.get(t).value;return "constant"===n.kind?n.value:r.programConfigurations.get(e.id).getMaxValue(t)}function Ya(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}function $a(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=[],u=0;u=8192||p<0||p>=8192)){var c=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,t.sortKey),h=c.vertexLength;Da(this.layoutVertexArray,l,p,-1,-1),Da(this.layoutVertexArray,l,p,1,-1),Da(this.layoutVertexArray,l,p,1,1),Da(this.layoutVertexArray,l,p,-1,1),this.indexArray.emplaceBack(h,h+1,h+2),this.indexArray.emplaceBack(h,h+3,h+2),c.vertexLength+=4,c.primitiveLength+=2;}}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,r,{},n);},Fn("CircleBucket",La,{omit:["layers"]});var Wa=new gi({"circle-sort-key":new yi(It.layout_circle["circle-sort-key"])}),Qa={paint:new gi({"circle-radius":new yi(It.paint_circle["circle-radius"]),"circle-color":new yi(It.paint_circle["circle-color"]),"circle-blur":new yi(It.paint_circle["circle-blur"]),"circle-opacity":new yi(It.paint_circle["circle-opacity"]),"circle-translate":new fi(It.paint_circle["circle-translate"]),"circle-translate-anchor":new fi(It.paint_circle["circle-translate-anchor"]),"circle-pitch-scale":new fi(It.paint_circle["circle-pitch-scale"]),"circle-pitch-alignment":new fi(It.paint_circle["circle-pitch-alignment"]),"circle-stroke-width":new yi(It.paint_circle["circle-stroke-width"]),"circle-stroke-color":new yi(It.paint_circle["circle-stroke-color"]),"circle-stroke-opacity":new yi(It.paint_circle["circle-stroke-opacity"])}),layout:Wa},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],u=e[5],l=e[6],p=e[7],c=e[8],h=e[9],f=e[10],y=e[11],d=e[12],m=e[13],v=e[14],g=e[15],x=r[0],b=r[1],w=r[2],_=r[3];return t[0]=x*n+b*s+w*c+_*d,t[1]=x*i+b*u+w*h+_*m,t[2]=x*a+b*l+w*f+_*v,t[3]=x*o+b*p+w*y+_*g,t[4]=(x=r[4])*n+(b=r[5])*s+(w=r[6])*c+(_=r[7])*d,t[5]=x*i+b*u+w*h+_*m,t[6]=x*a+b*l+w*f+_*v,t[7]=x*o+b*p+w*y+_*g,t[8]=(x=r[8])*n+(b=r[9])*s+(w=r[10])*c+(_=r[11])*d,t[9]=x*i+b*u+w*h+_*m,t[10]=x*a+b*l+w*f+_*v,t[11]=x*o+b*p+w*y+_*g,t[12]=(x=r[12])*n+(b=r[13])*s+(w=r[14])*c+(_=r[15])*d,t[13]=x*i+b*u+w*h+_*m,t[14]=x*a+b*l+w*f+_*v,t[15]=x*o+b*p+w*y+_*g,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,Qa);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.createBucket=function(t){return new La(t)},e.prototype.queryRadius=function(t){var e=t;return Ha("circle-radius",this,e)+Ha("circle-stroke-width",this,e)+Ya(this.paint.get("circle-translate"))},e.prototype.queryIntersectsFeature=function(t,e,r,n,i,a,o,s){for(var u=$a(t,this.paint.get("circle-translate"),this.paint.get("circle-translate-anchor"),a.angle,o),l=this.paint.get("circle-radius").evaluate(e,r)+this.paint.get("circle-stroke-width").evaluate(e,r),p="map"===this.paint.get("circle-pitch-alignment"),c=p?u:function(t,e){return t.map((function(t){return so(t,e)}))}(u,s),h=p?l*o:l,f=0,y=n;ft.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,u=0;u80*r){n=a=t[0],i=o=t[1];for(var y=r;ya&&(a=s),u>o&&(o=u);l=0!==(l=Math.max(a-n,o-i))?1/l:0;}return Io(h,f,r,n,i,l),f}function So(t,e,r,n,i){var a,o;if(i===Jo(t,e,r,n)>0)for(a=e;a=e;a-=n)o=Go(a,t[a],t[a+1],o);return o&&Oo(o,o.next)&&(Zo(o),o=o.next),o}function ko(t,e){if(!t)return t;e||(e=t);var r,n=t;do{if(r=!1,n.steiner||!Oo(n,n.next)&&0!==Ro(n.prev,n,n.next))n=n.next;else {if(Zo(n),(n=e=n.prev)===n.next)break;r=!0;}}while(r||n!==e);return e}function Io(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=Vo(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,u,l=1;do{for(r=t,t=null,a=null,o=0;r;){for(o++,n=r,s=0,e=0;e0||u>0&&n;)0!==s&&(0===u||!n||r.z<=n.z)?(i=r,r=r.nextZ,s--):(i=n,n=n.nextZ,u--),a?a.nextZ=i:t=i,i.prevZ=a,a=i;r=n;}a.nextZ=null,l*=2;}while(o>1)}(i);}(t,n,i,a);for(var s,u,l=t;t.prev!==t.next;)if(s=t.prev,u=t.next,a?Co(t,n,i,a):zo(t))e.push(s.i/r),e.push(t.i/r),e.push(u.i/r),Zo(t),t=u.next,l=u.next;else if((t=u)===l){o?1===o?Io(t=Mo(ko(t),e,r),e,r,n,i,a,2):2===o&&Eo(t,e,r,n,i,a):Io(ko(t),e,r,n,i,a,1);break}}}function zo(t){var e=t.prev,r=t,n=t.next;if(Ro(e,r,n)>=0)return !1;for(var i=t.next.next;i!==t.prev;){if(Do(e.x,e.y,r.x,r.y,n.x,n.y,i.x,i.y)&&Ro(i.prev,i,i.next)>=0)return !1;i=i.next;}return !0}function Co(t,e,r,n){var i=t.prev,a=t,o=t.next;if(Ro(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,u=i.y>a.y?i.y>o.y?i.y:o.y:a.y>o.y?a.y:o.y,l=Vo(i.x=l&&h&&h.z<=p;){if(c!==t.prev&&c!==t.next&&Do(i.x,i.y,a.x,a.y,o.x,o.y,c.x,c.y)&&Ro(c.prev,c,c.next)>=0)return !1;if(c=c.prevZ,h!==t.prev&&h!==t.next&&Do(i.x,i.y,a.x,a.y,o.x,o.y,h.x,h.y)&&Ro(h.prev,h,h.next)>=0)return !1;h=h.nextZ;}for(;c&&c.z>=l;){if(c!==t.prev&&c!==t.next&&Do(i.x,i.y,a.x,a.y,o.x,o.y,c.x,c.y)&&Ro(c.prev,c,c.next)>=0)return !1;c=c.prevZ;}for(;h&&h.z<=p;){if(h!==t.prev&&h!==t.next&&Do(i.x,i.y,a.x,a.y,o.x,o.y,h.x,h.y)&&Ro(h.prev,h,h.next)>=0)return !1;h=h.nextZ;}return !0}function Mo(t,e,r){var n=t;do{var i=n.prev,a=n.next.next;!Oo(i,a)&&Uo(i,n,n.next,a)&&No(i,a)&&No(a,i)&&(e.push(i.i/r),e.push(n.i/r),e.push(a.i/r),Zo(n),Zo(n.next),n=t=a),n=n.next;}while(n!==t);return ko(n)}function Eo(t,e,r,n,i,a){var o=t;do{for(var s=o.next.next;s!==o.prev;){if(o.i!==s.i&&Lo(o,s)){var u=Ko(o,s);return o=ko(o,o.next),u=ko(u,u.next),Io(o,e,r,n,i,a),void Io(u,e,r,n,i,a)}s=s.next;}o=o.next;}while(o!==t)}function To(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>=p&&i!==n.x&&Do(ar.x||n.x===r.x&&Bo(r,n)))&&(r=n,h=u)),n=n.next;}while(n!==l);return r}(t,e)){var r=Ko(e,t);ko(e,e.next),ko(r,r.next);}}function Bo(t,e){return Ro(t.prev,t,e.prev)<0&&Ro(e.next,t,t.next)<0}function Vo(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 Fo(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 Lo(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&&Uo(r,r.next,t,e))return !0;r=r.next;}while(r!==t);return !1}(t,e)&&(No(t,e)&&No(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)&&(Ro(t.prev,t,e.prev)||Ro(t,e.prev,e))||Oo(t,e)&&Ro(t.prev,t,t.next)>0&&Ro(e.prev,e,e.next)>0)}function Ro(t,e,r){return (e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function Oo(t,e){return t.x===e.x&&t.y===e.y}function Uo(t,e,r,n){var i=qo(Ro(t,e,r)),a=qo(Ro(t,e,n)),o=qo(Ro(r,n,t)),s=qo(Ro(r,n,e));return i!==a&&o!==s||!(0!==i||!jo(t,r,e))||!(0!==a||!jo(t,n,e))||!(0!==o||!jo(r,t,n))||!(0!==s||!jo(r,e,n))}function jo(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 qo(t){return t>0?1:t<0?-1:0}function No(t,e){return Ro(t.prev,t,t.next)<0?Ro(t,e,t.next)>=0&&Ro(t,t.prev,e)>=0:Ro(t,e,t.prev)<0||Ro(t,t.next,e)<0}function Ko(t,e){var r=new Xo(t.i,t.x,t.y),n=new Xo(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 Xo(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 Zo(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 Xo(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 Jo(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,u=Math.log(o),l=.5*Math.exp(2*u/3),p=.5*Math.sqrt(u*l*(o-l)/o)*(s-o/2<0?-1:1);t(e,r,Math.max(n,Math.floor(r-s*l/o+p)),Math.min(i,Math.floor(r+(o-s)*l/o+p)),a);}var c=e[r],h=n,f=i;for(Yo(e,n,r),a(e[i],c)>0&&Yo(e,n,i);h0;)f--;}0===a(e[n],c)?Yo(e,n,f):Yo(e,++f,i),f<=r&&(n=f+1),r<=f&&(i=f-1);}}(t,e,r||0,n||t.length-1,i||$o);}function Yo(t,e,r){var n=t[e];t[e]=t[r],t[r]=n;}function $o(t,e){return te?1:0}function Wo(t,e){var r=t.length;if(r<=1)return [t];for(var n,i,a=[],o=0;o1)for(var u=0;u0&&r.holes.push(n+=t[i-1].length);}return r},wo.default=_o;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 ki,this.indexArray=new Li,this.indexArray2=new Ni,this.programConfigurations=new Ta(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&&u.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&&u.push(e),u},us.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,u=1/0,l=-1/0;t.pos>3;}if(n--,1===r||2===r)(i+=t.readSVarint())s&&(s=i),(a+=t.readSVarint())l&&(l=a);else if(7!==r)throw new Error("unknown command "+r)}return [o,u,s,l]},us.prototype.toGeoJSON=function(t,e,r){var n,i,a=this.extent*Math.pow(2,r),o=this.extent*t,s=this.extent*e,u=this.loadGeometry(),l=us.types[this.type];function p(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 ys(t,e,r){if(3===t){var n=new cs(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 ds={VectorTile:function(t,e){this.layers=t.readFields(ys,{},e);},VectorTileFeature:ss,VectorTileLayer:cs},ms=ds.VectorTileFeature.types,vs=Math.pow(2,13);function gs(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 zi,this.indexArray=new Li,this.programConfigurations=new Ta(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 d=0,m=0;m=1){var g=y[m-1];if(!bs(v,g)){c.vertexLength+4>ia.MAX_VERTEX_ARRAY_LENGTH&&(c=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));var x=v.sub(g)._perp()._unit(),b=g.dist(v);d+b>32768&&(d=0),gs(this.layoutVertexArray,v.x,v.y,x.x,x.y,0,0,d),gs(this.layoutVertexArray,v.x,v.y,x.x,x.y,0,1,d),gs(this.layoutVertexArray,g.x,g.y,x.x,x.y,0,0,d+=b),gs(this.layoutVertexArray,g.x,g.y,x.x,x.y,0,1,d);var w=c.vertexLength;this.indexArray.emplaceBack(w,w+2,w+1),this.indexArray.emplaceBack(w+1,w+2,w+3),c.vertexLength+=4,c.primitiveLength+=2;}}}}if(c.vertexLength+u>ia.MAX_VERTEX_ARRAY_LENGTH&&(c=this.segments.prepareSegment(u,this.layoutVertexArray,this.indexArray)),"Polygon"===ms[t.type]){for(var _=[],A=[],S=c.vertexLength,k=0,I=s;k=2&&t[u-1].equals(t[u-2]);)u--;for(var l=0;l0;if(A&&v>l){var k=p.dist(f);if(k>2*c){var I=p.sub(p.sub(f)._mult(c/k)._round());this.updateDistance(f,I),this.addCurrentVertex(I,d,0,0,h),f=I;}}var z=f&&y,C=z?r:s?"butt":n;if(z&&"round"===C&&(wi&&(C="bevel"),"bevel"===C&&(w>2&&(C="flipbevel"),w100)g=m.mult(-1);else {var M=w*d.add(m).mag()/d.sub(m).mag();g._perp()._mult(M*(S?-1:1));}this.addCurrentVertex(p,g,0,0,h),this.addCurrentVertex(p,g.mult(-1),0,0,h);}else if("bevel"===C||"fakeround"===C){var E=-Math.sqrt(w*w-1),T=S?E:0,P=S?0:E;if(f&&this.addCurrentVertex(p,d,T,P,h),"fakeround"===C)for(var B=Math.round(180*_/Math.PI/20),V=1;V2*c){var U=p.add(y.sub(p)._mult(c/O)._round());this.updateDistance(p,U),this.addCurrentVertex(U,m,0,0,h),p=U;}}}}},Ms.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>Cs/2&&0===this.totalDistance&&(this.distance=0,this.addCurrentVertex(t,e,r,n,i,a));},Ms.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 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;},Ms.prototype.updateScaledDistance=function(){this.scaledDistance=this.totalDistance>0?(this.clipStart+(this.clipEnd-this.clipStart)*this.distance/this.totalDistance)*(Cs-1):this.distance;},Ms.prototype.updateDistance=function(t,e){this.distance+=t.dist(e),this.updateScaledDistance();},Fn("LineBucket",Ms,{omit:["layers","patternFeatures"]});var Es=new gi({"line-cap":new fi(It.layout_line["line-cap"]),"line-join":new yi(It.layout_line["line-join"]),"line-miter-limit":new fi(It.layout_line["line-miter-limit"]),"line-round-limit":new fi(It.layout_line["line-round-limit"]),"line-sort-key":new yi(It.layout_line["line-sort-key"])}),Ts={paint:new gi({"line-opacity":new yi(It.paint_line["line-opacity"]),"line-color":new yi(It.paint_line["line-color"]),"line-translate":new fi(It.paint_line["line-translate"]),"line-translate-anchor":new fi(It.paint_line["line-translate-anchor"]),"line-width":new yi(It.paint_line["line-width"]),"line-gap-width":new yi(It.paint_line["line-gap-width"]),"line-offset":new yi(It.paint_line["line-offset"]),"line-blur":new yi(It.paint_line["line-blur"]),"line-dasharray":new mi(It.paint_line["line-dasharray"]),"line-pattern":new di(It.paint_line["line-pattern"]),"line-gradient":new vi(It.paint_line["line-gradient"])}),layout:Es},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=p({},r,{zoom:Math.floor(r.zoom)}),t.prototype.evaluate.call(this,e,r,n,i)},e}(yi))(Ts.paint.properties["line-width"].specification);Ps.useIntegerZoom=!0;var Bs=function(t){function e(e){t.call(this,e,Ts);}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 Ms(t)},e.prototype.queryRadius=function(t){var e=t,r=Vs(Ha("line-width",this,e),Ha("line-gap-width",this,e)),n=Ha("line-offset",this,e);return r/2+Math.abs(n)+Ya(this.paint.get("line-translate"))},e.prototype.queryIntersectsFeature=function(t,e,r,n,a,o,s){var u=$a(t,this.paint.get("line-translate"),this.paint.get("line-translate-anchor"),o.angle,s),l=s/2*Vs(this.paint.get("line-width").evaluate(e,r),this.paint.get("line-gap-width").evaluate(e,r)),p=this.paint.get("line-offset").evaluate(e,r);return p&&(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 Fs=Ai([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_data",components:4,type:"Uint16"},{name:"a_pixeloffset",components:4,type:"Int16"}],4),Ds=Ai([{name:"a_projected_pos",components:3,type:"Float32"}],4),Ls=(Ai([{name:"a_fade_opacity",components:1,type:"Uint32"}],4),Ai([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"}])),Rs=(Ai([{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"}]),Ai([{name:"a_pos",components:2,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4)),Os=Ai([{name:"a_pos",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);function Us(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}Ai([{name:"triangle",components:3,type:"Uint16"}]),Ai([{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"}]),Ai([{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"}]),Ai([{type:"Float32",name:"offsetX"}]),Ai([{type:"Int16",name:"x"},{type:"Int16",name:"y"},{type:"Int16",name:"tileUnitDistanceFromAnchor"}]);var js={"!":"︕","#":"#",$:"$","%":"%","&":"&","(":"︵",")":"︶","*":"*","+":"+",",":"︐","-":"︲",".":"・","/":"/",":":"︓",";":"︔","<":"︿","=":"=",">":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"},qs=function(t,e,r,n,i){var a,o,s=8*i-n-1,u=(1<>1,p=-7,c=r?i-1:0,h=r?-1:1,f=t[e+c];for(c+=h,a=f&(1<<-p)-1,f>>=-p,p+=s;p>0;a=256*a+t[e+c],c+=h,p-=8);for(o=a&(1<<-p)-1,a>>=-p,p+=n;p>0;o=256*o+t[e+c],c+=h,p-=8);if(0===a)a=1-l;else {if(a===u)return o?NaN:1/0*(f?-1:1);o+=Math.pow(2,n),a-=l;}return (f?-1:1)*o*Math.pow(2,a-n)},Ns=function(t,e,r,n,i,a){var o,s,u,l=8*a-i-1,p=(1<>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=n?0:a-1,y=n?1:-1,d=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=p):(o=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-o))<1&&(o--,u*=2),(e+=o+c>=1?h/u:h*Math.pow(2,1-c))*u>=2&&(o++,u/=2),o+c>=p?(s=0,o=p):o+c>=1?(s=(e*u-1)*Math.pow(2,i),o+=c):(s=e*Math.pow(2,c-1)*Math.pow(2,i),o=0));i>=8;t[r+f]=255&s,f+=y,s/=256,i-=8);for(o=o<0;t[r+f]=255&o,f+=y,o/=256,l-=8);t[r+f-y]|=128*d;},Ks=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 Zs="undefined"==typeof TextDecoder?null:new TextDecoder("utf8");function Xs(t){return t.type===Gs.Bytes?t.readVarint()+t.pos:t.pos+1}function Js(t,e,r){return r?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}function Hs(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 Ys(t,e){for(var r=0;r>>8,t[r+2]=e>>>16,t[r+3]=e>>>24;}function su(t,e){return (t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}function uu(t,e,r){1===t&&r.readMessage(lu,e);}function lu(t,e,r){if(3===t){var n=r.readMessage(pu,{}),i=n.width,a=n.height,o=n.left,s=n.top,u=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:u}});}}function pu(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 cu(t){for(var e=0,r=0,n=0,i=t;n=0;h--){var f=o[h];if(!(c.w>f.w||c.h>f.h)){if(c.x=f.x,c.y=f.y,u=Math.max(u,c.y+c.h),s=Math.max(s,c.x+c.w),c.w===f.w&&c.h===f.h){var y=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=au(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=su(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=au(this.buf,this.pos)+4294967296*au(this.buf,this.pos+4);return this.pos+=8,t},readSFixed64:function(){var t=au(this.buf,this.pos)+4294967296*su(this.buf,this.pos+4);return this.pos+=8,t},readFloat:function(){var t=qs(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=qs(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 Js(t,n,e);if(n|=(127&(i=a[r.pos++]))<<3,i<128)return Js(t,n,e);if(n|=(127&(i=a[r.pos++]))<<10,i<128)return Js(t,n,e);if(n|=(127&(i=a[r.pos++]))<<17,i<128)return Js(t,n,e);if(n|=(127&(i=a[r.pos++]))<<24,i<128)return Js(t,n,e);if(n|=(1&(i=a[r.pos++]))<<31,i<128)return Js(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&&Zs?function(t,e,r){return Zs.decode(t.subarray(e,r))}(this.buf,e,t):function(t,e,r){for(var n="",i=e;i239?4:u>223?3:u>191?2:1;if(i+p>r)break;1===p?u<128&&(l=u):2===p?128==(192&(a=t[i+1]))&&(l=(31&u)<<6|63&a)<=127&&(l=null):3===p?(o=t[i+2],128==(192&(a=t[i+1]))&&128==(192&o)&&((l=(15&u)<<12|(63&a)<<6|63&o)<=2047||l>=55296&&l<=57343)&&(l=null)):4===p&&(o=t[i+2],s=t[i+3],128==(192&(a=t[i+1]))&&128==(192&o)&&128==(192&s)&&((l=(15&u)<<18|(63&a)<<12|(63&o)<<6|63&s)<=65535||l>=1114112)&&(l=null)),null===l?(l=65533,p=1):l>65535&&(l-=65536,n+=String.fromCharCode(l>>>10&1023|55296),l=56320|1023&l),n+=String.fromCharCode(l),i+=p;}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=Xs(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&&Hs(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r;},writeFloat:function(t){this.realloc(4),Ns(this.buf,t,this.pos,!0,23,4),this.pos+=4;},writeDouble:function(t){this.realloc(8),Ns(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&&Hs(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,Ys,e);},writePackedSVarint:function(t,e){e.length&&this.writeMessage(t,$s,e);},writePackedBoolean:function(t,e){e.length&&this.writeMessage(t,tu,e);},writePackedFloat:function(t,e){e.length&&this.writeMessage(t,Ws,e);},writePackedDouble:function(t,e){e.length&&this.writeMessage(t,Qs,e);},writePackedFixed32:function(t,e){e.length&&this.writeMessage(t,eu,e);},writePackedSFixed32:function(t,e){e.length&&this.writeMessage(t,ru,e);},writePackedFixed64:function(t,e){e.length&&this.writeMessage(t,nu,e);},writePackedSFixed64:function(t,e){e.length&&this.writeMessage(t,iu,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 hu=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;},fu={tl:{configurable:!0},br:{configurable:!0},tlbr:{configurable:!0},displaySize:{configurable:!0}};fu.tl.get=function(){return [this.paddedRect.x+1,this.paddedRect.y+1]},fu.br.get=function(){return [this.paddedRect.x+this.paddedRect.w-1,this.paddedRect.y+this.paddedRect.h-1]},fu.tlbr.get=function(){return this.tl.concat(this.br)},fu.displaySize.get=function(){return [(this.paddedRect.w-2)/this.pixelRatio,(this.paddedRect.h-2)/this.pixelRatio]},Object.defineProperties(hu.prototype,fu);var yu=function(t,e){var r={},n={};this.haveRenderCallbacks=[];var i=[];this.addImages(t,r,i),this.addImages(e,n,i);var a=cu(i),o=new fo({width:a.w||1,height:a.h||1});for(var s in t){var u=t[s],l=r[s].paddedRect;fo.copy(u.data,o,{x:0,y:0},{x:l.x+1,y:l.y+1},u.data);}for(var p in e){var c=e[p],h=n[p].paddedRect,f=h.x+1,y=h.y+1,d=c.data.width,m=c.data.height;fo.copy(c.data,o,{x:0,y:0},{x:f,y:y},c.data),fo.copy(c.data,o,{x:0,y:m-1},{x:f,y:y-1},{width:d,height:1}),fo.copy(c.data,o,{x:0,y:0},{x:f,y:y+m},{width:d,height:1}),fo.copy(c.data,o,{x:d-1,y:0},{x:f-1,y:y},{width:1,height:m}),fo.copy(c.data,o,{x:0,y:0},{x:f+d,y:y},{width:1,height:m});}this.image=o,this.iconPositions=r,this.patternPositions=n;};yu.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 hu(a,i),i.hasRenderCallback&&this.haveRenderCallbacks.push(n);}},yu.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);},yu.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]});}},Fn("ImagePosition",hu),Fn("ImageAtlas",yu);var du={horizontal:1,vertical:2,horizontalOnly:3},mu=function(){this.scale=1,this.fontStack="",this.imageName=null;};mu.forText=function(t,e){var r=new mu;return r.scale=t||1,r.fontStack=e,r},mu.forImage=function(t){var e=new mu;return e.imageName=t,e};var vu=function(){this.text="",this.sectionIndex=[],this.sections=[],this.imageSectionID=null;};function gu(t,e,r,n,i,a,o,s,u,l,p,c,h,f,y,d){var m,v=vu.fromFeature(t,i);c===du.vertical&&v.verticalizePunctuation();var g=ni.processBidirectionalText,x=ni.processStyledBidirectionalText;if(g&&1===v.sections.length){m=[];for(var b=0,w=g(v.toString(),ku(v,l,a,e,n,f,y));b0&&R>k&&(k=R);}else {var O=r[z.fontStack],U=O&&O[M];if(U&&U.rect)P=U.rect,T=U.metrics;else {var j=e[z.fontStack],q=j&&j[M];if(!q)continue;T=q.metrics;}E=24*(w-z.scale);}F?(t.verticalizable=!0,S.push({glyph:M,imageName:B,x:h,y:f+E,vertical:F,scale:z.scale,fontStack:z.fontStack,sectionIndex:C,metrics:T,rect:P}),h+=V*z.scale+l):(S.push({glyph:M,imageName:B,x:h,y:f+E,vertical:F,scale:z.scale,fontStack:z.fontStack,sectionIndex:C,metrics:T,rect:P}),h+=T.advance*z.scale+l);}0!==S.length&&(y=Math.max(h-l,y),zu(S,0,S.length-1,m,k)),h=0;var N=a*w+k;A.lineOffset=Math.max(k,_),f+=N,d=Math.max(N,d),++v;}else f+=a,++v;}var K,G=f- -17,Z=Iu(o),X=Z.horizontalAlign,J=Z.verticalAlign;(function(t,e,r,n,i,a,o,s,u){var l,p=(e-r)*i;l=a!==o?-s*n- -17:(-n*u+.5)*o;for(var c=0,h=t;c=0&&n>=t&&xu[this.text.charCodeAt(n)];n--)r--;this.text=this.text.substring(t,r),this.sectionIndex=this.sectionIndex.slice(t,r);},vu.prototype.substring=function(t,e){var r=new vu;return r.text=this.text.substring(t,e),r.sectionIndex=this.sectionIndex.slice(t,e),r.sections=this.sections,r},vu.prototype.toString=function(){return this.text},vu.prototype.getMaxScale=function(){var t=this;return this.sectionIndex.reduce((function(e,r){return Math.max(e,t.sections[r].scale)}),0)},vu.prototype.addTextSection=function(t,e){this.text+=t.text,this.sections.push(mu.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 xu={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},bu={};function wu(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],u=s&&s[t];return u?u.metrics.advance*e.scale+i:0}function _u(t,e,r,n){var i=Math.pow(t-e,2);return n?t=0,c=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 u=[],l=0;sn;)l-=u.shift().angleDelta;if(l>i)return !1;o++,s+=p.dist(c);}return !0}function Fu(t){for(var e=0,r=0;rl){var y=(l-u)/f,d=je(c.x,h.x,y),m=je(c.y,h.y,y),v=new Mu(d,m,h.angleTo(c),p);return v._round(),!o||Vu(t,v,s,o,e)?v:void 0}u+=f;}}function Ou(t,e,r,n,i,a,o,s,u){var l=Du(n,a,o),p=Lu(n,i),c=p*o,h=0===t[0].x||t[0].x===u||0===t[0].y||t[0].y===u;return e-c=0&&w=0&&_=0&&f+p<=c){var A=new Mu(w,_,x,d);A._round(),i&&!Vu(e,A,o,i,a)||y.push(A);}}h+=g;}return u||y.length||s||(y=t(e,h/2,n,i,a,o,s,!0,l)),y}(t,h?e/2*s%e:(p/2+2*a)*o*s%e,e,l,r,c,h,!1,u)}function Uu(t,e,r,n,a){for(var o=[],s=0;s=n&&h.x>=n||(c.x>=n?c=new i(n,c.y+(n-c.x)/(h.x-c.x)*(h.y-c.y))._round():h.x>=n&&(h=new i(n,c.y+(n-c.x)/(h.x-c.x)*(h.y-c.y))._round()),c.y>=a&&h.y>=a||(c.y>=a?c=new i(c.x+(a-c.y)/(h.y-c.y)*(h.x-c.x),a)._round():h.y>=a&&(h=new i(c.x+(a-c.y)/(h.y-c.y)*(h.x-c.x),a)._round()),l&&c.equals(l[l.length-1])||o.push(l=[c]),l.push(h)))));}return o}function ju(t,e,r,n){var a=[],o=t.image,s=o.pixelRatio,u=o.paddedRect.w-2,l=o.paddedRect.h-2,p=t.right-t.left,c=t.bottom-t.top,h=o.stretchX||[[0,u]],f=o.stretchY||[[0,l]],y=function(t,e){return t+e[1]-e[0]},d=h.reduce(y,0),m=f.reduce(y,0),v=u-d,g=l-m,x=0,b=d,w=0,_=m,A=0,S=v,k=0,I=g;if(o.content&&n){var z=o.content;x=qu(h,0,z[0]),w=qu(f,0,z[1]),b=qu(h,z[0],z[2]),_=qu(f,z[1],z[3]),A=z[0]-x,k=z[1]-w,S=z[2]-z[0]-b,I=z[3]-z[1]-_;}var C=function(n,a,u,l){var h=Ku(n.stretch-x,b,p,t.left),f=Gu(n.fixed-A,S,n.stretch,d),y=Ku(a.stretch-w,_,c,t.top),v=Gu(a.fixed-k,I,a.stretch,m),g=Ku(u.stretch-x,b,p,t.left),z=Gu(u.fixed-A,S,u.stretch,d),C=Ku(l.stretch-w,_,c,t.top),M=Gu(l.fixed-k,I,l.stretch,m),E=new i(h,y),T=new i(g,y),P=new i(g,C),B=new i(h,C),V=new i(f/s,v/s),F=new i(z/s,M/s),D=e*Math.PI/180;if(D){var L=Math.sin(D),R=Math.cos(D),O=[R,-L,L,R];E._matMult(O),T._matMult(O),B._matMult(O),P._matMult(O);}var U=n.stretch+n.fixed,j=a.stretch+a.fixed;return {tl:E,tr:T,bl:B,br:P,tex:{x:o.paddedRect.x+1+U,y:o.paddedRect.y+1+j,w:u.stretch+u.fixed-U,h:l.stretch+l.fixed-j},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:V,pixelOffsetBR:F,minFontScaleX:S/s/p,minFontScaleY:I/s/c,isSDF:r}};if(n&&(o.stretchX||o.stretchY))for(var M=Nu(h,v,d),E=Nu(f,g,m),T=0;T0&&(y=Math.max(10,y),this.circleDiameter=y);}else {var d=o.top*s-u,m=o.bottom*s+u,v=o.left*s-u,g=o.right*s+u,x=o.collisionPadding;if(x&&(v-=x[0]*s,d-=x[1]*s,g+=x[2]*s,m+=x[3]*s),p){var b=new i(v,d),w=new i(g,d),_=new i(v,m),A=new i(g,m),S=p*Math.PI/180;b._rotate(S),w._rotate(S),_._rotate(S),A._rotate(S),v=Math.min(b.x,w.x,_.x,A.x),g=Math.max(b.x,w.x,_.x,A.x),d=Math.min(b.y,w.y,_.y,A.y),m=Math.max(b.y,w.y,_.y,A.y);}t.emplaceBack(e.x,e.y,v,d,g,m,r,n,a);}this.boxEndIndex=t.length;},Xu=function(t,e){if(void 0===t&&(t=[]),void 0===e&&(e=Ju),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 Ju(t,e){return te?1:0}function Hu(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,u=t[0],l=0;lo)&&(o=p.x),(!l||p.y>s)&&(s=p.y);}var c=Math.min(o-n,s-a),h=c/2,f=new Xu([],Yu);if(0===c)return new i(n,a);for(var y=n;ym.d||!m.d)&&(m=g,r&&console.log("found best %d after %d probes",Math.round(1e4*g.d)/1e4,v)),g.max-m.d<=e||(f.push(new $u(g.p.x-(h=g.h/2),g.p.y-h,h,t)),f.push(new $u(g.p.x+h,g.p.y-h,h,t)),f.push(new $u(g.p.x-h,g.p.y+h,h,t)),f.push(new $u(g.p.x+h,g.p.y+h,h,t)),v+=4);}return r&&(console.log("num probes: "+v),console.log("best distance: "+m.d)),m.p}function Yu(t,e){return e.max-t.max}function $u(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!=p.y>t.y&&t.x<(p.x-l.x)*(t.y-l.y)/(p.y-l.y)+l.x&&(r=!r),n=Math.min(n,Ga(t,l,p));}return (r?1:-1)*Math.sqrt(n)}(this.p,n),this.max=this.d+this.h*Math.SQRT2;}Xu.prototype.push=function(t){this.data.push(t),this.length++,this._up(this.length-1);},Xu.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}},Xu.prototype.peek=function(){return this.data[0]},Xu.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;},Xu.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 Wu=Number.POSITIVE_INFINITY;function Qu(t,e){return e[1]!==Wu?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 tl(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 el(t,e,r,n,a,o,s,u,l,p,c,h,f,y,d){var m=function(t,e,r,n,a,o,s,u){for(var l=n.layout.get("text-rotate").evaluate(o,{})*Math.PI/180,p=[],c=0,h=e.positionedLines;c32640&&w(t.layerIds[0]+': Value for "text-size" is >= 255. Reduce your "text-size".'):"composite"===v.kind&&((g=[128*y.compositeTextSizes[0].evaluate(s,{},d),128*y.compositeTextSizes[1].evaluate(s,{},d)])[0]>32640||g[1]>32640)&&w(t.layerIds[0]+': Value for "text-size" is >= 255. Reduce your "text-size".'),t.addSymbols(t.text,m,g,u,o,s,p,e,l.lineStartIndex,l.lineLength,f,d);for(var x=0,b=c;x=0;o--)if(n.dist(a[o])0)&&("constant"!==a.value.kind||a.value.value.length>0),l="constant"!==s.value.kind||!!s.value.value||Object.keys(s.parameters).length>0,p=i.get("symbol-sort-key");if(this.features=[],u||l){for(var c=e.iconDependencies,h=e.glyphDependencies,f=e.availableImages,y=new ii(this.zoom),d=0,m=t;d=0;for(var B=0,V=S.sections;B=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 u=0;u0},cl.prototype.hasIconData=function(){return this.icon.segments.get().length>0},cl.prototype.hasDebugData=function(){return this.textCollisionBox&&this.iconCollisionBox},cl.prototype.hasTextCollisionBoxData=function(){return this.hasDebugData()&&this.textCollisionBox.segments.get().length>0},cl.prototype.hasIconCollisionBoxData=function(){return this.hasDebugData()&&this.iconCollisionBox.segments.get().length>0},cl.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);}},Fn("SymbolBucket",cl,{omit:["layers","collisionBoxArray","features","compareText"]}),cl.MAX_GLYPHS=65535,cl.addDynamicAttributes=sl;var hl=new gi({"symbol-placement":new fi(It.layout_symbol["symbol-placement"]),"symbol-spacing":new fi(It.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new fi(It.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new yi(It.layout_symbol["symbol-sort-key"]),"symbol-z-order":new fi(It.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new fi(It.layout_symbol["icon-allow-overlap"]),"icon-ignore-placement":new fi(It.layout_symbol["icon-ignore-placement"]),"icon-optional":new fi(It.layout_symbol["icon-optional"]),"icon-rotation-alignment":new fi(It.layout_symbol["icon-rotation-alignment"]),"icon-size":new yi(It.layout_symbol["icon-size"]),"icon-text-fit":new fi(It.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new fi(It.layout_symbol["icon-text-fit-padding"]),"icon-image":new yi(It.layout_symbol["icon-image"]),"icon-rotate":new yi(It.layout_symbol["icon-rotate"]),"icon-padding":new fi(It.layout_symbol["icon-padding"]),"icon-keep-upright":new fi(It.layout_symbol["icon-keep-upright"]),"icon-offset":new yi(It.layout_symbol["icon-offset"]),"icon-anchor":new yi(It.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new fi(It.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new fi(It.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new fi(It.layout_symbol["text-rotation-alignment"]),"text-field":new yi(It.layout_symbol["text-field"]),"text-font":new yi(It.layout_symbol["text-font"]),"text-size":new yi(It.layout_symbol["text-size"]),"text-max-width":new yi(It.layout_symbol["text-max-width"]),"text-line-height":new fi(It.layout_symbol["text-line-height"]),"text-letter-spacing":new yi(It.layout_symbol["text-letter-spacing"]),"text-justify":new yi(It.layout_symbol["text-justify"]),"text-radial-offset":new yi(It.layout_symbol["text-radial-offset"]),"text-variable-anchor":new fi(It.layout_symbol["text-variable-anchor"]),"text-anchor":new yi(It.layout_symbol["text-anchor"]),"text-max-angle":new fi(It.layout_symbol["text-max-angle"]),"text-writing-mode":new fi(It.layout_symbol["text-writing-mode"]),"text-rotate":new yi(It.layout_symbol["text-rotate"]),"text-padding":new fi(It.layout_symbol["text-padding"]),"text-keep-upright":new fi(It.layout_symbol["text-keep-upright"]),"text-transform":new yi(It.layout_symbol["text-transform"]),"text-offset":new yi(It.layout_symbol["text-offset"]),"text-allow-overlap":new fi(It.layout_symbol["text-allow-overlap"]),"text-ignore-placement":new fi(It.layout_symbol["text-ignore-placement"]),"text-optional":new fi(It.layout_symbol["text-optional"])}),fl={paint:new gi({"icon-opacity":new yi(It.paint_symbol["icon-opacity"]),"icon-color":new yi(It.paint_symbol["icon-color"]),"icon-halo-color":new yi(It.paint_symbol["icon-halo-color"]),"icon-halo-width":new yi(It.paint_symbol["icon-halo-width"]),"icon-halo-blur":new yi(It.paint_symbol["icon-halo-blur"]),"icon-translate":new fi(It.paint_symbol["icon-translate"]),"icon-translate-anchor":new fi(It.paint_symbol["icon-translate-anchor"]),"text-opacity":new yi(It.paint_symbol["text-opacity"]),"text-color":new yi(It.paint_symbol["text-color"],{runtimeType:Rt,getOverride:function(t){return t.textColor},hasOverride:function(t){return !!t.textColor}}),"text-halo-color":new yi(It.paint_symbol["text-halo-color"]),"text-halo-width":new yi(It.paint_symbol["text-halo-width"]),"text-halo-blur":new yi(It.paint_symbol["text-halo-blur"]),"text-translate":new fi(It.paint_symbol["text-translate"]),"text-translate-anchor":new fi(It.paint_symbol["text-translate-anchor"])}),layout:hl},yl=function(t){this.type=t.property.overrides?t.property.overrides.runtimeType:Vt,this.defaultValue=t;};yl.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},yl.prototype.eachChild=function(t){this.defaultValue.isConstant()||t(this.defaultValue.value._styleExpression.expression);},yl.prototype.outputDefined=function(){return !1},yl.prototype.serialize=function(){return null},Fn("FormatSectionOverride",yl,{omit:["defaultValue"]});var dl=function(t){function e(e){t.call(this,e,fl);}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});}}},Ml.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 S()||e.mustQueue?(this.tasks[r]=e,this.taskQueue.push(r),this.invoker.trigger()):this.processTask(r,e);},Ml.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);}},Ml.prototype.processTask=function(t,e){var r=this;if(""===e.type){var n=this.callbacks[t];delete this.callbacks[t],n&&(e.error?n(Un(e.error)):n(null,Un(e.data)));}else {var i=!1,a=z(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?On(e):null,data:On(n,a)},a);}:function(t){i=!0;},s=null,u=Un(e.data);if(this.parent[e.type])s=this.parent[e.type](e.sourceMapId,u,o);else if(this.parent.getWorkerSource){var l=e.type.split(".");s=this.parent.getWorkerSource(e.sourceMapId,l[0],u.source)[l[1]](u,o);}else o(new Error("Could not find function "+e.type));!i&&s&&s.cancel&&(this.cancelCallbacks[t]=s.cancel);}},Ml.prototype.remove=function(){this.invoker.remove(),this.target.removeEventListener("message",this.receive,!1);};var Tl=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]));};Tl.prototype.setNorthEast=function(t){return this._ne=t instanceof Pl?new Pl(t.lng,t.lat):Pl.convert(t),this},Tl.prototype.setSouthWest=function(t){return this._sw=t instanceof Pl?new Pl(t.lng,t.lat):Pl.convert(t),this},Tl.prototype.extend=function(t){var e,r,n=this._sw,i=this._ne;if(t instanceof Pl)e=t,r=t;else {if(!(t instanceof Tl))return Array.isArray(t)?4===t.length||t.every(Array.isArray)?this.extend(Tl.convert(t)):this.extend(Pl.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 Pl(e.lng,e.lat),this._ne=new Pl(r.lng,r.lat)),this},Tl.prototype.getCenter=function(){return new Pl((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)},Tl.prototype.getSouthWest=function(){return this._sw},Tl.prototype.getNorthEast=function(){return this._ne},Tl.prototype.getNorthWest=function(){return new Pl(this.getWest(),this.getNorth())},Tl.prototype.getSouthEast=function(){return new Pl(this.getEast(),this.getSouth())},Tl.prototype.getWest=function(){return this._sw.lng},Tl.prototype.getSouth=function(){return this._sw.lat},Tl.prototype.getEast=function(){return this._ne.lng},Tl.prototype.getNorth=function(){return this._ne.lat},Tl.prototype.toArray=function(){return [this._sw.toArray(),this._ne.toArray()]},Tl.prototype.toString=function(){return "LngLatBounds("+this._sw.toString()+", "+this._ne.toString()+")"},Tl.prototype.isEmpty=function(){return !(this._sw&&this._ne)},Tl.prototype.contains=function(t){var e=Pl.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},Tl.convert=function(t){return !t||t instanceof Tl?t:new Tl(t)};var Pl=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")};Pl.prototype.wrap=function(){return new Pl(l(this.lng,-180,180),this.lat)},Pl.prototype.toArray=function(){return [this.lng,this.lat]},Pl.prototype.toString=function(){return "LngLat("+this.lng+", "+this.lat+")"},Pl.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))},Pl.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 Tl(new Pl(this.lng-r,this.lat-e),new Pl(this.lng+r,this.lat+e))},Pl.convert=function(t){if(t instanceof Pl)return t;if(Array.isArray(t)&&(2===t.length||3===t.length))return new Pl(Number(t[0]),Number(t[1]));if(!Array.isArray(t)&&"object"==typeof t&&null!==t)return new Pl(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 Bl=2*Math.PI*6371008.8;function Vl(t){return Bl*Math.cos(t*Math.PI/180)}function Fl(t){return (180+t)/360}function Dl(t){return (180-180/Math.PI*Math.log(Math.tan(Math.PI/4+t*Math.PI/360)))/360}function Ll(t,e){return t/Vl(e)}function Rl(t){return 360/Math.PI*Math.atan(Math.exp((180-360*t)*Math.PI/180))-90}var Ol=function(t,e,r){void 0===r&&(r=0),this.x=+t,this.y=+e,this.z=+r;};Ol.fromLngLat=function(t,e){void 0===e&&(e=0);var r=Pl.convert(t);return new Ol(Fl(r.lng),Dl(r.lat),Ll(e,r.lat))},Ol.prototype.toLngLat=function(){return new Pl(360*this.x-180,Rl(this.y))},Ol.prototype.toAltitude=function(){return this.z*Vl(Rl(this.y))},Ol.prototype.meterInMercatorCoordinateUnits=function(){return 1/Bl*(t=Rl(this.y),1/Math.cos(t*Math.PI/180));var t;};var Ul=function(t,e,r){this.z=t,this.x=e,this.y=r,this.key=Nl(0,t,t,e,r);};Ul.prototype.equals=function(t){return this.z===t.z&&this.x===t.x&&this.y===t.y},Ul.prototype.url=function(t,e){var r,n,i,a,o,s=(n=this.y,i=this.z,a=El(256*(r=this.x),256*(n=Math.pow(2,i)-n-1),i),o=El(256*(r+1),256*(n+1),i),a[0]+","+a[1]+","+o[0]+","+o[1]),u=function(t,e,r){for(var n,i="",a=t;a>0;a--)i+=(e&(n=1<this.canonical.z?new ql(t,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new ql(t,this.wrap,t,this.canonical.x>>e,this.canonical.y>>e)},ql.prototype.calculateScaledKey=function(t,e){var r=this.canonical.z-t;return t>this.canonical.z?Nl(this.wrap*+e,t,this.canonical.z,this.canonical.x,this.canonical.y):Nl(this.wrap*+e,t,t,this.canonical.x>>r,this.canonical.y>>r)},ql.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},ql.prototype.children=function(t){if(this.overscaledZ>=t)return [new ql(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 ql(e,this.wrap,e,r,n),new ql(e,this.wrap,e,r+1,n),new ql(e,this.wrap,e,r,n+1),new ql(e,this.wrap,e,r+1,n+1)]},ql.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)},Kl.prototype._unpackMapbox=function(t,e,r){return (256*t*256+256*e+r)/10-1e4},Kl.prototype._unpackTerrarium=function(t,e,r){return 256*t+e+r/256-32768},Kl.prototype.getPixels=function(){return new fo({width:this.stride,height:this.stride},new Uint8Array(this.data.buffer))},Kl.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,u=-r*this.dim,l=a;l=0&&p[3]>=0&&s.insert(o,p[0],p[1],p[2],p[3]);}},Hl.prototype.loadVTLayers=function(){return this.vtLayers||(this.vtLayers=new ds.VectorTile(new Ks(this.rawTileData)).layers,this.sourceLayerCoder=new Gl(this.vtLayers?Object.keys(this.vtLayers).sort():["_geojsonTileLayer"])),this.vtLayers},Hl.prototype.query=function(t,e,r,n){var a=this;this.loadVTLayers();for(var o=t.params||{},s=8192/t.tileSize/t.scale,u=rn(o.filter),l=t.queryGeometry,p=t.queryPadding*s,c=$l(l),h=this.grid.query(c.minX-p,c.minY-p,c.maxX+p,c.maxY+p),f=$l(t.cameraQueryGeometry),y=this.grid3D.query(f.minX-p,f.minY-p,f.maxX+p,f.maxY+p,(function(e,r,n,a){return function(t,e,r,n,a){for(var o=0,s=t;o=u.x&&a>=u.y)return !0}var l=[new i(e,r),new i(e,a),new i(n,a),new i(n,r)];if(t.length>2)for(var p=0,c=l;p=0)return !0;return !1}(a,c)){var h=this.sourceLayerCoder.decode(r),f=this.vtLayers[h].feature(n);if(i.filter(new ii(this.tileID.overscaledZ),f))for(var y=this.getId(f,h),d=0;dn)i=!1;else if(e)if(this.expirationTimeot&&(t.getActor().send("enforceCacheSizeLimit",at),pt=0);},t.clamp=u,t.clearTileCache=function(t){var e=self.caches.delete("mapbox-tiles");t&&e.catch(t).then((function(){return t()}));},t.clipLine=Uu,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=Os,t.config=L,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=Nr,t.createLayout=Ai,t.createStyleLayer=function(t){return "custom"===t.type?new bl(t):new wl[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],u=r[2];return t[0]=i*u-a*s,t[1]=a*o-n*u,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=je,t.offscreenCanvasSupported=ct,t.ortho=function(t,e,r,n,i,a,o){var s=1/(e-r),u=1/(n-i),l=1/(a-o);return t[0]=-2*s,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*u,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*l,t[11]=0,t[12]=(e+r)*s,t[13]=(i+n)*u,t[14]=(o+a)*l,t[15]=1,t},t.parseGlyphPBF=function(t){return new Ks(t).readFields(uu,[])},t.pbf=Ks,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,u=t.layers[0]._unevaluatedLayout._values,l={};if("composite"===t.textSizeData.kind){var p=t.textSizeData,c=p.maxZoom;l.compositeTextSizes=[u["text-size"].possiblyEvaluate(new ii(p.minZoom),o),u["text-size"].possiblyEvaluate(new ii(c),o)];}if("composite"===t.iconSizeData.kind){var h=t.iconSizeData,f=h.maxZoom;l.compositeIconSizes=[u["icon-size"].possiblyEvaluate(new ii(h.minZoom),o),u["icon-size"].possiblyEvaluate(new ii(f),o)];}l.layoutTextSize=u["text-size"].possiblyEvaluate(new ii(t.zoom+1),o),l.layoutIconSize=u["icon-size"].possiblyEvaluate(new ii(t.zoom+1),o),l.textMaxSize=u["text-size"].possiblyEvaluate(new ii(18));for(var y=24*s.get("text-line-height"),d="map"===s.get("text-rotation-alignment")&&"point"!==s.get("symbol-placement"),m=s.get("text-keep-upright"),v=s.get("text-size"),g=function(){var a=b[x],u=s.get("text-font").evaluate(a,{},o).join(","),p=v.evaluate(a,{},o),c=l.layoutTextSize.evaluate(a,{},o),h=l.layoutIconSize.evaluate(a,{},o),f={horizontal:{},vertical:void 0},g=a.text,_=[0,0];if(g){var A=g.toString(),S=24*s.get("text-letter-spacing").evaluate(a,{},o),k=function(t){for(var e=0,r=t;e=8192||c.y<0||c.y>=8192||function(t,e,r,n,i,a,o,s,u,l,p,c,h,f,y,d,m,v,g,x,b,_,A,S,k){var I,z,C,M,E,T=t.addToLineVertexArray(e,r),P=0,B=0,V=0,F=0,D=-1,L=-1,R={},O=la(""),U=0,j=0;if(void 0===s._unevaluatedLayout.getValue("text-radial-offset")?(U=(I=s.layout.get("text-offset").evaluate(b,{},S).map((function(t){return 24*t})))[0],j=I[1]):(U=24*s.layout.get("text-radial-offset").evaluate(b,{},S),j=Wu),t.allowVerticalPlacement&&n.vertical){var q=s.layout.get("text-rotate").evaluate(b,{},S)+90;M=new Zu(u,e,l,p,c,n.vertical,h,f,y,q),o&&(E=new Zu(u,e,l,p,c,o,m,v,y,q));}if(i){var N=s.layout.get("icon-rotate").evaluate(b,{}),K="none"!==s.layout.get("icon-text-fit"),G=ju(i,N,A,K),Z=o?ju(o,N,A,K):void 0;C=new Zu(u,e,l,p,c,i,m,v,!1,N),P=4*G.length;var X=t.iconSizeData,J=null;"source"===X.kind?(J=[128*s.layout.get("icon-size").evaluate(b,{})])[0]>32640&&w(t.layerIds[0]+': Value for "icon-size" is >= 255. Reduce your "icon-size".'):"composite"===X.kind&&((J=[128*_.compositeIconSizes[0].evaluate(b,{},S),128*_.compositeIconSizes[1].evaluate(b,{},S)])[0]>32640||J[1]>32640)&&w(t.layerIds[0]+': Value for "icon-size" is >= 255. Reduce your "icon-size".'),t.addSymbols(t.icon,G,J,x,g,b,!1,e,T.lineStartIndex,T.lineLength,-1,S),D=t.icon.placedSymbolArray.length-1,Z&&(B=4*Z.length,t.addSymbols(t.icon,Z,J,x,g,b,du.vertical,e,T.lineStartIndex,T.lineLength,-1,S),L=t.icon.placedSymbolArray.length-1);}for(var H in n.horizontal){var Y=n.horizontal[H];if(!z){O=la(Y.text);var $=s.layout.get("text-rotate").evaluate(b,{},S);z=new Zu(u,e,l,p,c,Y,h,f,y,$);}var W=1===Y.positionedLines.length;if(V+=el(t,e,Y,a,s,y,b,d,T,n.vertical?du.horizontal:du.horizontalOnly,W?Object.keys(n.horizontal):[H],R,D,_,S),W)break}n.vertical&&(F+=el(t,e,n.vertical,a,s,y,b,d,T,du.vertical,["vertical"],R,L,_,S));var Q=z?z.boxStartIndex:t.collisionBoxArray.length,tt=z?z.boxEndIndex:t.collisionBoxArray.length,et=M?M.boxStartIndex:t.collisionBoxArray.length,rt=M?M.boxEndIndex:t.collisionBoxArray.length,nt=C?C.boxStartIndex:t.collisionBoxArray.length,it=C?C.boxEndIndex:t.collisionBoxArray.length,at=E?E.boxStartIndex:t.collisionBoxArray.length,ot=E?E.boxEndIndex:t.collisionBoxArray.length,st=-1,ut=function(t,e){return t&&t.circleDiameter?Math.max(t.circleDiameter,e):e};st=ut(z,st),st=ut(M,st),st=ut(C,st);var lt=(st=ut(E,st))>-1?1:0;lt&&(st*=k/24),t.glyphOffsetArray.length>=cl.MAX_GLYPHS&&w("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,R.right>=0?R.right:-1,R.center>=0?R.center:-1,R.left>=0?R.left:-1,R.vertical||-1,D,L,O,Q,tt,et,rt,nt,it,at,ot,l,V,F,P,B,lt,0,h,U,j,st);}(t,c,s,r,n,i,h,t.layers[0],t.collisionBoxArray,e.index,e.sourceLayerIndex,t.index,v,_,k,u,x,A,I,y,e,a,l,p,o);};if("line"===z)for(var T=0,P=Uu(e.geometry,0,0,8192,8192);T1){var U=Ru(O,S,r.vertical||d,n,24,g);U&&E(O,U);}}else if("Polygon"===e.type)for(var j=0,q=Wo(e.geometry,0);j=T.maxzoom||"none"!==T.visibility&&(s(P,this.zoom,i),(g[T.id]=T.createBucket({index:h.bucketLayerIDs.length,layers:P,zoom:this.zoom,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:w,sourceID:this.source})).populate(S,v,this.tileID.canonical),h.bucketLayerIDs.push(P.map((function(e){return e.id}))));}}}var C=e.mapObject(v.glyphDependencies,(function(e){return Object.keys(e).map(Number)}));Object.keys(C).length?n.send("getGlyphs",{uid:this.uid,stacks:C},(function(e,t){c||(c=e,p=t,O.call(l));})):p={};var D=Object.keys(v.iconDependencies);D.length?n.send("getImages",{icons:D,source:this.source,tileID:this.tileID,type:"icons"},(function(e,t){c||(c=e,f=t,O.call(l));})):f={};var L=Object.keys(v.patternDependencies);function O(){if(c)return a(c);if(p&&f&&d){var t=new o(p),r=new e.ImageAtlas(f,d);for(var n in g){var l=g[n];l instanceof e.SymbolBucket?(s(l.layers,this.zoom,i),e.performSymbolLayout(l,p,t.positions,f,r.iconPositions,this.showCollisionBoxes,this.tileID.canonical)):l.hasPattern&&(l instanceof e.LineBucket||l instanceof e.FillBucket||l instanceof e.FillExtrusionBucket)&&(s(l.layers,this.zoom,i),l.addFeatures(v,this.tileID.canonical,r.patternPositions));}this.status="done",a(null,{buckets:e.values(g).filter((function(e){return !e.isEmpty()})),featureIndex:h,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:t.image,imageAtlas:r,glyphMap:this.returnDependencies?p:null,iconMap:this.returnDependencies?f:null,glyphPositions:this.returnDependencies?t.positions:null});}}L.length?n.send("getImages",{icons:L,source:this.source,tileID:this.tileID,type:"patterns"},(function(e,t){c||(c=e,d=t,O.call(l));})):d={},O.call(this);};var l=function(e,t,r,i){this.actor=e,this.layerIndex=t,this.availableImages=r,this.loadVectorData=i||a,this.loading={},this.loaded={};};l.prototype.loadTile=function(t,r){var i=this,o=t.uid;this.loading||(this.loading={});var s=!!(t&&t.request&&t.request.collectResourceTiming)&&new e.RequestPerformance(t.request),a=this.loading[o]=new n(t);a.abort=this.loadVectorData(t,(function(t,n){if(delete i.loading[o],t||!n)return a.status="done",i.loaded[o]=a,r(t);var l=n.rawData,u={};n.expires&&(u.expires=n.expires),n.cacheControl&&(u.cacheControl=n.cacheControl);var h={};if(s){var c=s.finish();c&&(h.resourceTiming=JSON.parse(JSON.stringify(c)));}a.vectorTile=n.vectorTile,a.parse(n.vectorTile,i.layerIndex,i.availableImages,i.actor,(function(t,i){if(t||!i)return r(t);r(null,e.extend({rawTileData:l.slice(0)},i,u,h));})),i.loaded=i.loaded||{},i.loaded[o]=a;}));},l.prototype.reloadTile=function(e,t){var r=this,i=this.loaded,o=e.uid,n=this;if(i&&i[o]){var s=i[o];s.showCollisionBoxes=e.showCollisionBoxes;var a=function(e,i){var o=s.reloadCallback;o&&(delete s.reloadCallback,s.parse(s.vectorTile,n.layerIndex,r.availableImages,n.actor,o)),t(e,i);};"parsing"===s.status?s.reloadCallback=a:"done"===s.status&&(s.vectorTile?s.parse(s.vectorTile,this.layerIndex,this.availableImages,this.actor,a):a());}},l.prototype.abortTile=function(e,t){var r=this.loading,i=e.uid;r&&r[i]&&r[i].abort&&(r[i].abort(),delete r[i]),t();},l.prototype.removeTile=function(e,t){var r=this.loaded,i=e.uid;r&&r[i]&&delete r[i],t();};var u=e.window.ImageBitmap,h=function(){this.loaded={};};function c(e,t){if(0!==e.length){p(e[0],t);for(var r=1;r=0!=!!t&&e.reverse();}h.prototype.loadTile=function(t,r){var i=t.uid,o=t.encoding,n=t.rawImageData,s=u&&n instanceof u?this.getImageData(n):n,a=new e.DEMData(i,s,o);this.loaded=this.loaded||{},this.loaded[i]=a,r(null,a);},h.prototype.getImageData=function(t){this.offscreenCanvas&&this.offscreenCanvasContext||(this.offscreenCanvas=new OffscreenCanvas(t.width,t.height),this.offscreenCanvasContext=this.offscreenCanvas.getContext("2d")),this.offscreenCanvas.width=t.width,this.offscreenCanvas.height=t.height,this.offscreenCanvasContext.drawImage(t,0,0,t.width,t.height);var r=this.offscreenCanvasContext.getImageData(-1,-1,t.width+2,t.height+2);return this.offscreenCanvasContext.clearRect(0,0,this.offscreenCanvas.width,this.offscreenCanvas.height),new e.RGBAImage({width:r.width,height:r.height},r.data)},h.prototype.removeTile=function(e){var t=this.loaded,r=e.uid;t&&t[r]&&delete t[r];};var f=e.vectorTile.VectorTileFeature.prototype.toGeoJSON,d=function(t){this._feature=t,this.extent=e.EXTENT,this.type=t.type,this.properties=t.tags,"id"in t&&!isNaN(t.id)&&(this.id=parseInt(t.id,10));};d.prototype.loadGeometry=function(){if(1===this._feature.type){for(var t=[],r=0,i=this._feature.geometry;r>31}function T(e,t){for(var r=e.loadGeometry(),i=e.type,o=0,n=0,s=r.length,a=0;a>1;!function e(t,r,i,o,n,s){for(;n>o;){if(n-o>600){var a=n-o+1,l=i-o+1,u=Math.log(a),h=.5*Math.exp(2*u/3),c=.5*Math.sqrt(u*h*(a-h)/a)*(l-a/2<0?-1:1);e(t,r,i,Math.max(o,Math.floor(i-l*h/a+c)),Math.min(n,Math.floor(i+(a-l)*h/a+c)),s);}var p=r[2*i+s],f=o,d=n;for(D(t,r,o,i),r[2*n+s]>p&&D(t,r,o,n);fp;)d--;}r[2*o+s]===p?D(t,r,o,d):D(t,r,++d,n),d<=i&&(o=d+1),i<=d&&(n=d-1);}}(t,r,a,o,n,s%2),e(t,r,i,o,a-1,s+1),e(t,r,i,a+1,n,s+1);}}(s,a,i,0,s.length-1,0);};F.prototype.range=function(e,t,r,i){return function(e,t,r,i,o,n,s){for(var a,l,u=[0,e.length-1,0],h=[];u.length;){var c=u.pop(),p=u.pop(),f=u.pop();if(p-f<=s)for(var d=f;d<=p;d++)l=t[2*d+1],(a=t[2*d])>=r&&a<=o&&l>=i&&l<=n&&h.push(e[d]);else {var g=Math.floor((f+p)/2);l=t[2*g+1],(a=t[2*g])>=r&&a<=o&&l>=i&&l<=n&&h.push(e[g]);var v=(c+1)%2;(0===c?r<=a:i<=l)&&(u.push(f),u.push(g-1),u.push(v)),(0===c?o>=a:n>=l)&&(u.push(g+1),u.push(p),u.push(v));}}return h}(this.ids,this.coords,e,t,r,i,this.nodeSize)},F.prototype.within=function(e,t,r){return function(e,t,r,i,o,n){for(var s=[0,e.length-1,0],a=[],l=o*o;s.length;){var u=s.pop(),h=s.pop(),c=s.pop();if(h-c<=n)for(var p=c;p<=h;p++)O(t[2*p],t[2*p+1],r,i)<=l&&a.push(e[p]);else {var f=Math.floor((c+h)/2),d=t[2*f],g=t[2*f+1];O(d,g,r,i)<=l&&a.push(e[f]);var v=(u+1)%2;(0===u?r-o<=d:i-o<=g)&&(s.push(c),s.push(f-1),s.push(v)),(0===u?r+o>=d:i+o>=g)&&(s.push(f+1),s.push(h),s.push(v));}}return a}(this.ids,this.coords,e,t,r,this.nodeSize)};var N={minZoom:0,maxZoom:16,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:function(e){return e}},J=function(e){this.options=V(Object.create(N),e),this.trees=new Array(this.options.maxZoom+1);};function Z(e,t,r,i,o){return {x:e,y:t,zoom:1/0,id:r,parentId:-1,numPoints:i,properties:o}}function A(e,t){var r=e.geometry.coordinates,i=r[1];return {x:Y(r[0]),y:j(i),zoom:1/0,index:t,parentId:-1}}function B(e){return {type:"Feature",id:e.id,properties:G(e),geometry:{type:"Point",coordinates:[(i=e.x,360*(i-.5)),(t=e.y,r=(180-360*t)*Math.PI/180,360*Math.atan(Math.exp(r))/Math.PI-90)]}};var t,r,i;}function G(e){var t=e.numPoints,r=t>=1e4?Math.round(t/1e3)+"k":t>=1e3?Math.round(t/100)/10+"k":t;return V(V({},e.properties),{cluster:!0,cluster_id:e.id,point_count:t,point_count_abbreviated:r})}function Y(e){return e/360+.5}function j(e){var t=Math.sin(e*Math.PI/180),r=.5-.25*Math.log((1+t)/(1-t))/Math.PI;return r<0?0:r>1?1:r}function V(e,t){for(var r in t)e[r]=t[r];return e}function X(e){return e.x}function W(e){return e.y}function R(e,t,r,i,o,n){var s=o-r,a=n-i;if(0!==s||0!==a){var l=((e-r)*s+(t-i)*a)/(s*s+a*a);l>1?(r=o,i=n):l>0&&(r+=s*l,i+=a*l);}return (s=e-r)*s+(a=t-i)*a}function q(e,t,r,i){var o={id:void 0===e?null:e,type:t,geometry:r,tags:i,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(e){var t=e.geometry,r=e.type;if("Point"===r||"MultiPoint"===r||"LineString"===r)U(e,t);else if("Polygon"===r||"MultiLineString"===r)for(var i=0;i0&&(s+=i?(o*u-l*n)/2:Math.sqrt(Math.pow(l-o,2)+Math.pow(u-n,2))),o=l,n=u;}var h=t.length-3;t[2]=1,function e(t,r,i,o){for(var n,s=o,a=i-r>>1,l=i-r,u=t[r],h=t[r+1],c=t[i],p=t[i+1],f=r+3;fs)n=f,s=d;else if(d===s){var g=Math.abs(f-a);go&&(n-r>3&&e(t,r,n,o),t[n+2]=s,i-n>3&&e(t,n,i,o));}(t,0,h,r),t[h+2]=1,t.size=Math.abs(s),t.start=0,t.end=t.size;}function Q(e,t,r,i){for(var o=0;o1?1:r}function re(e,t,r,i,o,n,s,a){if(i/=t,n>=(r/=t)&&s=i)return null;for(var l=[],u=0;u=r&&d=i)){var g=[];if("Point"===p||"MultiPoint"===p)ie(c,g,r,i,o);else if("LineString"===p)oe(c,g,r,i,o,!1,a.lineMetrics);else if("MultiLineString"===p)se(c,g,r,i,o,!1);else if("Polygon"===p)se(c,g,r,i,o,!0);else if("MultiPolygon"===p)for(var v=0;v=r&&s<=i&&(t.push(e[n]),t.push(e[n+1]),t.push(e[n+2]));}}function oe(e,t,r,i,o,n,s){for(var a,l,u=ne(e),h=0===o?le:ue,c=e.start,p=0;pr&&(l=h(u,f,d,v,m,r),s&&(u.start=c+a*l)):y>i?x=r&&(l=h(u,f,d,v,m,r),w=!0),x>i&&y<=i&&(l=h(u,f,d,v,m,i),w=!0),!n&&w&&(s&&(u.end=c+a*l),t.push(u),u=ne(e)),s&&(c+=a);}var S=e.length-3;f=e[S],d=e[S+1],g=e[S+2],(y=0===o?f:d)>=r&&y<=i&&ae(u,f,d,g),S=u.length-3,n&&S>=3&&(u[S]!==u[0]||u[S+1]!==u[1])&&ae(u,u[0],u[1],u[2]),u.length&&t.push(u);}function ne(e){var t=[];return t.size=e.size,t.start=e.start,t.end=e.end,t}function se(e,t,r,i,o,n){for(var s=0;ss.maxX&&(s.maxX=h),c>s.maxY&&(s.maxY=c);}return s}function ge(e,t,r,i){var o=t.geometry,n=t.type,s=[];if("Point"===n||"MultiPoint"===n)for(var a=0;a0&&t.size<(o?s:i))r.numPoints+=t.length/3;else {for(var a=[],l=0;ls)&&(r.numSimplified++,a.push(t[l]),a.push(t[l+1])),r.numPoints++;o&&function(e,t){for(var r=0,i=0,o=e.length,n=o-2;i0===t)for(i=0,o=e.length;i24)throw new Error("maxZoom should be in the 0-24 range");if(t.promoteId&&t.generateId)throw new Error("promoteId and generateId cannot be used together.");var i=function(e,t){var r=[];if("FeatureCollection"===e.type)for(var i=0;i=i;u--){var h=+Date.now();a=this._cluster(a,u),this.trees[u]=new F(a,X,W,n,Float32Array),r&&console.log("z%d: %d clusters in %dms",u,a.length,+Date.now()-h);}return r&&console.timeEnd("total time"),this},J.prototype.getClusters=function(e,t){var r=((e[0]+180)%360+360)%360-180,i=Math.max(-90,Math.min(90,e[1])),o=180===e[2]?180:((e[2]+180)%360+360)%360-180,n=Math.max(-90,Math.min(90,e[3]));if(e[2]-e[0]>=360)r=-180,o=180;else if(r>o){var s=this.getClusters([r,i,180,n],t),a=this.getClusters([-180,i,o,n],t);return s.concat(a)}for(var l=this.trees[this._limitZoom(t)],u=[],h=0,c=l.range(Y(r),j(n),Y(o),j(i));h1?this._map(a,!0):null,d=(s<<5)+(t+1)+this.points.length,g=0,v=u;g>5},J.prototype._getOriginZoom=function(e){return (e-this.points.length)%32},J.prototype._map=function(e,t){if(e.numPoints)return t?V({},e.properties):e.properties;var r=this.points[e.index].properties,i=this.options.map(r);return t&&i===r?V({},i):i},me.prototype.options={maxZoom:14,indexMaxZoom:5,indexMaxPoints:1e5,tolerance:3,extent:4096,buffer:64,lineMetrics:!1,promoteId:null,generateId:!1,debug:0},me.prototype.splitTile=function(e,t,r,i,o,n,s){for(var a=[e,t,r,i],l=this.options,u=l.debug;a.length;){i=a.pop(),r=a.pop(),t=a.pop(),e=a.pop();var h=1<1&&console.time("creation"),p=this.tiles[c]=de(e,t,r,i,l),this.tileCoords.push({z:t,x:r,y:i}),u)){u>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",t,r,i,p.numFeatures,p.numPoints,p.numSimplified),console.timeEnd("creation"));var f="z"+t;this.stats[f]=(this.stats[f]||0)+1,this.total++;}if(p.source=e,o){if(t===l.maxZoom||t===o)continue;var d=1<1&&console.time("clipping");var g,v,m,y,x,w,S=.5*l.buffer/l.extent,I=.5-S,M=.5+S,b=1+S;g=v=m=y=null,x=re(e,h,r-S,r+M,0,p.minX,p.maxX,l),w=re(e,h,r+I,r+b,0,p.minX,p.maxX,l),e=null,x&&(g=re(x,h,i-S,i+M,1,p.minY,p.maxY,l),v=re(x,h,i+I,i+b,1,p.minY,p.maxY,l),x=null),w&&(m=re(w,h,i-S,i+M,1,p.minY,p.maxY,l),y=re(w,h,i+I,i+b,1,p.minY,p.maxY,l),w=null),u>1&&console.timeEnd("clipping"),a.push(g||[],t+1,2*r,2*i),a.push(v||[],t+1,2*r,2*i+1),a.push(m||[],t+1,2*r+1,2*i),a.push(y||[],t+1,2*r+1,2*i+1);}}},me.prototype.getTile=function(e,t,r){var i=this.options,o=i.extent,n=i.debug;if(e<0||e>24)return null;var s=1<1&&console.log("drilling down to z%d-%d-%d",e,t,r);for(var l,u=e,h=t,c=r;!l&&u>0;)u--,h=Math.floor(h/2),c=Math.floor(c/2),l=this.tiles[ye(u,h,c)];return l&&l.source?(n>1&&console.log("found parent tile z%d-%d-%d",u,h,c),n>1&&console.time("drilling down"),this.splitTile(l.source,u,h,c,e,t,r),n>1&&console.timeEnd("drilling down"),this.tiles[a]?pe(this.tiles[a],o):null):null};var we=function(t){function r(e,r,i,o){t.call(this,e,r,i,xe),o&&(this.loadGeoJSON=o);}return t&&(r.__proto__=t),(r.prototype=Object.create(t&&t.prototype)).constructor=r,r.prototype.loadData=function(e,t){this._pendingCallback&&this._pendingCallback(null,{abandoned:!0}),this._pendingCallback=t,this._pendingLoadDataParams=e,this._state&&"Idle"!==this._state?this._state="NeedsLoadData":(this._state="Coalescing",this._loadData());},r.prototype._loadData=function(){var t=this;if(this._pendingCallback&&this._pendingLoadDataParams){var r=this._pendingCallback,i=this._pendingLoadDataParams;delete this._pendingCallback,delete this._pendingLoadDataParams;var o=!!(i&&i.request&&i.request.collectResourceTiming)&&new e.RequestPerformance(i.request);this.loadGeoJSON(i,(function(n,s){if(n||!s)return r(n);if("object"!=typeof s)return r(new Error("Input data given to '"+i.source+"' is not a valid GeoJSON object."));!function e(t,r){var i,o=t&&t.type;if("FeatureCollection"===o)for(i=0;i=0?0:e.button},i.remove=function(t){t.parentNode&&t.parentNode.removeChild(t);};var p=function(e){function i(){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&&(i.__proto__=e),(i.prototype=Object.create(e&&e.prototype)).constructor=i,i.prototype.isLoaded=function(){return this.loaded},i.prototype.setLoaded=function(t){if(this.loaded!==t&&(this.loaded=t,t)){for(var e=0,i=this.requestors;e=0?1.2:1));}function g(t,e,i,o,r,a,n){for(var s=0;s65535)e(new Error("glyphs > 65535 not supported"));else if(a.ranges[s])e(null,{stack:i,id:r,glyph:n});else {var l=a.requests[s];l||(l=a.requests[s]=[],y.loadGlyphRange(i,s,o.url,o.requestManager,(function(t,e){if(e){for(var i in e)o._doesCharSupportLocalGlyph(+i)||(a.glyphs[+i]=e[+i]);a.ranges[s]=!0;}for(var r=0,n=l;r1&&(s=t[++n]);var c=Math.abs(l-s.left),u=Math.abs(l-s.right),h=Math.min(c,u),p=void 0,d=r/i*(o+1);if(s.isDash){var _=o-Math.abs(d);p=Math.sqrt(h*h+_*_);}else p=o-Math.sqrt(h*h+d*d);this.data[a+l]=Math.max(0,Math.min(255,p+128));}},T.prototype.addRegularDash=function(t){for(var e=t.length-1;e>=0;--e){var i=t[e],o=t[e+1];i.zeroLength?t.splice(e,1):o&&o.isDash===i.isDash&&(o.left=i.left,t.splice(e,1));}var r=t[0],a=t[t.length-1];r.isDash===a.isDash&&(r.left=a.left-this.width,a.right=r.right+this.width);for(var n=this.width*this.nextRow,s=0,l=t[s],c=0;c1&&(l=t[++s]);var u=Math.abs(c-l.left),h=Math.abs(c-l.right),p=Math.min(u,h);this.data[n+c]=Math.max(0,Math.min(255,(l.isDash?p:-p)+128));}},T.prototype.addDash=function(e,i){var o=i?7:0,r=2*o+1;if(this.nextRow+r>this.height)return t.warnOnce("LineAtlas out of space"),null;for(var a=0,n=0;n=o&&e.x=r&&e.y0&&(l[new t.OverscaledTileID(e.overscaledZ,a,i.z,r,i.y-1).key]={backfilled:!1},l[new t.OverscaledTileID(e.overscaledZ,e.wrap,i.z,i.x,i.y-1).key]={backfilled:!1},l[new t.OverscaledTileID(e.overscaledZ,s,i.z,n,i.y-1).key]={backfilled:!1}),i.y+10&&(o.resourceTiming=e._resourceTiming,e._resourceTiming=[]),e.fire(new t.Event("data",o));}}));},i.prototype.onAdd=function(t){this.map=t,this.load();},i.prototype.setData=function(e){var i=this;return this._data=e,this.fire(new t.Event("dataloading",{dataType:"source"})),this._updateWorkerData((function(e){if(e)i.fire(new t.ErrorEvent(e));else {var o={dataType:"source",sourceDataType:"content"};i._collectResourceTiming&&i._resourceTiming&&i._resourceTiming.length>0&&(o.resourceTiming=i._resourceTiming,i._resourceTiming=[]),i.fire(new t.Event("data",o));}})),this},i.prototype.getClusterExpansionZoom=function(t,e){return this.actor.send("geojson.getClusterExpansionZoom",{clusterId:t,source:this.id},e),this},i.prototype.getClusterChildren=function(t,e){return this.actor.send("geojson.getClusterChildren",{clusterId:t,source:this.id},e),this},i.prototype.getClusterLeaves=function(t,e,i,o){return this.actor.send("geojson.getClusterLeaves",{source:this.id,clusterId:t,limit:e,offset:i},o),this},i.prototype._updateWorkerData=function(e){var i=this;this._loaded=!1;var o=t.extend({},this.workerOptions),r=this._data;"string"==typeof r?(o.request=this.map._requestManager.transformRequest(t.browser.resolveURL(r),t.ResourceType.Source),o.request.collectResourceTiming=this._collectResourceTiming):o.data=JSON.stringify(r),this.actor.send(this.type+".loadData",o,(function(t,r){i._removed||r&&r.abandoned||(i._loaded=!0,r&&r.resourceTiming&&r.resourceTiming[i.id]&&(i._resourceTiming=r.resourceTiming[i.id].slice(0)),i.actor.send(i.type+".coalesce",{source:o.source},null),e(t));}));},i.prototype.loaded=function(){return this._loaded},i.prototype.loadTile=function(e,i){var o=this,r=e.actor?"reloadTile":"loadTile";e.actor=this.actor,e.request=this.actor.send(r,{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?i(null):t?i(t):(e.loadVectorData(a,o.map.painter,"reloadTile"===r),i(null))}));},i.prototype.abortTile=function(t){t.request&&(t.request.cancel(),delete t.request),t.aborted=!0;},i.prototype.unloadTile=function(t){t.unloadVectorData(),this.actor.send("removeTile",{uid:t.uid,type:this.type,source:this.id});},i.prototype.onRemove=function(){this._removed=!0,this.actor.send("removeSource",{type:this.type,source:this.id});},i.prototype.serialize=function(){return t.extend({},this._options,{type:this.type,data:this._data})},i.prototype.hasTransition=function(){return !1},i}(t.Evented),M=t.createLayout([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]),L=function(e){function i(t,i,o,r){e.call(this),this.id=t,this.dispatcher=o,this.coordinates=i.coordinates,this.type="image",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(r),this.options=i;}return e&&(i.__proto__=e),(i.prototype=Object.create(e&&e.prototype)).constructor=i,i.prototype.load=function(e,i){var o=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(r,a){o._loaded=!0,r?o.fire(new t.ErrorEvent(r)):a&&(o.image=a,e&&(o.coordinates=e),i&&i(),o._finishLoading());}));},i.prototype.loaded=function(){return this._loaded},i.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},i.prototype._finishLoading=function(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new t.Event("data",{dataType:"source",sourceDataType:"metadata"})));},i.prototype.onAdd=function(t){this.map=t,this.load();},i.prototype.setCoordinates=function(e){var i=this;this.coordinates=e;var o=e.map(t.MercatorCoordinate.fromLngLat);this.tileID=function(e){for(var i=1/0,o=1/0,r=-1/0,a=-1/0,n=0,s=e;ni.end(0)?this.fire(new t.ErrorEvent(new t.ValidationError("sources."+this.id,null,"Playback for this video can be set only between the "+i.start(0)+" and "+i.end(0)+"-second mark."))):this.video.currentTime=e;}},i.prototype.getVideo=function(){return this.video},i.prototype.onAdd=function(t){this.map||(this.map=t,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)));},i.prototype.prepare=function(){if(!(0===Object.keys(this.tiles).length||this.video.readyState<2)){var e=this.map.painter.context,i=e.gl;for(var o in this.boundsBuffer||(this.boundsBuffer=e.createVertexBuffer(this._boundsArray,M.members)),this.boundsSegments||(this.boundsSegments=t.SegmentVector.simpleSegment(0,0,4,2)),this.texture?this.video.paused||(this.texture.bind(i.LINEAR,i.CLAMP_TO_EDGE),i.texSubImage2D(i.TEXTURE_2D,0,0,0,i.RGBA,i.UNSIGNED_BYTE,this.video)):(this.texture=new t.Texture(e,this.video,i.RGBA),this.texture.bind(i.LINEAR,i.CLAMP_TO_EDGE)),this.tiles){var r=this.tiles[o];"loaded"!==r.state&&(r.state="loaded",r.texture=this.texture);}}},i.prototype.serialize=function(){return {type:"video",urls:this.urls,coordinates:this.coordinates}},i.prototype.hasTransition=function(){return this.video&&!this.video.paused},i}(L),R=function(e){function i(i,o,r,a){e.call(this,i,o,r,a),o.coordinates?Array.isArray(o.coordinates)&&4===o.coordinates.length&&!o.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."+i,null,'"coordinates" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new t.ErrorEvent(new t.ValidationError("sources."+i,null,'missing required property "coordinates"'))),o.animate&&"boolean"!=typeof o.animate&&this.fire(new t.ErrorEvent(new t.ValidationError("sources."+i,null,'optional "animate" property must be a boolean value'))),o.canvas?"string"==typeof o.canvas||o.canvas instanceof t.window.HTMLCanvasElement||this.fire(new t.ErrorEvent(new t.ValidationError("sources."+i,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."+i,null,'missing required property "canvas"'))),this.options=o,this.animate=void 0===o.animate||o.animate;}return e&&(i.__proto__=e),(i.prototype=Object.create(e&&e.prototype)).constructor=i,i.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());},i.prototype.getCanvas=function(){return this.canvas},i.prototype.onAdd=function(t){this.map=t,this.load(),this.canvas&&this.animate&&this.play();},i.prototype.onRemove=function(){this.pause();},i.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 i=this.map.painter.context,o=i.gl;for(var r in this.boundsBuffer||(this.boundsBuffer=i.createVertexBuffer(this._boundsArray,M.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(i,this.canvas,o.RGBA,{premultiply:!0}),this.tiles){var a=this.tiles[r];"loaded"!==a.state&&(a.state="loaded",a.texture=this.texture);}}},i.prototype.serialize=function(){return {type:"canvas",coordinates:this.coordinates}},i.prototype.hasTransition=function(){return this._playing},i.prototype._hasInvalidDimensions=function(){for(var t=0,e=[this.canvas.width,this.canvas.height];tthis.max){var n=this._getAndRemoveByKey(this.order[0]);n&&this.onRemove(n);}return this},U.prototype.has=function(t){return t.wrapped().key in this.data},U.prototype.getAndRemove=function(t){return this.has(t)?this._getAndRemoveByKey(t.wrapped().key):null},U.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},U.prototype.getByKey=function(t){var e=this.data[t];return e?e[0].value:null},U.prototype.get=function(t){return this.has(t)?this.data[t.wrapped().key][0].value:null},U.prototype.remove=function(t,e){if(!this.has(t))return this;var i=t.wrapped().key,o=void 0===e?0:this.data[i].indexOf(e),r=this.data[i][o];return this.data[i].splice(o,1),r.timeout&&clearTimeout(r.timeout),0===this.data[i].length&&delete this.data[i],this.onRemove(r.value),this.order.splice(this.order.indexOf(i),1),this},U.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},U.prototype.filter=function(t){var e=[];for(var i in this.data)for(var o=0,r=this.data[i];o1||(Math.abs(i)>1&&(1===Math.abs(i+r)?i+=r:1===Math.abs(i-r)&&(i-=r)),e.dem&&t.dem&&(t.dem.backfillBorder(e.dem,i,o),t.neighboringTiles&&t.neighboringTiles[a]&&(t.neighboringTiles[a].backfilled=!0)));}},i.prototype.getTile=function(t){return this.getTileByID(t.key)},i.prototype.getTileByID=function(t){return this._tiles[t]},i.prototype._retainLoadedChildren=function(t,e,i,o){for(var r in this._tiles){var a=this._tiles[r];if(!(o[r]||!a.hasData()||a.tileID.overscaledZ<=e||a.tileID.overscaledZ>i)){for(var n=a.tileID;a&&a.tileID.overscaledZ>e+1;){var s=a.tileID.scaledTo(a.tileID.overscaledZ-1);(a=this._tiles[s.key])&&a.hasData()&&(n=s);}for(var l=n;l.overscaledZ>e;)if(t[(l=l.scaledTo(l.overscaledZ-1)).key]){o[n.key]=n;break}}}},i.prototype.findLoadedParent=function(t,e){if(t.key in this._loadedParentTiles){var i=this._loadedParentTiles[t.key];return i&&i.tileID.overscaledZ>=e?i:null}for(var o=t.overscaledZ-1;o>=e;o--){var r=t.scaledTo(o),a=this._getLoadedTile(r);if(a)return a}},i.prototype._getLoadedTile=function(t){var e=this._tiles[t.key];return e&&e.hasData()?e:this._cache.getByKey(t.wrapped().key)},i.prototype.updateCacheSize=function(t){var e=Math.ceil(t.width/this._source.tileSize)+1,i=Math.ceil(t.height/this._source.tileSize)+1,o=Math.floor(e*i*5),r="number"==typeof this._maxTileCacheSize?Math.min(this._maxTileCacheSize,o):o;this._cache.setMaxSize(r);},i.prototype.handleWrapJump=function(t){var e=Math.round((t-(void 0===this._prevLng?t:this._prevLng))/360);if(this._prevLng=t,e){var i={};for(var o in this._tiles){var r=this._tiles[o];r.tileID=r.tileID.unwrapTo(r.tileID.wrap+e),i[r.tileID.key]=r;}for(var a in this._tiles=i,this._timers)clearTimeout(this._timers[a]),delete this._timers[a];for(var n in this._tiles)this._setTileReloadTimer(n,this._tiles[n]);}},i.prototype.update=function(e){var o=this;if(this.transform=e,this._sourceLoaded&&!this._paused){var r;this.updateCacheSize(e),this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used?this._source.tileID?r=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)})):(r=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&&(r=r.filter((function(t){return o._source.hasTile(t)})))):r=[];var a=e.coveringZoomLevel(this._source),n=Math.max(a-i.maxOverzooming,this._source.minzoom),s=Math.max(a+i.maxUnderzooming,this._source.minzoom),l=this._updateRetainedTiles(r,a);if(Lt(this._source.type)){for(var c={},u={},h=0,p=Object.keys(l);hthis._source.maxzoom){var m=_.children(this._source.maxzoom)[0],g=this.getTile(m);if(g&&g.hasData()){o[m.key]=m;continue}}else {var v=_.children(this._source.maxzoom);if(o[v[0].key]&&o[v[1].key]&&o[v[2].key]&&o[v[3].key])continue}for(var y=f.wasRequested(),x=_.overscaledZ-1;x>=a;--x){var b=_.scaledTo(x);if(r[b.key])break;if(r[b.key]=!0,!(f=this.getTile(b))&&y&&(f=this._addTile(b)),f&&(o[b.key]=b,y=f.wasRequested(),f.hasData()))break}}}return o},i.prototype._updateLoadedParentTileCache=function(){for(var t in this._loadedParentTiles={},this._tiles){for(var e=[],i=void 0,o=this._tiles[t].tileID;o.overscaledZ>0;){if(o.key in this._loadedParentTiles){i=this._loadedParentTiles[o.key];break}e.push(o.key);var r=o.scaledTo(o.overscaledZ-1);if(i=this._getLoadedTile(r))break;o=r;}for(var a=0,n=e;a0||(e.hasData()&&"reloading"!==e.state?this._cache.add(e.tileID,e,e.getExpiryTimeout()):(e.aborted=!0,this._abortTile(e),this._unloadTile(e))));},i.prototype.clearTiles=function(){for(var t in this._shouldReloadOnResume=!1,this._paused=!1,this._tiles)this._removeTile(t);this._cache.reset();},i.prototype.tilesIn=function(e,i,o){var r=this,a=[],n=this.transform;if(!n)return a;for(var s=o?n.getCameraQueryGeometry(e):e,l=e.map((function(t){return n.pointCoordinate(t)})),c=s.map((function(t){return n.pointCoordinate(t)})),u=this.getIds(),h=1/0,p=1/0,d=-1/0,_=-1/0,f=0,m=c;f=0&&g[1].y+m>=0){var v=l.map((function(t){return s.getTilePoint(t)})),y=c.map((function(t){return s.getTilePoint(t)}));a.push({tile:o,tileID:s,queryGeometry:v,cameraQueryGeometry:y,scale:f});}}},y=0;y=t.browser.now())return !0}return !1},i.prototype.setFeatureState=function(t,e,i){this._state.updateState(t=t||"_geojsonTileLayer",e,i);},i.prototype.removeFeatureState=function(t,e,i){this._state.removeFeatureState(t=t||"_geojsonTileLayer",e,i);},i.prototype.getFeatureState=function(t,e){return this._state.getState(t=t||"_geojsonTileLayer",e)},i.prototype.setDependencies=function(t,e,i){var o=this._tiles[t];o&&o.setDependencies(e,i);},i.prototype.reloadTilesForDependencies=function(t,e){for(var i in this._tiles)this._tiles[i].hasDependency(t,e)&&this._reloadTile(i,"reloading");this._cache.filter((function(i){return !i.hasDependency(t,e)}));},i}(t.Evented);function Mt(t,e){var i=Math.abs(2*t.wrap)-+(t.wrap<0),o=Math.abs(2*e.wrap)-+(e.wrap<0);return t.overscaledZ-e.overscaledZ||o-i||e.canonical.y-t.canonical.y||e.canonical.x-t.canonical.x}function Lt(t){return "raster"===t||"image"===t||"video"===t}function At(){return new t.window.Worker(Wr.workerUrl)}Dt.maxOverzooming=10,Dt.maxUnderzooming=3;var Rt="mapboxgl_preloaded_worker_pool",kt=function(){this.active={};};kt.prototype.acquire=function(t){if(!this.workers)for(this.workers=[];this.workers.length0?(r-n)/s:0;return this.points[a].mult(1-l).add(this.points[i].mult(l))};var Yt=function(t,e,i){var o=this.boxCells=[],r=this.circleCells=[];this.xCellCount=Math.ceil(t/i),this.yCellCount=Math.ceil(e/i);for(var a=0;a=-e[0]&&i<=e[0]&&o>=-e[1]&&o<=e[1]}function ie(e,i,o,r,a,n,s,l){var c=r?e.textSizeData:e.iconSizeData,u=t.evaluateSizeForZoom(c,o.transform.zoom),h=[256/o.width*2+1,256/o.height*2+1],p=r?e.text.dynamicLayoutVertexArray:e.icon.dynamicLayoutVertexArray;p.clear();for(var d=e.lineVertexArray,_=r?e.text.placedSymbolArray:e.icon.placedSymbolArray,f=o.transform.width/o.transform.height,m=!1,g=0;g<_.length;g++){var v=_.get(g);if(v.hidden||v.writingMode===t.WritingMode.vertical&&!m)ce(v.numGlyphs,p);else {m=!1;var y=[v.anchorX,v.anchorY,0,1];if(t.transformMat4(y,y,i),ee(y,h)){var x=te(o.transform.cameraToCenterDistance,y[3]),b=t.evaluateSizeForFeature(c,u,v),w=s?b/x:b*x,T=new t.Point(v.anchorX,v.anchorY),E=$t(T,a).point,I={},P=ae(v,w,!1,l,i,a,n,e.glyphOffsetArray,d,p,E,T,I,f);m=P.useVertical,(P.notEnoughRoom||m||P.needsFlipping&&ae(v,w,!0,l,i,a,n,e.glyphOffsetArray,d,p,E,T,I,f).notEnoughRoom)&&ce(v.numGlyphs,p);}else ce(v.numGlyphs,p);}}r?e.text.dynamicLayoutVertexBuffer.updateData(p):e.icon.dynamicLayoutVertexBuffer.updateData(p);}function oe(t,e,i,o,r,a,n,s,l,c,u){var h=s.glyphStartIndex+s.numGlyphs,p=s.lineStartIndex,d=s.lineStartIndex+s.lineLength,_=e.getoffsetX(s.glyphStartIndex),f=e.getoffsetX(h-1),m=se(t*_,i,o,r,a,n,s.segment,p,d,l,c,u);if(!m)return null;var g=se(t*f,i,o,r,a,n,s.segment,p,d,l,c,u);return g?{first:m,last:g}:null}function re(e,i,o,r){return e===t.WritingMode.horizontal&&Math.abs(o.y-i.y)>Math.abs(o.x-i.x)*r?{useVertical:!0}:(e===t.WritingMode.vertical?i.yo.x)?{needsFlipping:!0}:null}function ae(e,i,o,r,a,n,s,l,c,u,h,p,d,_){var f,m=i/24,g=e.lineOffsetX*m,v=e.lineOffsetY*m;if(e.numGlyphs>1){var y=e.glyphStartIndex+e.numGlyphs,x=e.lineStartIndex,b=e.lineStartIndex+e.lineLength,w=oe(m,l,g,v,o,h,p,e,c,n,d);if(!w)return {notEnoughRoom:!0};var T=$t(w.first.point,s).point,E=$t(w.last.point,s).point;if(r&&!o){var I=re(e.writingMode,T,E,_);if(I)return I}f=[w.first];for(var P=e.glyphStartIndex+1;P0?D.point:ne(p,z,S,1,a),L=re(e.writingMode,S,M,_);if(L)return L}var A=se(m*l.getoffsetX(e.glyphStartIndex),g,v,o,h,p,e.segment,e.lineStartIndex,e.lineStartIndex+e.lineLength,c,n,d);if(!A)return {notEnoughRoom:!0};f=[A];}for(var R=0,k=f;R0?1:-1,f=0;r&&(_*=-1,f=Math.PI),_<0&&(f+=Math.PI);for(var m=_>0?l+s:l+s+1,g=a,v=a,y=0,x=0,b=Math.abs(d),w=[];y+x<=b;){if((m+=_)=c)return null;if(v=g,w.push(g),void 0===(g=p[m])){var T=new t.Point(u.getx(m),u.gety(m)),E=$t(T,h);if(E.signedDistanceFromCamera>0)g=p[m]=E.point;else {var I=m-_;g=ne(0===y?n:new t.Point(u.getx(I),u.gety(I)),T,v,b-y+1,h);}}y+=x,x=v.dist(g);}var P=(b-y)/x,S=g.sub(v),C=S.mult(P)._add(v);C._add(S._unit()._perp()._mult(o*_));var z=f+Math.atan2(g.y-v.y,g.x-v.x);return w.push(C),{point:C,angle:z,path:w}}Yt.prototype.keysLength=function(){return this.boxKeys.length+this.circleKeys.length},Yt.prototype.insert=function(t,e,i,o,r){this._forEachCell(e,i,o,r,this._insertBoxCell,this.boxUid++),this.boxKeys.push(t),this.bboxes.push(e),this.bboxes.push(i),this.bboxes.push(o),this.bboxes.push(r);},Yt.prototype.insertCircle=function(t,e,i,o){this._forEachCell(e-o,i-o,e+o,i+o,this._insertCircleCell,this.circleUid++),this.circleKeys.push(t),this.circles.push(e),this.circles.push(i),this.circles.push(o);},Yt.prototype._insertBoxCell=function(t,e,i,o,r,a){this.boxCells[r].push(a);},Yt.prototype._insertCircleCell=function(t,e,i,o,r,a){this.circleCells[r].push(a);},Yt.prototype._query=function(t,e,i,o,r,a){if(i<0||t>this.width||o<0||e>this.height)return !r&&[];var n=[];if(t<=0&&e<=0&&this.width<=i&&this.height<=o){if(r)return !0;for(var s=0;s0:n},Yt.prototype._queryCircle=function(t,e,i,o,r){var a=t-i,n=t+i,s=e-i,l=e+i;if(n<0||a>this.width||l<0||s>this.height)return !o&&[];var c=[];return this._forEachCell(a,s,n,l,this._queryCellCircle,c,{hitTest:o,circle:{x:t,y:e,radius:i},seenUids:{box:{},circle:{}}},r),o?c.length>0:c},Yt.prototype.query=function(t,e,i,o,r){return this._query(t,e,i,o,!1,r)},Yt.prototype.hitTest=function(t,e,i,o,r){return this._query(t,e,i,o,!0,r)},Yt.prototype.hitTestCircle=function(t,e,i,o){return this._queryCircle(t,e,i,!0,o)},Yt.prototype._queryCell=function(t,e,i,o,r,a,n,s){var l=n.seenUids,c=this.boxCells[r];if(null!==c)for(var u=this.bboxes,h=0,p=c;h=u[_+0]&&o>=u[_+1]&&(!s||s(this.boxKeys[d]))){if(n.hitTest)return a.push(!0),!0;a.push({key:this.boxKeys[d],x1:u[_],y1:u[_+1],x2:u[_+2],y2:u[_+3]});}}}var f=this.circleCells[r];if(null!==f)for(var m=this.circles,g=0,v=f;gn*n+s*s},Yt.prototype._circleAndRectCollide=function(t,e,i,o,r,a,n){var s=(a-o)/2,l=Math.abs(t-(o+s));if(l>s+i)return !1;var c=(n-r)/2,u=Math.abs(e-(r+c));if(u>c+i)return !1;if(l<=s||u<=c)return !0;var h=l-s,p=u-c;return h*h+p*p<=i*i};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 i=0;i=1;M--)D.push(C.path[M]);for(var L=1;L0){for(var B=D[0].clone(),O=D[0].clone(),F=1;F=I.x&&O.x<=P.x&&B.y>=I.y&&O.y<=P.y?[D]:O.xP.x||O.yP.y?[]:t.clipLine([D],I.x,I.y,P.x,P.y);}for(var U=0,N=k;U=this.screenRightBoundary||o<100||e>this.screenBottomBoundary},he.prototype.isInsideGrid=function(t,e,i,o){return i>=0&&t=0&&e0?(this.prevPlacement&&this.prevPlacement.variableOffsets[h.crossTileID]&&this.prevPlacement.placements[h.crossTileID]&&this.prevPlacement.placements[h.crossTileID].text&&(f=this.prevPlacement.variableOffsets[h.crossTileID].anchor),this.variableOffsets[h.crossTileID]={textOffset:m,width:i,height:o,anchor:t,textBoxScale:r,prevAnchor:f},this.markUsedJustification(p,t,h,d),p.allowVerticalPlacement&&(this.markUsedOrientation(p,d,h),this.placedOrientations[h.crossTileID]=d),{shift:g,placedGlyphBoxes:v}):void 0},be.prototype.placeLayerBucketPart=function(e,i,o){var r=this,a=e.parameters,n=a.bucket,s=a.layout,l=a.posMatrix,c=a.textLabelPlaneMatrix,u=a.labelToScreenMatrix,h=a.textPixelRatio,p=a.holdingForFade,d=a.collisionBoxArray,_=a.partiallyEvaluatedTextSize,f=a.collisionGroup,m=s.get("text-optional"),g=s.get("icon-optional"),v=s.get("text-allow-overlap"),y=s.get("icon-allow-overlap"),x="map"===s.get("text-rotation-alignment"),b="map"===s.get("text-pitch-alignment"),w="none"!==s.get("icon-text-fit"),T="viewport-y"===s.get("symbol-z-order"),E=v&&(y||!n.hasIconData()||g),I=y&&(v||!n.hasTextData()||m);!n.collisionArrays&&d&&n.deserializeCollisionBoxes(d);var P=function(e,a){if(!i[e.crossTileID])if(p)r.placements[e.crossTileID]=new fe(!1,!1,!1);else {var d,T=!1,P=!1,S=!0,C=null,z={box:null,offscreen:null},D={box:null,offscreen:null},M=null,L=null,A=0,R=0,k=0;a.textFeatureIndex?A=a.textFeatureIndex:e.useRuntimeCollisionCircles&&(A=e.featureIndex),a.verticalTextFeatureIndex&&(R=a.verticalTextFeatureIndex);var B=a.textBox;if(B){var O=function(i){var o=t.WritingMode.horizontal;if(n.allowVerticalPlacement&&!i&&r.prevPlacement){var a=r.prevPlacement.placedOrientations[e.crossTileID];a&&(r.placedOrientations[e.crossTileID]=a,r.markUsedOrientation(n,o=a,e));}return o},F=function(i,o){if(n.allowVerticalPlacement&&e.numVerticalGlyphVertices>0&&a.verticalTextBox)for(var r=0,s=n.writingModes;r0&&(U=U.filter((function(t){return t!==N.anchor}))).unshift(N.anchor);}var Z=function(t,i,o){for(var a=t.x2-t.x1,s=t.y2-t.y1,c=e.textBoxScale,u=w&&!y?i:null,p={box:[],offscreen:!1},d=v?2*U.length:U.length,_=0;_=U.length,e,n,o,u);if(m&&(p=m.placedGlyphBoxes)&&p.box&&p.box.length){T=!0,C=m.shift;break}}return p};F((function(){return Z(B,a.iconBox,t.WritingMode.horizontal)}),(function(){var i=a.verticalTextBox;return n.allowVerticalPlacement&&!(z&&z.box&&z.box.length)&&e.numVerticalGlyphVertices>0&&i?Z(i,a.verticalIconBox,t.WritingMode.vertical):{box:null,offscreen:null}})),z&&(T=z.box,S=z.offscreen);var j=O(z&&z.box);if(!T&&r.prevPlacement){var q=r.prevPlacement.variableOffsets[e.crossTileID];q&&(r.variableOffsets[e.crossTileID]=q,r.markUsedJustification(n,q.anchor,e,j));}}else {var V=function(t,i){var o=r.collisionIndex.placeCollisionBox(t,v,h,l,f.predicate);return o&&o.box&&o.box.length&&(r.markUsedOrientation(n,i,e),r.placedOrientations[e.crossTileID]=i),o};F((function(){return V(B,t.WritingMode.horizontal)}),(function(){var i=a.verticalTextBox;return n.allowVerticalPlacement&&e.numVerticalGlyphVertices>0&&i?V(i,t.WritingMode.vertical):{box:null,offscreen:null}})),O(z&&z.box&&z.box.length);}}if(T=(d=z)&&d.box&&d.box.length>0,S=d&&d.offscreen,e.useRuntimeCollisionCircles){var G=n.text.placedSymbolArray.get(e.centerJustifiedTextSymbolIndex),W=t.evaluateSizeForFeature(n.textSizeData,_,G),X=s.get("text-padding");M=r.collisionIndex.placeCollisionCircles(v,G,n.lineVertexArray,n.glyphOffsetArray,W,l,c,u,o,b,f.predicate,e.collisionCircleDiameter,X),T=v||M.circles.length>0&&!M.collisionDetected,S=S&&M.offscreen;}if(a.iconFeatureIndex&&(k=a.iconFeatureIndex),a.iconBox){var H=function(t){var e=w&&C?xe(t,C.x,C.y,x,b,r.transform.angle):t;return r.collisionIndex.placeCollisionBox(e,y,h,l,f.predicate)};P=D&&D.box&&D.box.length&&a.verticalIconBox?(L=H(a.verticalIconBox)).box.length>0:(L=H(a.iconBox)).box.length>0,S=S&&L.offscreen;}var K=m||0===e.numHorizontalGlyphVertices&&0===e.numVerticalGlyphVertices,Y=g||0===e.numIconVertices;if(K||Y?Y?K||(P=P&&T):T=P&&T:P=T=P&&T,T&&d&&d.box&&r.collisionIndex.insertCollisionBox(d.box,s.get("text-ignore-placement"),n.bucketInstanceId,D&&D.box&&R?R:A,f.ID),P&&L&&r.collisionIndex.insertCollisionBox(L.box,s.get("icon-ignore-placement"),n.bucketInstanceId,k,f.ID),M&&(T&&r.collisionIndex.insertCollisionCircles(M.circles,s.get("text-ignore-placement"),n.bucketInstanceId,A,f.ID),o)){var J=n.bucketInstanceId,Q=r.collisionCircleArrays[J];void 0===Q&&(Q=r.collisionCircleArrays[J]=new me);for(var $=0;$=0;--C){var z=S[C];P(n.symbolInstances.get(z),n.collisionArrays[z]);}else for(var D=e.symbolInstanceStart;D=0&&(e.text.placedSymbolArray.get(l).crossTileID=a>=0&&l!==a?0:o.crossTileID);}},be.prototype.markUsedOrientation=function(e,i,o){for(var r=i===t.WritingMode.horizontal||i===t.WritingMode.horizontalOnly?i:0,a=i===t.WritingMode.vertical?i:0,n=0,s=[o.leftJustifiedTextSymbolIndex,o.centerJustifiedTextSymbolIndex,o.rightJustifiedTextSymbolIndex];n0,v=r.placedOrientations[a.crossTileID],y=v===t.WritingMode.vertical,x=v===t.WritingMode.horizontal||v===t.WritingMode.horizontalOnly;if(s>0||l>0){var b=De(m.text);_(e.text,s,y?Me:b),_(e.text,l,x?Me:b);var w=m.text.isHidden();[a.rightJustifiedTextSymbolIndex,a.centerJustifiedTextSymbolIndex,a.leftJustifiedTextSymbolIndex].forEach((function(t){t>=0&&(e.text.placedSymbolArray.get(t).hidden=w||y?1:0);})),a.verticalPlacedTextSymbolIndex>=0&&(e.text.placedSymbolArray.get(a.verticalPlacedTextSymbolIndex).hidden=w||x?1:0);var T=r.variableOffsets[a.crossTileID];T&&r.markUsedJustification(e,T.anchor,a,v);var E=r.placedOrientations[a.crossTileID];E&&(r.markUsedJustification(e,"left",a,E),r.markUsedOrientation(e,E,a));}if(g){var I=De(m.icon),P=!(p&&a.verticalPlacedIconSymbolIndex&&y);a.placedIconSymbolIndex>=0&&(_(e.icon,a.numIconVertices,P?I:Me),e.icon.placedSymbolArray.get(a.placedIconSymbolIndex).hidden=m.icon.isHidden()),a.verticalPlacedIconSymbolIndex>=0&&(_(e.icon,a.numVerticalIconVertices,P?Me:I),e.icon.placedSymbolArray.get(a.verticalPlacedIconSymbolIndex).hidden=m.icon.isHidden());}if(e.hasIconCollisionBoxData()||e.hasTextCollisionBoxData()){var S=e.collisionArrays[o];if(S){var C=new t.Point(0,0);if(S.textBox||S.verticalTextBox){var z=!0;if(c){var D=r.variableOffsets[f];D?(C=ye(D.anchor,D.width,D.height,D.textOffset,D.textBoxScale),u&&C._rotate(h?r.transform.angle:-r.transform.angle)):z=!1;}S.textBox&&we(e.textCollisionBox.collisionVertexArray,m.text.placed,!z||y,C.x,C.y),S.verticalTextBox&&we(e.textCollisionBox.collisionVertexArray,m.text.placed,!z||x,C.x,C.y);}var M=Boolean(!x&&S.verticalIconBox);S.iconBox&&we(e.iconCollisionBox.collisionVertexArray,m.icon.placed,M,p?C.x:0,p?C.y:0),S.verticalIconBox&&we(e.iconCollisionBox.collisionVertexArray,m.icon.placed,!M,p?C.x:0,p?C.y:0);}}},m=0;mt},be.prototype.setStale=function(){this.stale=!0;};var Te=Math.pow(2,25),Ee=Math.pow(2,24),Ie=Math.pow(2,17),Pe=Math.pow(2,16),Se=Math.pow(2,9),Ce=Math.pow(2,8),ze=Math.pow(2,1);function De(t){if(0===t.opacity&&!t.placed)return 0;if(1===t.opacity&&t.placed)return 4294967295;var e=t.placed?1:0,i=Math.floor(127*t.opacity);return i*Te+e*Ee+i*Ie+e*Pe+i*Se+e*Ce+i*ze+e}var Me=0,Le=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=[];};Le.prototype.continuePlacement=function(t,e,i,o,r){for(var a=this._bucketParts;this._currentTileIndex2};this._currentPlacementIndex>=0;){var s=i[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 Le(s)),this._inProgressLayer.continuePlacement(o[s.source],this.placement,this._showCollisionBoxes,s,n))return;delete this._inProgressLayer;}this._currentPlacementIndex--;}this._done=!0;},Ae.prototype.commit=function(t){return this.placement.commit(t),this.placement};var Re=512/t.EXTENT/2,ke=function(t,e,i){this.tileID=t,this.indexedSymbolInstances={},this.bucketInstanceId=i;for(var o=0;ot.overscaledZ)for(var s in n){var l=n[s];l.tileID.isChildOf(t)&&l.findMatches(e.symbolInstances,t,r);}else {var c=n[t.scaledTo(Number(a)).key];c&&c.findMatches(e.symbolInstances,t,r);}}for(var u=0;u1?"@2x":"",l=t.getJSON(i.transformRequest(i.normalizeSpriteURL(e,s,".json"),t.ResourceType.SpriteJSON),(function(t,e){l=null,n||(n=t,r=e,u());})),c=t.getImage(i.transformRequest(i.normalizeSpriteURL(e,s,".png"),t.ResourceType.SpriteImage),(function(t,e){c=null,n||(n=t,a=e,u());}));function u(){if(n)o(n);else if(r&&a){var e=t.browser.getImageData(a),i={};for(var s in r){var l=r[s],c=l.width,u=l.height,h=l.x,p=l.y,d=l.sdf,_=l.pixelRatio,f=l.stretchX,m=l.stretchY,g=l.content,v=new t.RGBAImage({width:c,height:u});t.RGBAImage.copy(e,v,{x:h,y:p},{x:0,y:0},{width:c,height:u}),i[s]={data:v,pixelRatio:_,sdf:d,stretchX:f,stretchY:m,content:g};}o(null,i);}}return {cancel:function(){l&&(l.cancel(),l=null),c&&(c.cancel(),c=null);}}}(e,this.map._requestManager,(function(e,o){if(i._spriteRequest=null,e)i.fire(new t.ErrorEvent(e));else if(o)for(var r in o)i.imageManager.addImage(r,o[r]);i.imageManager.setLoaded(!0),i._availableImages=i.imageManager.listImages(),i.dispatcher.broadcast("setImages",i._availableImages),i.fire(new t.Event("data",{dataType:"style"}));}));},i.prototype._validateLayer=function(e){var i=this.sourceCaches[e.source];if(i){var o=e.sourceLayer;if(o){var r=i.getSource();("geojson"===r.type||r.vectorLayerIds&&-1===r.vectorLayerIds.indexOf(o))&&this.fire(new t.ErrorEvent(new Error('Source layer "'+o+'" does not exist on source "'+r.id+'" as specified by style layer "'+e.id+'"')));}}},i.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()},i.prototype._serializeLayers=function(t){for(var e=[],i=0,o=t;i0)throw new Error("Unimplemented: "+r.map((function(t){return t.command})).join(", ")+".");return o.forEach((function(t){"setTransition"!==t.command&&i[t.command].apply(i,t.args);})),this.stylesheet=e,!0},i.prototype.addImage=function(e,i){if(this.getImage(e))return this.fire(new t.ErrorEvent(new Error("An image with this name already exists.")));this.imageManager.addImage(e,i),this._availableImages=this.imageManager.listImages(),this._changedImages[e]=!0,this._changed=!0,this.fire(new t.Event("data",{dataType:"style"}));},i.prototype.updateImage=function(t,e){this.imageManager.updateImage(t,e);},i.prototype.getImage=function(t){return this.imageManager.getImage(t)},i.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"}));},i.prototype.listImages=function(){return this._checkLoaded(),this.imageManager.listImages()},i.prototype.addSource=function(e,i,o){var r=this;if(void 0===o&&(o={}),this._checkLoaded(),void 0!==this.sourceCaches[e])throw new Error("There is already a source with this ID");if(!i.type)throw new Error("The type property must be defined, but the only the following properties were given: "+Object.keys(i).join(", ")+".");if(!(["vector","raster","geojson","video","image"].indexOf(i.type)>=0&&this._validate(t.validateStyle.source,"sources."+e,i,null,o))){this.map&&this.map._collectResourceTiming&&(i.collectResourceTiming=!0);var a=this.sourceCaches[e]=new Dt(e,i,this.dispatcher);a.style=this,a.setEventedParent(this,(function(){return {isSourceLoaded:r.loaded(),source:a.serialize(),sourceId:e}})),a.onAdd(this.map),this._changed=!0;}},i.prototype.removeSource=function(e){if(this._checkLoaded(),void 0===this.sourceCaches[e])throw new Error("There is no source with this ID");for(var i in this._layers)if(this._layers[i].source===e)return this.fire(new t.ErrorEvent(new Error('Source "'+e+'" cannot be removed while layer "'+i+'" is using it.')));var o=this.sourceCaches[e];delete this.sourceCaches[e],delete this._updatedSources[e],o.fire(new t.Event("data",{sourceDataType:"metadata",dataType:"source",sourceId:e})),o.setEventedParent(null),o.clearTiles(),o.onRemove&&o.onRemove(this.map),this._changed=!0;},i.prototype.setGeoJSONSourceData=function(t,e){this._checkLoaded(),this.sourceCaches[t].getSource().setData(e),this._changed=!0;},i.prototype.getSource=function(t){return this.sourceCaches[t]&&this.sourceCaches[t].getSource()},i.prototype.addLayer=function(e,i,o){void 0===o&&(o={}),this._checkLoaded();var r=e.id;if(this.getLayer(r))this.fire(new t.ErrorEvent(new Error('Layer with id "'+r+'" already exists on this map')));else {var a;if("custom"===e.type){if(Ue(this,t.validateCustomStyleLayer(e)))return;a=t.createStyleLayer(e);}else {if("object"==typeof e.source&&(this.addSource(r,e.source),e=t.clone$1(e),e=t.extend(e,{source:r})),this._validate(t.validateStyle.layer,"layers."+r,e,{arrayIndex:-1},o))return;a=t.createStyleLayer(e),this._validateLayer(a),a.setEventedParent(this,{layer:{id:r}}),this._serializedLayers[a.id]=a.serialize();}var n=i?this._order.indexOf(i):this._order.length;if(i&&-1===n)this.fire(new t.ErrorEvent(new Error('Layer with id "'+i+'" does not exist on this map.')));else {if(this._order.splice(n,0,r),this._layerOrderChanged=!0,this._layers[r]=a,this._removedLayers[r]&&a.source&&"custom"!==a.type){var s=this._removedLayers[r];delete this._removedLayers[r],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);}}},i.prototype.moveLayer=function(e,i){if(this._checkLoaded(),this._changed=!0,this._layers[e]){if(e!==i){var o=this._order.indexOf(e);this._order.splice(o,1);var r=i?this._order.indexOf(i):this._order.length;i&&-1===r?this.fire(new t.ErrorEvent(new Error('Layer with id "'+i+'" does not exist on this map.'))):(this._order.splice(r,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.")));},i.prototype.removeLayer=function(e){this._checkLoaded();var i=this._layers[e];if(i){i.setEventedParent(null);var o=this._order.indexOf(e);this._order.splice(o,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[e]=i,delete this._layers[e],delete this._serializedLayers[e],delete this._updatedLayers[e],delete this._updatedPaintProps[e],i.onRemove&&i.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.")));},i.prototype.getLayer=function(t){return this._layers[t]},i.prototype.hasLayer=function(t){return t in this._layers},i.prototype.setLayerZoomRange=function(e,i,o){this._checkLoaded();var r=this.getLayer(e);r?r.minzoom===i&&r.maxzoom===o||(null!=i&&(r.minzoom=i),null!=o&&(r.maxzoom=o),this._updateLayer(r)):this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot have zoom extent.")));},i.prototype.setFilter=function(e,i,o){void 0===o&&(o={}),this._checkLoaded();var r=this.getLayer(e);if(r){if(!t.deepEqual(r.filter,i))return null==i?(r.filter=void 0,void this._updateLayer(r)):void(this._validate(t.validateStyle.filter,"layers."+r.id+".filter",i,null,o)||(r.filter=t.clone$1(i),this._updateLayer(r)))}else this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot be filtered.")));},i.prototype.getFilter=function(e){return t.clone$1(this.getLayer(e).filter)},i.prototype.setLayoutProperty=function(e,i,o,r){void 0===r&&(r={}),this._checkLoaded();var a=this.getLayer(e);a?t.deepEqual(a.getLayoutProperty(i),o)||(a.setLayoutProperty(i,o,r),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.")));},i.prototype.getLayoutProperty=function(e,i){var o=this.getLayer(e);if(o)return o.getLayoutProperty(i);this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style.")));},i.prototype.setPaintProperty=function(e,i,o,r){void 0===r&&(r={}),this._checkLoaded();var a=this.getLayer(e);a?t.deepEqual(a.getPaintProperty(i),o)||(a.setPaintProperty(i,o,r)&&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.")));},i.prototype.getPaintProperty=function(t,e){return this.getLayer(t).getPaintProperty(e)},i.prototype.setFeatureState=function(e,i){this._checkLoaded();var o=e.source,r=e.sourceLayer,a=this.sourceCaches[o];if(void 0!==a){var n=a.getSource().type;"geojson"===n&&r?this.fire(new t.ErrorEvent(new Error("GeoJSON sources cannot have a sourceLayer parameter."))):"vector"!==n||r?(void 0===e.id&&this.fire(new t.ErrorEvent(new Error("The feature id parameter must be provided."))),a.setFeatureState(r,e.id,i)):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 '"+o+"' does not exist in the map's style.")));},i.prototype.removeFeatureState=function(e,i){this._checkLoaded();var o=e.source,r=this.sourceCaches[o];if(void 0!==r){var a=r.getSource().type,n="vector"===a?e.sourceLayer:void 0;"vector"!==a||n?i&&"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."))):r.removeFeatureState(n,e.id,i):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 '"+o+"' does not exist in the map's style.")));},i.prototype.getFeatureState=function(e){this._checkLoaded();var i=e.source,o=e.sourceLayer,r=this.sourceCaches[i];if(void 0!==r){if("vector"!==r.getSource().type||o)return void 0===e.id&&this.fire(new t.ErrorEvent(new Error("The feature id parameter must be provided."))),r.getFeatureState(o,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 '"+i+"' does not exist in the map's style.")));},i.prototype.getTransition=function(){return t.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)},i.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}))},i.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;},i.prototype._flattenAndSortRenderedFeatures=function(t){for(var e=this,i=function(t){return "fill-extrusion"===e._layers[t].type},o={},r=[],a=this._order.length-1;a>=0;a--){var n=this._order[a];if(i(n)){o[n]=a;for(var s=0,l=t;s=0;d--){var _=this._order[d];if(i(_))for(var f=r.length-1;f>=0;f--){var m=r[f].feature;if(o[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=gi("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);}"),ti=gi("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);}"),ei=gi("#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);}"),ii=gi("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;}"),oi=gi("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;}"),ri=gi("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);}"),ai=gi("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;}"),ni=gi("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;}"),si=gi("#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;}"),li=gi("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;}"),ci=gi("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);}"),ui=gi("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);}"),hi=gi("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;}"),pi=gi("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);}"),di=gi("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;}"),_i=gi("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));}"),fi=gi("#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);}"),mi=gi("#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 gi(t,e){var i=/#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,o={};return {fragmentSource:t=t.replace(i,(function(t,e,i,r,a){return o[a]=!0,"define"===e?"\n#ifndef HAS_UNIFORM_u_"+a+"\nvarying "+i+" "+r+" "+a+";\n#else\nuniform "+i+" "+r+" u_"+a+";\n#endif\n":"\n#ifdef HAS_UNIFORM_u_"+a+"\n "+i+" "+r+" "+a+" = u_"+a+";\n#endif\n"})),vertexSource:e=e.replace(i,(function(t,e,i,r,a){var n="float"===r?"vec2":"vec4",s=a.match(/color/)?"color":n;return o[a]?"define"===e?"\n#ifndef HAS_UNIFORM_u_"+a+"\nuniform lowp float u_"+a+"_t;\nattribute "+i+" "+n+" a_"+a+";\nvarying "+i+" "+r+" "+a+";\n#else\nuniform "+i+" "+r+" u_"+a+";\n#endif\n":"vec4"===s?"\n#ifndef HAS_UNIFORM_u_"+a+"\n "+a+" = a_"+a+";\n#else\n "+i+" "+r+" "+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 "+i+" "+r+" "+a+" = u_"+a+";\n#endif\n":"define"===e?"\n#ifndef HAS_UNIFORM_u_"+a+"\nuniform lowp float u_"+a+"_t;\nattribute "+i+" "+n+" a_"+a+";\n#else\nuniform "+i+" "+r+" u_"+a+";\n#endif\n":"vec4"===s?"\n#ifndef HAS_UNIFORM_u_"+a+"\n "+i+" "+r+" "+a+" = a_"+a+";\n#else\n "+i+" "+r+" "+a+" = u_"+a+";\n#endif\n":"\n#ifndef HAS_UNIFORM_u_"+a+"\n "+i+" "+r+" "+a+" = unpack_mix_"+s+"(a_"+a+", u_"+a+"_t);\n#else\n "+i+" "+r+" "+a+" = u_"+a+";\n#endif\n"}))}}var vi=Object.freeze({__proto__:null,prelude:Ge,background:We,backgroundPattern:Xe,circle:He,clippingMask:Ke,heatmap:Ye,heatmapTexture:Je,collisionBox:Qe,collisionCircle:$e,debug:ti,fill:ei,fillOutline:ii,fillOutlinePattern:oi,fillPattern:ri,fillExtrusion:ai,fillExtrusionPattern:ni,hillshadePrepare:si,hillshade:li,line:ci,lineGradient:ui,linePattern:hi,lineSDF:pi,raster:di,symbolIcon:_i,symbolSDF:fi,symbolTextAndIcon:mi}),yi=function(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffer=null,this.vao=null;};yi.prototype.bind=function(t,e,i,o,r,a,n,s){this.context=t;for(var l=this.boundPaintVertexBuffers.length!==o.length,c=0;!l&&c>16,s>>16],u_pixel_coord_lower:[65535&n,65535&s]}}xi.prototype.draw=function(t,e,i,o,r,a,n,s,l,c,u,h,p,d,_,f){var m,g=t.gl;if(!this.failedToCreate){for(var v in t.program.set(this.program),t.setDepthMode(i),t.setStencilMode(o),t.setColorMode(r),t.setCullFace(a),this.fixedUniforms)this.fixedUniforms[v].set(n[v]);d&&d.setUniforms(t,this.binderUniforms,h,{zoom:p});for(var y=(m={},m[g.LINES]=2,m[g.TRIANGLES]=3,m[g.LINE_STRIP]=1,m)[e],x=0,b=u.get();x0?1-1/(1.001-n):-n),u_contrast_factor:(a=r.paint.get("raster-contrast"),a>0?1/(1-a):1+a),u_spin_weights:Zi(r.paint.get("raster-hue-rotate"))};var a,n;};function Zi(t){t*=Math.PI/180;var e=Math.sin(t),i=Math.cos(t);return [(2*i+1)/3,(-Math.sqrt(3)*e-i+1)/3,(Math.sqrt(3)*e-i+1)/3]}var ji,qi=function(t,e,i,o,r,a,n,s,l,c){var u=r.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:+i,u_aspect_ratio:u.width/u.height,u_fade_change:r.options.fadeDuration?r.symbolFadeChange:1,u_matrix:a,u_label_plane_matrix:n,u_coord_matrix:s,u_is_text:+l,u_pitch_with_map:+o,u_texsize:c,u_texture:0}},Vi=function(e,i,o,r,a,n,s,l,c,u,h){var p=a.transform;return t.extend(qi(e,i,o,r,a,n,s,l,c,u),{u_gamma_scale:r?Math.cos(p._pitch)*p.cameraToCenterDistance:1,u_device_pixel_ratio:t.browser.devicePixelRatio,u_is_halo:+h})},Gi=function(e,i,o,r,a,n,s,l,c,u){return t.extend(Vi(e,i,o,r,a,n,s,l,!0,c,!0),{u_texsize_icon:u,u_texture_icon:1})},Wi=function(t,e,i){return {u_matrix:t,u_opacity:e,u_color:i}},Xi=function(e,i,o,r,a,n){return t.extend(function(t,e,i,o){var r=i.imageManager.getPattern(t.from.toString()),a=i.imageManager.getPattern(t.to.toString()),n=i.imageManager.getPixelSize(),s=n.width,l=n.height,c=Math.pow(2,o.tileID.overscaledZ),u=o.tileSize*Math.pow(2,i.transform.tileZoom)/c,h=u*(o.tileID.canonical.x+o.tileID.wrap*c),p=u*o.tileID.canonical.y;return {u_image:0,u_pattern_tl_a:r.tl,u_pattern_br_a:r.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:r.displaySize,u_pattern_size_b:a.displaySize,u_scale_a:e.fromScale,u_scale_b:e.toScale,u_tile_units_to_pixels:1/pe(o,1,i.transform.tileZoom),u_pixel_coord_upper:[h>>16,p>>16],u_pixel_coord_lower:[65535&h,65535&p]}}(r,n,o,a),{u_matrix:e,u_opacity:i})},Hi={fillExtrusion:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_lightpos:new t.Uniform3f(e,i.u_lightpos),u_lightintensity:new t.Uniform1f(e,i.u_lightintensity),u_lightcolor:new t.Uniform3f(e,i.u_lightcolor),u_vertical_gradient:new t.Uniform1f(e,i.u_vertical_gradient),u_opacity:new t.Uniform1f(e,i.u_opacity)}},fillExtrusionPattern:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_lightpos:new t.Uniform3f(e,i.u_lightpos),u_lightintensity:new t.Uniform1f(e,i.u_lightintensity),u_lightcolor:new t.Uniform3f(e,i.u_lightcolor),u_vertical_gradient:new t.Uniform1f(e,i.u_vertical_gradient),u_height_factor:new t.Uniform1f(e,i.u_height_factor),u_image:new t.Uniform1i(e,i.u_image),u_texsize:new t.Uniform2f(e,i.u_texsize),u_pixel_coord_upper:new t.Uniform2f(e,i.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,i.u_pixel_coord_lower),u_scale:new t.Uniform3f(e,i.u_scale),u_fade:new t.Uniform1f(e,i.u_fade),u_opacity:new t.Uniform1f(e,i.u_opacity)}},fill:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix)}},fillPattern:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_image:new t.Uniform1i(e,i.u_image),u_texsize:new t.Uniform2f(e,i.u_texsize),u_pixel_coord_upper:new t.Uniform2f(e,i.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,i.u_pixel_coord_lower),u_scale:new t.Uniform3f(e,i.u_scale),u_fade:new t.Uniform1f(e,i.u_fade)}},fillOutline:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_world:new t.Uniform2f(e,i.u_world)}},fillOutlinePattern:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_world:new t.Uniform2f(e,i.u_world),u_image:new t.Uniform1i(e,i.u_image),u_texsize:new t.Uniform2f(e,i.u_texsize),u_pixel_coord_upper:new t.Uniform2f(e,i.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,i.u_pixel_coord_lower),u_scale:new t.Uniform3f(e,i.u_scale),u_fade:new t.Uniform1f(e,i.u_fade)}},circle:function(e,i){return {u_camera_to_center_distance:new t.Uniform1f(e,i.u_camera_to_center_distance),u_scale_with_map:new t.Uniform1i(e,i.u_scale_with_map),u_pitch_with_map:new t.Uniform1i(e,i.u_pitch_with_map),u_extrude_scale:new t.Uniform2f(e,i.u_extrude_scale),u_device_pixel_ratio:new t.Uniform1f(e,i.u_device_pixel_ratio),u_matrix:new t.UniformMatrix4f(e,i.u_matrix)}},collisionBox:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_camera_to_center_distance:new t.Uniform1f(e,i.u_camera_to_center_distance),u_pixels_to_tile_units:new t.Uniform1f(e,i.u_pixels_to_tile_units),u_extrude_scale:new t.Uniform2f(e,i.u_extrude_scale),u_overscale_factor:new t.Uniform1f(e,i.u_overscale_factor)}},collisionCircle:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_inv_matrix:new t.UniformMatrix4f(e,i.u_inv_matrix),u_camera_to_center_distance:new t.Uniform1f(e,i.u_camera_to_center_distance),u_viewport_size:new t.Uniform2f(e,i.u_viewport_size)}},debug:function(e,i){return {u_color:new t.UniformColor(e,i.u_color),u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_overlay:new t.Uniform1i(e,i.u_overlay),u_overlay_scale:new t.Uniform1f(e,i.u_overlay_scale)}},clippingMask:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix)}},heatmap:function(e,i){return {u_extrude_scale:new t.Uniform1f(e,i.u_extrude_scale),u_intensity:new t.Uniform1f(e,i.u_intensity),u_matrix:new t.UniformMatrix4f(e,i.u_matrix)}},heatmapTexture:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_world:new t.Uniform2f(e,i.u_world),u_image:new t.Uniform1i(e,i.u_image),u_color_ramp:new t.Uniform1i(e,i.u_color_ramp),u_opacity:new t.Uniform1f(e,i.u_opacity)}},hillshade:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_image:new t.Uniform1i(e,i.u_image),u_latrange:new t.Uniform2f(e,i.u_latrange),u_light:new t.Uniform2f(e,i.u_light),u_shadow:new t.UniformColor(e,i.u_shadow),u_highlight:new t.UniformColor(e,i.u_highlight),u_accent:new t.UniformColor(e,i.u_accent)}},hillshadePrepare:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_image:new t.Uniform1i(e,i.u_image),u_dimension:new t.Uniform2f(e,i.u_dimension),u_zoom:new t.Uniform1f(e,i.u_zoom),u_maxzoom:new t.Uniform1f(e,i.u_maxzoom),u_unpack:new t.Uniform4f(e,i.u_unpack)}},line:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_ratio:new t.Uniform1f(e,i.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,i.u_device_pixel_ratio),u_units_to_pixels:new t.Uniform2f(e,i.u_units_to_pixels)}},lineGradient:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_ratio:new t.Uniform1f(e,i.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,i.u_device_pixel_ratio),u_units_to_pixels:new t.Uniform2f(e,i.u_units_to_pixels),u_image:new t.Uniform1i(e,i.u_image)}},linePattern:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_texsize:new t.Uniform2f(e,i.u_texsize),u_ratio:new t.Uniform1f(e,i.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,i.u_device_pixel_ratio),u_image:new t.Uniform1i(e,i.u_image),u_units_to_pixels:new t.Uniform2f(e,i.u_units_to_pixels),u_scale:new t.Uniform3f(e,i.u_scale),u_fade:new t.Uniform1f(e,i.u_fade)}},lineSDF:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_ratio:new t.Uniform1f(e,i.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,i.u_device_pixel_ratio),u_units_to_pixels:new t.Uniform2f(e,i.u_units_to_pixels),u_patternscale_a:new t.Uniform2f(e,i.u_patternscale_a),u_patternscale_b:new t.Uniform2f(e,i.u_patternscale_b),u_sdfgamma:new t.Uniform1f(e,i.u_sdfgamma),u_image:new t.Uniform1i(e,i.u_image),u_tex_y_a:new t.Uniform1f(e,i.u_tex_y_a),u_tex_y_b:new t.Uniform1f(e,i.u_tex_y_b),u_mix:new t.Uniform1f(e,i.u_mix)}},raster:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_tl_parent:new t.Uniform2f(e,i.u_tl_parent),u_scale_parent:new t.Uniform1f(e,i.u_scale_parent),u_buffer_scale:new t.Uniform1f(e,i.u_buffer_scale),u_fade_t:new t.Uniform1f(e,i.u_fade_t),u_opacity:new t.Uniform1f(e,i.u_opacity),u_image0:new t.Uniform1i(e,i.u_image0),u_image1:new t.Uniform1i(e,i.u_image1),u_brightness_low:new t.Uniform1f(e,i.u_brightness_low),u_brightness_high:new t.Uniform1f(e,i.u_brightness_high),u_saturation_factor:new t.Uniform1f(e,i.u_saturation_factor),u_contrast_factor:new t.Uniform1f(e,i.u_contrast_factor),u_spin_weights:new t.Uniform3f(e,i.u_spin_weights)}},symbolIcon:function(e,i){return {u_is_size_zoom_constant:new t.Uniform1i(e,i.u_is_size_zoom_constant),u_is_size_feature_constant:new t.Uniform1i(e,i.u_is_size_feature_constant),u_size_t:new t.Uniform1f(e,i.u_size_t),u_size:new t.Uniform1f(e,i.u_size),u_camera_to_center_distance:new t.Uniform1f(e,i.u_camera_to_center_distance),u_pitch:new t.Uniform1f(e,i.u_pitch),u_rotate_symbol:new t.Uniform1i(e,i.u_rotate_symbol),u_aspect_ratio:new t.Uniform1f(e,i.u_aspect_ratio),u_fade_change:new t.Uniform1f(e,i.u_fade_change),u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_label_plane_matrix:new t.UniformMatrix4f(e,i.u_label_plane_matrix),u_coord_matrix:new t.UniformMatrix4f(e,i.u_coord_matrix),u_is_text:new t.Uniform1i(e,i.u_is_text),u_pitch_with_map:new t.Uniform1i(e,i.u_pitch_with_map),u_texsize:new t.Uniform2f(e,i.u_texsize),u_texture:new t.Uniform1i(e,i.u_texture)}},symbolSDF:function(e,i){return {u_is_size_zoom_constant:new t.Uniform1i(e,i.u_is_size_zoom_constant),u_is_size_feature_constant:new t.Uniform1i(e,i.u_is_size_feature_constant),u_size_t:new t.Uniform1f(e,i.u_size_t),u_size:new t.Uniform1f(e,i.u_size),u_camera_to_center_distance:new t.Uniform1f(e,i.u_camera_to_center_distance),u_pitch:new t.Uniform1f(e,i.u_pitch),u_rotate_symbol:new t.Uniform1i(e,i.u_rotate_symbol),u_aspect_ratio:new t.Uniform1f(e,i.u_aspect_ratio),u_fade_change:new t.Uniform1f(e,i.u_fade_change),u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_label_plane_matrix:new t.UniformMatrix4f(e,i.u_label_plane_matrix),u_coord_matrix:new t.UniformMatrix4f(e,i.u_coord_matrix),u_is_text:new t.Uniform1i(e,i.u_is_text),u_pitch_with_map:new t.Uniform1i(e,i.u_pitch_with_map),u_texsize:new t.Uniform2f(e,i.u_texsize),u_texture:new t.Uniform1i(e,i.u_texture),u_gamma_scale:new t.Uniform1f(e,i.u_gamma_scale),u_device_pixel_ratio:new t.Uniform1f(e,i.u_device_pixel_ratio),u_is_halo:new t.Uniform1i(e,i.u_is_halo)}},symbolTextAndIcon:function(e,i){return {u_is_size_zoom_constant:new t.Uniform1i(e,i.u_is_size_zoom_constant),u_is_size_feature_constant:new t.Uniform1i(e,i.u_is_size_feature_constant),u_size_t:new t.Uniform1f(e,i.u_size_t),u_size:new t.Uniform1f(e,i.u_size),u_camera_to_center_distance:new t.Uniform1f(e,i.u_camera_to_center_distance),u_pitch:new t.Uniform1f(e,i.u_pitch),u_rotate_symbol:new t.Uniform1i(e,i.u_rotate_symbol),u_aspect_ratio:new t.Uniform1f(e,i.u_aspect_ratio),u_fade_change:new t.Uniform1f(e,i.u_fade_change),u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_label_plane_matrix:new t.UniformMatrix4f(e,i.u_label_plane_matrix),u_coord_matrix:new t.UniformMatrix4f(e,i.u_coord_matrix),u_is_text:new t.Uniform1i(e,i.u_is_text),u_pitch_with_map:new t.Uniform1i(e,i.u_pitch_with_map),u_texsize:new t.Uniform2f(e,i.u_texsize),u_texsize_icon:new t.Uniform2f(e,i.u_texsize_icon),u_texture:new t.Uniform1i(e,i.u_texture),u_texture_icon:new t.Uniform1i(e,i.u_texture_icon),u_gamma_scale:new t.Uniform1f(e,i.u_gamma_scale),u_device_pixel_ratio:new t.Uniform1f(e,i.u_device_pixel_ratio),u_is_halo:new t.Uniform1i(e,i.u_is_halo)}},background:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_opacity:new t.Uniform1f(e,i.u_opacity),u_color:new t.UniformColor(e,i.u_color)}},backgroundPattern:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_opacity:new t.Uniform1f(e,i.u_opacity),u_image:new t.Uniform1i(e,i.u_image),u_pattern_tl_a:new t.Uniform2f(e,i.u_pattern_tl_a),u_pattern_br_a:new t.Uniform2f(e,i.u_pattern_br_a),u_pattern_tl_b:new t.Uniform2f(e,i.u_pattern_tl_b),u_pattern_br_b:new t.Uniform2f(e,i.u_pattern_br_b),u_texsize:new t.Uniform2f(e,i.u_texsize),u_mix:new t.Uniform1f(e,i.u_mix),u_pattern_size_a:new t.Uniform2f(e,i.u_pattern_size_a),u_pattern_size_b:new t.Uniform2f(e,i.u_pattern_size_b),u_scale_a:new t.Uniform1f(e,i.u_scale_a),u_scale_b:new t.Uniform1f(e,i.u_scale_b),u_pixel_coord_upper:new t.Uniform2f(e,i.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,i.u_pixel_coord_lower),u_tile_units_to_pixels:new t.Uniform1f(e,i.u_tile_units_to_pixels)}}};function Ki(e,i,o,r,a,n,s){for(var l=e.context,c=l.gl,u=e.useProgram("collisionBox"),h=[],p=0,d=0,_=0;_0){var b=t.create(),w=v;t.mul(b,g.placementInvProjMatrix,e.transform.glCoordMatrix),t.mul(b,b,g.placementViewportMatrix),h.push({circleArray:x,circleOffset:d,transform:w,invTransform:b}),d=p+=x.length/4;}y&&u.draw(l,c.LINES,It.disabled,Pt.disabled,e.colorModeForRenderPass(),Ct.disabled,zi(v,e.transform,m),o.id,y.layoutVertexBuffer,y.indexBuffer,y.segments,null,e.transform.zoom,null,null,y.collisionVertexBuffer);}}if(s&&h.length){var T=e.useProgram("collisionCircle"),E=new t.StructArrayLayout2f1f2i16;E.resize(4*p),E._trim();for(var I=0,P=0,S=h;P=0&&(f[g.associatedIconIndex]={shiftedAnchor:E,angle:I});}else ce(g.numGlyphs,d);}if(h){_.clear();for(var S=e.icon.placedSymbolArray,C=0;C0){var s=t.browser.now(),l=(s-e.timeAdded)/n,c=i?(s-i.timeAdded)/n:-1,u=o.getSource(),h=a.coveringZoomLevel({tileSize:u.tileSize,roundZoom:u.roundZoom}),p=!i||Math.abs(i.tileID.overscaledZ-h)>Math.abs(e.tileID.overscaledZ-h),d=p&&e.refreshedUponExpiration?1:t.clamp(p?l:1-c,0,1);return e.refreshedUponExpiration&&l>=1&&(e.refreshedUponExpiration=!1),i?{opacity:1,mix:1-d}:{opacity:d,mix:0}}return {opacity:1,mix:0}}var so=new t.Color(1,0,0,1),lo=new t.Color(0,1,0,1),co=new t.Color(0,0,1,1),uo=new t.Color(1,0,1,1),ho=new t.Color(0,1,1,1);function po(t,e,i,o){fo(t,0,e+i/2,t.transform.width,i,o);}function _o(t,e,i,o){fo(t,e-i/2,0,i,t.transform.height,o);}function fo(e,i,o,r,a,n){var s=e.context,l=s.gl;l.enable(l.SCISSOR_TEST),l.scissor(i*t.browser.devicePixelRatio,o*t.browser.devicePixelRatio,r*t.browser.devicePixelRatio,a*t.browser.devicePixelRatio),s.clear({color:n}),l.disable(l.SCISSOR_TEST);}function mo(e,i,o){var r=e.context,a=r.gl,n=o.posMatrix,s=e.useProgram("debug"),l=It.disabled,c=Pt.disabled,u=e.colorModeForRenderPass();r.activeTexture.set(a.TEXTURE0),e.emptyTexture.bind(a.LINEAR,a.CLAMP_TO_EDGE),s.draw(r,a.LINE_STRIP,l,c,u,Ct.disabled,Mi(n,t.Color.red),"$debug",e.debugBuffer,e.tileBorderIndexBuffer,e.debugSegments);var h=i.getTileByID(o.key).latestRawTileData,p=Math.floor((h&&h.byteLength||0)/1024),d=i.getTile(o).tileSize,_=512/Math.min(d,512)*(o.overscaledZ/e.transform.zoom)*.5,f=o.canonical.toString();o.overscaledZ!==o.canonical.z&&(f+=" => "+o.overscaledZ),function(t,e){t.initDebugOverlayCanvas();var i=t.debugOverlayCanvas,o=t.context.gl,r=t.debugOverlayCanvas.getContext("2d");r.clearRect(0,0,i.width,i.height),r.shadowColor="white",r.shadowBlur=2,r.lineWidth=1.5,r.strokeStyle="white",r.textBaseline="top",r.font="bold 36px Open Sans, sans-serif",r.fillText(e,5,5),r.strokeText(e,5,5),t.debugOverlayTexture.update(i),t.debugOverlayTexture.bind(o.LINEAR,o.CLAMP_TO_EDGE);}(e,f+" "+p+"kb"),s.draw(r,a.TRIANGLES,l,c,St.alphaBlended,Ct.disabled,Mi(n,t.Color.transparent,_),"$debug",e.debugBuffer,e.quadTriangleIndexBuffer,e.debugSegments);}var go={symbol:function(e,i,o,r,a){if("translucent"===e.renderPass){var n=Pt.disabled,s=e.colorModeForRenderPass();o.layout.get("text-variable-anchor")&&function(e,i,o,r,a,n,s){for(var l=i.transform,c="map"===a,u="map"===n,h=0,p=e;h256&&this.clearStencil(),i.setColorMode(St.disabled),i.setDepthMode(It.disabled);var r=this.useProgram("clippingMask");this._tileClippingMaskIDs={};for(var a=0,n=e;a256&&this.clearStencil();var t=this.nextStencilID++,e=this.context.gl;return new Pt({func:e.NOTEQUAL,mask:255},t,255,e.KEEP,e.KEEP,e.REPLACE)},vo.prototype.stencilModeForClipping=function(t){var e=this.context.gl;return new Pt({func:e.EQUAL,mask:255},this._tileClippingMaskIDs[t.key],0,e.KEEP,e.KEEP,e.REPLACE)},vo.prototype.stencilConfigForOverlap=function(t){var e,i=this.context.gl,o=t.sort((function(t,e){return e.overscaledZ-t.overscaledZ})),r=o[o.length-1].overscaledZ,a=o[0].overscaledZ-r+1;if(a>1){this.currentStencilSource=void 0,this.nextStencilID+a>256&&this.clearStencil();for(var n={},s=0;s=0;this.currentLayer--){var x=this.style._layers[r[this.currentLayer]],b=a[x.source],w=u[x.source];this._renderTileClippingMasks(x,w),this.renderLayer(this,b,x,w);}for(this.renderPass="translucent",this.currentLayer=0;this.currentLayer0?e.pop():null},vo.prototype.isPatternMissing=function(t){if(!t)return !1;if(!t.from||!t.to)return !0;var e=this.imageManager.getPattern(t.from.toString()),i=this.imageManager.getPattern(t.to.toString());return !e||!i},vo.prototype.useProgram=function(t,e){this.cache=this.cache||{};var i=""+t+(e?e.cacheKey:"")+(this._showOverdrawInspector?"/overdraw":"");return this.cache[i]||(this.cache[i]=new xi(this.context,vi[t],e,Hi[t],this._showOverdrawInspector)),this.cache[i]},vo.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();},vo.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);},vo.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));},vo.prototype.destroy=function(){this.emptyTexture.destroy(),this.debugOverlayTexture&&this.debugOverlayTexture.destroy();};var yo=function(t,e){this.points=t,this.planes=e;};yo.fromInvProjectionMatrix=function(e,i,o){var r=Math.pow(2,o),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(i){return t.transformMat4([],i,e)})).map((function(e){return t.scale$1([],e,1/e[3]/i*r)})),n=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map((function(e){var i=t.sub([],a[e[0]],a[e[1]]),o=t.sub([],a[e[2]],a[e[1]]),r=t.normalize([],t.cross([],i,o)),n=-t.dot(r,a[e[1]]);return r.concat(n)}));return new yo(a,n)};var xo=function(e,i){this.min=e,this.max=i,this.center=t.scale$2([],t.add([],this.min,this.max),.5);};xo.prototype.quadrant=function(e){for(var i=[e%2==0,e<2],o=t.clone$2(this.min),r=t.clone$2(this.max),a=0;a=0;if(0===n)return 0;n!==i.length&&(o=!1);}if(o)return 2;for(var l=0;l<3;l++){for(var c=Number.MAX_VALUE,u=-Number.MAX_VALUE,h=0;hthis.max[l]-this.min[l])return 0}return 1};var bo=function(t,e,i,o){if(void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),void 0===o&&(o=0),isNaN(t)||t<0||isNaN(e)||e<0||isNaN(i)||i<0||isNaN(o)||o<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=i,this.right=o;};bo.prototype.interpolate=function(e,i,o){return null!=i.top&&null!=e.top&&(this.top=t.number(e.top,i.top,o)),null!=i.bottom&&null!=e.bottom&&(this.bottom=t.number(e.bottom,i.bottom,o)),null!=i.left&&null!=e.left&&(this.left=t.number(e.left,i.left,o)),null!=i.right&&null!=e.right&&(this.right=t.number(e.right,i.right,o)),this},bo.prototype.getCenter=function(e,i){var o=t.clamp((this.left+e-this.right)/2,0,e),r=t.clamp((this.top+i-this.bottom)/2,0,i);return new t.Point(o,r)},bo.prototype.equals=function(t){return this.top===t.top&&this.bottom===t.bottom&&this.left===t.left&&this.right===t.right},bo.prototype.clone=function(){return new bo(this.top,this.bottom,this.left,this.right)},bo.prototype.toJSON=function(){return {top:this.top,bottom:this.bottom,left:this.left,right:this.right}};var wo=function(e,i,o,r,a){this.tileSize=512,this.maxValidLatitude=85.051129,this._renderWorldCopies=void 0===a||a,this._minZoom=e||0,this._maxZoom=i||22,this._minPitch=null==o?0:o,this._maxPitch=null==r?60:r,this.setMaxBounds(),this.width=0,this.height=0,this._center=new t.LngLat(0,0),this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._unmodified=!0,this._edgeInsets=new bo,this._posMatrixCache={},this._alignedPosMatrixCache={};},To={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}};wo.prototype.clone=function(){var t=new wo(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},To.minZoom.get=function(){return this._minZoom},To.minZoom.set=function(t){this._minZoom!==t&&(this._minZoom=t,this.zoom=Math.max(this.zoom,t));},To.maxZoom.get=function(){return this._maxZoom},To.maxZoom.set=function(t){this._maxZoom!==t&&(this._maxZoom=t,this.zoom=Math.min(this.zoom,t));},To.minPitch.get=function(){return this._minPitch},To.minPitch.set=function(t){this._minPitch!==t&&(this._minPitch=t,this.pitch=Math.max(this.pitch,t));},To.maxPitch.get=function(){return this._maxPitch},To.maxPitch.set=function(t){this._maxPitch!==t&&(this._maxPitch=t,this.pitch=Math.min(this.pitch,t));},To.renderWorldCopies.get=function(){return this._renderWorldCopies},To.renderWorldCopies.set=function(t){void 0===t?t=!0:null===t&&(t=!1),this._renderWorldCopies=t;},To.worldSize.get=function(){return this.tileSize*this.scale},To.centerOffset.get=function(){return this.centerPoint._sub(this.size._div(2))},To.size.get=function(){return new t.Point(this.width,this.height)},To.bearing.get=function(){return -this.angle/Math.PI*180},To.bearing.set=function(e){var i=-t.wrap(e,-180,180)*Math.PI/180;this.angle!==i&&(this._unmodified=!1,this.angle=i,this._calcMatrices(),this.rotationMatrix=t.create$2(),t.rotate(this.rotationMatrix,this.rotationMatrix,this.angle));},To.pitch.get=function(){return this._pitch/Math.PI*180},To.pitch.set=function(e){var i=t.clamp(e,this.minPitch,this.maxPitch)/180*Math.PI;this._pitch!==i&&(this._unmodified=!1,this._pitch=i,this._calcMatrices());},To.fov.get=function(){return this._fov/Math.PI*180},To.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());},To.zoom.get=function(){return this._zoom},To.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());},To.center.get=function(){return this._center},To.center.set=function(t){t.lat===this._center.lat&&t.lng===this._center.lng||(this._unmodified=!1,this._center=t,this._constrain(),this._calcMatrices());},To.padding.get=function(){return this._edgeInsets.toJSON()},To.padding.set=function(t){this._edgeInsets.equals(t)||(this._unmodified=!1,this._edgeInsets.interpolate(this._edgeInsets,t,1),this._calcMatrices());},To.centerPoint.get=function(){return this._edgeInsets.getCenter(this.width,this.height)},wo.prototype.isPaddingEqual=function(t){return this._edgeInsets.equals(t)},wo.prototype.interpolatePadding=function(t,e,i){this._unmodified=!1,this._edgeInsets.interpolate(t,e,i),this._constrain(),this._calcMatrices();},wo.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)},wo.prototype.getVisibleUnwrappedCoordinates=function(e){var i=[new t.UnwrappedTileID(0,e)];if(this._renderWorldCopies)for(var o=this.pointCoordinate(new t.Point(0,0)),r=this.pointCoordinate(new t.Point(this.width,0)),a=this.pointCoordinate(new t.Point(this.width,this.height)),n=this.pointCoordinate(new t.Point(0,this.height)),s=Math.floor(Math.min(o.x,r.x,a.x,n.x)),l=Math.floor(Math.max(o.x,r.x,a.x,n.x)),c=s-1;c<=l+1;c++)0!==c&&i.push(new t.UnwrappedTileID(c,e));return i},wo.prototype.coveringTiles=function(e){var i=this.coveringZoomLevel(e),o=i;if(void 0!==e.minzoom&&ie.maxzoom&&(i=e.maxzoom);var r=t.MercatorCoordinate.fromLngLat(this.center),a=Math.pow(2,i),n=[a*r.x,a*r.y,0],s=yo.fromInvProjectionMatrix(this.invProjMatrix,this.worldSize,i),l=e.minzoom||0;this.pitch<=60&&this._edgeInsets.top<.1&&(l=i);var c=function(t){return {aabb:new xo([t*a,0,0],[(t+1)*a,a,0]),zoom:0,x:0,y:0,wrap:t,fullyVisible:!1}},u=[],h=[],p=i,d=e.reparseOverscaled?o:i;if(this._renderWorldCopies)for(var _=1;_<=3;_++)u.push(c(-_)),u.push(c(_));for(u.push(c(0));u.length>0;){var f=u.pop(),m=f.x,g=f.y,v=f.fullyVisible;if(!v){var y=f.aabb.intersects(s);if(0===y)continue;v=2===y;}var x=f.aabb.distanceX(n),b=f.aabb.distanceY(n),w=Math.max(Math.abs(x),Math.abs(b));if(f.zoom===p||w>3+(1<=l)h.push({tileID:new t.OverscaledTileID(f.zoom===p?d:f.zoom,f.wrap,f.zoom,m,g),distanceSq:t.sqrLen([n[0]-.5-m,n[1]-.5-g])});else for(var T=0;T<4;T++){var E=(m<<1)+T%2,I=(g<<1)+(T>>1);u.push({aabb:f.aabb.quadrant(T),zoom:f.zoom+1,x:E,y:I,wrap:f.wrap,fullyVisible:v});}}return h.sort((function(t,e){return t.distanceSq-e.distanceSq})).map((function(t){return t.tileID}))},wo.prototype.resize=function(t,e){this.width=t,this.height=e,this.pixelsToGLUnits=[2/t,-2/e],this._constrain(),this._calcMatrices();},To.unmodified.get=function(){return this._unmodified},wo.prototype.zoomScale=function(t){return Math.pow(2,t)},wo.prototype.scaleZoom=function(t){return Math.log(t)/Math.LN2},wo.prototype.project=function(e){var i=t.clamp(e.lat,-this.maxValidLatitude,this.maxValidLatitude);return new t.Point(t.mercatorXfromLng(e.lng)*this.worldSize,t.mercatorYfromLat(i)*this.worldSize)},wo.prototype.unproject=function(e){return new t.MercatorCoordinate(e.x/this.worldSize,e.y/this.worldSize).toLngLat()},To.point.get=function(){return this.project(this.center)},wo.prototype.setLocationAtPoint=function(e,i){var o=this.pointCoordinate(i),r=this.pointCoordinate(this.centerPoint),a=this.locationCoordinate(e),n=new t.MercatorCoordinate(a.x-(o.x-r.x),a.y-(o.y-r.y));this.center=this.coordinateLocation(n),this._renderWorldCopies&&(this.center=this.center.wrap());},wo.prototype.locationPoint=function(t){return this.coordinatePoint(this.locationCoordinate(t))},wo.prototype.pointLocation=function(t){return this.coordinateLocation(this.pointCoordinate(t))},wo.prototype.locationCoordinate=function(e){return t.MercatorCoordinate.fromLngLat(e)},wo.prototype.coordinateLocation=function(t){return t.toLngLat()},wo.prototype.pointCoordinate=function(e){var i=[e.x,e.y,0,1],o=[e.x,e.y,1,1];t.transformMat4(i,i,this.pixelMatrixInverse),t.transformMat4(o,o,this.pixelMatrixInverse);var r=i[3],a=o[3],n=i[1]/r,s=o[1]/a,l=i[2]/r,c=o[2]/a,u=l===c?0:(0-l)/(c-l);return new t.MercatorCoordinate(t.number(i[0]/r,o[0]/a,u)/this.worldSize,t.number(n,s,u)/this.worldSize)},wo.prototype.coordinatePoint=function(e){var i=[e.x*this.worldSize,e.y*this.worldSize,0,1];return t.transformMat4(i,i,this.pixelMatrix),new t.Point(i[0]/i[3],i[1]/i[3])},wo.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)))},wo.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},wo.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]);},wo.prototype.calculatePosMatrix=function(e,i){void 0===i&&(i=!1);var o=e.key,r=i?this._alignedPosMatrixCache:this._posMatrixCache;if(r[o])return r[o];var a=e.canonical,n=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*n,a.y*n,0]),t.scale(l,l,[n/t.EXTENT,n/t.EXTENT,1]),t.multiply(l,i?this.alignedProjMatrix:this.projMatrix,l),r[o]=new Float32Array(l),r[o]},wo.prototype.customLayerMatrix=function(){return this.mercatorMatrix.slice()},wo.prototype._constrain=function(){if(this.center&&this.width&&this.height&&!this._constraining){this._constraining=!0;var e,i,o,r,a=-90,n=90,s=-180,l=180,c=this.size,u=this._unmodified;if(this.latRange){var h=this.latRange;a=t.mercatorYfromLat(h[1])*this.worldSize,e=(n=t.mercatorYfromLat(h[0])*this.worldSize)-an&&(r=n-m);}if(this.lngRange){var g=d.x,v=c.x/2;g-vl&&(o=l-v);}void 0===o&&void 0===r||(this.center=this.unproject(new t.Point(void 0!==o?o:d.x,void 0!==r?r:d.y))),this._unmodified=u,this._constraining=!1;}},wo.prototype._calcMatrices=function(){if(this.height){var e=this.centerOffset;this.cameraToCenterDistance=.5/Math.tan(this._fov/2)*this.height;var i=Math.PI/2+this._pitch,o=this._fov*(.5+e.y/this.height),r=Math.sin(o)*this.cameraToCenterDistance/Math.sin(t.clamp(Math.PI-i-o,.01,Math.PI-.01)),a=this.point,n=a.x,s=a.y,l=1.01*(Math.cos(Math.PI/2-this._pitch)*r+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,[-n,-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 h=this.width%2/2,p=this.height%2/2,d=Math.cos(this.angle),_=Math.sin(this.angle),f=n-Math.round(n)+d*h+_*p,m=s-Math.round(s)+d*p+_*h,g=new Float64Array(u);if(t.translate(g,g,[f>.5?f-1:f,m>.5?m-1:m,0]),this.alignedProjMatrix=g,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={};}},wo.prototype.maxPitchScaleFactor=function(){if(!this.pixelMatrixInverse)return 1;var e=this.pointCoordinate(new t.Point(0,0)),i=[e.x*this.worldSize,e.y*this.worldSize,0,1];return t.transformMat4(i,i,this.pixelMatrix)[3]/this.cameraToCenterDistance},wo.prototype.getCameraPoint=function(){var e=Math.tan(this._pitch)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new t.Point(0,e))},wo.prototype.getCameraQueryGeometry=function(e){var i=this.getCameraPoint();if(1===e.length)return [e[0],i];for(var o=i.x,r=i.y,a=i.x,n=i.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},Eo.prototype._updateHashUnthrottled=function(){var e=this.getHashString();try{t.window.history.replaceState(t.window.history.state,"",e);}catch(t){}};var Io={linearity:.3,easing:t.bezier(0,0,.3,1)},Po=t.extend({deceleration:2500,maxSpeed:1400},Io),So=t.extend({deceleration:20,maxSpeed:1400},Io),Co=t.extend({deceleration:1e3,maxSpeed:360},Io),zo=t.extend({deceleration:1e3,maxSpeed:90},Io),Do=function(t){this._map=t,this.clear();};function Mo(t,e){(!t.duration||t.duration0&&i-e[0].time>160;)e.shift();},Do.prototype._onMoveEnd=function(e){if(this._drainInertiaBuffer(),!(this._inertiaBuffer.length<2)){for(var i={zoom:0,bearing:0,pitch:0,pan:new t.Point(0,0),pinchAround:void 0,around:void 0},o=0,r=this._inertiaBuffer;o=this._clickTolerance||this._map.fire(new Ao(t.type,this._map,t));},Bo.prototype.dblclick=function(t){return this._firePreventable(new Ao(t.type,this._map,t))},Bo.prototype.mouseover=function(t){this._map.fire(new Ao(t.type,this._map,t));},Bo.prototype.mouseout=function(t){this._map.fire(new Ao(t.type,this._map,t));},Bo.prototype.touchstart=function(t){return this._firePreventable(new Ro(t.type,this._map,t))},Bo.prototype.touchmove=function(t){this._map.fire(new Ro(t.type,this._map,t));},Bo.prototype.touchend=function(t){this._map.fire(new Ro(t.type,this._map,t));},Bo.prototype.touchcancel=function(t){this._map.fire(new Ro(t.type,this._map,t));},Bo.prototype._firePreventable=function(t){if(this._map.fire(t),t.defaultPrevented)return {}},Bo.prototype.isEnabled=function(){return !0},Bo.prototype.isActive=function(){return !1},Bo.prototype.enable=function(){},Bo.prototype.disable=function(){};var Oo=function(t){this._map=t;};Oo.prototype.reset=function(){this._delayContextMenu=!1,delete this._contextMenuEvent;},Oo.prototype.mousemove=function(t){this._map.fire(new Ao(t.type,this._map,t));},Oo.prototype.mousedown=function(){this._delayContextMenu=!0;},Oo.prototype.mouseup=function(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new Ao("contextmenu",this._map,this._contextMenuEvent)),delete this._contextMenuEvent);},Oo.prototype.contextmenu=function(t){this._delayContextMenu?this._contextMenuEvent=t:this._map.fire(new Ao(t.type,this._map,t)),this._map.listens("contextmenu")&&t.preventDefault();},Oo.prototype.isEnabled=function(){return !0},Oo.prototype.isActive=function(){return !1},Oo.prototype.enable=function(){},Oo.prototype.disable=function(){};var Fo=function(t,e){this._map=t,this._el=t.getCanvasContainer(),this._container=t.getContainer(),this._clickTolerance=e.clickTolerance||1;};function Uo(t,e){for(var i={},o=0;othis.numTouches)&&(this.aborted=!0),this.aborted||(void 0===this.startTime&&(this.startTime=e.timeStamp),o.length===this.numTouches&&(this.centroid=function(e){for(var i=new t.Point(0,0),o=0,r=e;o30)&&(this.aborted=!0);}}},No.prototype.touchend=function(t,e,i){if((!this.centroid||t.timeStamp-this.startTime>500)&&(this.aborted=!0),0===i.length){var o=!this.aborted&&this.centroid;if(this.reset(),o)return o}};var Zo=function(t){this.singleTap=new No(t),this.numTaps=t.numTaps,this.reset();};Zo.prototype.reset=function(){this.lastTime=1/0,delete this.lastTap,this.count=0,this.singleTap.reset();},Zo.prototype.touchstart=function(t,e,i){this.singleTap.touchstart(t,e,i);},Zo.prototype.touchmove=function(t,e,i){this.singleTap.touchmove(t,e,i);},Zo.prototype.touchend=function(t,e,i){var o=this.singleTap.touchend(t,e,i);if(o){var r=t.timeStamp-this.lastTime<500,a=!this.lastTap||this.lastTap.dist(o)<30;if(r&&a||this.reset(),this.count++,this.lastTime=t.timeStamp,this.lastTap=o,this.count===this.numTaps)return this.reset(),o}};var jo=function(){this._zoomIn=new Zo({numTouches:1,numTaps:2}),this._zoomOut=new Zo({numTouches:2,numTaps:1}),this.reset();};jo.prototype.reset=function(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset();},jo.prototype.touchstart=function(t,e,i){this._zoomIn.touchstart(t,e,i),this._zoomOut.touchstart(t,e,i);},jo.prototype.touchmove=function(t,e,i){this._zoomIn.touchmove(t,e,i),this._zoomOut.touchmove(t,e,i);},jo.prototype.touchend=function(t,e,i){var o=this,r=this._zoomIn.touchend(t,e,i),a=this._zoomOut.touchend(t,e,i);return r?(this._active=!0,t.preventDefault(),setTimeout((function(){return o.reset()}),0),{cameraAnimation:function(e){return e.easeTo({duration:300,zoom:e.getZoom()+1,around:e.unproject(r)},{originalEvent:t})}}):a?(this._active=!0,t.preventDefault(),setTimeout((function(){return o.reset()}),0),{cameraAnimation:function(e){return e.easeTo({duration:300,zoom:e.getZoom()-1,around:e.unproject(a)},{originalEvent:t})}}):void 0},jo.prototype.touchcancel=function(){this.reset();},jo.prototype.enable=function(){this._enabled=!0;},jo.prototype.disable=function(){this._enabled=!1,this.reset();},jo.prototype.isEnabled=function(){return this._enabled},jo.prototype.isActive=function(){return this._active};var qo=function(t){this.reset(),this._clickTolerance=t.clickTolerance||1;};qo.prototype.reset=function(){this._active=!1,this._moved=!1,delete this._lastPoint,delete this._eventButton;},qo.prototype._correctButton=function(t,e){return !1},qo.prototype._move=function(t,e){return {}},qo.prototype.mousedown=function(t,e){if(!this._lastPoint){var o=i.mouseButton(t);this._correctButton(t,o)&&(this._lastPoint=e,this._eventButton=o);}},qo.prototype.mousemoveWindow=function(t,e){var i=this._lastPoint;if(i&&(t.preventDefault(),this._moved||!(e.dist(i)0&&(this._active=!0);var r=Uo(o,i),a=new t.Point(0,0),n=new t.Point(0,0),s=0;for(var l in r){var c=r[l],u=this._touches[l];u&&(a._add(c),n._add(c.sub(u)),s++,r[l]=c);}if(this._touches=r,!(sMath.abs(t.x)}var er=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,tr(t[0].sub(t[1]))&&(this._valid=!1);},e.prototype._move=function(t,e,i){var o=t[0].sub(this._lastPoints[0]),r=t[1].sub(this._lastPoints[1]);if(this._valid=this.gestureBeginsVertically(o,r,i.timeStamp),this._valid)return this._lastPoints=t,this._active=!0,{pitchDelta:(o.y+r.y)/2*-.5}},e.prototype.gestureBeginsVertically=function(t,e,i){if(void 0!==this._valid)return this._valid;var o=t.mag()>=2,r=e.mag()>=2;if(o||r){if(!o||!r)return void 0===this._firstMove&&(this._firstMove=i),i-this._firstMove<100&&void 0;var a=t.y>0==e.y>0;return tr(t)&&tr(e)&&a}},e}(Ho),ir={panStep:100,bearingStep:15,pitchStep:10},or=function(){var t=ir;this._panStep=t.panStep,this._bearingStep=t.bearingStep,this._pitchStep=t.pitchStep;};function rr(t){return t*(2-t)}or.prototype.reset=function(){this._active=!1;},or.prototype.keydown=function(t){var e=this;if(!(t.altKey||t.ctrlKey||t.metaKey)){var i=0,o=0,r=0,a=0,n=0;switch(t.keyCode){case 61:case 107:case 171:case 187:i=1;break;case 189:case 109:case 173:i=-1;break;case 37:t.shiftKey?o=-1:(t.preventDefault(),a=-1);break;case 39:t.shiftKey?o=1:(t.preventDefault(),a=1);break;case 38:t.shiftKey?r=1:(t.preventDefault(),n=-1);break;case 40:t.shiftKey?r=-1:(t.preventDefault(),n=1);break;default:return}return {cameraAnimation:function(s){var l=s.getZoom();s.easeTo({duration:300,easeId:"keyboardHandler",easing:rr,zoom:i?Math.round(l)+i*(t.shiftKey?2:1):l,bearing:s.getBearing()+o*e._bearingStep,pitch:s.getPitch()+r*e._pitchStep,offset:[-a*e._panStep,-n*e._panStep],center:s.getCenter()},{originalEvent:t});}}}},or.prototype.enable=function(){this._enabled=!0;},or.prototype.disable=function(){this._enabled=!1,this.reset();},or.prototype.isEnabled=function(){return this._enabled},or.prototype.isActive=function(){return this._active};var ar=function(e,i){this._map=e,this._el=e.getCanvasContainer(),this._handler=i,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=1/450,t.bindAll(["_onWheel","_onTimeout","_onScrollFrame","_onScrollFinished"],this);};ar.prototype.setZoomRate=function(t){this._defaultZoomRate=t;},ar.prototype.setWheelZoomRate=function(t){this._wheelZoomRate=t;},ar.prototype.isEnabled=function(){return !!this._enabled},ar.prototype.isActive=function(){return !!this._active||void 0!==this._finishTimeout},ar.prototype.isZooming=function(){return !!this._zooming},ar.prototype.enable=function(t){this.isEnabled()||(this._enabled=!0,this._aroundCenter=t&&"center"===t.around);},ar.prototype.disable=function(){this.isEnabled()&&(this._enabled=!1);},ar.prototype.wheel=function(e){if(this.isEnabled()){var i=e.deltaMode===t.window.WheelEvent.DOM_DELTA_LINE?40*e.deltaY:e.deltaY,o=t.browser.now(),r=o-(this._lastWheelEventTime||0);this._lastWheelEventTime=o,0!==i&&i%4.000244140625==0?this._type="wheel":0!==i&&Math.abs(i)<4?this._type="trackpad":r>400?(this._type=null,this._lastValue=i,this._timeout=setTimeout(this._onTimeout,40,e)):this._type||(this._type=Math.abs(r*i)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,i+=this._lastValue)),e.shiftKey&&i&&(i/=4),this._type&&(this._lastWheelEvent=e,this._delta-=i,this._active||this._start(e)),e.preventDefault();}},ar.prototype._onTimeout=function(t){this._type="wheel",this._delta-=this._lastValue,this._active||this._start(t);},ar.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 o=i.mousePos(this._el,e);this._around=t.LngLat.convert(this._aroundCenter?this._map.getCenter():this._map.unproject(o)),this._aroundPoint=this._map.transform.locationPoint(this._around),this._frameId||(this._frameId=!0,this._handler._triggerRenderFrame());}},ar.prototype.renderFrame=function(){return this._onScrollFrame()},ar.prototype._onScrollFrame=function(){var e=this;if(this._frameId&&(this._frameId=null,this.isActive())){var i=this._map.transform;if(0!==this._delta){var o="wheel"===this._type&&Math.abs(this._delta)>4.000244140625?this._wheelZoomRate:this._defaultZoomRate,r=2/(1+Math.exp(-Math.abs(this._delta*o)));this._delta<0&&0!==r&&(r=1/r);var a="number"==typeof this._targetZoom?i.zoomScale(this._targetZoom):i.scale;this._targetZoom=Math.min(i.maxZoom,Math.max(i.minZoom,i.scaleZoom(a*r))),"wheel"===this._type&&(this._startZoom=i.zoom,this._easing=this._smoothOutEasing(200)),this._delta=0;}var n,s="number"==typeof this._targetZoom?this._targetZoom:i.zoom,l=this._startZoom,c=this._easing,u=!1;if("wheel"===this._type&&l&&c){var h=Math.min((t.browser.now()-this._lastWheelEventTime)/200,1),p=c(h);n=t.number(l,s,p),h<1?this._frameId||(this._frameId=!0):u=!0;}else n=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:n-i.zoom,around:this._aroundPoint,originalEvent:this._lastWheelEvent}}},ar.prototype._smoothOutEasing=function(e){var i=t.ease;if(this._prevEase){var o=this._prevEase,r=(t.browser.now()-o.start)/o.duration,a=o.easing(r+.01)-o.easing(r),n=.27/Math.sqrt(a*a+1e-4)*.01,s=Math.sqrt(.0729-n*n);i=t.bezier(n,s,.25,1);}return this._prevEase={start:t.browser.now(),duration:e,easing:i},i},ar.prototype.reset=function(){this._active=!1;};var nr=function(t,e){this._clickZoom=t,this._tapZoom=e;};nr.prototype.enable=function(){this._clickZoom.enable(),this._tapZoom.enable();},nr.prototype.disable=function(){this._clickZoom.disable(),this._tapZoom.disable();},nr.prototype.isEnabled=function(){return this._clickZoom.isEnabled()&&this._tapZoom.isEnabled()},nr.prototype.isActive=function(){return this._clickZoom.isActive()||this._tapZoom.isActive()};var sr=function(){this.reset();};sr.prototype.reset=function(){this._active=!1;},sr.prototype.dblclick=function(t,e){return t.preventDefault(),{cameraAnimation:function(i){i.easeTo({duration:300,zoom:i.getZoom()+(t.shiftKey?-1:1),around:i.unproject(e)},{originalEvent:t});}}},sr.prototype.enable=function(){this._enabled=!0;},sr.prototype.disable=function(){this._enabled=!1,this.reset();},sr.prototype.isEnabled=function(){return this._enabled},sr.prototype.isActive=function(){return this._active};var lr=function(){this._tap=new Zo({numTouches:1,numTaps:1}),this.reset();};lr.prototype.reset=function(){this._active=!1,delete this._swipePoint,delete this._swipeTouch,delete this._tapTime,this._tap.reset();},lr.prototype.touchstart=function(t,e,i){this._swipePoint||(this._tapTime&&t.timeStamp-this._tapTime>500&&this.reset(),this._tapTime?i.length>0&&(this._swipePoint=e[0],this._swipeTouch=i[0].identifier):this._tap.touchstart(t,e,i));},lr.prototype.touchmove=function(t,e,i){if(this._tapTime){if(this._swipePoint){if(i[0].identifier!==this._swipeTouch)return;var o=e[0],r=o.y-this._swipePoint.y;return this._swipePoint=o,t.preventDefault(),this._active=!0,{zoomDelta:r/128}}}else this._tap.touchmove(t,e,i);},lr.prototype.touchend=function(t,e,i){this._tapTime?this._swipePoint&&0===i.length&&this.reset():this._tap.touchend(t,e,i)&&(this._tapTime=t.timeStamp);},lr.prototype.touchcancel=function(){this.reset();},lr.prototype.enable=function(){this._enabled=!0;},lr.prototype.disable=function(){this._enabled=!1,this.reset();},lr.prototype.isEnabled=function(){return this._enabled},lr.prototype.isActive=function(){return this._active};var cr=function(t,e,i){this._el=t,this._mousePan=e,this._touchPan=i;};cr.prototype.enable=function(t){this._inertiaOptions=t||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add("mapboxgl-touch-drag-pan");},cr.prototype.disable=function(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove("mapboxgl-touch-drag-pan");},cr.prototype.isEnabled=function(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()},cr.prototype.isActive=function(){return this._mousePan.isActive()||this._touchPan.isActive()};var ur=function(t,e,i){this._pitchWithRotate=t.pitchWithRotate,this._mouseRotate=e,this._mousePitch=i;};ur.prototype.enable=function(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable();},ur.prototype.disable=function(){this._mouseRotate.disable(),this._mousePitch.disable();},ur.prototype.isEnabled=function(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())},ur.prototype.isActive=function(){return this._mouseRotate.isActive()||this._mousePitch.isActive()};var hr=function(t,e,i,o){this._el=t,this._touchZoom=e,this._touchRotate=i,this._tapDragZoom=o,this._rotationDisabled=!1,this._enabled=!0;};hr.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");},hr.prototype.disable=function(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove("mapboxgl-touch-zoom-rotate");},hr.prototype.isEnabled=function(){return this._touchZoom.isEnabled()&&(this._rotationDisabled||this._touchRotate.isEnabled())&&this._tapDragZoom.isEnabled()},hr.prototype.isActive=function(){return this._touchZoom.isActive()||this._touchRotate.isActive()||this._tapDragZoom.isActive()},hr.prototype.disableRotation=function(){this._rotationDisabled=!0,this._touchRotate.disable();},hr.prototype.enableRotation=function(){this._rotationDisabled=!1,this._touchZoom.isEnabled()&&this._touchRotate.enable();};var pr=function(t){return t.zoom||t.drag||t.pitch||t.rotate},dr=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 _r(t){return t.panDelta&&t.panDelta.mag()||t.zoomDelta||t.bearingDelta||t.pitchDelta}var fr=function(e,o){this._map=e,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new Do(e),this._bearingSnap=o.bearingSnap,this._previousActiveHandlers={},this._eventsInProgress={},this._addDefaultHandlers(o),t.bindAll(["handleEvent","handleWindowEvent"],this);var r=this._el;this._listeners=[[r,"touchstart",{passive:!1}],[r,"touchmove",{passive:!1}],[r,"touchend",void 0],[r,"touchcancel",void 0],[r,"mousedown",void 0],[r,"mousemove",void 0],[r,"mouseup",void 0],[t.window.document,"mousemove",{capture:!0}],[t.window.document,"mouseup",void 0],[r,"mouseover",void 0],[r,"mouseout",void 0],[r,"dblclick",void 0],[r,"click",void 0],[r,"keydown",{capture:!1}],[r,"keyup",void 0],[r,"wheel",{passive:!1}],[r,"contextmenu",void 0],[t.window,"blur",void 0]];for(var a=0,n=this._listeners;aa?Math.min(2,b):Math.max(.5,b),w=Math.pow(m,1-e),T=r.unproject(y.add(x.mult(e*w)).mult(f));r.setLocationAtPoint(r.renderWorldCopies?T.wrap():T,_);}o._fireMoveEvents(i);}),(function(t){o._afterEase(i,t);}),e),this},i.prototype._prepareEase=function(e,i,o){void 0===o&&(o={}),this._moving=!0,i||o.moving||this.fire(new t.Event("movestart",e)),this._zooming&&!o.zooming&&this.fire(new t.Event("zoomstart",e)),this._rotating&&!o.rotating&&this.fire(new t.Event("rotatestart",e)),this._pitching&&!o.pitching&&this.fire(new t.Event("pitchstart",e));},i.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));},i.prototype._afterEase=function(e,i){if(!this._easeId||!i||this._easeId!==i){delete this._easeId;var o=this._zooming,r=this._rotating,a=this._pitching;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._padding=!1,o&&this.fire(new t.Event("zoomend",e)),r&&this.fire(new t.Event("rotateend",e)),a&&this.fire(new t.Event("pitchend",e)),this.fire(new t.Event("moveend",e));}},i.prototype.flyTo=function(e,i){var o=this;if(!e.essential&&t.browser.prefersReducedMotion){var r=t.pick(e,["center","zoom","bearing","pitch","around"]);return this.jumpTo(r,i)}this.stop(),e=t.extend({offset:[0,0],speed:1.2,curve:1.42,easing:t.ease},e);var a=this.transform,n=this.getZoom(),s=this.getBearing(),l=this.getPitch(),c=this.getPadding(),u="zoom"in e?t.clamp(+e.zoom,a.minZoom,a.maxZoom):n,h="bearing"in e?this._normalizeBearing(e.bearing,s):s,p="pitch"in e?+e.pitch:l,d="padding"in e?e.padding:a.padding,_=a.zoomScale(u-n),f=t.Point.convert(e.offset),m=a.centerPoint.add(f),g=a.pointLocation(m),v=t.LngLat.convert(e.center||g);this._normalizeCenter(v);var y=a.project(g),x=a.project(v).sub(y),b=e.curve,w=Math.max(a.width,a.height),T=w/_,E=x.mag();if("minZoom"in e){var I=t.clamp(Math.min(e.minZoom,n,u),a.minZoom,a.maxZoom),P=w/a.zoomScale(I-n);b=Math.sqrt(P/E*2);}var S=b*b;function C(t){var e=(T*T-w*w+(t?-1:1)*S*S*E*E)/(2*(t?T:w)*S*E);return Math.log(Math.sqrt(e*e+1)-e)}function z(t){return (Math.exp(t)-Math.exp(-t))/2}function D(t){return (Math.exp(t)+Math.exp(-t))/2}var M=C(0),L=function(t){return D(M)/D(M+b*t)},A=function(t){return w*((D(M)*(z(e=M+b*t)/D(e))-z(M))/S)/E;var e;},R=(C(1)-M)/b;if(Math.abs(E)<1e-6||!isFinite(R)){if(Math.abs(w-T)<1e-6)return this.easeTo(e,i);var k=Te.maxDuration&&(e.duration=0),this._zooming=!0,this._rotating=s!==h,this._pitching=p!==l,this._padding=!a.isPaddingEqual(d),this._prepareEase(i,!1),this._ease((function(e){var r=e*R,_=1/L(r);a.zoom=1===e?u:n+a.scaleZoom(_),o._rotating&&(a.bearing=t.number(s,h,e)),o._pitching&&(a.pitch=t.number(l,p,e)),o._padding&&(a.interpolatePadding(c,d,e),m=a.centerPoint.add(f));var g=1===e?v:a.unproject(y.add(x.mult(A(r))).mult(_));a.setLocationAtPoint(a.renderWorldCopies?g.wrap():g,m),o._fireMoveEvents(i);}),(function(){return o._afterEase(i)}),e),this},i.prototype.isEasing=function(){return !!this._easeFrameId},i.prototype.stop=function(){return this._stop()},i.prototype._stop=function(t,e){if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),delete this._easeFrameId,delete this._onEaseFrame),this._onEaseEnd){var i=this._onEaseEnd;delete this._onEaseEnd,i.call(this,e);}if(!t){var o=this.handlers;o&&o.stop();}return this},i.prototype._ease=function(e,i,o){!1===o.animate||0===o.duration?(e(1),i()):(this._easeStart=t.browser.now(),this._easeOptions=o,this._onEaseFrame=e,this._onEaseEnd=i,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback));},i.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();},i.prototype._normalizeBearing=function(e,i){e=t.wrap(e,-180,180);var o=Math.abs(e-i);return Math.abs(e-360-i)180?-360:i<-180?360:0;}},i}(t.Evented),gr=function(e){void 0===e&&(e={}),this.options=e,t.bindAll(["_updateEditLink","_updateData","_updateCompact"],this);};gr.prototype.getDefaultPosition=function(){return "bottom-right"},gr.prototype.onAdd=function(t){var e=this.options&&this.options.compact;return this._map=t,this._container=i.create("div","mapboxgl-ctrl mapboxgl-ctrl-attrib"),this._innerContainer=i.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},gr.prototype.onRemove=function(){i.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;},gr.prototype._updateEditLink=function(){var e=this._editLink;e||(e=this._editLink=this._container.querySelector(".mapbox-improve-map"));var i=[{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 o=i.reduce((function(t,e,o){return e.value&&(t+=e.key+"="+e.value+(o=0)return !1;return !0}))).join(" | ");n!==this._attribHTML&&(this._attribHTML=n,t.length?(this._innerContainer.innerHTML=n,this._container.classList.remove("mapboxgl-attrib-empty")):this._container.classList.add("mapboxgl-attrib-empty"),this._editLink=null);}},gr.prototype._updateCompact=function(){this._map.getCanvasContainer().offsetWidth<=640?this._container.classList.add("mapboxgl-compact"):this._container.classList.remove("mapboxgl-compact");};var vr=function(){t.bindAll(["_updateLogo"],this),t.bindAll(["_updateCompact"],this);};vr.prototype.onAdd=function(t){this._map=t,this._container=i.create("div","mapboxgl-ctrl");var e=i.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},vr.prototype.onRemove=function(){i.remove(this._container),this._map.off("sourcedata",this._updateLogo),this._map.off("resize",this._updateCompact);},vr.prototype.getDefaultPosition=function(){return "bottom-left"},vr.prototype._updateLogo=function(t){t&&"metadata"!==t.sourceDataType||(this._container.style.display=this._logoRequired()?"block":"none");},vr.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}},vr.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 yr=function(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1;};yr.prototype.add=function(t){var e=++this._id;return this._queue.push({callback:t,id:e,cancelled:!1}),e},yr.prototype.remove=function(t){for(var e=this._currentlyRunning,i=0,o=e?this._queue.concat(e):this._queue;ie.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 r=new wo(e.minZoom,e.maxZoom,e.minPitch,e.maxPitch,e.renderWorldCopies);if(o.call(this,r,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 yr,this._controls=[],this._mapId=t.uniqueId(),this._locale=t.extend({},xr,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 wr))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 i._update(!1)})),this.on("moveend",(function(){return i._update(!1)})),this.on("zoom",(function(){return i._update(!0)})),void 0!==t.window&&(t.window.addEventListener("online",this._onWindowOnline,!1),t.window.addEventListener("resize",this._onWindowResize,!1)),this.handlers=new fr(this,e),this._hash=e.hash&&new Eo("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 gr({customAttribution:e.customAttribution})),this.addControl(new vr,e.logoPosition),this.on("style.load",(function(){i.transform.unmodified&&i.jumpTo(i.style.stylesheet);})),this.on("data",(function(e){i._update("style"===e.dataType),i.fire(new t.Event(e.dataType+"data",e));})),this.on("dataloading",(function(e){i.fire(new t.Event(e.dataType+"dataloading",e));}));}o&&(r.__proto__=o),(r.prototype=Object.create(o&&o.prototype)).constructor=r;var a={showTileBoundaries:{configurable:!0},showPadding:{configurable:!0},showCollisionBoxes:{configurable:!0},showOverdrawInspector:{configurable:!0},repaint:{configurable:!0},vertices:{configurable:!0},version:{configurable:!0}};return r.prototype._getMapId=function(){return this._mapId},r.prototype.addControl=function(e,i){if(void 0===i&&e.getDefaultPosition&&(i=e.getDefaultPosition()),void 0===i&&(i="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 o=e.onAdd(this);this._controls.push(e);var r=this._controlPositions[i];return -1!==i.indexOf("bottom")?r.insertBefore(o,r.firstChild):r.appendChild(o),this},r.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 i=this._controls.indexOf(e);return i>-1&&this._controls.splice(i,1),e.onRemove(this),this},r.prototype.resize=function(e){var i=this._containerDimensions(),o=i[0],r=i[1];this._resizeCanvas(o,r),this.transform.resize(o,r),this.painter.resize(o,r);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},r.prototype.getBounds=function(){return this.transform.getBounds()},r.prototype.getMaxBounds=function(){return this.transform.getMaxBounds()},r.prototype.setMaxBounds=function(e){return this.transform.setMaxBounds(t.LngLatBounds.convert(e)),this._update()},r.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")},r.prototype.getMaxZoom=function(){return this.transform.maxZoom},r.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")},r.prototype.getMaxPitch=function(){return this.transform.maxPitch},r.prototype.getRenderWorldCopies=function(){return this.transform.renderWorldCopies},r.prototype.setRenderWorldCopies=function(t){return this.transform.renderWorldCopies=t,this._update()},r.prototype.project=function(e){return this.transform.locationPoint(t.LngLat.convert(e))},r.prototype.unproject=function(e){return this.transform.pointLocation(t.Point.convert(e))},r.prototype.isMoving=function(){return this._moving||this.handlers.isMoving()},r.prototype.isZooming=function(){return this._zooming||this.handlers.isZooming()},r.prototype.isRotating=function(){return this._rotating||this.handlers.isRotating()},r.prototype._createDelegatedListener=function(t,e,i){var o,r=this;if("mouseenter"===t||"mouseover"===t){var a=!1;return {layer:e,listener:i,delegates:{mousemove:function(o){var n=r.getLayer(e)?r.queryRenderedFeatures(o.point,{layers:[e]}):[];n.length?a||(a=!0,i.call(r,new Ao(t,r,o.originalEvent,{features:n}))):a=!1;},mouseout:function(){a=!1;}}}}if("mouseleave"===t||"mouseout"===t){var n=!1;return {layer:e,listener:i,delegates:{mousemove:function(o){(r.getLayer(e)?r.queryRenderedFeatures(o.point,{layers:[e]}):[]).length?n=!0:n&&(n=!1,i.call(r,new Ao(t,r,o.originalEvent)));},mouseout:function(e){n&&(n=!1,i.call(r,new Ao(t,r,e.originalEvent)));}}}}return {layer:e,listener:i,delegates:(o={},o[t]=function(t){var o=r.getLayer(e)?r.queryRenderedFeatures(t.point,{layers:[e]}):[];o.length&&(t.features=o,i.call(r,t),delete t.features);},o)}},r.prototype.on=function(t,e,i){if(void 0===i)return o.prototype.on.call(this,t,e);var r=this._createDelegatedListener(t,e,i);for(var a in this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[t]=this._delegatedListeners[t]||[],this._delegatedListeners[t].push(r),r.delegates)this.on(a,r.delegates[a]);return this},r.prototype.once=function(t,e,i){if(void 0===i)return o.prototype.once.call(this,t,e);var r=this._createDelegatedListener(t,e,i);for(var a in r.delegates)this.once(a,r.delegates[a]);return this},r.prototype.off=function(t,e,i){var r=this;return void 0===i?o.prototype.off.call(this,t,e):(this._delegatedListeners&&this._delegatedListeners[t]&&function(o){for(var a=o[t],n=0;n180;){var s=o.locationPoint(e);if(s.x>=0&&s.y>=0&&s.x<=o.width&&s.y<=o.height)break;e.lng>o.center.lng?e.lng-=360:e.lng+=360;}return e}zr.prototype.down=function(t,e){this.mouseRotate.mousedown(t,e),this.mousePitch&&this.mousePitch.mousedown(t,e),i.disableDrag();},zr.prototype.move=function(t,e){var i=this.map,o=this.mouseRotate.mousemoveWindow(t,e);if(o&&o.bearingDelta&&i.setBearing(i.getBearing()+o.bearingDelta),this.mousePitch){var r=this.mousePitch.mousemoveWindow(t,e);r&&r.pitchDelta&&i.setPitch(i.getPitch()+r.pitchDelta);}},zr.prototype.off=function(){var t=this.element;i.removeEventListener(t,"mousedown",this.mousedown),i.removeEventListener(t,"touchstart",this.touchstart,{passive:!1}),i.removeEventListener(t,"touchmove",this.touchmove),i.removeEventListener(t,"touchend",this.touchend),i.removeEventListener(t,"touchcancel",this.reset),this.offTemp();},zr.prototype.offTemp=function(){i.enableDrag(),i.removeEventListener(t.window,"mousemove",this.mousemove),i.removeEventListener(t.window,"mouseup",this.mouseup);},zr.prototype.mousedown=function(e){this.down(t.extend({},e,{ctrlKey:!0,preventDefault:function(){return e.preventDefault()}}),i.mousePos(this.element,e)),i.addEventListener(t.window,"mousemove",this.mousemove),i.addEventListener(t.window,"mouseup",this.mouseup);},zr.prototype.mousemove=function(t){this.move(t,i.mousePos(this.element,t));},zr.prototype.mouseup=function(t){this.mouseRotate.mouseupWindow(t),this.mousePitch&&this.mousePitch.mouseupWindow(t),this.offTemp();},zr.prototype.touchstart=function(t){1!==t.targetTouches.length?this.reset():(this._startPos=this._lastPos=i.touchPos(this.element,t.targetTouches)[0],this.down({type:"mousedown",button:0,ctrlKey:!0,preventDefault:function(){return t.preventDefault()}},this._startPos));},zr.prototype.touchmove=function(t){1!==t.targetTouches.length?this.reset():(this._lastPos=i.touchPos(this.element,t.targetTouches)[0],this.move({preventDefault:function(){return t.preventDefault()}},this._lastPos));},zr.prototype.touchend=function(t){0===t.targetTouches.length&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos)e.getEast()||i.latitudee.getNorth())},o.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");}},o.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();}},o.prototype._updateCamera=function(e){var i=new t.LngLat(e.coords.longitude,e.coords.latitude),o=e.coords.accuracy,r=this._map.getBearing(),a=t.extend({bearing:r},this.options.fitBoundsOptions);this._map.fitBounds(i.toBounds(o),a,{geolocateSource:!0});},o.prototype._updateMarker=function(e){if(e){var i=new t.LngLat(e.coords.longitude,e.coords.latitude);this._accuracyCircleMarker.setLngLat(i).addTo(this._map),this._userLocationDotMarker.setLngLat(i).addTo(this._map),this._accuracy=e.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius();}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove();},o.prototype._updateCircleRadius=function(){var t=this._map._container.clientHeight/2,e=this._map.unproject([0,t]),i=this._map.unproject([1,t]),o=e.distanceTo(i),r=Math.ceil(2*this._accuracy/o);this._circleElement.style.width=r+"px",this._circleElement.style.height=r+"px";},o.prototype._onZoom=function(){this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius();},o.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 i=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.title=i,this._geolocateButton.setAttribute("aria-label",i),void 0!==this._geolocationWatchID&&this._clearWatch();}else {if(3===e.code&&Or)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();}},o.prototype._finish=function(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0;},o.prototype._setupUI=function(e){var o=this;if(this._container.addEventListener("contextmenu",(function(t){return t.preventDefault()})),this._geolocateButton=i.create("button","mapboxgl-ctrl-geolocate",this._container),i.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 r=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.title=r,this._geolocateButton.setAttribute("aria-label",r);}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=i.create("div","mapboxgl-user-location-dot"),this._userLocationDotMarker=new Rr(this._dotElement),this._circleElement=i.create("div","mapboxgl-user-location-accuracy-circle"),this._accuracyCircleMarker=new Rr({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"!==o._watchState||e.originalEvent&&"resize"===e.originalEvent.type||(o._watchState="BACKGROUND",o._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background"),o._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),o.fire(new t.Event("trackuserlocationend")));}));},o.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":Br--,Or=!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"),++Br>1?(e={maximumAge:6e5,timeout:0},Or=!0):(e=this.options.positionOptions,Or=!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},o.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);},o}(t.Evented),Ur={maxWidth:100,unit:"metric"},Nr=function(e){this.options=t.extend({},Ur,e),t.bindAll(["_onMove","setUnit"],this);};function Zr(t,e,i){var o=i&&i.maxWidth||100,r=t._container.clientHeight/2,a=t.unproject([0,r]),n=t.unproject([o,r]),s=a.distanceTo(n);if(i&&"imperial"===i.unit){var l=3.2808*s;l>5280?jr(e,o,l/5280,t._getUIString("ScaleControl.Miles")):jr(e,o,l,t._getUIString("ScaleControl.Feet"));}else i&&"nautical"===i.unit?jr(e,o,s/1852,t._getUIString("ScaleControl.NauticalMiles")):s>=1e3?jr(e,o,s/1e3,t._getUIString("ScaleControl.Kilometers")):jr(e,o,s,t._getUIString("ScaleControl.Meters"));}function jr(t,e,i,o){var r,a,n,s=(r=i,(a=Math.pow(10,(""+Math.floor(r)).length-1))*(n=(n=r/a)>=10?10:n>=5?5:n>=3?3:n>=2?2:n>=1?1:function(t){var e=Math.pow(10,Math.ceil(-Math.log(t)/Math.LN10));return Math.round(t*e)/e}(n)));t.style.width=e*(s/i)+"px",t.innerHTML=s+" "+o;}Nr.prototype.getDefaultPosition=function(){return "bottom-left"},Nr.prototype._onMove=function(){Zr(this._map,this._container,this.options);},Nr.prototype.onAdd=function(t){return this._map=t,this._container=i.create("div","mapboxgl-ctrl mapboxgl-ctrl-scale",t.getContainer()),this._map.on("move",this._onMove),this._onMove(),this._container},Nr.prototype.onRemove=function(){i.remove(this._container),this._map.off("move",this._onMove),this._map=void 0;},Nr.prototype.setUnit=function(t){this.options.unit=t,Zr(this._map,this._container,this.options);};var qr=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");};qr.prototype.onAdd=function(e){return this._map=e,this._container||(this._container=this._map.getContainer()),this._controlContainer=i.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},qr.prototype.onRemove=function(){i.remove(this._controlContainer),this._map=null,t.window.document.removeEventListener(this._fullscreenchange,this._changeIcon);},qr.prototype._checkFullscreenSupport=function(){return !!(t.window.document.fullscreenEnabled||t.window.document.mozFullScreenEnabled||t.window.document.msFullscreenEnabled||t.window.document.webkitFullscreenEnabled)},qr.prototype._setupUI=function(){var e=this._fullscreenButton=i.create("button","mapboxgl-ctrl-fullscreen",this._controlContainer);i.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);},qr.prototype._updateTitle=function(){var t=this._getTitle();this._fullscreenButton.setAttribute("aria-label",t),this._fullscreenButton.title=t;},qr.prototype._getTitle=function(){return this._map._getUIString(this._isFullscreen()?"FullscreenControl.Exit":"FullscreenControl.Enter")},qr.prototype._isFullscreen=function(){return this._fullscreen},qr.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());},qr.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 Vr={closeButton:!0,closeOnClick:!0,className:"",maxWidth:"240px"},Gr=function(e){function o(i){e.call(this),this.options=t.extend(Object.create(Vr),i),t.bindAll(["_update","_onClose","remove","_onMouseMove","_onMouseUp","_onDrag"],this);}return e&&(o.__proto__=e),(o.prototype=Object.create(e&&e.prototype)).constructor=o,o.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},o.prototype.isOpen=function(){return !!this._map},o.prototype.remove=function(){return this._content&&i.remove(this._content),this._container&&(i.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},o.prototype.getLngLat=function(){return this._lngLat},o.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},o.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},o.prototype.getElement=function(){return this._container},o.prototype.setText=function(e){return this.setDOMContent(t.window.document.createTextNode(e))},o.prototype.setHTML=function(e){var i,o=t.window.document.createDocumentFragment(),r=t.window.document.createElement("body");for(r.innerHTML=e;i=r.firstChild;)o.appendChild(i);return this.setDOMContent(o)},o.prototype.getMaxWidth=function(){return this._container&&this._container.style.maxWidth},o.prototype.setMaxWidth=function(t){return this.options.maxWidth=t,this._update(),this},o.prototype.setDOMContent=function(t){return this._createContent(),this._content.appendChild(t),this._update(),this},o.prototype.addClassName=function(t){this._container&&this._container.classList.add(t);},o.prototype.removeClassName=function(t){this._container&&this._container.classList.remove(t);},o.prototype.toggleClassName=function(t){if(this._container)return this._container.classList.toggle(t)},o.prototype._createContent=function(){this._content&&i.remove(this._content),this._content=i.create("div","mapboxgl-popup-content",this._container),this.options.closeButton&&(this._closeButton=i.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));},o.prototype._onMouseUp=function(t){this._update(t.point);},o.prototype._onMouseMove=function(t){this._update(t.point);},o.prototype._onDrag=function(t){this._update(t.point);},o.prototype._update=function(e){var o=this;if(this._map&&(this._lngLat||this._trackPointer)&&this._content&&(this._container||(this._container=i.create("div","mapboxgl-popup",this._map.getContainer()),this._tip=i.create("div","mapboxgl-popup-tip",this._container),this._container.appendChild(this._content),this.options.className&&this.options.className.split(" ").forEach((function(t){return o._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=Dr(this._lngLat,this._pos,this._map.transform)),!this._trackPointer||e)){var r=this._pos=this._trackPointer&&e?e:this._map.project(this._lngLat),a=this.options.anchor,n=function e(i){if(i){if("number"==typeof i){var o=Math.round(Math.sqrt(.5*Math.pow(i,2)));return {center:new t.Point(0,0),top:new t.Point(0,i),"top-left":new t.Point(o,o),"top-right":new t.Point(-o,o),bottom:new t.Point(0,-i),"bottom-left":new t.Point(o,-o),"bottom-right":new t.Point(-o,-o),left:new t.Point(i,0),right:new t.Point(-i,0)}}if(i instanceof t.Point||Array.isArray(i)){var r=t.Point.convert(i);return {center:r,top:r,"top-left":r,"top-right":r,bottom:r,"bottom-left":r,"bottom-right":r,left:r,right:r}}return {center:t.Point.convert(i.center||[0,0]),top:t.Point.convert(i.top||[0,0]),"top-left":t.Point.convert(i["top-left"]||[0,0]),"top-right":t.Point.convert(i["top-right"]||[0,0]),bottom:t.Point.convert(i.bottom||[0,0]),"bottom-left":t.Point.convert(i["bottom-left"]||[0,0]),"bottom-right":t.Point.convert(i["bottom-right"]||[0,0]),left:t.Point.convert(i.left||[0,0]),right:t.Point.convert(i.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=r.y+n.bottom.ythis._map.transform.height-c?["bottom"]:[],r.xthis._map.transform.width-l/2&&s.push("right"),a=0===s.length?"bottom":s.join("-");}var u=r.add(n[a]).round();i.setTransform(this._container,Mr[a]+" translate("+u.x+"px,"+u.y+"px)"),Lr(this._container,a,"popup");}},o.prototype._onClose=function(){this.remove();},o}(t.Evented),Wr={version:t.version,supported:e,setRTLTextPlugin:t.setRTLTextPlugin,getRTLTextPluginStatus:t.getRTLTextPluginStatus,Map:Ir,NavigationControl:Cr,GeolocateControl:Fr,AttributionControl:gr,ScaleControl:Nr,FullscreenControl:qr,Popup:Gr,Marker:Rr,Style:qe,LngLat:t.LngLat,LngLatBounds:t.LngLatBounds,Point:t.Point,MercatorCoordinate:t.MercatorCoordinate,Evented:t.Evented,config:t.config,prewarm:function(){Ft().acquire(Rt);},clearPrewarmedResources:function(){var t=Bt;t&&(t.isPreloaded()&&1===t.numActive()?(t.release(Rt),Bt=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 kt.workerCount},set workerCount(t){kt.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 Wr})); + +// + +return mapboxgl; + +}))); + + +},{}],458:[function(_dereq_,module,exports){ +'use strict' + +module.exports = createTable + +var chull = _dereq_('convex-hull') + +function constructVertex(d, a, b) { + var x = new Array(d) + for(var i=0; i row[1][2]) + quaternion[0] = -quaternion[0] + if (row[0][2] > row[2][0]) + quaternion[1] = -quaternion[1] + if (row[1][0] > row[0][1]) + quaternion[2] = -quaternion[2] + return true } -function VAONative(gl, ext, handle) { - this.gl = gl - this._ext = ext - this.handle = handle - this._attribs = [] - this._useElements = false - this._elementsType = gl.UNSIGNED_SHORT +//will be replaced by gl-vec4 eventually +function vec4multMat4(out, a, m) { + var x = a[0], y = a[1], z = a[2], w = a[3]; + out[0] = m[0] * x + m[4] * y + m[8] * z + m[12] * w; + out[1] = m[1] * x + m[5] * y + m[9] * z + m[13] * w; + out[2] = m[2] * x + m[6] * y + m[10] * z + m[14] * w; + out[3] = m[3] * x + m[7] * y + m[11] * z + m[15] * w; + return out; } -VAONative.prototype.bind = function() { - this._ext.bindVertexArrayOES(this.handle) - for(var i=0; i 1.0){ - return 0 - } else { - return Math.acos(cosine) - } +function vec4() { + return [0,0,0,1] } +},{"gl-mat4/determinant":281,"gl-vec3/lerp":380,"mat4-decompose":459,"mat4-recompose":462,"quat-slerp":523}],462:[function(_dereq_,module,exports){ +/* +Input: translation ; a 3 component vector + scale ; a 3 component vector + skew ; skew factors XY,XZ,YZ represented as a 3 component vector + perspective ; a 4 component vector + quaternion ; a 4 component vector +Output: matrix ; a 4x4 matrix -},{"./dot":370,"./fromValues":376,"./normalize":387}],361:[function(_dereq_,module,exports){ -module.exports = ceil +From: http://www.w3.org/TR/css3-transforms/#recomposing-to-a-3d-matrix +*/ -/** - * Math.ceil the components of a vec3 - * - * @param {vec3} out the receiving vector - * @param {vec3} a vector to ceil - * @returns {vec3} out - */ -function ceil(out, a) { - out[0] = Math.ceil(a[0]) - out[1] = Math.ceil(a[1]) - out[2] = Math.ceil(a[2]) - return out +var mat4 = { + identity: _dereq_('gl-mat4/identity'), + translate: _dereq_('gl-mat4/translate'), + multiply: _dereq_('gl-mat4/multiply'), + create: _dereq_('gl-mat4/create'), + scale: _dereq_('gl-mat4/scale'), + fromRotationTranslation: _dereq_('gl-mat4/fromRotationTranslation') } -},{}],362:[function(_dereq_,module,exports){ -module.exports = clone; +var rotationMatrix = mat4.create() +var temp = mat4.create() -/** - * Creates a new vec3 initialized with values from an existing vector - * - * @param {vec3} a vector to clone - * @returns {vec3} a new 3D vector - */ -function clone(a) { - var out = new Float32Array(3) - out[0] = a[0] - out[1] = a[1] - out[2] = a[2] - return out -} -},{}],363:[function(_dereq_,module,exports){ -module.exports = copy; +module.exports = function recomposeMat4(matrix, translation, scale, skew, perspective, quaternion) { + mat4.identity(matrix) -/** - * Copy the values from one vec3 to another - * - * @param {vec3} out the receiving vector - * @param {vec3} a the source vector - * @returns {vec3} out - */ -function copy(out, a) { - out[0] = a[0] - out[1] = a[1] - out[2] = a[2] - return out -} -},{}],364:[function(_dereq_,module,exports){ -module.exports = create; + //apply translation & rotation + mat4.fromRotationTranslation(matrix, quaternion, translation) -/** - * Creates a new, empty vec3 - * - * @returns {vec3} a new 3D vector - */ -function create() { - var out = new Float32Array(3) - out[0] = 0 - out[1] = 0 - out[2] = 0 - return out -} -},{}],365:[function(_dereq_,module,exports){ -module.exports = cross; + //apply perspective + matrix[3] = perspective[0] + matrix[7] = perspective[1] + matrix[11] = perspective[2] + matrix[15] = perspective[3] + + // apply skew + // temp is a identity 4x4 matrix initially + mat4.identity(temp) -/** - * Computes the cross product of two vec3's - * - * @param {vec3} out the receiving vector - * @param {vec3} a the first operand - * @param {vec3} b the second operand - * @returns {vec3} out - */ -function cross(out, a, b) { - var ax = a[0], ay = a[1], az = a[2], - bx = b[0], by = b[1], bz = b[2] + if (skew[2] !== 0) { + temp[9] = skew[2] + mat4.multiply(matrix, matrix, temp) + } - out[0] = ay * bz - az * by - out[1] = az * bx - ax * bz - out[2] = ax * by - ay * bx - return out -} -},{}],366:[function(_dereq_,module,exports){ -module.exports = _dereq_('./distance') + if (skew[1] !== 0) { + temp[9] = 0 + temp[8] = skew[1] + mat4.multiply(matrix, matrix, temp) + } -},{"./distance":367}],367:[function(_dereq_,module,exports){ -module.exports = distance; + if (skew[0] !== 0) { + temp[8] = 0 + temp[4] = skew[0] + mat4.multiply(matrix, matrix, temp) + } -/** - * Calculates the euclidian distance between two vec3's - * - * @param {vec3} a the first operand - * @param {vec3} b the second operand - * @returns {Number} distance between a and b - */ -function distance(a, b) { - var x = b[0] - a[0], - y = b[1] - a[1], - z = b[2] - a[2] - return Math.sqrt(x*x + y*y + z*z) + //apply scale + mat4.scale(matrix, matrix, scale) + return matrix } -},{}],368:[function(_dereq_,module,exports){ -module.exports = _dereq_('./divide') +},{"gl-mat4/create":280,"gl-mat4/fromRotationTranslation":284,"gl-mat4/identity":291,"gl-mat4/multiply":295,"gl-mat4/scale":303,"gl-mat4/translate":305}],463:[function(_dereq_,module,exports){ +'use strict'; +module.exports = Math.log2 || function (x) { + return Math.log(x) * Math.LOG2E; +}; -},{"./divide":369}],369:[function(_dereq_,module,exports){ -module.exports = divide; +},{}],464:[function(_dereq_,module,exports){ +'use strict' + +var bsearch = _dereq_('binary-search-bounds') +var m4interp = _dereq_('mat4-interpolate') +var invert44 = _dereq_('gl-mat4/invert') +var rotateX = _dereq_('gl-mat4/rotateX') +var rotateY = _dereq_('gl-mat4/rotateY') +var rotateZ = _dereq_('gl-mat4/rotateZ') +var lookAt = _dereq_('gl-mat4/lookAt') +var translate = _dereq_('gl-mat4/translate') +var scale = _dereq_('gl-mat4/scale') +var normalize = _dereq_('gl-vec3/normalize') + +var DEFAULT_CENTER = [0,0,0] + +module.exports = createMatrixCameraController + +function MatrixCameraController(initialMatrix) { + this._components = initialMatrix.slice() + this._time = [0] + this.prevMatrix = initialMatrix.slice() + this.nextMatrix = initialMatrix.slice() + this.computedMatrix = initialMatrix.slice() + this.computedInverse = initialMatrix.slice() + this.computedEye = [0,0,0] + this.computedUp = [0,0,0] + this.computedCenter = [0,0,0] + this.computedRadius = [0] + this._limits = [-Infinity, Infinity] +} + +var proto = MatrixCameraController.prototype + +proto.recalcMatrix = function(t) { + var time = this._time + var tidx = bsearch.le(time, t) + var mat = this.computedMatrix + if(tidx < 0) { + return + } + var comps = this._components + if(tidx === time.length-1) { + var ptr = 16*tidx + for(var i=0; i<16; ++i) { + mat[i] = comps[ptr++] + } + } else { + var dt = (time[tidx+1] - time[tidx]) + var ptr = 16*tidx + var prev = this.prevMatrix + var allEqual = true + for(var i=0; i<16; ++i) { + prev[i] = comps[ptr++] + } + var next = this.nextMatrix + for(var i=0; i<16; ++i) { + next[i] = comps[ptr++] + allEqual = allEqual && (prev[i] === next[i]) + } + if(dt < 1e-6 || allEqual) { + for(var i=0; i<16; ++i) { + mat[i] = prev[i] + } + } else { + m4interp(mat, prev, next, (t - time[tidx])/dt) + } + } + + var up = this.computedUp + up[0] = mat[1] + up[1] = mat[5] + up[2] = mat[9] + normalize(up, up) + + var imat = this.computedInverse + invert44(imat, mat) + var eye = this.computedEye + var w = imat[15] + eye[0] = imat[12]/w + eye[1] = imat[13]/w + eye[2] = imat[14]/w + + var center = this.computedCenter + var radius = Math.exp(this.computedRadius[0]) + for(var i=0; i<3; ++i) { + center[i] = eye[i] - mat[2+4*i] * radius + } +} + +proto.idle = function(t) { + if(t < this.lastT()) { + return + } + var mc = this._components + var ptr = mc.length-16 + for(var i=0; i<16; ++i) { + mc.push(mc[ptr++]) + } + this._time.push(t) +} + +proto.flush = function(t) { + var idx = bsearch.gt(this._time, t) - 2 + if(idx < 0) { + return + } + this._time.splice(0, idx) + this._components.splice(0, 16*idx) +} + +proto.lastT = function() { + return this._time[this._time.length-1] +} + +proto.lookAt = function(t, eye, center, up) { + this.recalcMatrix(t) + eye = eye || this.computedEye + center = center || DEFAULT_CENTER + up = up || this.computedUp + this.setMatrix(t, lookAt(this.computedMatrix, eye, center, up)) + var d2 = 0.0 + for(var i=0; i<3; ++i) { + d2 += Math.pow(center[i] - eye[i], 2) + } + d2 = Math.log(Math.sqrt(d2)) + this.computedRadius[0] = d2 +} + +proto.rotate = function(t, yaw, pitch, roll) { + this.recalcMatrix(t) + var mat = this.computedInverse + if(yaw) rotateY(mat, mat, yaw) + if(pitch) rotateX(mat, mat, pitch) + if(roll) rotateZ(mat, mat, roll) + this.setMatrix(t, invert44(this.computedMatrix, mat)) +} + +var tvec = [0,0,0] + +proto.pan = function(t, dx, dy, dz) { + tvec[0] = -(dx || 0.0) + tvec[1] = -(dy || 0.0) + tvec[2] = -(dz || 0.0) + this.recalcMatrix(t) + var mat = this.computedInverse + translate(mat, mat, tvec) + this.setMatrix(t, invert44(mat, mat)) +} + +proto.translate = function(t, dx, dy, dz) { + tvec[0] = dx || 0.0 + tvec[1] = dy || 0.0 + tvec[2] = dz || 0.0 + this.recalcMatrix(t) + var mat = this.computedMatrix + translate(mat, mat, tvec) + this.setMatrix(t, mat) +} + +proto.setMatrix = function(t, mat) { + if(t < this.lastT()) { + return + } + this._time.push(t) + for(var i=0; i<16; ++i) { + this._components.push(mat[i]) + } +} + +proto.setDistance = function(t, d) { + this.computedRadius[0] = d +} + +proto.setDistanceLimits = function(a,b) { + var lim = this._limits + lim[0] = a + lim[1] = b +} + +proto.getDistanceLimits = function(out) { + var lim = this._limits + if(out) { + out[0] = lim[0] + out[1] = lim[1] + return out + } + return lim +} + +function createMatrixCameraController(options) { + options = options || {} + var matrix = options.matrix || + [1,0,0,0, + 0,1,0,0, + 0,0,1,0, + 0,0,0,1] + return new MatrixCameraController(matrix) +} -/** - * Divides two vec3's - * - * @param {vec3} out the receiving vector - * @param {vec3} a the first operand - * @param {vec3} b the second operand - * @returns {vec3} out - */ -function divide(out, a, b) { - out[0] = a[0] / b[0] - out[1] = a[1] / b[1] - out[2] = a[2] / b[2] - return out -} -},{}],370:[function(_dereq_,module,exports){ -module.exports = dot; +},{"binary-search-bounds":465,"gl-mat4/invert":293,"gl-mat4/lookAt":294,"gl-mat4/rotateX":300,"gl-mat4/rotateY":301,"gl-mat4/rotateZ":302,"gl-mat4/scale":303,"gl-mat4/translate":305,"gl-vec3/normalize":386,"mat4-interpolate":461}],465:[function(_dereq_,module,exports){ +arguments[4][243][0].apply(exports,arguments) +},{"dup":243}],466:[function(_dereq_,module,exports){ +'use strict' -/** - * Calculates the dot product of two vec3's - * - * @param {vec3} a the first operand - * @param {vec3} b the second operand - * @returns {Number} dot product of a and b - */ -function dot(a, b) { - return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] -} -},{}],371:[function(_dereq_,module,exports){ -module.exports = 0.000001 +module.exports = monotoneConvexHull2D -},{}],372:[function(_dereq_,module,exports){ -module.exports = equals +var orient = _dereq_('robust-orientation')[3] -var EPSILON = _dereq_('./epsilon') +function monotoneConvexHull2D(points) { + var n = points.length -/** - * Returns whether or not the vectors have approximately the same elements in the same position. - * - * @param {vec3} a The first vector. - * @param {vec3} b The second vector. - * @returns {Boolean} True if the vectors are equal, false otherwise. - */ -function equals(a, b) { - var a0 = a[0] - var a1 = a[1] - var a2 = a[2] - var b0 = b[0] - var b1 = b[1] - var b2 = b[2] - return (Math.abs(a0 - b0) <= EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && - Math.abs(a1 - b1) <= EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && - Math.abs(a2 - b2) <= EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2))) -} + if(n < 3) { + var result = new Array(n) + for(var i=0; i 1 && orient( + points[lower[m-2]], + points[lower[m-1]], + p) <= 0) { + m -= 1 + lower.pop() + } + lower.push(idx) -/** - * Perform some operation over an array of vec3s. - * - * @param {Array} a the array of vectors to iterate over - * @param {Number} stride Number of elements between the start of each vec3. If 0 assumes tightly packed - * @param {Number} offset Number of elements to skip at the beginning of the array - * @param {Number} count Number of vec3s to iterate over. If 0 iterates over entire array - * @param {Function} fn Function to call for each vector in the array - * @param {Object} [arg] additional argument to pass to fn - * @returns {Array} a - * @function - */ -function forEach(a, stride, offset, count, fn, arg) { - var i, l - if(!stride) { - stride = 3 - } + //Insert into upper list + m = upper.length + while(m > 1 && orient( + points[upper[m-2]], + points[upper[m-1]], + p) >= 0) { + m -= 1 + upper.pop() + } + upper.push(idx) + } - if(!offset) { - offset = 0 - } - - if(count) { - l = Math.min((count * stride) + offset, a.length) - } else { - l = a.length - } + //Merge lists together + var result = new Array(upper.length + lower.length - 2) + var ptr = 0 + for(var i=0, nl=lower.length; i0; --j) { + result[ptr++] = upper[j] + } - for(i = offset; i < l; i += stride) { - vec[0] = a[i] - vec[1] = a[i+1] - vec[2] = a[i+2] - fn(vec, vec, arg) - a[i] = vec[0] - a[i+1] = vec[1] - a[i+2] = vec[2] - } - - return a + //Return result + return result } -},{"./create":364}],376:[function(_dereq_,module,exports){ -module.exports = fromValues; +},{"robust-orientation":542}],467:[function(_dereq_,module,exports){ +'use strict' -/** - * Creates a new vec3 initialized with the given values - * - * @param {Number} x X component - * @param {Number} y Y component - * @param {Number} z Z component - * @returns {vec3} a new 3D vector - */ -function fromValues(x, y, z) { - var out = new Float32Array(3) - out[0] = x - out[1] = y - out[2] = z - return out -} -},{}],377:[function(_dereq_,module,exports){ -module.exports = { - EPSILON: _dereq_('./epsilon') - , create: _dereq_('./create') - , clone: _dereq_('./clone') - , angle: _dereq_('./angle') - , fromValues: _dereq_('./fromValues') - , copy: _dereq_('./copy') - , set: _dereq_('./set') - , equals: _dereq_('./equals') - , exactEquals: _dereq_('./exactEquals') - , add: _dereq_('./add') - , subtract: _dereq_('./subtract') - , sub: _dereq_('./sub') - , multiply: _dereq_('./multiply') - , mul: _dereq_('./mul') - , divide: _dereq_('./divide') - , div: _dereq_('./div') - , min: _dereq_('./min') - , max: _dereq_('./max') - , floor: _dereq_('./floor') - , ceil: _dereq_('./ceil') - , round: _dereq_('./round') - , scale: _dereq_('./scale') - , scaleAndAdd: _dereq_('./scaleAndAdd') - , distance: _dereq_('./distance') - , dist: _dereq_('./dist') - , squaredDistance: _dereq_('./squaredDistance') - , sqrDist: _dereq_('./sqrDist') - , length: _dereq_('./length') - , len: _dereq_('./len') - , squaredLength: _dereq_('./squaredLength') - , sqrLen: _dereq_('./sqrLen') - , negate: _dereq_('./negate') - , inverse: _dereq_('./inverse') - , normalize: _dereq_('./normalize') - , dot: _dereq_('./dot') - , cross: _dereq_('./cross') - , lerp: _dereq_('./lerp') - , random: _dereq_('./random') - , transformMat4: _dereq_('./transformMat4') - , transformMat3: _dereq_('./transformMat3') - , transformQuat: _dereq_('./transformQuat') - , rotateX: _dereq_('./rotateX') - , rotateY: _dereq_('./rotateY') - , rotateZ: _dereq_('./rotateZ') - , forEach: _dereq_('./forEach') -} +module.exports = mouseListen -},{"./add":359,"./angle":360,"./ceil":361,"./clone":362,"./copy":363,"./create":364,"./cross":365,"./dist":366,"./distance":367,"./div":368,"./divide":369,"./dot":370,"./epsilon":371,"./equals":372,"./exactEquals":373,"./floor":374,"./forEach":375,"./fromValues":376,"./inverse":378,"./len":379,"./length":380,"./lerp":381,"./max":382,"./min":383,"./mul":384,"./multiply":385,"./negate":386,"./normalize":387,"./random":388,"./rotateX":389,"./rotateY":390,"./rotateZ":391,"./round":392,"./scale":393,"./scaleAndAdd":394,"./set":395,"./sqrDist":396,"./sqrLen":397,"./squaredDistance":398,"./squaredLength":399,"./sub":400,"./subtract":401,"./transformMat3":402,"./transformMat4":403,"./transformQuat":404}],378:[function(_dereq_,module,exports){ -module.exports = inverse; +var mouse = _dereq_('mouse-event') -/** - * Returns the inverse of the components of a vec3 - * - * @param {vec3} out the receiving vector - * @param {vec3} a vector to invert - * @returns {vec3} out - */ -function inverse(out, a) { - out[0] = 1.0 / a[0] - out[1] = 1.0 / a[1] - out[2] = 1.0 / a[2] - return out -} -},{}],379:[function(_dereq_,module,exports){ -module.exports = _dereq_('./length') +function mouseListen (element, callback) { + if (!callback) { + callback = element + element = window + } -},{"./length":380}],380:[function(_dereq_,module,exports){ -module.exports = length; + var buttonState = 0 + var x = 0 + var y = 0 + var mods = { + shift: false, + alt: false, + control: false, + meta: false + } + var attached = false -/** - * Calculates the length of a vec3 - * - * @param {vec3} a vector to calculate length of - * @returns {Number} length of a - */ -function length(a) { - var x = a[0], - y = a[1], - z = a[2] - return Math.sqrt(x*x + y*y + z*z) -} -},{}],381:[function(_dereq_,module,exports){ -module.exports = lerp; + function updateMods (ev) { + var changed = false + if ('altKey' in ev) { + changed = changed || ev.altKey !== mods.alt + mods.alt = !!ev.altKey + } + if ('shiftKey' in ev) { + changed = changed || ev.shiftKey !== mods.shift + mods.shift = !!ev.shiftKey + } + if ('ctrlKey' in ev) { + changed = changed || ev.ctrlKey !== mods.control + mods.control = !!ev.ctrlKey + } + if ('metaKey' in ev) { + changed = changed || ev.metaKey !== mods.meta + mods.meta = !!ev.metaKey + } + return changed + } -/** - * Performs a linear interpolation between two vec3's - * - * @param {vec3} out the receiving vector - * @param {vec3} a the first operand - * @param {vec3} b the second operand - * @param {Number} t interpolation amount between the two inputs - * @returns {vec3} out - */ -function lerp(out, a, b, t) { - var ax = a[0], - ay = a[1], - az = a[2] - out[0] = ax + t * (b[0] - ax) - out[1] = ay + t * (b[1] - ay) - out[2] = az + t * (b[2] - az) - return out -} -},{}],382:[function(_dereq_,module,exports){ -module.exports = max; + function handleEvent (nextButtons, ev) { + var nextX = mouse.x(ev) + var nextY = mouse.y(ev) + if ('buttons' in ev) { + nextButtons = ev.buttons | 0 + } + if (nextButtons !== buttonState || + nextX !== x || + nextY !== y || + updateMods(ev)) { + buttonState = nextButtons | 0 + x = nextX || 0 + y = nextY || 0 + callback && callback(buttonState, x, y, mods) + } + } -/** - * Returns the maximum of two vec3's - * - * @param {vec3} out the receiving vector - * @param {vec3} a the first operand - * @param {vec3} b the second operand - * @returns {vec3} out - */ -function max(out, a, b) { - out[0] = Math.max(a[0], b[0]) - out[1] = Math.max(a[1], b[1]) - out[2] = Math.max(a[2], b[2]) - return out -} -},{}],383:[function(_dereq_,module,exports){ -module.exports = min; + function clearState (ev) { + handleEvent(0, ev) + } -/** - * Returns the minimum of two vec3's - * - * @param {vec3} out the receiving vector - * @param {vec3} a the first operand - * @param {vec3} b the second operand - * @returns {vec3} out - */ -function min(out, a, b) { - out[0] = Math.min(a[0], b[0]) - out[1] = Math.min(a[1], b[1]) - out[2] = Math.min(a[2], b[2]) - return out -} -},{}],384:[function(_dereq_,module,exports){ -module.exports = _dereq_('./multiply') + function handleBlur () { + if (buttonState || + x || + y || + mods.shift || + mods.alt || + mods.meta || + mods.control) { + x = y = 0 + buttonState = 0 + mods.shift = mods.alt = mods.control = mods.meta = false + callback && callback(0, 0, 0, mods) + } + } -},{"./multiply":385}],385:[function(_dereq_,module,exports){ -module.exports = multiply; + function handleMods (ev) { + if (updateMods(ev)) { + callback && callback(buttonState, x, y, mods) + } + } -/** - * Multiplies two vec3's - * - * @param {vec3} out the receiving vector - * @param {vec3} a the first operand - * @param {vec3} b the second operand - * @returns {vec3} out - */ -function multiply(out, a, b) { - out[0] = a[0] * b[0] - out[1] = a[1] * b[1] - out[2] = a[2] * b[2] - return out -} -},{}],386:[function(_dereq_,module,exports){ -module.exports = negate; + function handleMouseMove (ev) { + if (mouse.buttons(ev) === 0) { + handleEvent(0, ev) + } else { + handleEvent(buttonState, ev) + } + } -/** - * Negates the components of a vec3 - * - * @param {vec3} out the receiving vector - * @param {vec3} a vector to negate - * @returns {vec3} out - */ -function negate(out, a) { - out[0] = -a[0] - out[1] = -a[1] - out[2] = -a[2] - return out -} -},{}],387:[function(_dereq_,module,exports){ -module.exports = normalize; + function handleMouseDown (ev) { + handleEvent(buttonState | mouse.buttons(ev), ev) + } -/** - * Normalize a vec3 - * - * @param {vec3} out the receiving vector - * @param {vec3} a vector to normalize - * @returns {vec3} out - */ -function normalize(out, a) { - var x = a[0], - y = a[1], - z = a[2] - var len = x*x + y*y + z*z - if (len > 0) { - //TODO: evaluate use of glm_invsqrt here? - len = 1 / Math.sqrt(len) - out[0] = a[0] * len - out[1] = a[1] * len - out[2] = a[2] * len + function handleMouseUp (ev) { + handleEvent(buttonState & ~mouse.buttons(ev), ev) + } + + function attachListeners () { + if (attached) { + return } - return out -} -},{}],388:[function(_dereq_,module,exports){ -module.exports = random; + attached = true -/** - * Generates a random vector with the given scale - * - * @param {vec3} out the receiving vector - * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned - * @returns {vec3} out - */ -function random(out, scale) { - scale = scale || 1.0 + element.addEventListener('mousemove', handleMouseMove) - var r = Math.random() * 2.0 * Math.PI - var z = (Math.random() * 2.0) - 1.0 - var zScale = Math.sqrt(1.0-z*z) * scale + element.addEventListener('mousedown', handleMouseDown) - out[0] = Math.cos(r) * zScale - out[1] = Math.sin(r) * zScale - out[2] = z * scale - return out -} -},{}],389:[function(_dereq_,module,exports){ -module.exports = rotateX; + element.addEventListener('mouseup', handleMouseUp) -/** - * Rotate a 3D vector around the x-axis - * @param {vec3} out The receiving vec3 - * @param {vec3} a The vec3 point to rotate - * @param {vec3} b The origin of the rotation - * @param {Number} c The angle of rotation - * @returns {vec3} out - */ -function rotateX(out, a, b, c){ - var by = b[1] - var bz = b[2] + element.addEventListener('mouseleave', clearState) + element.addEventListener('mouseenter', clearState) + element.addEventListener('mouseout', clearState) + element.addEventListener('mouseover', clearState) - // Translate point to the origin - var py = a[1] - by - var pz = a[2] - bz + element.addEventListener('blur', handleBlur) - var sc = Math.sin(c) - var cc = Math.cos(c) + element.addEventListener('keyup', handleMods) + element.addEventListener('keydown', handleMods) + element.addEventListener('keypress', handleMods) - // perform rotation and translate to correct position - out[0] = a[0] - out[1] = by + py * cc - pz * sc - out[2] = bz + py * sc + pz * cc + if (element !== window) { + window.addEventListener('blur', handleBlur) - return out -} + window.addEventListener('keyup', handleMods) + window.addEventListener('keydown', handleMods) + window.addEventListener('keypress', handleMods) + } + } -},{}],390:[function(_dereq_,module,exports){ -module.exports = rotateY; + function detachListeners () { + if (!attached) { + return + } + attached = false -/** - * Rotate a 3D vector around the y-axis - * @param {vec3} out The receiving vec3 - * @param {vec3} a The vec3 point to rotate - * @param {vec3} b The origin of the rotation - * @param {Number} c The angle of rotation - * @returns {vec3} out - */ -function rotateY(out, a, b, c){ - var bx = b[0] - var bz = b[2] + element.removeEventListener('mousemove', handleMouseMove) - // translate point to the origin - var px = a[0] - bx - var pz = a[2] - bz - - var sc = Math.sin(c) - var cc = Math.cos(c) - - // perform rotation and translate to correct position - out[0] = bx + pz * sc + px * cc - out[1] = a[1] - out[2] = bz + pz * cc - px * sc - - return out -} + element.removeEventListener('mousedown', handleMouseDown) -},{}],391:[function(_dereq_,module,exports){ -module.exports = rotateZ; + element.removeEventListener('mouseup', handleMouseUp) -/** - * Rotate a 3D vector around the z-axis - * @param {vec3} out The receiving vec3 - * @param {vec3} a The vec3 point to rotate - * @param {vec3} b The origin of the rotation - * @param {Number} c The angle of rotation - * @returns {vec3} out - */ -function rotateZ(out, a, b, c){ - var bx = b[0] - var by = b[1] + element.removeEventListener('mouseleave', clearState) + element.removeEventListener('mouseenter', clearState) + element.removeEventListener('mouseout', clearState) + element.removeEventListener('mouseover', clearState) - //Translate point to the origin - var px = a[0] - bx - var py = a[1] - by - - var sc = Math.sin(c) - var cc = Math.cos(c) + element.removeEventListener('blur', handleBlur) - // perform rotation and translate to correct position - out[0] = bx + px * cc - py * sc - out[1] = by + px * sc + py * cc - out[2] = a[2] - - return out -} + element.removeEventListener('keyup', handleMods) + element.removeEventListener('keydown', handleMods) + element.removeEventListener('keypress', handleMods) -},{}],392:[function(_dereq_,module,exports){ -module.exports = round + if (element !== window) { + window.removeEventListener('blur', handleBlur) -/** - * Math.round the components of a vec3 - * - * @param {vec3} out the receiving vector - * @param {vec3} a vector to round - * @returns {vec3} out - */ -function round(out, a) { - out[0] = Math.round(a[0]) - out[1] = Math.round(a[1]) - out[2] = Math.round(a[2]) - return out -} + window.removeEventListener('keyup', handleMods) + window.removeEventListener('keydown', handleMods) + window.removeEventListener('keypress', handleMods) + } + } -},{}],393:[function(_dereq_,module,exports){ -module.exports = scale; + // Attach listeners + attachListeners() -/** - * Scales a vec3 by a scalar number - * - * @param {vec3} out the receiving vector - * @param {vec3} a the vector to scale - * @param {Number} b amount to scale the vector by - * @returns {vec3} out - */ -function scale(out, a, b) { - out[0] = a[0] * b - out[1] = a[1] * b - out[2] = a[2] * b - return out -} -},{}],394:[function(_dereq_,module,exports){ -module.exports = scaleAndAdd; + var result = { + element: element + } -/** - * Adds two vec3's after scaling the second operand by a scalar value - * - * @param {vec3} out the receiving vector - * @param {vec3} a the first operand - * @param {vec3} b the second operand - * @param {Number} scale the amount to scale b by before adding - * @returns {vec3} out - */ -function scaleAndAdd(out, a, b, scale) { - out[0] = a[0] + (b[0] * scale) - out[1] = a[1] + (b[1] * scale) - out[2] = a[2] + (b[2] * scale) - return out -} -},{}],395:[function(_dereq_,module,exports){ -module.exports = set; + Object.defineProperties(result, { + enabled: { + get: function () { return attached }, + set: function (f) { + if (f) { + attachListeners() + } else { + detachListeners() + } + }, + enumerable: true + }, + buttons: { + get: function () { return buttonState }, + enumerable: true + }, + x: { + get: function () { return x }, + enumerable: true + }, + y: { + get: function () { return y }, + enumerable: true + }, + mods: { + get: function () { return mods }, + enumerable: true + } + }) -/** - * Set the components of a vec3 to the given values - * - * @param {vec3} out the receiving vector - * @param {Number} x X component - * @param {Number} y Y component - * @param {Number} z Z component - * @returns {vec3} out - */ -function set(out, x, y, z) { - out[0] = x - out[1] = y - out[2] = z - return out + return result } -},{}],396:[function(_dereq_,module,exports){ -module.exports = _dereq_('./squaredDistance') - -},{"./squaredDistance":398}],397:[function(_dereq_,module,exports){ -module.exports = _dereq_('./squaredLength') -},{"./squaredLength":399}],398:[function(_dereq_,module,exports){ -module.exports = squaredDistance; +},{"mouse-event":469}],468:[function(_dereq_,module,exports){ +var rootPosition = { left: 0, top: 0 } -/** - * Calculates the squared euclidian distance between two vec3's - * - * @param {vec3} a the first operand - * @param {vec3} b the second operand - * @returns {Number} squared distance between a and b - */ -function squaredDistance(a, b) { - var x = b[0] - a[0], - y = b[1] - a[1], - z = b[2] - a[2] - return x*x + y*y + z*z +module.exports = mouseEventOffset +function mouseEventOffset (ev, target, out) { + target = target || ev.currentTarget || ev.srcElement + if (!Array.isArray(out)) { + out = [ 0, 0 ] + } + var cx = ev.clientX || 0 + var cy = ev.clientY || 0 + var rect = getBoundingClientOffset(target) + out[0] = cx - rect.left + out[1] = cy - rect.top + return out } -},{}],399:[function(_dereq_,module,exports){ -module.exports = squaredLength; -/** - * Calculates the squared length of a vec3 - * - * @param {vec3} a vector to calculate squared length of - * @returns {Number} squared length of a - */ -function squaredLength(a) { - var x = a[0], - y = a[1], - z = a[2] - return x*x + y*y + z*z +function getBoundingClientOffset (element) { + if (element === window || + element === document || + element === document.body) { + return rootPosition + } else { + return element.getBoundingClientRect() + } } -},{}],400:[function(_dereq_,module,exports){ -module.exports = _dereq_('./subtract') -},{"./subtract":401}],401:[function(_dereq_,module,exports){ -module.exports = subtract; +},{}],469:[function(_dereq_,module,exports){ +'use strict' -/** - * Subtracts vector b from vector a - * - * @param {vec3} out the receiving vector - * @param {vec3} a the first operand - * @param {vec3} b the second operand - * @returns {vec3} out - */ -function subtract(out, a, b) { - out[0] = a[0] - b[0] - out[1] = a[1] - b[1] - out[2] = a[2] - b[2] - return out +function mouseButtons(ev) { + if(typeof ev === 'object') { + if('buttons' in ev) { + return ev.buttons + } else if('which' in ev) { + var b = ev.which + if(b === 2) { + return 4 + } else if(b === 3) { + return 2 + } else if(b > 0) { + return 1<<(b-1) + } + } else if('button' in ev) { + var b = ev.button + if(b === 1) { + return 4 + } else if(b === 2) { + return 2 + } else if(b >= 0) { + return 1< 0) { + schedule(notify,self); + } + } + } + catch (err) { + reject.call(new MakeDefWrapper(self),err); + } + } -},{}],416:[function(_dereq_,module,exports){ -module.exports = lerp + function reject(msg) { + var self = this; -/** - * Performs a linear interpolation between two vec4's - * - * @param {vec4} out the receiving vector - * @param {vec4} a the first operand - * @param {vec4} b the second operand - * @param {Number} t interpolation amount between the two inputs - * @returns {vec4} out - */ -function lerp (out, a, b, t) { - var ax = a[0], - ay = a[1], - az = a[2], - aw = a[3] - out[0] = ax + t * (b[0] - ax) - out[1] = ay + t * (b[1] - ay) - out[2] = az + t * (b[2] - az) - out[3] = aw + t * (b[3] - aw) - return out -} + // already triggered? + if (self.triggered) { return; } -},{}],417:[function(_dereq_,module,exports){ -module.exports = max + self.triggered = true; -/** - * Returns the maximum of two vec4's - * - * @param {vec4} out the receiving vector - * @param {vec4} a the first operand - * @param {vec4} b the second operand - * @returns {vec4} out - */ -function max (out, a, b) { - out[0] = Math.max(a[0], b[0]) - out[1] = Math.max(a[1], b[1]) - out[2] = Math.max(a[2], b[2]) - out[3] = Math.max(a[3], b[3]) - return out -} + // unwrap + if (self.def) { + self = self.def; + } -},{}],418:[function(_dereq_,module,exports){ -module.exports = min + self.msg = msg; + self.state = 2; + if (self.chain.length > 0) { + schedule(notify,self); + } + } -/** - * Returns the minimum of two vec4's - * - * @param {vec4} out the receiving vector - * @param {vec4} a the first operand - * @param {vec4} b the second operand - * @returns {vec4} out - */ -function min (out, a, b) { - out[0] = Math.min(a[0], b[0]) - out[1] = Math.min(a[1], b[1]) - out[2] = Math.min(a[2], b[2]) - out[3] = Math.min(a[3], b[3]) - return out -} + function iteratePromises(Constructor,arr,resolver,rejecter) { + for (var idx=0; idx 0) { - len = 1 / Math.sqrt(len) - out[0] = x * len - out[1] = y * len - out[2] = z * len - out[3] = w * len - } - return out -} + var def = new MakeDef(this); -},{}],422:[function(_dereq_,module,exports){ -var vecNormalize = _dereq_('./normalize') -var vecScale = _dereq_('./scale') + this["then"] = function then(success,failure) { + var o = { + success: typeof success == "function" ? success : true, + failure: typeof failure == "function" ? failure : false + }; + // Note: `then(..)` itself can be borrowed to be used against + // a different promise constructor for making the chained promise, + // by substituting a different `this` binding. + o.promise = new this.constructor(function extractChain(resolve,reject) { + if (typeof resolve != "function" || typeof reject != "function") { + throw TypeError("Not a function"); + } -module.exports = random + o.resolve = resolve; + o.reject = reject; + }); + def.chain.push(o); -/** - * Generates a random vector with the given scale - * - * @param {vec4} out the receiving vector - * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned - * @returns {vec4} out - */ -function random (out, scale) { - scale = scale || 1.0 + if (def.state !== 0) { + schedule(notify,def); + } - // TODO: This is a pretty awful way of doing this. Find something better. - out[0] = Math.random() - out[1] = Math.random() - out[2] = Math.random() - out[3] = Math.random() - vecNormalize(out, out) - vecScale(out, out, scale) - return out -} + return o.promise; + }; + this["catch"] = function $catch$(failure) { + return this.then(void 0,failure); + }; -},{"./normalize":421,"./scale":423}],423:[function(_dereq_,module,exports){ -module.exports = scale + try { + executor.call( + void 0, + function publicResolve(msg){ + resolve.call(def,msg); + }, + function publicReject(msg) { + reject.call(def,msg); + } + ); + } + catch (err) { + reject.call(def,err); + } + } -/** - * Scales a vec4 by a scalar number - * - * @param {vec4} out the receiving vector - * @param {vec4} a the vector to scale - * @param {Number} b amount to scale the vector by - * @returns {vec4} out - */ -function scale (out, a, b) { - out[0] = a[0] * b - out[1] = a[1] * b - out[2] = a[2] * b - out[3] = a[3] * b - return out -} + var PromisePrototype = builtInProp({},"constructor",Promise, + /*configurable=*/false + ); -},{}],424:[function(_dereq_,module,exports){ -module.exports = scaleAndAdd + // Note: Android 4 cannot use `Object.defineProperty(..)` here + Promise.prototype = PromisePrototype; -/** - * Adds two vec4's after scaling the second operand by a scalar value - * - * @param {vec4} out the receiving vector - * @param {vec4} a the first operand - * @param {vec4} b the second operand - * @param {Number} scale the amount to scale b by before adding - * @returns {vec4} out - */ -function scaleAndAdd (out, a, b, scale) { - out[0] = a[0] + (b[0] * scale) - out[1] = a[1] + (b[1] * scale) - out[2] = a[2] + (b[2] * scale) - out[3] = a[3] + (b[3] * scale) - return out -} + // built-in "brand" to signal an "uninitialized" promise + builtInProp(PromisePrototype,"__NPO__",0, + /*configurable=*/false + ); -},{}],425:[function(_dereq_,module,exports){ -module.exports = set + builtInProp(Promise,"resolve",function Promise$resolve(msg) { + var Constructor = this; -/** - * Set the components of a vec4 to the given values - * - * @param {vec4} out the receiving vector - * @param {Number} x X component - * @param {Number} y Y component - * @param {Number} z Z component - * @param {Number} w W component - * @returns {vec4} out - */ -function set (out, x, y, z, w) { - out[0] = x - out[1] = y - out[2] = z - out[3] = w - return out -} + // spec mandated checks + // note: best "isPromise" check that's practical for now + if (msg && typeof msg == "object" && msg.__NPO__ === 1) { + return msg; + } -},{}],426:[function(_dereq_,module,exports){ -module.exports = squaredDistance + return new Constructor(function executor(resolve,reject){ + if (typeof resolve != "function" || typeof reject != "function") { + throw TypeError("Not a function"); + } -/** - * Calculates the squared euclidian distance between two vec4's - * - * @param {vec4} a the first operand - * @param {vec4} b the second operand - * @returns {Number} squared distance between a and b - */ -function squaredDistance (a, b) { - var x = b[0] - a[0], - y = b[1] - a[1], - z = b[2] - a[2], - w = b[3] - a[3] - return x * x + y * y + z * z + w * w -} + resolve(msg); + }); + }); -},{}],427:[function(_dereq_,module,exports){ -module.exports = squaredLength + builtInProp(Promise,"reject",function Promise$reject(msg) { + return new this(function executor(resolve,reject){ + if (typeof resolve != "function" || typeof reject != "function") { + throw TypeError("Not a function"); + } -/** - * Calculates the squared length of a vec4 - * - * @param {vec4} a vector to calculate squared length of - * @returns {Number} squared length of a - */ -function squaredLength (a) { - var x = a[0], - y = a[1], - z = a[2], - w = a[3] - return x * x + y * y + z * z + w * w -} + reject(msg); + }); + }); -},{}],428:[function(_dereq_,module,exports){ -module.exports = subtract + builtInProp(Promise,"all",function Promise$all(arr) { + var Constructor = this; + + // spec mandated checks + if (ToString.call(arr) != "[object Array]") { + return Constructor.reject(TypeError("Not an array")); + } + if (arr.length === 0) { + return Constructor.resolve([]); + } -/** - * Subtracts vector b from vector a - * - * @param {vec4} out the receiving vector - * @param {vec4} a the first operand - * @param {vec4} b the second operand - * @returns {vec4} out - */ -function subtract (out, a, b) { - out[0] = a[0] - b[0] - out[1] = a[1] - b[1] - out[2] = a[2] - b[2] - out[3] = a[3] - b[3] - return out -} + return new Constructor(function executor(resolve,reject){ + if (typeof resolve != "function" || typeof reject != "function") { + throw TypeError("Not a function"); + } -},{}],429:[function(_dereq_,module,exports){ -module.exports = transformMat4 + var len = arr.length, msgs = Array(len), count = 0; -/** - * Transforms the vec4 with a mat4. - * - * @param {vec4} out the receiving vector - * @param {vec4} a the vector to transform - * @param {mat4} m matrix to transform with - * @returns {vec4} out - */ -function transformMat4 (out, a, m) { - var x = a[0], y = a[1], z = a[2], w = a[3] - out[0] = m[0] * x + m[4] * y + m[8] * z + m[12] * w - out[1] = m[1] * x + m[5] * y + m[9] * z + m[13] * w - out[2] = m[2] * x + m[6] * y + m[10] * z + m[14] * w - out[3] = m[3] * x + m[7] * y + m[11] * z + m[15] * w - return out -} + iteratePromises(Constructor,arr,function resolver(idx,msg) { + msgs[idx] = msg; + if (++count === len) { + resolve(msgs); + } + },reject); + }); + }); -},{}],430:[function(_dereq_,module,exports){ -module.exports = transformQuat + builtInProp(Promise,"race",function Promise$race(arr) { + var Constructor = this; -/** - * Transforms the vec4 with a quat - * - * @param {vec4} out the receiving vector - * @param {vec4} a the vector to transform - * @param {quat} q quaternion to transform with - * @returns {vec4} out - */ -function transformQuat (out, a, q) { - var x = a[0], y = a[1], z = a[2], - qx = q[0], qy = q[1], qz = q[2], qw = q[3], + // spec mandated checks + if (ToString.call(arr) != "[object Array]") { + return Constructor.reject(TypeError("Not an array")); + } - // calculate quat * vec - ix = qw * x + qy * z - qz * y, - iy = qw * y + qz * x - qx * z, - iz = qw * z + qx * y - qy * x, - iw = -qx * x - qy * y - qz * z + return new Constructor(function executor(resolve,reject){ + if (typeof resolve != "function" || typeof reject != "function") { + throw TypeError("Not a function"); + } - // calculate result * inverse quat - out[0] = ix * qw + iw * -qx + iy * -qz - iz * -qy - out[1] = iy * qw + iw * -qy + iz * -qx - ix * -qz - out[2] = iz * qw + iw * -qz + ix * -qy - iy * -qx - out[3] = a[3] - return out -} + iteratePromises(Constructor,arr,function resolver(idx,msg){ + resolve(msg); + },reject); + }); + }); -},{}],431:[function(_dereq_,module,exports){ -var tokenize = _dereq_('glsl-tokenizer') -var atob = _dereq_('atob-lite') + return Promise; +}); -module.exports = getName +}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},_dereq_("timers").setImmediate) +},{"timers":591}],472:[function(_dereq_,module,exports){ +"use strict" -function getName(src) { - var tokens = Array.isArray(src) - ? src - : tokenize(src) +var pool = _dereq_("typedarray-pool") - for (var i = 0; i < tokens.length; i++) { - var token = tokens[i] - if (token.type !== 'preprocessor') continue - var match = token.data.match(/\#define\s+SHADER_NAME(_B64)?\s+(.+)$/) - if (!match) continue - if (!match[2]) continue +module.exports = createSurfaceExtractor - var b64 = match[1] - var name = match[2] +//Helper macros +function array(i) { + return "a" + i +} +function data(i) { + return "d" + i +} +function cube(i,bitmask) { + return "c" + i + "_" + bitmask +} +function shape(i) { + return "s" + i +} +function stride(i,j) { + return "t" + i + "_" + j +} +function offset(i) { + return "o" + i +} +function scalar(i) { + return "x" + i +} +function pointer(i) { + return "p" + i +} +function delta(i,bitmask) { + return "d" + i + "_" + bitmask +} +function index(i) { + return "i" + i +} +function step(i,j) { + return "u" + i + "_" + j +} +function pcube(bitmask) { + return "b" + bitmask +} +function qcube(bitmask) { + return "y" + bitmask +} +function pdelta(bitmask) { + return "e" + bitmask +} +function vert(i) { + return "v" + i +} +var VERTEX_IDS = "V" +var PHASES = "P" +var VERTEX_COUNT = "N" +var POOL_SIZE = "Q" +var POINTER = "X" +var TEMPORARY = "T" - return (b64 ? atob(name) : name).trim() +function permBitmask(dimension, mask, order) { + var r = 0 + for(var i=0; i 0) continue - res = buf.slice(0, 1).join('') - } - - token(res) - - start += res.length - content = content.slice(res.length) - return content.length - } while(1) - } - - function hex() { - if(/[^a-fA-F0-9]/.test(c)) { - token(content.join('')) - mode = NORMAL - return i - } - - content.push(c) - last = c - return i + 1 - } - - function integer() { - if(c === '.') { - content.push(c) - mode = FLOAT - last = c - return i + 1 - } - - if(/[eE]/.test(c)) { - content.push(c) - mode = FLOAT - last = c - return i + 1 - } - - if(c === 'x' && content.length === 1 && content[0] === '0') { - mode = HEX - content.push(c) - last = c - return i + 1 - } - - if(/[^\d]/.test(c)) { - token(content.join('')) - mode = NORMAL - return i - } - - content.push(c) - last = c - return i + 1 - } - - function decimal() { - if(c === 'f') { - content.push(c) - last = c - i += 1 - } - - if(/[eE]/.test(c)) { - content.push(c) - last = c - return i + 1 - } - - if ((c === '-' || c === '+') && /[eE]/.test(last)) { - content.push(c) - last = c - return i + 1 - } - - if(/[^\d]/.test(c)) { - token(content.join('')) - mode = NORMAL - return i - } - - content.push(c) - last = c - return i + 1 - } - - function readtoken() { - if(/[^\d\w_]/.test(c)) { - var contentstr = content.join('') - if(literalsDict[contentstr]) { - mode = KEYWORD - } else if(builtinsDict[contentstr]) { - mode = BUILTIN - } else { - mode = IDENT - } - token(content.join('')) - mode = NORMAL - return i - } - content.push(c) - last = c - return i + 1 - } -} - -},{"./lib/builtins":434,"./lib/builtins-300es":433,"./lib/literals":436,"./lib/literals-300es":435,"./lib/operators":437}],433:[function(_dereq_,module,exports){ -// 300es builtins/reserved words that were previously valid in v100 -var v100 = _dereq_('./builtins') - -// The texture2D|Cube functions have been removed -// And the gl_ features are updated -v100 = v100.slice().filter(function (b) { - return !/^(gl\_|texture)/.test(b) -}) - -module.exports = v100.concat([ - // the updated gl_ constants - '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' - - // other builtins - , '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' -]) +//Generates the surface procedure +function compileSurfaceProcedure(vertexFunc, faceFunc, phaseFunc, scalarArgs, order, typesig) { + var arrayArgs = typesig.length + var dimension = order.length -},{"./builtins":434}],434:[function(_dereq_,module,exports){ -module.exports = [ - // Keep this list sorted - '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' -] + if(dimension < 2) { + throw new Error("ndarray-extract-contour: Dimension must be at least 2") + } -},{}],435:[function(_dereq_,module,exports){ -var v100 = _dereq_('./literals') - -module.exports = v100.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' -]) + var funcName = "extractContour" + order.join("_") + var code = [] + var vars = [] + var args = [] -},{"./literals":436}],436:[function(_dereq_,module,exports){ -module.exports = [ - // current - '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' - - // future - , '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' -] + //Assemble arguments + for(var i=0; i>=' - , '++' - , '--' - , '<<' - , '>>' - , '<=' - , '>=' - , '==' - , '!=' - , '&&' - , '||' - , '+=' - , '-=' - , '*=' - , '/=' - , '%=' - , '&=' - , '^^' - , '^=' - , '|=' - , '(' - , ')' - , '[' - , ']' - , '.' - , '!' - , '~' - , '*' - , '/' - , '%' - , '+' - , '-' - , '<' - , '>' - , '&' - , '^' - , '|' - , '?' - , ':' - , '=' - , ',' - , ';' - , '{' - , '}' -] + //Shape + for(var i=0; i 0) { + stepVal.push(stride(i, order[j-1]) + "*" + shape(order[j-1]) ) + } + vars.push(step(i,order[j]) + "=(" + stepVal.join("-") + ")|0") + } + } + //Create index variables + for(var i=0; i=0; --i) { + sizeVariable.push(shape(order[i])) + } + //Previous phases and vertex_ids + vars.push(POOL_SIZE + "=(" + sizeVariable.join("*") + ")|0", + PHASES + "=mallocUint32(" + POOL_SIZE + ")", + VERTEX_IDS + "=mallocUint32(" + POOL_SIZE + ")", + POINTER + "=0") + //Create cube variables for phases + vars.push(pcube(0) + "=0") + for(var j=1; j<(1<=0; --i) { + forLoopBegin(i, 0) + } + var phaseFuncArgs = [] + for(var i=0; i> 1 - var nBits = -7 - var i = isLE ? (nBytes - 1) : 0 - var d = isLE ? -1 : 1 - var s = buffer[offset + i] + function processGridCell(mask) { + //Read in local data + for(var i=0; i>= (-nBits) - nBits += eLen - for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {} + //Check for boundary crossing + var vertexPredicate = [] + for(var j=1; j<(1<>= (-nBits) - nBits += mLen - for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {} + //Read in boundary data + var vertexArgs = [] + for(var i=0; i0; k=(k-1)&subset) { + faceArgs.push(VERTEX_IDS + "[" + POINTER + "+" + pdelta(k) + "]") + } + faceArgs.push(vert(0)) + for(var k=0; k> 1 - var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0) - var i = isLE ? 0 : (nBytes - 1) - var d = isLE ? 1 : -1 - var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0 + function flip() { + for(var j=1; j<(1<0){", + index(order[i]), "=1;") + createLoop(i-1, mask|(1<= 1) { - value += rt / c - } else { - value += rt * Math.pow(2, 1 - eBias) + if(i === dimension-1) { + code.push(POINTER, "=0;") + flip() } - if (value * c >= 2) { - e++ - c /= 2 + forLoopBegin(i, 2) + createLoop(i-1, mask) + if(i === dimension-1) { + code.push("if(", index(order[dimension-1]), "&1){", + POINTER, "=0;}") + flip() } + forLoopEnd(i) + code.push("}") + } - if (e + eBias >= eMax) { - m = 0 - e = eMax - } else if (e + eBias >= 1) { - m = ((value * c) - 1) * Math.pow(2, mLen) - e = e + eBias + createLoop(dimension-1, 0) + + //Release scratch memory + code.push("freeUint32(", VERTEX_IDS, ");freeUint32(", PHASES, ");") + + //Compile and link procedure + var procedureCode = [ + "'use strict';", + "function ", funcName, "(", args.join(), "){", + "var ", vars.join(), ";", + code.join(""), + "}", + "return ", funcName ].join("") + + var proc = new Function( + "vertex", + "face", + "phase", + "mallocUint32", + "freeUint32", + procedureCode) + return proc( + vertexFunc, + faceFunc, + phaseFunc, + pool.mallocUint32, + pool.freeUint32) +} + +function createSurfaceExtractor(args) { + function error(msg) { + throw new Error("ndarray-extract-contour: " + msg) + } + if(typeof args !== "object") { + error("Must specify arguments") + } + var order = args.order + if(!Array.isArray(order)) { + error("Must specify order") + } + var arrays = args.arrayArguments||1 + if(arrays < 1) { + error("Must have at least one array argument") + } + var scalars = args.scalarArguments||0 + if(scalars < 0) { + error("Scalar arg count must be > 0") + } + if(typeof args.vertex !== "function") { + error("Must specify vertex creation function") + } + if(typeof args.cell !== "function") { + error("Must specify cell creation function") + } + if(typeof args.phase !== "function") { + error("Must specify phase function") + } + var getters = args.getters || [] + var typesig = new Array(arrays) + for(var i=0; i= 0) { + typesig[i] = true } else { - m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen) - e = 0 + typesig[i] = false } } + return compileSurfaceProcedure( + args.vertex, + args.cell, + args.phase, + scalars, + order, + typesig) +} +},{"typedarray-pool":611}],473:[function(_dereq_,module,exports){ +'use strict' - for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} +module.exports = gradient - e = (e << mLen) | m - eLen += mLen - for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} +var dup = _dereq_('dup') +var cwiseCompiler = _dereq_('cwise-compiler') - buffer[offset + i - d] |= s * 128 +var TEMPLATE_CACHE = {} +var GRADIENT_CACHE = {} + +var EmptyProc = { + body: "", + args: [], + thisVars: [], + localVars: [] } -},{}],443:[function(_dereq_,module,exports){ -'use strict'; +var centralDiff = cwiseCompiler({ + args: [ 'array', 'array', 'array' ], + pre: EmptyProc, + post: EmptyProc, + body: { + args: [ { + name: 'out', + lvalue: true, + rvalue: false, + count: 1 + }, { + name: 'left', + lvalue: false, + rvalue: true, + count: 1 + }, { + name: 'right', + lvalue: false, + rvalue: true, + count: 1 + }], + body: "out=0.5*(left-right)", + thisVars: [], + localVars: [] + }, + funcName: 'cdiff' +}) + +var zeroOut = cwiseCompiler({ + args: [ 'array' ], + pre: EmptyProc, + post: EmptyProc, + body: { + args: [ { + name: 'out', + lvalue: true, + rvalue: false, + count: 1 + }], + body: "out=0", + thisVars: [], + localVars: [] + }, + funcName: 'zero' +}) + +function generateTemplate(d) { + if(d in TEMPLATE_CACHE) { + return TEMPLATE_CACHE[d] + } + var code = [] + for(var i=0; i= 0) { + pickStr.push('0') + } else if(facet.indexOf(-(i+1)) >= 0) { + pickStr.push('s['+i+']-1') + } else { + pickStr.push('-1') + loStr.push('1') + hiStr.push('s['+i+']-2') + } + } + var boundStr = '.lo(' + loStr.join() + ').hi(' + hiStr.join() + ')' + if(loStr.length === 0) { + boundStr = '' + } + + if(cod > 0) { + code.push('if(1') + for(var i=0; i= 0 || facet.indexOf(-(i+1)) >= 0) { + continue + } + code.push('&&s[', i, ']>2') + } + code.push('){grad', cod, '(src.pick(', pickStr.join(), ')', boundStr) + for(var i=0; i= 0 || facet.indexOf(-(i+1)) >= 0) { + continue + } + code.push(',dst.pick(', pickStr.join(), ',', i, ')', boundStr) + } + code.push(');') + } + + for(var i=0; i1){dst.set(', + pickStr.join(), ',', bnd, ',0.5*(src.get(', + cPickStr.join(), ')-src.get(', + dPickStr.join(), ')))}else{dst.set(', + pickStr.join(), ',', bnd, ',0)};') + } else { + code.push('if(s[', bnd, ']>1){diff(', outStr, + ',src.pick(', cPickStr.join(), ')', boundStr, + ',src.pick(', dPickStr.join(), ')', boundStr, + ');}else{zero(', outStr, ');};') + } + break + + case 'mirror': + if(cod === 0) { + code.push('dst.set(', pickStr.join(), ',', bnd, ',0);') + } else { + code.push('zero(', outStr, ');') + } + break + + case 'wrap': + var aPickStr = pickStr.slice() + var bPickStr = pickStr.slice() + if(facet[i] < 0) { + aPickStr[bnd] = 's[' + bnd + ']-2' + bPickStr[bnd] = '0' + + } else { + aPickStr[bnd] = 's[' + bnd + ']-1' + bPickStr[bnd] = '1' + } + if(cod === 0) { + code.push('if(s[', bnd, ']>2){dst.set(', + pickStr.join(), ',', bnd, ',0.5*(src.get(', + aPickStr.join(), ')-src.get(', + bPickStr.join(), ')))}else{dst.set(', + pickStr.join(), ',', bnd, ',0)};') + } else { + code.push('if(s[', bnd, ']>2){diff(', outStr, + ',src.pick(', aPickStr.join(), ')', boundStr, + ',src.pick(', bPickStr.join(), ')', boundStr, + ');}else{zero(', outStr, ');};') + } + break + + default: + throw new Error('ndarray-gradient: Invalid boundary condition') + } + } -var typeHandlers = _dereq_('./types'); + if(cod > 0) { + code.push('};') + } + } -module.exports = function (buffer, filepath) { - var type, result; - for (type in typeHandlers) { - result = typeHandlers[type].detect(buffer, filepath); - if (result) { - return type; + //Enumerate ridges, facets, etc. of hypercube + for(var i=0; i<(1<>", + rrshift: ">>>" +} +;(function(){ + for(var id in assign_ops) { + var op = assign_ops[id] + exports[id] = makeOp({ + args: ["array","array","array"], + body: {args:["a","b","c"], + body: "a=b"+op+"c"}, + funcName: id + }) + exports[id+"eq"] = makeOp({ + args: ["array","array"], + body: {args:["a","b"], + body:"a"+op+"=b"}, + rvalue: true, + funcName: id+"eq" + }) + exports[id+"s"] = makeOp({ + args: ["array", "array", "scalar"], + body: {args:["a","b","s"], + body:"a=b"+op+"s"}, + funcName: id+"s" + }) + exports[id+"seq"] = makeOp({ + args: ["array","scalar"], + body: {args:["a","s"], + body:"a"+op+"=s"}, + rvalue: true, + funcName: id+"seq" + }) + } +})(); - // Handle buffer input - if (Buffer.isBuffer(input)) { - return lookup(input); +var unary_ops = { + not: "!", + bnot: "~", + neg: "-", + recip: "1.0/" +} +;(function(){ + for(var id in unary_ops) { + var op = unary_ops[id] + exports[id] = makeOp({ + args: ["array", "array"], + body: {args:["a","b"], + body:"a="+op+"b"}, + funcName: id + }) + exports[id+"eq"] = makeOp({ + args: ["array"], + body: {args:["a"], + body:"a="+op+"a"}, + rvalue: true, + count: 2, + funcName: id+"eq" + }) } +})(); - // input should be a string at this point - if (typeof input !== 'string') { - throw new TypeError('invalid invocation'); +var binary_ops = { + and: "&&", + or: "||", + eq: "===", + neq: "!==", + lt: "<", + gt: ">", + leq: "<=", + geq: ">=" +} +;(function() { + for(var id in binary_ops) { + var op = binary_ops[id] + exports[id] = makeOp({ + args: ["array","array","array"], + body: {args:["a", "b", "c"], + body:"a=b"+op+"c"}, + funcName: id + }) + exports[id+"s"] = makeOp({ + args: ["array","array","scalar"], + body: {args:["a", "b", "s"], + body:"a=b"+op+"s"}, + funcName: id+"s" + }) + exports[id+"eq"] = makeOp({ + args: ["array", "array"], + body: {args:["a", "b"], + body:"a=a"+op+"b"}, + rvalue:true, + count:2, + funcName: id+"eq" + }) + exports[id+"seq"] = makeOp({ + args: ["array", "scalar"], + body: {args:["a","s"], + body:"a=a"+op+"s"}, + rvalue:true, + count:2, + funcName: id+"seq" + }) } +})(); - // resolve the file path - var filepath = path.resolve(input); +var math_unary = [ + "abs", + "acos", + "asin", + "atan", + "ceil", + "cos", + "exp", + "floor", + "log", + "round", + "sin", + "sqrt", + "tan" +] +;(function() { + for(var i=0; ithis_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" +}) -module.exports = typeHandlers; +exports.norm1 = compile({ + args:["array"], + pre: {args:[], localVars:[], thisVars:["this_s"], body:"this_s=0"}, + body: {args:[{name:"a", lvalue:false, rvalue:true, 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" +}) -},{"./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(_dereq_,module,exports){ -'use strict'; +exports.sup = compile({ + 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":false,"rvalue":true,"count":2} ], + thisVars: [ "this_h" ], + localVars: [] }, + post: + { body: "return this_h", + args: [], + thisVars: [ "this_h" ], + localVars: [] } + }) -function isBMP (buffer) { - return ('BM' === buffer.toString('ascii', 0, 2)); -} +exports.inf = compile({ + 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:false,rvalue:true,count:2}, + {name:"_inline_1_arg1_",lvalue:false,rvalue:true,count:2}], + thisVars:["this_i","this_v"], + localVars:["_inline_1_k"]}, + post:{ + body:"{return this_i}", + args:[], + thisVars:["this_i"], + localVars:[]} +}) -},{}],448:[function(_dereq_,module,exports){ -'use strict'; +exports.random = makeOp({ + args: ["array"], + pre: {args:[], body:"this_f=Math.random", thisVars:["this_f"]}, + body: {args: ["a"], body:"a=this_f()", thisVars:["this_f"]}, + funcName: "random" +}) -var TYPE_CURSOR = 2; +exports.assign = makeOp({ + args:["array", "array"], + body: {args:["a", "b"], body:"a=b"}, + funcName: "assign" }) -function isCUR (buffer) { - var type; - if (buffer.readUInt16LE(0) !== 0) { - return false; - } - type = buffer.readUInt16LE(2); - return type === TYPE_CURSOR; -} +exports.assigns = makeOp({ + args:["array", "scalar"], + body: {args:["a", "b"], body:"a=b"}, + funcName: "assigns" }) -module.exports = { - 'detect': isCUR, - 'calculate': _dereq_('./ico').calculate -}; -},{"./ico":452}],449:[function(_dereq_,module,exports){ -'use strict'; +exports.equals = compile({ + args:["array", "array"], + pre: EmptyProc, + body: {args:[{name:"x", lvalue:false, rvalue:true, count:1}, + {name:"y", lvalue:false, rvalue:true, count:1}], + body: "if(x!==y){return false}", + localVars: [], + thisVars: []}, + post: {args:[], localVars:[], thisVars:[], body:"return true"}, + funcName: "equals" +}) -function isDDS(buffer){ - return buffer.readUInt32LE(0) === 0x20534444; -} -function calculate(buffer){ - // read file resolution metadata - return { - 'height': buffer.readUInt32LE(12), - 'width': buffer.readUInt32LE(16) - }; -} -module.exports = { - 'detect': isDDS, - 'calculate': calculate -}; +},{"cwise-compiler":153}],476:[function(_dereq_,module,exports){ +"use strict" -},{}],450:[function(_dereq_,module,exports){ -'use strict'; +var ndarray = _dereq_("ndarray") +var do_convert = _dereq_("./doConvert.js") -var gifRegexp = /^GIF8[79]a/; -function isGIF (buffer) { - var signature = buffer.toString('ascii', 0, 6); - return (gifRegexp.test(signature)); +module.exports = function convert(arr, result) { + var shape = [], c = arr, sz = 1 + while(Array.isArray(c)) { + shape.push(c.length) + sz *= c.length + c = c[0] + } + if(shape.length === 0) { + return ndarray() + } + if(!result) { + result = ndarray(new Float64Array(sz), shape) + } + do_convert(result, arr) + return result } -function calculate(buffer) { - return { - 'width': buffer.readUInt16LE(6), - 'height': buffer.readUInt16LE(8) - }; -} +},{"./doConvert.js":477,"ndarray":480}],477:[function(_dereq_,module,exports){ +module.exports=_dereq_('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":true,"rvalue":false,"count":1},{"name":"_inline_1_arg1_","lvalue":false,"rvalue":true,"count":1},{"name":"_inline_1_arg2_","lvalue":false,"rvalue":true,"count":4}],"thisVars":[],"localVars":["_inline_1_i","_inline_1_v"]},"post":{"body":"{}","args":[],"thisVars":[],"localVars":[]},"funcName":"convert","blockSize":64}) -module.exports = { - 'detect': isGIF, - 'calculate': calculate -}; +},{"cwise-compiler":153}],478:[function(_dereq_,module,exports){ +"use strict" -},{}],451:[function(_dereq_,module,exports){ -'use strict'; +var pool = _dereq_("typedarray-pool") -/** - * ICNS Header - * - * | Offset | Size | Purpose | - * | 0 | 4 | Magic literal, must be "icns" (0x69, 0x63, 0x6e, 0x73) | - * | 4 | 4 | Length of file, in bytes, msb first. | - * - **/ -var SIZE_HEADER = 4 + 4; // 8 -var FILE_LENGTH_OFFSET = 4; // MSB => BIG ENDIAN +var INSERTION_SORT_THRESHOLD = 32 -/** - * Image Entry - * - * | Offset | Size | Purpose | - * | 0 | 4 | Icon type, see OSType below. | - * | 4 | 4 | Length of data, in bytes (including type and length), msb first. | - * | 8 | n | Icon data | - * - **/ -var ENTRY_LENGTH_OFFSET = 4; // MSB => BIG ENDIAN - -function isICNS (buffer) { - return ('icns' === buffer.toString('ascii', 0, 4)); -} - -var ICON_TYPE_SIZE = { - ICON: 32, - 'ICN#': 32, - // m => 16 x 16 - 'icm#': 16, - icm4: 16, - icm8: 16, - // s => 16 x 16 - 'ics#': 16, - ics4: 16, - ics8: 16, - is32: 16, - s8mk: 16, - icp4: 16, - // l => 32 x 32 - icl4: 32, - icl8: 32, - il32: 32, - l8mk: 32, - icp5: 32, - ic11: 32, - // h => 48 x 48 - ich4: 48, - ich8: 48, - ih32: 48, - h8mk: 48, - // . => 64 x 64 - icp6: 64, - ic12: 32, - // t => 128 x 128 - it32: 128, - t8mk: 128, - ic07: 128, - // . => 256 x 256 - ic08: 256, - ic13: 256, - // . => 512 x 512 - ic09: 512, - ic14: 512, - // . => 1024 x 1024 - ic10: 1024, -}; - -function readImageHeader(buffer, imageOffset) { - var imageLengthOffset = imageOffset + ENTRY_LENGTH_OFFSET; - // returns [type, length] - return [ - buffer.toString('ascii', imageOffset, imageLengthOffset), - buffer.readUInt32BE(imageLengthOffset) - ]; +function getMallocFree(dtype) { + switch(dtype) { + case "uint8": + return [pool.mallocUint8, pool.freeUint8] + case "uint16": + return [pool.mallocUint16, pool.freeUint16] + case "uint32": + return [pool.mallocUint32, pool.freeUint32] + case "int8": + return [pool.mallocInt8, pool.freeInt8] + case "int16": + return [pool.mallocInt16, pool.freeInt16] + case "int32": + return [pool.mallocInt32, pool.freeInt32] + case "float32": + return [pool.mallocFloat, pool.freeFloat] + case "float64": + return [pool.mallocDouble, pool.freeDouble] + default: + return null + } } -function getImageSize(type) { - var size = ICON_TYPE_SIZE[type]; - return { width: size, height: size, type: type }; +function shapeArgs(dimension) { + var args = [] + for(var i=0; i 1) { + var scratch_shape = [] + for(var i=1; i 1) { + + //Copy data into scratch + code.push("dptr=0;sptr=ptr") + for(var i=order.length-1; i>=0; --i) { + var j = order[i] + if(j === 0) { + continue + } + code.push(["for(i",j,"=0;i",j,"left){", + "dptr=0", + "sptr=cptr-s0") + for(var i=1; ib){break __l}"].join("")) + for(var i=order.length-1; i>=1; --i) { + code.push( + "sptr+=e"+i, + "dptr+=f"+i, + "}") + } + + //Copy data back + code.push("dptr=cptr;sptr=cptr-s0") + for(var i=order.length-1; i>=0; --i) { + var j = order[i] + if(j === 0) { + continue + } + code.push(["for(i",j,"=0;i",j,"=0; --i) { + var j = order[i] + if(j === 0) { + continue + } + code.push(["for(i",j,"=0;i",j,"left)&&("+dataRead("cptr-s0")+">scratch)){", + dataWrite("cptr", dataRead("cptr-s0")), + "cptr-=s0", + "}", + dataWrite("cptr", "scratch")) + } + + //Close outer loop body + code.push("}") + if(order.length > 1 && allocator) { + code.push("free(scratch)") + } + code.push("} return " + funcName) + + //Compile and link function + if(allocator) { + var result = new Function("malloc", "free", code.join("\n")) + return result(allocator[0], allocator[1]) + } else { + var result = new Function(code.join("\n")) + return result() } - type = buffer.readUInt16LE(2); - return type === TYPE_ICON; -} - -function getSizeFromOffset(buffer, offset) { - var value = buffer.readUInt8(offset); - return value === 0 ? 256 : value; -} - -function getImageSize(buffer, imageIndex) { - var offset = SIZE_HEADER + (imageIndex * SIZE_IMAGE_ENTRY); - return { - 'width': getSizeFromOffset(buffer, offset), - 'height': getSizeFromOffset(buffer, offset + 1) - }; } -function calculate (buffer) { - var - nbImages = buffer.readUInt16LE(4), - result = getImageSize(buffer, 0), - imageIndex; - - if (nbImages === 1) { - return result; +function createQuickSort(order, dtype, insertionSort) { + var code = [ "'use strict'" ] + var funcName = ["ndarrayQuickSort", order.join("d"), dtype].join("") + var funcArgs = ["left", "right", "data", "offset" ].concat(shapeArgs(order.length)) + var allocator = getMallocFree(dtype) + var labelCounter=0 + + code.push(["function ", funcName, "(", funcArgs.join(","), "){"].join("")) + + var vars = [ + "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(order.length > 1) { + var ele_size = [] + for(var i=1; i=0; --i) { + var j = order[i] + if(j === 0) { + continue + } + code.push(["for(i",j,"=0;i",j," 1) { + for(var i=0; i1) { + code.push("ptr_shift+=d"+j) + } else { + code.push("ptr0+=d"+j) + } + code.push("}") + } + } + + function lexicoLoop(label, ptrs, usePivot, body) { + if(ptrs.length === 1) { + code.push("ptr0="+toPointer(ptrs[0])) + } else { + for(var i=0; i 1) { + for(var i=0; i=1; --i) { + if(usePivot) { + code.push("pivot_ptr+=f"+i) + } + if(ptrs.length > 1) { + code.push("ptr_shift+=e"+i) + } else { + code.push("ptr0+=e"+i) + } + code.push("}") + } + } + + function cleanUp() { + if(order.length > 1 && allocator) { + code.push("free(pivot1)", "free(pivot2)") + } + } + + function compareSwap(a_id, b_id) { + var a = "el"+a_id + var b = "el"+b_id + if(order.length > 1) { + var lbl = "__l" + (++labelCounter) + lexicoLoop(lbl, [a, b], false, [ + "comp=",dataRead("ptr0"),"-",dataRead("ptr1"),"\n", + "if(comp>0){tmp0=", a, ";",a,"=",b,";", b,"=tmp0;break ", lbl,"}\n", + "if(comp<0){break ", lbl, "}" + ].join("")) + } else { + code.push(["if(", dataRead(toPointer(a)), ">", dataRead(toPointer(b)), "){tmp0=", a, ";",a,"=",b,";", b,"=tmp0}"].join("")) + } + } + + compareSwap(1, 2) + compareSwap(4, 5) + compareSwap(1, 3) + compareSwap(2, 3) + compareSwap(1, 4) + compareSwap(3, 4) + compareSwap(2, 5) + compareSwap(2, 3) + compareSwap(4, 5) + + if(order.length > 1) { + cacheLoop(["el1", "el2", "el3", "el4", "el5", "index1", "index3", "index5"], true, [ + "pivot1[pivot_ptr]=",dataRead("ptr1"),"\n", + "pivot2[pivot_ptr]=",dataRead("ptr3"),"\n", + "pivots_are_equal=pivots_are_equal&&(pivot1[pivot_ptr]===pivot2[pivot_ptr])\n", + "x=",dataRead("ptr0"),"\n", + "y=",dataRead("ptr2"),"\n", + "z=",dataRead("ptr4"),"\n", + dataWrite("ptr5", "x"),"\n", + dataWrite("ptr6", "y"),"\n", + dataWrite("ptr7", "z") + ].join("")) + } else { + code.push([ + "pivot1=", dataRead(toPointer("el2")), "\n", + "pivot2=", dataRead(toPointer("el4")), "\n", + "pivots_are_equal=pivot1===pivot2\n", + "x=", dataRead(toPointer("el1")), "\n", + "y=", dataRead(toPointer("el3")), "\n", + "z=", dataRead(toPointer("el5")), "\n", + dataWrite(toPointer("index1"), "x"), "\n", + dataWrite(toPointer("index3"), "y"), "\n", + dataWrite(toPointer("index5"), "z") + ].join("")) } - return result; -} - -module.exports = { - 'detect': isICO, - 'calculate': calculate -}; - -},{}],453:[function(_dereq_,module,exports){ -'use strict'; - -var readUInt = _dereq_('../readUInt'); - -// NOTE: we only support baseline and progressive JPGs here -// due to the structure of the loader class, we only get a buffer -// with a maximum size of 4096 bytes. so if the SOF marker is outside -// if this range we can't detect the file size correctly. -function isJPG (buffer) { //, filepath - var SOIMarker = buffer.toString('hex', 0, 2); - return ('ffd8' === SOIMarker); -} + function moveElement(dst, src) { + if(order.length > 1) { + cacheLoop([dst, src], false, + dataWrite("ptr0", dataRead("ptr1")) + ) + } else { + code.push(dataWrite(toPointer(dst), dataRead(toPointer(src)))) + } + } + + moveElement("index2", "left") + moveElement("index4", "right") + + function comparePivot(result, ptr, n) { + if(order.length > 1) { + var lbl = "__l" + (++labelCounter) + lexicoLoop(lbl, [ptr], true, [ + result,"=",dataRead("ptr0"),"-pivot",n,"[pivot_ptr]\n", + "if(",result,"!==0){break ", lbl, "}" + ].join("")) + } else { + code.push([result,"=", dataRead(toPointer(ptr)), "-pivot", n].join("")) + } + } + + function swapElements(a, b) { + if(order.length > 1) { + cacheLoop([a,b],false,[ + "tmp=",dataRead("ptr0"),"\n", + dataWrite("ptr0", dataRead("ptr1")),"\n", + dataWrite("ptr1", "tmp") + ].join("")) + } else { + code.push([ + "ptr0=",toPointer(a),"\n", + "ptr1=",toPointer(b),"\n", + "tmp=",dataRead("ptr0"),"\n", + dataWrite("ptr0", dataRead("ptr1")),"\n", + dataWrite("ptr1", "tmp") + ].join("")) + } + } + + function tripleSwap(k, less, great) { + if(order.length > 1) { + cacheLoop([k,less,great], false, [ + "tmp=",dataRead("ptr0"),"\n", + dataWrite("ptr0", dataRead("ptr1")),"\n", + dataWrite("ptr1", dataRead("ptr2")),"\n", + dataWrite("ptr2", "tmp") + ].join("")) + code.push("++"+less, "--"+great) + } else { + code.push([ + "ptr0=",toPointer(k),"\n", + "ptr1=",toPointer(less),"\n", + "ptr2=",toPointer(great),"\n", + "++",less,"\n", + "--",great,"\n", + "tmp=", dataRead("ptr0"), "\n", + dataWrite("ptr0", dataRead("ptr1")), "\n", + dataWrite("ptr1", dataRead("ptr2")), "\n", + dataWrite("ptr2", "tmp") + ].join("")) + } + } + + function swapAndDecrement(k, great) { + swapElements(k, great) + code.push("--"+great) + } + + code.push("if(pivots_are_equal){") + //Pivots are equal case + code.push("for(k=less;k<=great;++k){") + comparePivot("comp", "k", 1) + code.push("if(comp===0){continue}") + code.push("if(comp<0){") + code.push("if(k!==less){") + swapElements("k", "less") + code.push("}") + code.push("++less") + code.push("}else{") + code.push("while(true){") + comparePivot("comp", "great", 1) + code.push("if(comp>0){") + code.push("great--") + code.push("}else if(comp<0){") + tripleSwap("k", "less", "great") + code.push("break") + code.push("}else{") + swapAndDecrement("k", "great") + code.push("break") + code.push("}") + code.push("}") + code.push("}") + code.push("}") + code.push("}else{") + //Pivots not equal case + code.push("for(k=less;k<=great;++k){") + comparePivot("comp_pivot1", "k", 1) + code.push("if(comp_pivot1<0){") + code.push("if(k!==less){") + swapElements("k", "less") + code.push("}") + code.push("++less") + code.push("}else{") + comparePivot("comp_pivot2", "k", 2) + code.push("if(comp_pivot2>0){") + code.push("while(true){") + comparePivot("comp", "great", 2) + code.push("if(comp>0){") + code.push("if(--great1) { + cacheLoop([mem_dest, pivot_dest], true, [ + dataWrite("ptr0", dataRead("ptr1")), "\n", + dataWrite("ptr1", ["pivot",pivot,"[pivot_ptr]"].join("")) + ].join("")) + } else { + code.push( + dataWrite(toPointer(mem_dest), dataRead(toPointer(pivot_dest))), + dataWrite(toPointer(pivot_dest), "pivot"+pivot)) + } + } + + storePivot("left", "(less-1)", 1) + storePivot("right", "(great+1)", 2) -function isEXIF (buffer) { //, filepath - var exifMarker = buffer.toString('hex', 2, 6); - return (exifMarker === '45786966'); // 'Exif' + //Recursive sort call + function doSort(left, right) { + code.push([ + "if((",right,"-",left,")<=",INSERTION_SORT_THRESHOLD,"){\n", + "insertionSort(", left, ",", right, ",data,offset,", shapeArgs(order.length).join(","), ")\n", + "}else{\n", + funcName, "(", left, ",", right, ",data,offset,", shapeArgs(order.length).join(","), ")\n", + "}" + ].join("")) + } + doSort("left", "(less-2)") + doSort("(great+2)", "right") + + //If pivots are equal, then early out + code.push("if(pivots_are_equal){") + cleanUp() + code.push("return") + code.push("}") + + function walkPointer(ptr, pivot, body) { + if(order.length > 1) { + code.push(["__l",++labelCounter,":while(true){"].join("")) + cacheLoop([ptr], true, [ + "if(", dataRead("ptr0"), "!==pivot", pivot, "[pivot_ptr]){break __l", labelCounter, "}" + ].join("")) + code.push(body, "}") + } else { + code.push(["while(", dataRead(toPointer(ptr)), "===pivot", pivot, "){", body, "}"].join("")) + } + } + + //Check bounds + code.push("if(lessindex5){") + + walkPointer("less", 1, "++less") + walkPointer("great", 2, "--great") + + code.push("for(k=less;k<=great;++k){") + comparePivot("comp_pivot1", "k", 1) + code.push("if(comp_pivot1===0){") + code.push("if(k!==less){") + swapElements("k", "less") + code.push("}") + code.push("++less") + code.push("}else{") + comparePivot("comp_pivot2", "k", 2) + code.push("if(comp_pivot2===0){") + code.push("while(true){") + comparePivot("comp", "great", 2) + code.push("if(comp===0){") + code.push("if(--great 1 && allocator) { + var compiled = new Function("insertionSort", "malloc", "free", code.join("\n")) + return compiled(insertionSort, allocator[0], allocator[1]) + } + var compiled = new Function("insertionSort", code.join("\n")) + return compiled(insertionSort) } -function extractSize (buffer, i) { - return { - 'height' : buffer.readUInt16BE(i), - 'width' : buffer.readUInt16BE(i + 2) - }; +function compileSort(order, dtype) { + var code = ["'use strict'"] + var funcName = ["ndarraySortWrapper", order.join("d"), dtype].join("") + var funcArgs = [ "array" ] + + code.push(["function ", funcName, "(", funcArgs.join(","), "){"].join("")) + + //Unpack local variables from array + var vars = ["data=array.data,offset=array.offset|0,shape=array.shape,stride=array.stride"] + for(var i=0; i 0) { + vars.push(["d",j,"=s",j,"-d",p,"*n",p].join("")) + } else { + vars.push(["d",j,"=s",j].join("")) + } + p = j + } + var k = order.length-1-i + if(k !== 0) { + if(q > 0) { + vars.push(["e",k,"=s",k,"-e",q,"*n",q, + ",f",k,"=",scratch_stride[k],"-f",q,"*n",q].join("")) + } else { + vars.push(["e",k,"=s",k,",f",k,"=",scratch_stride[k]].join("")) + } + q = k + } + } + + //Declare local variables + code.push("var " + vars.join(",")) + + //Create arguments for subroutine + var sortArgs = ["0", "n0-1", "data", "offset"].concat(shapeArgs(order.length)) + + //Call main sorting routine + code.push([ + "if(n0<=",INSERTION_SORT_THRESHOLD,"){", + "insertionSort(", sortArgs.join(","), ")}else{", + "quickSort(", sortArgs.join(","), + ")}" + ].join("")) + + //Return + code.push("}return " + funcName) + + //Link everything together + var result = new Function("insertionSort", "quickSort", code.join("\n")) + var insertionSort = createInsertionSort(order, dtype) + var quickSort = createQuickSort(order, dtype, insertionSort) + return result(insertionSort, quickSort) } -var APP1_DATA_SIZE_BYTES = 2; -var EXIF_HEADER_BYTES = 6; -var TIFF_BYTE_ALIGN_BYTES = 2; -var BIG_ENDIAN_BYTE_ALIGN = '4d4d'; -var LITTLE_ENDIAN_BYTE_ALIGN = '4949'; - -// Each entry is exactly 12 bytes -var IDF_ENTRY_BYTES = 12; -var NUM_DIRECTORY_ENTRIES_BYTES = 2; - -function validateExifBlock (buffer, i) { - // Skip APP1 Data Size - var exifBlock = buffer.slice(APP1_DATA_SIZE_BYTES, i); - - // Consider byte alignment - var byteAlign = exifBlock.toString('hex', EXIF_HEADER_BYTES, EXIF_HEADER_BYTES + TIFF_BYTE_ALIGN_BYTES); +module.exports = compileSort +},{"typedarray-pool":611}],479:[function(_dereq_,module,exports){ +"use strict" - // Ignore Empty EXIF. Validate byte alignment - var isBigEndian = byteAlign === BIG_ENDIAN_BYTE_ALIGN; - var isLittleEndian = byteAlign === LITTLE_ENDIAN_BYTE_ALIGN; +var compile = _dereq_("./lib/compile_sort.js") +var CACHE = {} - if (isBigEndian || isLittleEndian) { - return extractOrientation(exifBlock, isBigEndian); +function sort(array) { + var order = array.order + var dtype = array.dtype + var typeSig = [order, dtype ] + var typeName = typeSig.join(":") + var compiled = CACHE[typeName] + if(!compiled) { + CACHE[typeName] = compiled = compile(order, dtype) } + compiled(array) + return array } -function extractOrientation (exifBlock, isBigEndian) { - // TODO: assert that this contains 0x002A - // var STATIC_MOTOROLA_TIFF_HEADER_BYTES = 2; - // var TIFF_IMAGE_FILE_DIRECTORY_BYTES = 4; - - // TODO: derive from TIFF_IMAGE_FILE_DIRECTORY_BYTES - var idfOffset = 8; - - // IDF osset works from right after the header bytes - // (so the offset includes the tiff byte align) - var offset = EXIF_HEADER_BYTES + idfOffset; - - var idfDirectoryEntries = readUInt(exifBlock, 16, offset, isBigEndian); - - var start; - var end; - for (var directoryEntryNumber = 0; directoryEntryNumber < idfDirectoryEntries; directoryEntryNumber++) { - start = offset + NUM_DIRECTORY_ENTRIES_BYTES + (directoryEntryNumber * IDF_ENTRY_BYTES); - end = start + IDF_ENTRY_BYTES; - - // Skip on corrupt EXIF blocks - if (start > exifBlock.length) { - return; - } - - var block = exifBlock.slice(start, end); - var tagNumber = readUInt(block, 16, 0, isBigEndian); - - // 0x0112 (decimal: 274) is the `orientation` tag ID - if (tagNumber === 274) { - var dataFormat = readUInt(block, 16, 2, isBigEndian); - if (dataFormat !== 3) { - return; - } +module.exports = sort +},{"./lib/compile_sort.js":478}],480:[function(_dereq_,module,exports){ +var iota = _dereq_("iota-array") +var isBuffer = _dereq_("is-buffer") - // unsinged int has 2 bytes per component - // if there would more than 4 bytes in total it's a pointer - var numberOfComponents = readUInt(block, 32, 4, isBigEndian); - if (numberOfComponents !== 1) { - return; - } +var hasTypedArrays = ((typeof Float64Array) !== "undefined") - return readUInt(block, 16, 8, isBigEndian); - } - } +function compare1st(a, b) { + return a[0] - b[0] } -function validateBuffer (buffer, i) { - // index should be within buffer limits - if (i > buffer.length) { - throw new TypeError('Corrupt JPG, exceeded buffer limits'); +function order() { + var stride = this.stride + var terms = new Array(stride.length) + var i + for(i=0; iMath.abs(this.stride[1]))?[1,0]:[0,1]}})") + } else if(dimension === 3) { + code.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];\ +}}})") } - - return { - width: size.width, - height: size.height, - orientation: orientation - }; + } else { + code.push("ORDER})") } - - // move to the next block - buffer = buffer.slice(i + 2); } - throw new TypeError('Invalid JPG, no size found'); -} - -module.exports = { - 'detect': isJPG, - 'calculate': calculate -}; - -},{"../readUInt":445}],454:[function(_dereq_,module,exports){ -'use strict'; - -var pngSignature = 'PNG\r\n\x1a\n'; -var pngImageHeaderChunkName = 'IHDR'; - -// Used to detect "fried" png's: http://www.jongware.com/pngdefry.html -var pngFriedChunkName = 'CgBI'; - -function isPNG (buffer) { - if (pngSignature === buffer.toString('ascii', 1, 8)) { - var chunkName = buffer.toString('ascii', 12, 16); - if (chunkName === pngFriedChunkName) { - chunkName = buffer.toString('ascii', 28, 32); - } - if (chunkName !== pngImageHeaderChunkName) { - throw new TypeError('invalid png'); - } - return true; + //view.set(i0, ..., v): + code.push( +"proto.set=function "+className+"_set("+args.join(",")+",v){") + if(useGetters) { + code.push("return this.data.set("+index_str+",v)}") + } else { + code.push("return this.data["+index_str+"]=v}") } -} -function calculate (buffer) { - if (buffer.toString('ascii', 12, 16) === pngFriedChunkName) { - return { - 'width': buffer.readUInt32BE(32), - 'height': buffer.readUInt32BE(36) - }; + //view.get(i0, ...): + code.push("proto.get=function "+className+"_get("+args.join(",")+"){") + if(useGetters) { + code.push("return this.data.get("+index_str+")}") + } else { + code.push("return this.data["+index_str+"]}") } - return { - 'width': buffer.readUInt32BE(16), - 'height': buffer.readUInt32BE(20) - }; -} - -module.exports = { - 'detect': isPNG, - 'calculate': calculate -}; - -},{}],455:[function(_dereq_,module,exports){ -'use strict'; - -function isPSD (buffer) { - return ('8BPS' === buffer.toString('ascii', 0, 4)); -} -function calculate (buffer) { - return { - 'width': buffer.readUInt32BE(18), - 'height': buffer.readUInt32BE(14) - }; -} - -module.exports = { - 'detect': isPSD, - 'calculate': calculate -}; - -},{}],456:[function(_dereq_,module,exports){ -'use strict'; + //view.index: + code.push( + "proto.index=function "+className+"_index(", args.join(), "){return "+index_str+"}") -var svgReg = /"']|"[^"]*"|'[^']*')*>/; -function isSVG (buffer) { - return svgReg.test(buffer); -} + //view.hi(): + code.push("proto.hi=function "+className+"_hi("+args.join(",")+"){return new "+className+"(this.data,"+ + indices.map(function(i) { + return ["(typeof i",i,"!=='number'||i",i,"<0)?this.shape[", i, "]:i", i,"|0"].join("") + }).join(",")+","+ + indices.map(function(i) { + return "this.stride["+i + "]" + }).join(",")+",this.offset)}") -var extractorRegExps = { - 'root': svgReg, - 'width': /\swidth=(['"])([^%]+?)\1/, - 'height': /\sheight=(['"])([^%]+?)\1/, - 'viewbox': /\sviewBox=(['"])(.+?)\1/ -}; + //view.lo(): + var a_vars = indices.map(function(i) { return "a"+i+"=this.shape["+i+"]" }) + var c_vars = indices.map(function(i) { return "c"+i+"=this.stride["+i+"]" }) + code.push("proto.lo=function "+className+"_lo("+args.join(",")+"){var b=this.offset,d=0,"+a_vars.join(",")+","+c_vars.join(",")) + for(var i=0; i=0){\ +d=i"+i+"|0;\ +b+=c"+i+"*d;\ +a"+i+"-=d}") + } + code.push("return new "+className+"(this.data,"+ + indices.map(function(i) { + return "a"+i + }).join(",")+","+ + indices.map(function(i) { + return "c"+i + }).join(",")+",b)}") -var units = { - '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, -}; + //view.step(): + code.push("proto.step=function "+className+"_step("+args.join(",")+"){var "+ + indices.map(function(i) { + return "a"+i+"=this.shape["+i+"]" + }).join(",")+","+ + indices.map(function(i) { + return "b"+i+"=this.stride["+i+"]" + }).join(",")+",c=this.offset,d=0,ceil=Math.ceil") + for(var i=0; i=0){c=(c+this.stride["+i+"]*i"+i+")|0}else{a.push(this.shape["+i+"]);b.push(this.stride["+i+"])}") + } + code.push("var ctor=CTOR_LIST[a.length+1];return ctor(this.data,a,b,c)}") -function parseAttributes (root) { - var width = root.match(extractorRegExps.width); - var height = root.match(extractorRegExps.height); - var viewbox = root.match(extractorRegExps.viewbox); - return { - 'width': width && parseLength(width[2]), - 'height': height && parseLength(height[2]), - 'viewbox': viewbox && parseViewbox(viewbox[2]) - }; -} + //Add return statement + code.push("return function construct_"+className+"(data,shape,stride,offset){return new "+className+"(data,"+ + indices.map(function(i) { + return "shape["+i+"]" + }).join(",")+","+ + indices.map(function(i) { + return "stride["+i+"]" + }).join(",")+",offset)}") -function calculateByDimensions (attrs) { - return { - 'width': attrs.width, - 'height': attrs.height - }; + //Compile procedure + var procedure = new Function("CTOR_LIST", "ORDER", code.join("\n")) + return procedure(CACHED_CONSTRUCTORS[dtype], order) } -function calculateByViewbox (attrs) { - var ratio = attrs.viewbox.width / attrs.viewbox.height; - if (attrs.width) { - return { - 'width': attrs.width, - 'height': Math.floor(attrs.width / ratio) - }; - } - if (attrs.height) { - return { - 'width': Math.floor(attrs.height * ratio), - 'height': attrs.height - }; +function arrayDType(data) { + if(isBuffer(data)) { + return "buffer" } - return { - 'width': attrs.viewbox.width, - 'height': attrs.viewbox.height - }; -} - -function calculate (buffer) { - var root = buffer.toString('utf8').match(extractorRegExps.root); - if (root) { - var attrs = parseAttributes(root[0]); - if (attrs.width && attrs.height) { - return calculateByDimensions(attrs); - } - if (attrs.viewbox) { - return calculateByViewbox(attrs); + if(hasTypedArrays) { + switch(Object.prototype.toString.call(data)) { + case "[object Float64Array]": + return "float64" + case "[object Float32Array]": + return "float32" + case "[object Int8Array]": + return "int8" + case "[object Int16Array]": + return "int16" + case "[object Int32Array]": + return "int32" + case "[object Uint8Array]": + return "uint8" + case "[object Uint16Array]": + return "uint16" + case "[object Uint32Array]": + return "uint32" + case "[object Uint8ClampedArray]": + return "uint8_clamped" + case "[object BigInt64Array]": + return "bigint64" + case "[object BigUint64Array]": + return "biguint64" } } - throw new TypeError('invalid svg'); -} - -module.exports = { - 'detect': isSVG, - 'calculate': calculate -}; - -},{}],457:[function(_dereq_,module,exports){ -(function (Buffer){(function (){ -'use strict'; - -// based on http://www.compix.com/fileformattif.htm -// TO-DO: support big-endian as well - -var fs = _dereq_('fs'); -var readUInt = _dereq_('../readUInt'); - -function isTIFF (buffer) { - var hex4 = buffer.toString('hex', 0, 4); - return ('49492a00' === hex4 || '4d4d002a' === hex4); -} - -// Read IFD (image-file-directory) into a buffer -function readIFD (buffer, filepath, isBigEndian) { - - var ifdOffset = readUInt(buffer, 32, 4, isBigEndian); - - // read only till the end of the file - var bufferSize = 1024; - var fileSize = fs.statSync(filepath).size; - if (ifdOffset + bufferSize > fileSize) { - bufferSize = fileSize - ifdOffset - 10; + if(Array.isArray(data)) { + return "array" } - - // populate the buffer - var endBuffer = Buffer.alloc(bufferSize); - var descriptor = fs.openSync(filepath, 'r'); - fs.readSync(descriptor, endBuffer, 0, bufferSize, ifdOffset); - - // var ifdLength = readUInt(endBuffer, 16, 0, isBigEndian); - var ifdBuffer = endBuffer.slice(2); //, 2 + 12 * ifdLength); - return ifdBuffer; + return "generic" } -// TIFF values seem to be messed up on Big-Endian, this helps -function readValue (buffer, isBigEndian) { - var low = readUInt(buffer, 16, 8, isBigEndian); - var high = readUInt(buffer, 16, 10, isBigEndian); - return (high << 16) + low; +var CACHED_CONSTRUCTORS = { + "float32":[], + "float64":[], + "int8":[], + "int16":[], + "int32":[], + "uint8":[], + "uint16":[], + "uint32":[], + "array":[], + "uint8_clamped":[], + "bigint64": [], + "biguint64": [], + "buffer":[], + "generic":[] } -// move to the next tag -function nextTag (buffer) { - if (buffer.length > 24) { - return buffer.slice(12); +;(function() { + for(var id in CACHED_CONSTRUCTORS) { + CACHED_CONSTRUCTORS[id].push(compileConstructor(id, -1)) } -} - -// Extract IFD tags from TIFF metadata -/* eslint-disable complexity */ -function extractTags (buffer, isBigEndian) { - var tags = {}; - var code, type, length; - - while (buffer && buffer.length) { - code = readUInt(buffer, 16, 0, isBigEndian); - type = readUInt(buffer, 16, 2, isBigEndian); - length = readUInt(buffer, 32, 4, isBigEndian); +}); - // 0 means end of IFD - if (code === 0) { - break; - } else { - // 256 is width, 257 is height - // if (code === 256 || code === 257) { - if (length === 1 && (type === 3 || type === 4)) { - tags[code] = readValue(buffer, isBigEndian); +function wrappedNDArrayCtor(data, shape, stride, offset) { + if(data === undefined) { + var ctor = CACHED_CONSTRUCTORS.array[0] + return ctor([]) + } else if(typeof data === "number") { + data = [data] + } + if(shape === undefined) { + shape = [ data.length ] + } + var d = shape.length + if(stride === undefined) { + stride = new Array(d) + for(var i=d-1, sz=1; i>=0; --i) { + stride[i] = sz + sz *= shape[i] + } + } + if(offset === undefined) { + offset = 0 + for(var i=0; i>>0 - var width = tags[256]; - var height = tags[257]; +module.exports = nextafter - if (!width || !height) { - throw new TypeError('Invalid Tiff, missing tags'); +function nextafter(x, y) { + if(isNaN(x) || isNaN(y)) { + return NaN } - - return { - 'width': width, - 'height': height - }; -} - -module.exports = { - 'detect': isTIFF, - 'calculate': calculate -}; - -}).call(this)}).call(this,_dereq_("buffer").Buffer) -},{"../readUInt":445,"buffer":111,"fs":109}],458:[function(_dereq_,module,exports){ -'use strict'; - -// based on https://developers.google.com/speed/webp/docs/riff_container - -function isWebP (buffer) { - var riffHeader = 'RIFF' === buffer.toString('ascii', 0, 4); - var webpHeader = 'WEBP' === buffer.toString('ascii', 8, 12); - var vp8Header = 'VP8' === buffer.toString('ascii', 12, 15); - return (riffHeader && webpHeader && vp8Header); -} - -/* eslint-disable complexity */ -function calculate (buffer) { - var chunkHeader = buffer.toString('ascii', 12, 16); - buffer = buffer.slice(20, 30); - - // Extended webp stream signature - if (chunkHeader === 'VP8X') { - var extendedHeader = buffer[0]; - var validStart = (extendedHeader & 0xc0) === 0; - var validEnd = (extendedHeader & 0x01) === 0; - if (validStart && validEnd) { - return calculateExtended(buffer); + if(x === y) { + return x + } + if(x === 0) { + if(y < 0) { + return -SMALLEST_DENORM } else { - return false; + return SMALLEST_DENORM } } - - // Lossless webp stream signature - if (chunkHeader === 'VP8 ' && buffer[0] !== 0x2f) { - return calculateLossy(buffer); - } - - // Lossy webp stream signature - var signature = buffer.toString('hex', 3, 6); - if (chunkHeader === 'VP8L' && signature !== '9d012a') { - return calculateLossless(buffer); + var hi = doubleBits.hi(x) + var lo = doubleBits.lo(x) + if((y > x) === (x > 0)) { + if(lo === UINT_MAX) { + hi += 1 + lo = 0 + } else { + lo += 1 + } + } else { + if(lo === 0) { + lo = UINT_MAX + hi -= 1 + } else { + lo -= 1 + } } - - return false; -} -/* eslint-enable complexity */ - -function calculateExtended (buffer) { - return { - 'width': 1 + buffer.readUIntLE(4, 3), - 'height': 1 + buffer.readUIntLE(7, 3) - }; -} - -function calculateLossless (buffer) { - return { - 'width': 1 + (((buffer[2] & 0x3F) << 8) | buffer[1]), - 'height': 1 + (((buffer[4] & 0xF) << 10) | (buffer[3] << 2) | - ((buffer[2] & 0xC0) >> 6)) - }; + return doubleBits.pack(lo, hi) } +},{"double-bits":174}],482:[function(_dereq_,module,exports){ -function calculateLossy (buffer) { - // `& 0x3fff` returns the last 14 bits - // TO-DO: include webp scaling in the calculations - return { - 'width': buffer.readInt16LE(6) & 0x3fff, - 'height': buffer.readInt16LE(8) & 0x3fff - }; -} +var π = Math.PI +var _120 = radians(120) -module.exports = { - 'detect': isWebP, - 'calculate': calculate -}; +module.exports = normalize -},{}],459:[function(_dereq_,module,exports){ -"use strict" +/** + * describe `path` in terms of cubic bézier + * curves and move commands + * + * @param {Array} path + * @return {Array} + */ -//High level idea: -// 1. Use Clarkson's incremental construction to find convex hull -// 2. Point location in triangulation by jump and walk +function normalize(path){ + // init state + var prev + var result = [] + var bezierX = 0 + var bezierY = 0 + var startX = 0 + var startY = 0 + var quadX = null + var quadY = null + var x = 0 + var y = 0 -module.exports = incrementalConvexHull + for (var i = 0, len = path.length; i < len; i++) { + var seg = path[i] + var command = seg[0] + switch (command) { + case 'M': + startX = seg[1] + startY = seg[2] + break + case 'A': + seg = arc(x, y,seg[1],seg[2],radians(seg[3]),seg[4],seg[5],seg[6],seg[7]) + // split multi part + seg.unshift('C') + if (seg.length > 7) { + result.push(seg.splice(0, 7)) + seg.unshift('C') + } + break + case 'S': + // default control point + var cx = x + var cy = y + if (prev == 'C' || prev == 'S') { + cx += cx - bezierX // reflect the previous command's control + cy += cy - bezierY // point relative to the current point + } + seg = ['C', cx, cy, seg[1], seg[2], seg[3], seg[4]] + break + case 'T': + if (prev == 'Q' || prev == 'T') { + quadX = x * 2 - quadX // as with 'S' reflect previous control point + quadY = y * 2 - quadY + } else { + quadX = x + quadY = y + } + seg = quadratic(x, y, quadX, quadY, seg[1], seg[2]) + break + case 'Q': + quadX = seg[1] + quadY = seg[2] + seg = quadratic(x, y, seg[1], seg[2], seg[3], seg[4]) + break + case 'L': + seg = line(x, y, seg[1], seg[2]) + break + case 'H': + seg = line(x, y, seg[1], y) + break + case 'V': + seg = line(x, y, x, seg[1]) + break + case 'Z': + seg = line(x, y, startX, startY) + break + } -var orient = _dereq_("robust-orientation") -var compareCell = _dereq_("simplicial-complex").compareCells + // update state + prev = command + x = seg[seg.length - 2] + y = seg[seg.length - 1] + if (seg.length > 4) { + bezierX = seg[seg.length - 4] + bezierY = seg[seg.length - 3] + } else { + bezierX = x + bezierY = y + } + result.push(seg) + } -function compareInt(a, b) { - return a - b + return result } -function Simplex(vertices, adjacent, boundary) { - this.vertices = vertices - this.adjacent = adjacent - this.boundary = boundary - this.lastVisited = -1 +function line(x1, y1, x2, y2){ + return ['C', x1, y1, x2, y2, x2, y2] } -Simplex.prototype.flip = function() { - var t = this.vertices[0] - this.vertices[0] = this.vertices[1] - this.vertices[1] = t - var u = this.adjacent[0] - this.adjacent[0] = this.adjacent[1] - this.adjacent[1] = u +function quadratic(x1, y1, cx, cy, x2, y2){ + return [ + 'C', + x1/3 + (2/3) * cx, + y1/3 + (2/3) * cy, + x2/3 + (2/3) * cx, + y2/3 + (2/3) * cy, + x2, + y2 + ] } -function GlueFacet(vertices, cell, index) { - this.vertices = vertices - this.cell = cell - this.index = index -} +// This function is ripped from +// github.com/DmitryBaranovskiy/raphael/blob/4d97d4/raphael.js#L2216-L2304 +// which references w3.org/TR/SVG11/implnote.html#ArcImplementationNotes +// TODO: make it human readable -function compareGlue(a, b) { - return compareCell(a.vertices, b.vertices) -} +function arc(x1, y1, rx, ry, angle, large_arc_flag, sweep_flag, x2, y2, recursive) { + if (!recursive) { + var xy = rotate(x1, y1, -angle) + x1 = xy.x + y1 = xy.y + xy = rotate(x2, y2, -angle) + x2 = xy.x + y2 = xy.y + var x = (x1 - x2) / 2 + var y = (y1 - y2) / 2 + var h = (x * x) / (rx * rx) + (y * y) / (ry * ry) + if (h > 1) { + h = Math.sqrt(h) + rx = h * rx + ry = h * ry + } + var rx2 = rx * rx + var ry2 = ry * ry + var k = (large_arc_flag == sweep_flag ? -1 : 1) + * Math.sqrt(Math.abs((rx2 * ry2 - rx2 * y * y - ry2 * x * x) / (rx2 * y * y + ry2 * x * x))) + if (k == Infinity) k = 1 // neutralize + var cx = k * rx * y / ry + (x1 + x2) / 2 + var cy = k * -ry * x / rx + (y1 + y2) / 2 + var f1 = Math.asin(((y1 - cy) / ry).toFixed(9)) + var f2 = Math.asin(((y2 - cy) / ry).toFixed(9)) -function bakeOrient(d) { - var code = ["function orient(){var tuple=this.tuple;return test("] - for(var i=0; i<=d; ++i) { - if(i > 0) { - code.push(",") - } - code.push("tuple[", i, "]") - } - code.push(")}return orient") - var proc = new Function("test", code.join("")) - var test = orient[d+1] - if(!test) { - test = orient - } - return proc(test) + f1 = x1 < cx ? π - f1 : f1 + f2 = x2 < cx ? π - f2 : f2 + if (f1 < 0) f1 = π * 2 + f1 + if (f2 < 0) f2 = π * 2 + f2 + if (sweep_flag && f1 > f2) f1 = f1 - π * 2 + if (!sweep_flag && f2 > f1) f2 = f2 - π * 2 + } else { + f1 = recursive[0] + f2 = recursive[1] + cx = recursive[2] + cy = recursive[3] + } + // greater than 120 degrees requires multiple segments + if (Math.abs(f2 - f1) > _120) { + var f2old = f2 + var x2old = x2 + var y2old = y2 + f2 = f1 + _120 * (sweep_flag && f2 > f1 ? 1 : -1) + x2 = cx + rx * Math.cos(f2) + y2 = cy + ry * Math.sin(f2) + var res = arc(x2, y2, rx, ry, angle, 0, sweep_flag, x2old, y2old, [f2, f2old, cx, cy]) + } + var t = Math.tan((f2 - f1) / 4) + var hx = 4 / 3 * rx * t + var hy = 4 / 3 * ry * t + var curve = [ + 2 * x1 - (x1 + hx * Math.sin(f1)), + 2 * y1 - (y1 - hy * Math.cos(f1)), + x2 + hx * Math.sin(f2), + y2 - hy * Math.cos(f2), + x2, + y2 + ] + if (recursive) return curve + if (res) curve = curve.concat(res) + for (var i = 0; i < curve.length;) { + var rot = rotate(curve[i], curve[i+1], angle) + curve[i++] = rot.x + curve[i++] = rot.y + } + return curve } -var BAKED = [] - -function Triangulation(dimension, vertices, simplices) { - this.dimension = dimension - this.vertices = vertices - this.simplices = simplices - this.interior = simplices.filter(function(c) { - return !c.boundary - }) - - this.tuple = new Array(dimension+1) - for(var i=0; i<=dimension; ++i) { - this.tuple[i] = this.vertices[i] - } - - var o = BAKED[dimension] - if(!o) { - o = BAKED[dimension] = bakeOrient(dimension) - } - this.orient = o +function rotate(x, y, rad){ + return { + x: x * Math.cos(rad) - y * Math.sin(rad), + y: x * Math.sin(rad) + y * Math.cos(rad) + } } -var proto = Triangulation.prototype - -//Degenerate situation where we are on boundary, but coplanar to face -proto.handleBoundaryDegeneracy = function(cell, point) { - var d = this.dimension - var n = this.vertices.length - 1 - var tuple = this.tuple - var verts = this.vertices - - //Dumb solution: Just do dfs from boundary cell until we find any peak, or terminate - var toVisit = [ cell ] - cell.lastVisited = -n - while(toVisit.length > 0) { - cell = toVisit.pop() - var cellVerts = cell.vertices - var cellAdj = cell.adjacent - for(var i=0; i<=d; ++i) { - var neighbor = cellAdj[i] - if(!neighbor.boundary || neighbor.lastVisited <= -n) { - continue - } - var nv = neighbor.vertices - for(var j=0; j<=d; ++j) { - var vv = nv[j] - if(vv < 0) { - tuple[j] = point - } else { - tuple[j] = verts[vv] - } - } - var o = this.orient() - if(o > 0) { - return neighbor - } - neighbor.lastVisited = -n - if(o === 0) { - toVisit.push(neighbor) - } - } - } - return null +function radians(degress){ + return degress * (π / 180) } -proto.walk = function(point, random) { - //Alias local properties - var n = this.vertices.length - 1 - var d = this.dimension - var verts = this.vertices - var tuple = this.tuple - - //Compute initial jump cell - var initIndex = random ? (this.interior.length * Math.random())|0 : (this.interior.length-1) - var cell = this.interior[ initIndex ] +},{}],483:[function(_dereq_,module,exports){ +var DEFAULT_NORMALS_EPSILON = 1e-6; +var DEFAULT_FACE_EPSILON = 1e-6; - //Start walking -outerLoop: - while(!cell.boundary) { - var cellVerts = cell.vertices - var cellAdj = cell.adjacent +//Estimate the vertex normals of a mesh +exports.vertexNormals = function(faces, positions, specifiedEpsilon) { - for(var i=0; i<=d; ++i) { - tuple[i] = verts[cellVerts[i]] - } - cell.lastVisited = n + var N = positions.length; + var normals = new Array(N); + var epsilon = specifiedEpsilon === void(0) ? DEFAULT_NORMALS_EPSILON : specifiedEpsilon; - //Find farthest adjacent cell - for(var i=0; i<=d; ++i) { - var neighbor = cellAdj[i] - if(neighbor.lastVisited >= n) { - continue - } - var prev = tuple[i] - tuple[i] = point - var o = this.orient() - tuple[i] = prev - if(o < 0) { - cell = neighbor - continue outerLoop - } else { - if(!neighbor.boundary) { - neighbor.lastVisited = n - } else { - neighbor.lastVisited = -n - } - } - } - return + //Initialize normal array + for(var i=0; i 0) { - //Pop off peak and walk over adjacent cells - var cell = tovisit.pop() - var cellVerts = cell.vertices - var cellAdj = cell.adjacent - var indexOfN = cellVerts.indexOf(n) - if(indexOfN < 0) { - continue - } - - for(var i=0; i<=d; ++i) { - if(i === indexOfN) { - continue - } - - //For each boundary neighbor of the cell - var neighbor = cellAdj[i] - if(!neighbor.boundary || neighbor.lastVisited >= n) { - continue - } - - var nv = neighbor.vertices - - //Test if neighbor is a peak - if(neighbor.lastVisited !== -n) { - //Compute orientation of p relative to each boundary peak - var indexOfNeg1 = 0 - for(var j=0; j<=d; ++j) { - if(nv[j] < 0) { - indexOfNeg1 = j - tuple[j] = point - } else { - tuple[j] = verts[nv[j]] - } - } - var o = this.orient() - - //Test if neighbor cell is also a peak - if(o > 0) { - nv[indexOfNeg1] = n - neighbor.boundary = false - interior.push(neighbor) - tovisit.push(neighbor) - neighbor.lastVisited = n - continue - } else { - neighbor.lastVisited = -n - } - } - - var na = neighbor.adjacent - - //Otherwise, replace neighbor with new face - var vverts = cellVerts.slice() - var vadj = cellAdj.slice() - var ncell = new Simplex(vverts, vadj, true) - simplices.push(ncell) - - //Connect to neighbor - var opposite = na.indexOf(cell) - if(opposite < 0) { - continue - } - na[opposite] = ncell - vadj[indexOfN] = neighbor + //Walk over all the faces and add per-vertex contribution to normal weights + for(var i=0; i= 0) { - bcell[ptr++] = cv[j] - } else { - parity = j&1 + //Accumulate values in normal + if(m01 * m21 > epsilon) { + var norm = normals[c]; + var w = 1.0 / Math.sqrt(m01 * m21); + for(var k=0; k<3; ++k) { + var u = (k+1)%3; + var v = (k+2)%3; + norm[k] += w * (d21[u] * d01[v] - d21[v] * d01[u]); } } - if(parity === (d&1)) { - var t = bcell[0] - bcell[0] = bcell[1] - bcell[1] = t + } + } + + //Scale all normals to unit length + for(var i=0; i epsilon) { + var w = 1.0 / Math.sqrt(m); + for(var k=0; k<3; ++k) { + norm[k] *= w; + } + } else { + for(var k=0; k<3; ++k) { + norm[k] = 0.0; } - boundary.push(bcell) } } - return boundary + + //Return the resulting set of patches + return normals; } -function incrementalConvexHull(points, randomSearch) { - var n = points.length - if(n === 0) { - throw new Error("Must have at least d+1 points") - } - var d = points[0].length - if(n <= d) { - throw new Error("Must input at least d+1 points") - } +//Compute face normals of a mesh +exports.faceNormals = function(faces, positions, specifiedEpsilon) { - //FIXME: This could be degenerate, but need to select d+1 non-coplanar points to bootstrap process - var initialSimplex = points.slice(0, d+1) + var N = faces.length; + var normals = new Array(N); + var epsilon = specifiedEpsilon === void(0) ? DEFAULT_FACE_EPSILON : specifiedEpsilon; - //Make sure initial simplex is positively oriented - var o = orient.apply(void 0, initialSimplex) - if(o === 0) { - throw new Error("Input not in general position") - } - var initialCoords = new Array(d+1) - for(var i=0; i<=d; ++i) { - initialCoords[i] = i - } - if(o < 0) { - initialCoords[0] = 1 - initialCoords[1] = 0 - } + for(var i=0; i epsilon) { + l = 1.0 / Math.sqrt(l); + } else { + l = 0.0; } + for(var j=0; j<3; ++j) { + n[j] *= l; + } + normals[i] = n; } + return normals; +} - //Initialize triangles - var triangles = new Triangulation(d, initialSimplex, list) - //Insert remaining points - var useRandom = !!randomSearch - for(var i=d+1; i 3*(weight+1)) { - rebuildWithInterval(this, interval) - } else { - this.left.insert(interval) - } - } else { - this.left = createIntervalTree([interval]) - } - } else if(interval[0] > this.mid) { - if(this.right) { - if(4*(this.right.count+1) > 3*(weight+1)) { - rebuildWithInterval(this, interval) - } else { - this.right.insert(interval) - } - } else { - this.right = createIntervalTree([interval]) - } - } else { - var l = bounds.ge(this.leftPoints, interval, compareBegin) - var r = bounds.ge(this.rightPoints, interval, compareEnd) - this.leftPoints.splice(l, 0, interval) - this.rightPoints.splice(r, 0, interval) - } -} +module.exports = shouldUseNative() ? Object.assign : function (target, source) { + var from; + var to = toObject(target); + var symbols; -proto.remove = function(interval) { - var weight = this.count - this.leftPoints - if(interval[1] < this.mid) { - if(!this.left) { - return NOT_FOUND - } - var rw = this.right ? this.right.count : 0 - if(4 * rw > 3 * (weight-1)) { - return rebuildWithoutInterval(this, interval) - } - var r = this.left.remove(interval) - if(r === EMPTY) { - this.left = null - this.count -= 1 - return SUCCESS - } else if(r === SUCCESS) { - this.count -= 1 - } - return r - } else if(interval[0] > this.mid) { - if(!this.right) { - return NOT_FOUND - } - var lw = this.left ? this.left.count : 0 - if(4 * lw > 3 * (weight-1)) { - return rebuildWithoutInterval(this, interval) - } - var r = this.right.remove(interval) - if(r === EMPTY) { - this.right = null - this.count -= 1 - return SUCCESS - } else if(r === SUCCESS) { - this.count -= 1 - } - return r + for (var s = 1; s < arguments.length; s++) { + from = Object(arguments[s]); + + for (var key in from) { + if (hasOwnProperty.call(from, key)) { + to[key] = from[key]; + } + } + + if (getOwnPropertySymbols) { + symbols = getOwnPropertySymbols(from); + for (var i = 0; i < symbols.length; i++) { + if (propIsEnumerable.call(from, symbols[i])) { + to[symbols[i]] = from[symbols[i]]; + } + } + } + } + + return to; +}; + +},{}],485:[function(_dereq_,module,exports){ +'use strict' + +module.exports = quatFromFrame + +function quatFromFrame( + out, + rx, ry, rz, + ux, uy, uz, + fx, fy, fz) { + var tr = rx + uy + fz + if(l > 0) { + var l = Math.sqrt(tr + 1.0) + out[0] = 0.5 * (uz - fy) / l + out[1] = 0.5 * (fx - rz) / l + out[2] = 0.5 * (ry - uy) / l + out[3] = 0.5 * l } else { - if(this.count === 1) { - if(this.leftPoints[0] === interval) { - return EMPTY - } else { - return NOT_FOUND - } - } - if(this.leftPoints.length === 1 && this.leftPoints[0] === interval) { - if(this.left && this.right) { - var p = this - var n = this.left - while(n.right) { - p = n - n = n.right - } - if(p === this) { - n.right = this.right - } else { - var l = this.left - var r = this.right - p.count -= n.count - p.right = n.left - n.left = l - n.right = r - } - copy(this, n) - this.count = (this.left?this.left.count:0) + (this.right?this.right.count:0) + this.leftPoints.length - } else if(this.left) { - copy(this, this.left) - } else { - copy(this, this.right) - } - return SUCCESS - } - for(var l = bounds.ge(this.leftPoints, interval, compareBegin); l= tf) { + //x y z order + out[0] = 0.5 * l + out[1] = 0.5 * (ux + ry) / l + out[2] = 0.5 * (fx + rz) / l + out[3] = 0.5 * (uz - fy) / l + } else if(uy >= tf) { + //y z x order + out[0] = 0.5 * (ry + ux) / l + out[1] = 0.5 * l + out[2] = 0.5 * (fy + uz) / l + out[3] = 0.5 * (fx - rz) / l + } else { + //z x y order + out[0] = 0.5 * (rz + fx) / l + out[1] = 0.5 * (uz + fy) / l + out[2] = 0.5 * l + out[3] = 0.5 * (ry - ux) / l } - return NOT_FOUND } + return out } +},{}],486:[function(_dereq_,module,exports){ +'use strict' -function reportLeftRange(arr, hi, cb) { - for(var i=0; i=0 && arr[i][1] >= lo; --i) { - var r = cb(arr[i]) - if(r) { return r } - } -} +var filterVector = _dereq_('filtered-vector') +var lookAt = _dereq_('gl-mat4/lookAt') +var mat4FromQuat = _dereq_('gl-mat4/fromQuat') +var invert44 = _dereq_('gl-mat4/invert') +var quatFromFrame = _dereq_('./lib/quatFromFrame') -function reportRange(arr, cb) { - for(var i=0; i this.mid) { - if(this.right) { - var r = this.right.queryPoint(x, cb) - if(r) { return r } - } - return reportRightRange(this.rightPoints, x, cb) - } else { - return reportRange(this.leftPoints, cb) - } +function len4(w,x,y,z) { + return Math.sqrt(Math.pow(w,2) + Math.pow(x,2) + Math.pow(y,2) + Math.pow(z,2)) } -proto.queryInterval = function(lo, hi, cb) { - if(lo < this.mid && this.left) { - var r = this.left.queryInterval(lo, hi, cb) - if(r) { return r } - } - if(hi > this.mid && this.right) { - var r = this.right.queryInterval(lo, hi, cb) - if(r) { return r } - } - if(hi < this.mid) { - return reportLeftRange(this.leftPoints, hi, cb) - } else if(lo > this.mid) { - return reportRightRange(this.rightPoints, lo, cb) +function normalize4(out, a) { + var ax = a[0] + var ay = a[1] + var az = a[2] + var aw = a[3] + var al = len4(ax, ay, az, aw) + if(al > 1e-6) { + out[0] = ax/al + out[1] = ay/al + out[2] = az/al + out[3] = aw/al } else { - return reportRange(this.leftPoints, cb) + out[0] = out[1] = out[2] = 0.0 + out[3] = 1.0 } } -function compareNumbers(a, b) { - return a - b -} +function OrbitCameraController(initQuat, initCenter, initRadius) { + this.radius = filterVector([initRadius]) + this.center = filterVector(initCenter) + this.rotation = filterVector(initQuat) -function compareBegin(a, b) { - var d = a[0] - b[0] - if(d) { return d } - return a[1] - b[1] -} + this.computedRadius = this.radius.curve(0) + this.computedCenter = this.center.curve(0) + this.computedRotation = this.rotation.curve(0) + this.computedUp = [0.1,0,0] + this.computedEye = [0.1,0,0] + this.computedMatrix = [0.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] -function compareEnd(a, b) { - var d = a[1] - b[1] - if(d) { return d } - return a[0] - b[0] + this.recalcMatrix(0) } -function createIntervalTree(intervals) { - if(intervals.length === 0) { - return null - } - var pts = [] - for(var i=0; i>1] +proto.lastT = function() { + return Math.max( + this.radius.lastT(), + this.center.lastT(), + this.rotation.lastT()) +} - var leftIntervals = [] - var rightIntervals = [] - var centerIntervals = [] - for(var i=0; i 1e-6) { + bx /= bl + by /= bl + bz /= bl + bw /= bl + } else { + bx = by = bz = 0.0 + bw = 1.0 } - return result -} -module.exports = invertPermutation -},{}],463:[function(_dereq_,module,exports){ -"use strict" + var rotation = this.computedRotation + var ax = rotation[0] + var ay = rotation[1] + var az = rotation[2] + var aw = rotation[3] -function iota(n) { - var result = new Array(n) - for(var i=0; i - * @license MIT - */ + var cl = len4(cx, cy, cz, cw) + if(cl > 1e-6) { + cx /= cl + cy /= cl + cz /= cl + cw /= cl + } else { + cx = cy = cz = 0.0 + cw = 1.0 + } -// The _isBuffer check is for Safari 5-7 support, because it's missing -// Object.prototype.constructor. Remove this eventually -module.exports = function (obj) { - return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer) + this.rotation.set(t, cx, cy, cz, cw) } -function isBuffer (obj) { - return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj) -} +proto.lookAt = function(t, eye, center, up) { + this.recalcMatrix(t) -// For Node v0.10 support. Remove this eventually. -function isSlowBuffer (obj) { - return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0)) -} + center = center || this.computedCenter + eye = eye || this.computedEye + up = up || this.computedUp -},{}],466:[function(_dereq_,module,exports){ -'use strict'; -module.exports = typeof navigator !== 'undefined' && - (/MSIE/.test(navigator.userAgent) || /Trident\//.test(navigator.appVersion)); + var mat = this.computedMatrix + lookAt(mat, eye, center, up) -},{}],467:[function(_dereq_,module,exports){ -'use strict' - -module.exports = isMobile -module.exports.isMobile = isMobile -module.exports.default = isMobile - -var mobileRE = /(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 - -var tabletRE = /(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 isMobile (opts) { - if (!opts) opts = {} - var ua = opts.ua - if (!ua && typeof navigator !== 'undefined') ua = navigator.userAgent - if (ua && ua.headers && typeof ua.headers['user-agent'] === 'string') { - ua = ua.headers['user-agent'] - } - if (typeof ua !== 'string') return false - - var result = opts.tablet ? tabletRE.test(ua) : mobileRE.test(ua) - - if ( - !result && - opts.tablet && - opts.featureDetect && - navigator && - navigator.maxTouchPoints > 1 && - ua.indexOf('Macintosh') !== -1 && - ua.indexOf('Safari') !== -1 - ) { - result = true - } - - return result -} + var rotation = this.computedRotation + quatFromFrame(rotation, + mat[0], mat[1], mat[2], + mat[4], mat[5], mat[6], + mat[8], mat[9], mat[10]) + normalize4(rotation, rotation) + this.rotation.set(t, rotation[0], rotation[1], rotation[2], rotation[3]) -},{}],468:[function(_dereq_,module,exports){ -'use strict'; -module.exports = function (x) { - var type = typeof x; - return x !== null && (type === 'object' || type === 'function'); -}; + var fl = 0.0 + for(var i=0; i<3; ++i) { + fl += Math.pow(center[i] - eye[i], 2) + } + this.radius.set(t, 0.5 * Math.log(Math.max(fl, 1e-6))) -},{}],469:[function(_dereq_,module,exports){ -'use strict'; -var toString = Object.prototype.toString; + this.center.set(t, center[0], center[1], center[2]) +} -module.exports = function (x) { - var prototype; - return toString.call(x) === '[object Object]' && (prototype = Object.getPrototypeOf(x), prototype === null || prototype === Object.getPrototypeOf({})); -}; +proto.translate = function(t, dx, dy, dz) { + this.center.move(t, + dx||0.0, + dy||0.0, + dz||0.0) +} -},{}],470:[function(_dereq_,module,exports){ -'use strict'; - -/** - * Is this string all whitespace? - * This solution kind of makes my brain hurt, but it's significantly faster - * than !str.trim() or any other solution I could find. - * - * whitespace codes from: http://en.wikipedia.org/wiki/Whitespace_character - * and verified with: - * - * for(var i = 0; i < 65536; i++) { - * var s = String.fromCharCode(i); - * if(+s===0 && !s.trim()) console.log(i, s); - * } - * - * which counts a couple of these as *not* whitespace, but finds nothing else - * that *is* whitespace. Note that charCodeAt stops at 16 bits, but it appears - * that there are no whitespace characters above this, and code points above - * this do not map onto white space characters. - */ - -module.exports = function(str){ - var l = str.length, - a; - for(var i = 0; i < l; i++) { - a = str.charCodeAt(i); - if((a < 9 || a > 13) && (a !== 32) && (a !== 133) && (a !== 160) && - (a !== 5760) && (a !== 6158) && (a < 8192 || a > 8205) && - (a !== 8232) && (a !== 8233) && (a !== 8239) && (a !== 8287) && - (a !== 8288) && (a !== 12288) && (a !== 65279)) { - return false; - } - } - return true; -} +proto.setMatrix = function(t, matrix) { -},{}],471:[function(_dereq_,module,exports){ -'use strict' - -module.exports = function isPath(str) { - if (typeof str !== 'string') return false - - str = str.trim() - - // https://www.w3.org/TR/SVG/paths.html#PathDataBNF - if (/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(str) && /[\dz]$/i.test(str) && str.length > 4) return true - - return false -} + var rotation = this.computedRotation + quatFromFrame(rotation, + matrix[0], matrix[1], matrix[2], + matrix[4], matrix[5], matrix[6], + matrix[8], matrix[9], matrix[10]) + normalize4(rotation, rotation) + this.rotation.set(t, rotation[0], rotation[1], rotation[2], rotation[3]) -},{}],472:[function(_dereq_,module,exports){ -function lerp(v0, v1, t) { - return v0*(1-t)+v1*t + var mat = this.computedMatrix + invert44(mat, matrix) + var w = mat[15] + if(Math.abs(w) > 1e-6) { + var cx = mat[12]/w + var cy = mat[13]/w + var cz = mat[14]/w + + this.recalcMatrix(t) + var r = Math.exp(this.computedRadius[0]) + this.center.set(t, cx-mat[2]*r, cy-mat[6]*r, cz-mat[10]*r) + this.radius.idle(t) + } else { + this.center.idle(t) + this.radius.idle(t) + } } -module.exports = lerp -},{}],473:[function(_dereq_,module,exports){ -/* Mapbox GL JS is licensed under the 3-Clause BSD License. Full text of license: https://github.com/mapbox/mapbox-gl-js/blob/v1.10.1/LICENSE.txt */ -(function (global, factory) { -typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : -typeof define === 'function' && define.amd ? define(factory) : -(global = global || self, global.mapboxgl = factory()); -}(this, (function () { 'use strict'; -/* eslint-disable */ +proto.setDistance = function(t, d) { + if(d > 0) { + this.radius.set(t, Math.log(d)) + } +} -var shared, worker, mapboxgl; -// define gets called three times: one for each chunk. we rely on the order -// they're imported to know which is which -function define(_, chunk) { -if (!shared) { - shared = chunk; -} else if (!worker) { - worker = chunk; -} else { - var workerBundleString = 'var sharedChunk = {}; (' + shared + ')(sharedChunk); (' + worker + ')(sharedChunk);' +proto.setDistanceLimits = function(lo, hi) { + if(lo > 0) { + lo = Math.log(lo) + } else { + lo = -Infinity + } + if(hi > 0) { + hi = Math.log(hi) + } else { + hi = Infinity + } + hi = Math.max(hi, lo) + this.radius.bounds[0][0] = lo + this.radius.bounds[1][0] = hi +} - var sharedChunk = {}; - shared(sharedChunk); - mapboxgl = chunk(sharedChunk); - mapboxgl.workerUrl = window.URL.createObjectURL(new Blob([workerBundleString], { type: 'text/javascript' })); +proto.getDistanceLimits = function(out) { + var bounds = this.radius.bounds + if(out) { + out[0] = Math.exp(bounds[0][0]) + out[1] = Math.exp(bounds[1][0]) + return out + } + return [ Math.exp(bounds[0][0]), Math.exp(bounds[1][0]) ] +} + +proto.toJSON = function() { + this.recalcMatrix(this.lastT()) + return { + 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] + } } + +proto.fromJSON = function(options) { + var t = this.lastT() + var c = options.center + if(c) { + this.center.set(t, c[0], c[1], c[2]) + } + var r = options.rotation + if(r) { + this.rotation.set(t, r[0], r[1], r[2], r[3]) + } + var d = options.distance + if(d && d > 0) { + this.radius.set(t, Math.log(d)) + } + this.setDistanceLimits(options.zoomMin, options.zoomMax) } +function createOrbitController(options) { + options = options || {} + var center = options.center || [0,0,0] + var rotation = options.rotation || [0,0,0,1] + var radius = options.radius || 1.0 -define(["exports"],(function(t){"use strict";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 u(t,e,r){return Math.min(r,Math.max(e,t))}function l(t,e,r){var n=r-e,i=((t-e)%n+n)%n+e;return i===e?r:i}function p(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 y(t){return !!t&&/^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(t)}function d(t,e){t.forEach((function(t){e[t]&&(e[t]=e[t].bind(e));}));}function m(t,e){return -1!==t.indexOf(e,t.length-e.length)}function v(t,e,r){var n={};for(var i in t)n[i]=e.call(r||this,t[i],i,t);return n}function g(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 w(t){b[t]||("undefined"!=typeof console&&console.warn(t),b[t]=!0);}function _(t,e,r){return (r.y-t.y)*(e.x-t.x)>(e.y-t.y)*(r.x-t.x)}function A(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 I=null;function z(t){if(null==I){var e=t.navigator?t.navigator.userAgent:null;I=!!t.safari||!(!e||!(/\b(iPad|iPhone|iPod)\b/.test(e)||e.match("Safari")&&!e.match("Chrome")));}return I}function C(t){try{var e=self[t];return e.setItem("_mapbox_test_",1),e.removeItem("_mapbox_test_"),!0}catch(t){return !1}}var M,E,T,P,B=self.performance&&self.performance.now?self.performance.now.bind(self.performance):Date.now.bind(Date),V=self.requestAnimationFrame||self.mozRequestAnimationFrame||self.webkitRequestAnimationFrame||self.msRequestAnimationFrame,F=self.cancelAnimationFrame||self.mozCancelAnimationFrame||self.webkitCancelAnimationFrame||self.msCancelAnimationFrame,D={now:B,frame:function(t){var e=V(t);return {cancel:function(){return F(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 M||(M=self.document.createElement("a")),M.href=t,M.href},hardwareConcurrency:self.navigator.hardwareConcurrency||4,get devicePixelRatio(){return self.devicePixelRatio},get prefersReducedMotion(){return !!self.matchMedia&&(null==E&&(E=self.matchMedia("(prefers-reduced-motion: reduce)")),E.matches)}},L={API_URL:"https://api.mapbox.com",get EVENTS_URL(){return this.API_URL?0===this.API_URL.indexOf("https://api.mapbox.cn")?"https://events.mapbox.cn/events/v2":0===this.API_URL.indexOf("https://api.mapbox.com")?"https://events.mapbox.com/events/v2":null:null},FEEDBACK_URL:"https://apps.mapbox.com/feedback",REQUIRE_ACCESS_TOKEN:!0,ACCESS_TOKEN:null,MAX_PARALLEL_IMAGE_REQUESTS:16},R={supported:!1,testSupport:function(t){!O&&P&&(U?j(t):T=t);}},O=!1,U=!1;function j(t){var e=t.createTexture();t.bindTexture(t.TEXTURE_2D,e);try{if(t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,P),t.isContextLost())return;R.supported=!0;}catch(t){}t.deleteTexture(e),O=!0;}self.document&&((P=self.document.createElement("img")).onload=function(){T&&j(T),T=null,U=!0;},P.onerror=function(){O=!0,T=null;},P.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA=");var q="01",N=function(t,e){this._transformRequestFn=t,this._customAccessToken=e,this._createSkuToken();};function K(t){return 0===t.indexOf("mapbox:")}N.prototype._createSkuToken=function(){var t=function(){for(var t="",e=0;e<10;e++)t+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[Math.floor(62*Math.random())];return {token:["1",q,t].join(""),tokenExpiresAt:Date.now()+432e5}}();this._skuToken=t.token,this._skuTokenExpiresAt=t.tokenExpiresAt;},N.prototype._isSkuTokenExpired=function(){return Date.now()>this._skuTokenExpiresAt},N.prototype.transformRequest=function(t,e){return this._transformRequestFn&&this._transformRequestFn(t,e)||{url:t}},N.prototype.normalizeStyleURL=function(t,e){if(!K(t))return t;var r=J(t);return r.path="/styles/v1"+r.path,this._makeAPIURL(r,this._customAccessToken||e)},N.prototype.normalizeGlyphsURL=function(t,e){if(!K(t))return t;var r=J(t);return r.path="/fonts/v1"+r.path,this._makeAPIURL(r,this._customAccessToken||e)},N.prototype.normalizeSourceURL=function(t,e){if(!K(t))return t;var r=J(t);return r.path="/v4/"+r.authority+".json",r.params.push("secure"),this._makeAPIURL(r,this._customAccessToken||e)},N.prototype.normalizeSpriteURL=function(t,e,r,n){var i=J(t);return K(t)?(i.path="/styles/v1"+i.path+"/sprite"+e+r,this._makeAPIURL(i,this._customAccessToken||n)):(i.path+=""+e+r,H(i))},N.prototype.normalizeTileURL=function(t,e){if(this._isSkuTokenExpired()&&this._createSkuToken(),t&&!K(t))return t;var r=J(t);r.path=r.path.replace(/(\.(png|jpg)\d*)(?=$)/,(D.devicePixelRatio>=2||512===e?"@2x":"")+(R.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){w("Unable to write to LocalStorage");}},$.prototype.processRequests=function(t){},$.prototype.postEvent=function(t,e,r,n){var i=this;if(L.EVENTS_URL){var a=J(L.EVENTS_URL);a.params.push("access_token="+(n||L.ACCESS_TOKEN||""));var o={event:this.type,created:new Date(t).toISOString(),sdkIdentifier:"mapbox-gl-js",sdkVersion:"1.10.1",skuId:q,userId:this.anonId},s=e?p(o,e):o,u={url:H(a),headers:{"Content-Type":"text/plain"},body:JSON.stringify([s])};this.pendingRequest=xt(u,(function(t){i.pendingRequest=null,r(t),i.saveEventData(),i.processRequests(n);}));}},$.prototype.queueRequest=function(t,e){this.queue.push(t),this.processRequests(e);};var W,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,(L.EVENTS_URL&&n||L.ACCESS_TOKEN&&Array.isArray(t)&&t.some((function(t){return K(t)||Z(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(),y(this.anonId)||(this.anonId=f()),this.postEvent(i,{skuToken:this.skuToken},(function(t){t||n&&(e.success[n]=!0);}),t));}},e}($),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){L.EVENTS_URL&&L.ACCESS_TOKEN&&Array.isArray(t)&&t.some((function(t){return K(t)||Z(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=Y(L.ACCESS_TOKEN),n=r?r.u:L.ACCESS_TOKEN,i=n!==this.eventData.tokenU;y(this.anonId)||(this.anonId=f(),i=!0);var a=this.queue.shift();if(this.eventData.lastSuccess){var o=new Date(this.eventData.lastSuccess),s=new Date(a),u=(a-this.eventData.lastSuccess)/864e5;i=i||u>=1||u<-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}($)),rt=et.postTurnstileEvent.bind(et),nt=new tt,it=nt.postMapLoadEvent.bind(nt),at=500,ot=50;function st(){self.caches&&!W&&(W=self.caches.open("mapbox-tiles"));}function ut(t){var e=t.indexOf("?");return e<0?t:t.slice(0,e)}var lt,pt=1/0;function ct(){return null==lt&&(lt=self.OffscreenCanvas&&new self.OffscreenCanvas(1,1).getContext("2d")&&"function"==typeof self.createImageBitmap),lt}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 ft=function(t){function e(e,r,n){401===r&&Z(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),yt=S()?function(){return self.worker&&self.worker.referrer}:function(){return ("blob:"===self.location.protocol?self.parent:self).location.href};var dt,mt,vt=function(t,e){if(!(/^file:/.test(r=t.url)||/^file:/.test(yt())&&!/^\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:yt(),signal:n.signal}),a=!1,o=!1,s=(r=i.url).indexOf("sku=")>0&&Z(r);"json"===t.type&&i.headers.set("Accept","application/json");var u=function(r,n,a){if(!o){if(r&&"SecurityError"!==r.message&&w(r),n&&a)return l(n);var u=Date.now();self.fetch(i).then((function(r){if(r.ok){var n=s?r.clone():null;return l(r,n,u)}return e(new ft(r.statusText,r.status,t.url))})).catch((function(t){20!==t.code&&e(new Error(t.message));}));}},l=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(),W){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=k(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===Q)try{new Response(new ReadableStream),Q=!0;}catch(t){Q=!1;}Q?e(t.body):t.blob().then(e);}(e,(function(e){var r=new self.Response(e,n);st(),W&&W.then((function(e){return e.put(ut(t.url),r)})).catch((function(t){return w(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(),!W)return e(null);var r=ut(t.url);W.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=k(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,u):u(null,null),{cancel:function(){o=!0,a||n.abort();}}}(t,e);if(S()&&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 ft(r.statusText,r.status,t.url));},r.send(t.body),{cancel:function(){return r.abort()}}}(t,e)},gt=function(t,e){return vt(p(t,{type:"arrayBuffer"}),e)},xt=function(t,e){return vt(p(t,{method:"POST"}),e)};dt=[],mt=0;var bt=function(t,e){if(R.supported&&(t.headers||(t.headers={}),t.headers.accept="image/webp,*/*"),mt>=L.MAX_PARALLEL_IMAGE_REQUESTS){var r={requestParameters:t,callback:e,cancelled:!1,cancel:function(){this.cancelled=!0;}};return dt.push(r),r}mt++;var n=!1,i=function(){if(!n)for(n=!0,mt--;dt.length&&mt0||this._oneTimeListeners&&this._oneTimeListeners[t]&&this._oneTimeListeners[t].length>0||this._eventedParent&&this._eventedParent.listens(t)},kt.prototype.setEventedParent=function(t,e){return this._eventedParent=t,this._eventedParentData=e,this};var It={$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"}}},zt=function(t,e,r,n){this.message=(t?t+": ":"")+r,n&&(this.identifier=n),null!=e&&e.__line__&&(this.line=e.__line__);};function Ct(t){var e=t.value;return e?[new zt(t.key,e,"constants have been deprecated as of v8")]:[]}function Mt(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=[Vt,Ft,Dt,Lt,Rt,qt,Ot,Kt(Ut),Nt];function Xt(t,e){if("error"===e.kind)return null;if("array"===t.kind){if("array"===e.kind&&(0===e.N&&"value"===e.itemType.kind||!Xt(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 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 u=s.indexOf("("),l=s.indexOf(")");if(-1!==u&&l+1===s.length){var p=s.substr(0,u),c=s.substr(u+1,l-(u+1)).split(","),h=1;switch(p){case"rgba":if(4!==c.length)return null;h=a(c.pop());case"rgb":return 3!==c.length?null:[i(c[0]),i(c[1]),i(c[2]),h];case"hsla":if(4!==c.length)return null;h=a(c.pop());case"hsl":if(3!==c.length)return null;var f=(parseFloat(c[0])%360+360)%360/360,y=a(c[1]),d=a(c[2]),m=d<=.5?d*(y+1):d+y-d*y,v=2*d-m;return [n(255*o(v,m,f+1/3)),n(255*o(v,m,f)),n(255*o(v,m,f-1/3)),h];default:return null}}return null};}catch(t){}})).parseCSSColor,$t=function(t,e,r,n){void 0===n&&(n=1),this.r=t,this.g=e,this.b=r,this.a=n;};$t.parse=function(t){if(t){if(t instanceof $t)return t;if("string"==typeof t){var e=Yt(t);if(e)return new $t(e[0]/255*e[3],e[1]/255*e[3],e[2]/255*e[3],e[3])}}},$t.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+")"},$t.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]},$t.black=new $t(0,0,0,1),$t.white=new $t(1,1,1,1),$t.transparent=new $t(0,0,0,0),$t.red=new $t(1,0,0,1);var Wt=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"});};Wt.prototype.compare=function(t,e){return this.collator.compare(t,e)},Wt.prototype.resolvedLocale=function(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale};var Qt=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 Qt(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 $t)return !0;if(t instanceof Wt)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 ue)||"object"===s)return e.error('The item type argument of "array" must be one of string, number, boolean',1);a=ue[s],n++;}else a=Ut;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=Kt(a,o);}else r=ue[i];for(var u=[];n1)&&e.push(n);}}return e.concat(this.args.map((function(t){return t.serialize()})))};var pe=function(t){this.type=qt,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,Ft)))return null;var u=null;if(o["text-font"]&&!(u=e.parse(o["text-font"],1,Kt(Dt))))return null;var l=null;if(o["text-color"]&&!(l=e.parse(o["text-color"],1,Rt)))return null;var p=n[n.length-1];p.scale=s,p.font=u,p.textColor=l;}else {var c=e.parse(t[a],1,Ut);if(!c)return null;var h=c.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:c,scale:null,font:null,textColor:null});}}return new pe(n)},pe.prototype.evaluate=function(t){return new te(this.sections.map((function(e){var r=e.content.evaluate(t);return ie(r)===Nt?new Qt("",r,null,null,null):new Qt(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)})))},pe.prototype.eachChild=function(t){for(var e=0,r=this.sections;e-1),r},ce.prototype.eachChild=function(t){t(this.input);},ce.prototype.outputDefined=function(){return !1},ce.prototype.serialize=function(){return ["image",this.input.serialize()]};var he={"to-boolean":Lt,"to-color":Rt,"to-number":Ft,"to-string":Dt},fe=function(t,e){this.type=t,this.args=e;};fe.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 $t(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,u=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 we(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 _e(t,e){for(var r,n,i,a,o,s,u,l=!1,p=0,c=e.length;p0&&s<0||o<0&&s>0}function ke(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;}ge(e,t);}function Te(t,e,r,n){for(var i=8192*Math.pow(2,n.z),a=[8192*n.x,8192*n.y],o=[],s=0,u=t;s=0)return !1;var r=!0;return t.eachChild((function(t){r&&!De(t,e)&&(r=!1);})),r}Be.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}Re.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)},Re.prototype._parse=function(t,e){function r(t,e,r){return "assert"===r?new le(e,[t]):"coerce"===r?new fe(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 Le)return t(e.boundExpression);if(e instanceof me&&"error"===e.name)return !1;if(e instanceof ve)return !1;if(e instanceof Be)return !1;var r=e instanceof fe||e instanceof le,n=!0;return e.eachChild((function(e){n=r?n&&t(e):n&&e instanceof oe;})),!!n&&Ve(e)&&De(e,["zoom","heatmap-density","line-progress","accumulated","is-supported-script"])}(a)){var u=new de;try{a=new oe(a.type,a.evaluate(u));}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.")},Re.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 Re(this.registry,n,e||null,i,this.errors)},Re.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));},Re.prototype.checkSubtype=function(t,e){var r=Xt(t,e);return r&&this.error(r),r};var Ue=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.',u);var p=e.parse(s,l,i);if(!p)return null;i=i||p.type,n.push([o,p]);}return new Ue(i,r,n)},Ue.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[Oe(e,n)].evaluate(t)},Ue.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 qe=Object.freeze({__proto__:null,number:je,color:function(t,e,r){return new $t(je(t.r,e.r,r),je(t.g,e.g,r),je(t.b,e.b,r),je(t.a,e.a,r))},array:function(t,e,r){return t.map((function(t,n){return je(t,e[n],r)}))}}),Ne=6/29*3*(6/29),Ke=Math.PI/180,Ge=180/Math.PI;function Ze(t){return t>.008856451679035631?Math.pow(t,1/3):t/Ne+4/29}function Xe(t){return t>6/29?t*t*t:Ne*(t-4/29)}function Je(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function He(t){return (t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Ye(t){var e=He(t.r),r=He(t.g),n=He(t.b),i=Ze((.4124564*e+.3575761*r+.1804375*n)/.95047),a=Ze((.2126729*e+.7151522*r+.072175*n)/1);return {l:116*a-16,a:500*(i-a),b:200*(a-Ze((.0193339*e+.119192*r+.9503041*n)/1.08883)),alpha:t.a}}function $e(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*Xe(e),r=.95047*Xe(r),n=1.08883*Xe(n),new $t(Je(3.2404542*r-1.5371385*e-.4985314*n),Je(-.969266*r+1.8760108*e+.041556*n),Je(.0556434*r-.2040259*e+1.0572252*n),t.alpha)}function We(t,e,r){var n=e-t;return t+r*(n>180||n<-180?n-360*Math.round(n/360):n)}var Qe={forward:Ye,reverse:$e,interpolate:function(t,e,r){return {l:je(t.l,e.l,r),a:je(t.a,e.a,r),b:je(t.b,e.b,r),alpha:je(t.alpha,e.alpha,r)}}},tr={forward:function(t){var e=Ye(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*Ke,r=t.c;return $e({l:t.l,a:Math.cos(e)*r,b:Math.sin(e)*r,alpha:t.alpha})},interpolate:function(t,e,r){return {h:We(t.h,e.h,r),c:je(t.c,e.c,r),l:je(t.l,e.l,r),alpha:je(t.alpha,e.alpha,r)}}},er=Object.freeze({__proto__:null,lab:Qe,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,Ft)))return null;var u=[],l=null;"interpolate-hcl"===r||"interpolate-lab"===r?l=Rt:e.expectedType&&"value"!==e.expectedType.kind&&(l=e.expectedType);for(var p=0;p=c)return e.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',f);var d=e.parse(h,y,l);if(!d)return null;l=l||d.type,u.push([c,d]);}return "number"===l.kind||"color"===l.kind||"array"===l.kind&&"number"===l.itemType.kind&&"number"==typeof l.N?new rr(l,r,n,i,u):e.error("Type "+Gt(l)+" 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=Oe(e,n),o=rr.interpolationFactor(this.interpolation,n,e[a],e[a+1]),s=r[a].evaluate(t),u=r[a+1].evaluate(t);return "interpolate"===this.operator?qe[this.type.kind.toLowerCase()](s,u,o):"interpolate-hcl"===this.operator?tr.reverse(tr.interpolate(tr.forward(s),tr.forward(u),o)):Qe.reverse(Qe.interpolate(Qe.forward(s),Qe.forward(u),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=Lt,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,Ut),n=e.parse(t[2],2,Ut);return r&&n?Jt(r.type,[Lt,Dt,Ft,Vt,Ut])?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(!Ht(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(!Ht(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 ur=function(t,e,r){this.type=Ft,this.needle=t,this.haystack=e,this.fromIndex=r;};ur.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,Ut),n=e.parse(t[2],2,Ut);if(!r||!n)return null;if(!Jt(r.type,[Lt,Dt,Ft,Vt,Ut]))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,Ft);return i?new ur(r,n,i):null}return new ur(r,n)},ur.prototype.evaluate=function(t){var e=this.needle.evaluate(t),r=this.haystack.evaluate(t);if(!Ht(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(!Ht(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)},ur.prototype.eachChild=function(t){t(this.needle),t(this.haystack),this.fromIndex&&t(this.fromIndex);},ur.prototype.outputDefined=function(){return !1},ur.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 lr=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;};lr.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 l.error("Branch labels must be integers no larger than "+Number.MAX_SAFE_INTEGER+".");if("number"==typeof h&&Math.floor(h)!==h)return l.error("Numeric branch labels must be integer values.");if(r){if(l.checkSubtype(r,ie(h)))return null}else r=ie(h);if(void 0!==i[String(h)])return l.error("Branch labels must be unique.");i[String(h)]=a.length;}var f=e.parse(u,o,n);if(!f)return null;n=n||f.type,a.push(f);}var y=e.parse(t[1],1,Ut);if(!y)return null;var d=e.parse(t[t.length-1],t.length-1,n);return d?"value"!==y.type.kind&&e.concat(1).checkSubtype(r,y.type)?null:new lr(r,n,y,i,a,d):null},lr.prototype.evaluate=function(t){var e=this.input.evaluate(t);return (ie(e)===this.inputType&&this.outputs[this.cases[e]]||this.otherwise).evaluate(t)},lr.prototype.eachChild=function(t){t(this.input),this.outputs.forEach(t),t(this.otherwise);},lr.prototype.outputDefined=function(){return this.outputs.every((function(t){return t.outputDefined()}))&&this.otherwise.outputDefined()},lr.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,Ut),n=e.parse(t[2],2,Ft);if(!r||!n)return null;if(!Jt(r.type,[Kt(Ut),Dt,Ut]))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,Ft);return i?new cr(r.type,r,n,i):null}return new cr(r.type,r,n)},cr.prototype.evaluate=function(t){var e=this.input.evaluate(t),r=this.beginIndex.evaluate(t);if(!Ht(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)},cr.prototype.eachChild=function(t){t(this.input),t(this.beginIndex),this.endIndex&&t(this.endIndex);},cr.prototype.outputDefined=function(){return !1},cr.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 dr=yr("==",(function(t,e,r){return e===r}),fr),mr=yr("!=",(function(t,e,r){return e!==r}),(function(t,e,r,n){return !fr(0,e,r,n)})),vr=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})),xr=yr("<=",(function(t,e,r){return e<=r}),(function(t,e,r,n){return n.compare(e,r)<=0})),br=yr(">=",(function(t,e,r){return e>=r}),(function(t,e,r,n){return n.compare(e,r)>=0})),wr=function(t,e,r,n,i){this.type=Dt,this.number=t,this.locale=e,this.currency=r,this.minFractionDigits=n,this.maxFractionDigits=i;};wr.parse=function(t,e){if(3!==t.length)return e.error("Expected two arguments.");var r=e.parse(t[1],1,Ft);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,Dt)))return null;var a=null;if(n.currency&&!(a=e.parse(n.currency,1,Dt)))return null;var o=null;if(n["min-fraction-digits"]&&!(o=e.parse(n["min-fraction-digits"],1,Ft)))return null;var s=null;return n["max-fraction-digits"]&&!(s=e.parse(n["max-fraction-digits"],1,Ft))?null:new wr(r,i,a,o,s)},wr.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))},wr.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);},wr.prototype.outputDefined=function(){return !1},wr.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 _r=function(t){this.type=Ft,this.input=t;};_r.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 _r(r):null},_r.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.")},_r.prototype.eachChild=function(t){t(this.input);},_r.prototype.outputDefined=function(){return !1},_r.prototype.serialize=function(){var t=["length"];return this.eachChild((function(e){t.push(e.serialize());})),t};var Ar={"==":dr,"!=":mr,">":gr,"<":vr,">=":br,"<=":xr,array:le,at:or,boolean:le,case:pr,coalesce:ir,collator:ve,format:pe,image:ce,in:sr,"index-of":ur,interpolate:rr,"interpolate-hcl":rr,"interpolate-lab":rr,length:_r,let:ar,literal:oe,match:lr,number:le,"number-format":wr,object:le,slice:cr,step:Ue,string:le,"to-boolean":fe,"to-color":fe,"to-number":fe,"to-string":fe,var:Le,within:Be};function Sr(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 $t(r/255*o,n/255*o,i/255*o,o)}function kr(t,e){return t in e}function Ir(t,e){var r=e[t];return void 0===r?null:r}function zr(t){return {type:t}}function Cr(t){return {result:"success",value:t}}function Mr(t){return {result:"error",value:t}}function Er(t){return "data-driven"===t["property-type"]||"cross-faded-data-driven"===t["property-type"]}function Tr(t){return !!t.expression&&t.expression.parameters.indexOf("zoom")>-1}function Pr(t){return !!t.expression&&t.expression.interpolated}function Br(t){return t instanceof Number?"number":t instanceof String?"string":t instanceof Boolean?"boolean":Array.isArray(t)?"array":null===t?"null":typeof t}function Vr(t){return "object"==typeof t&&null!==t&&!Array.isArray(t)}function Fr(t){return t}function Dr(t,e,r){return void 0!==t?t:void 0!==e?e:void 0!==r?r:void 0}function Lr(t,e,r,n,i){return Dr(typeof r===i?n[r]:void 0,t.default,e.default)}function Rr(t,e,r){if("number"!==Br(r))return Dr(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=Oe(t.stops.map((function(t){return t[0]})),r);return t.stops[i][1]}function Or(t,e,r){var n=void 0!==t.base?t.base:1;if("number"!==Br(r))return Dr(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=Oe(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],u=t.stops[a+1][1],l=qe[e.type]||Fr;if(t.colorSpace&&"rgb"!==t.colorSpace){var p=er[t.colorSpace];l=function(t,e){return p.reverse(p.interpolate(p.forward(t),p.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=u.evaluate.apply(void 0,t);if(void 0!==r&&void 0!==n)return l(r,n,o)}}:l(s,u,o)}function Ur(t,e,r){return "color"===e.type?r=$t.parse(r):"formatted"===e.type?r=te.fromString(r.toString()):"resolvedImage"===e.type?r=ee.fromString(r.toString()):Br(r)===e.type||"enum"===e.type&&e.values[r]||(r=void 0),Dr(r,t.default,e.default)}me.register(Ar,{error:[{kind:"error"},[Dt],function(t,e){throw new se(e[0].evaluate(t))}],typeof:[Dt,[Ut],function(t,e){return Gt(ie(e[0].evaluate(t)))}],"to-rgba":[Kt(Ft,4),[Rt],function(t,e){return e[0].evaluate(t).toArray()}],rgb:[Rt,[Ft,Ft,Ft],Sr],rgba:[Rt,[Ft,Ft,Ft,Ft],Sr],has:{type:Lt,overloads:[[[Dt],function(t,e){return kr(e[0].evaluate(t),t.properties())}],[[Dt,Ot],function(t,e){var r=e[1];return kr(e[0].evaluate(t),r.evaluate(t))}]]},get:{type:Ut,overloads:[[[Dt],function(t,e){return Ir(e[0].evaluate(t),t.properties())}],[[Dt,Ot],function(t,e){var r=e[1];return Ir(e[0].evaluate(t),r.evaluate(t))}]]},"feature-state":[Ut,[Dt],function(t,e){return Ir(e[0].evaluate(t),t.featureState||{})}],properties:[Ot,[],function(t){return t.properties()}],"geometry-type":[Dt,[],function(t){return t.geometryType()}],id:[Ut,[],function(t){return t.id()}],zoom:[Ft,[],function(t){return t.globals.zoom}],"heatmap-density":[Ft,[],function(t){return t.globals.heatmapDensity||0}],"line-progress":[Ft,[],function(t){return t.globals.lineProgress||0}],accumulated:[Ut,[],function(t){return void 0===t.globals.accumulated?null:t.globals.accumulated}],"+":[Ft,zr(Ft),function(t,e){for(var r=0,n=0,i=e;n":[Lt,[Dt,Ut],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->":[Lt,[Ut],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n>i}],"filter-<=":[Lt,[Dt,Ut],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-<=":[Lt,[Ut],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n<=i}],"filter->=":[Lt,[Dt,Ut],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->=":[Lt,[Ut],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n>=i}],"filter-has":[Lt,[Ut],function(t,e){return e[0].value in t.properties()}],"filter-has-id":[Lt,[],function(t){return null!==t.id()&&void 0!==t.id()}],"filter-type-in":[Lt,[Kt(Dt)],function(t,e){return e[0].value.indexOf(t.geometryType())>=0}],"filter-id-in":[Lt,[Kt(Ut)],function(t,e){return e[0].value.indexOf(t.id())>=0}],"filter-in-small":[Lt,[Dt,Kt(Ut)],function(t,e){var r=e[0];return e[1].value.indexOf(t.properties()[r.value])>=0}],"filter-in-large":[Lt,[Dt,Kt(Ut)],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:Lt,overloads:[[[Lt,Lt],function(t,e){var r=e[1];return e[0].evaluate(t)&&r.evaluate(t)}],[zr(Lt),function(t,e){for(var r=0,n=e;r0&&"string"==typeof t[0]&&t[0]in Ar}function Nr(t,e){var r=new Re(Ar,[],e?function(t){var e={color:Rt,string:Dt,number:Ft,enum:Dt,boolean:Lt,formatted:qt,resolvedImage:Nt};return "array"===t.type?Kt(e[t.value]||Ut,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?Cr(new jr(n,e)):Mr(r.errors)}jr.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)},jr.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 Kr=function(t,e){this.kind=t,this._styleExpression=e,this.isStateDependent="constant"!==t&&!Fe(e.expression);};Kr.prototype.evaluateWithoutErrorHandling=function(t,e,r,n,i,a){return this._styleExpression.evaluateWithoutErrorHandling(t,e,r,n,i,a)},Kr.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&&!Fe(e.expression),this.interpolationType=n;};function Zr(t,e){if("error"===(t=Nr(t,e)).result)return t;var r=t.value.expression,n=Ve(r);if(!n&&!Er(e))return Mr([new Pt("","data expressions not supported")]);var i=De(r,["zoom"]);if(!i&&!Tr(e))return Mr([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 zt(e,r,r+" is greater than the maximum value "+n.maximum)]:[]}function $r(t){var e,r,n,i=t.valueSpec,a=Et(t.value.type),o={},s="categorical"!==a&&void 0===t.value.property,u=!s,l="array"===Br(t.value.stops)&&"array"===Br(t.value.stops[0])&&"object"===Br(t.value.stops[0][0]),p=Jr({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 zt(t.key,t.value,'identity function may not have a "stops" property')];var e=[],r=t.value;return e=e.concat(Hr({key:t.key,value:r,valueSpec:t.valueSpec,style:t.style,styleSpec:t.styleSpec,arrayElementValidator:c})),"array"===Br(r)&&0===r.length&&e.push(new zt(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&&p.push(new zt(t.key,t.value,'missing required property "property"')),"identity"===a||t.value.stops||p.push(new zt(t.key,t.value,'missing required property "stops"')),"exponential"===a&&t.valueSpec.expression&&!Pr(t.valueSpec)&&p.push(new zt(t.key,t.value,"exponential functions not supported")),t.styleSpec.$version>=8&&(u&&!Er(t.valueSpec)?p.push(new zt(t.key,t.value,"property functions not supported")):s&&!Tr(t.valueSpec)&&p.push(new zt(t.key,t.value,"zoom functions not supported"))),"categorical"!==a&&!l||void 0!==t.value.property||p.push(new zt(t.key,t.value,'"property" property is required')),p;function c(t){var e=[],a=t.value,s=t.key;if("array"!==Br(a))return [new zt(s,a,"array expected, "+Br(a)+" found")];if(2!==a.length)return [new zt(s,a,"array length 2 expected, length "+a.length+" found")];if(l){if("object"!==Br(a[0]))return [new zt(s,a,"object expected, "+Br(a[0])+" found")];if(void 0===a[0].zoom)return [new zt(s,a,"object stop key must have zoom")];if(void 0===a[0].value)return [new zt(s,a,"object stop key must have value")];if(n&&n>Et(a[0].zoom))return [new zt(s,a[0].zoom,"stop zoom values must appear in ascending order")];Et(a[0].zoom)!==n&&(n=Et(a[0].zoom),r=void 0,o={}),e=e.concat(Jr({key:s+"[0]",value:a[0],valueSpec:{zoom:{}},style:t.style,styleSpec:t.styleSpec,objectElementValidators:{zoom:Yr,value:h}}));}else e=e.concat(h({key:s+"[0]",value:a[0],valueSpec:{},style:t.style,styleSpec:t.styleSpec},a));return qr(Tt(a[1]))?e.concat([new zt(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=Br(t.value),u=Et(t.value),l=null!==t.value?t.value:n;if(e){if(s!==e)return [new zt(t.key,l,s+" stop domain type must match previous stop domain type "+e)]}else e=s;if("number"!==s&&"string"!==s&&"boolean"!==s)return [new zt(t.key,l,"stop domain value must be a number, string, or boolean")];if("number"!==s&&"categorical"!==a){var p="number expected, "+s+" found";return Er(i)&&void 0===a&&(p+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new zt(t.key,l,p)]}return "categorical"!==a||"number"!==s||isFinite(u)&&Math.floor(u)===u?"categorical"!==a&&"number"===s&&void 0!==r&&u=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?ln(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(ln)):"in"===r?sn(t[1],t.slice(2)):"!in"===r?ln(sn(t[1],t.slice(2))):"has"===r?un(t[1]):"!has"===r?ln(un(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 un(t){switch(t){case"$type":return !0;case"$id":return ["filter-has-id"];default:return ["filter-has",t]}}function ln(t){return ["!",t]}function pn(t){return tn(Tt(t.value))?Wr(Mt({},t,{expressionContext:"filter",valueSpec:{value:"boolean"}})):function t(e){var r=e.value,n=e.key;if("array"!==Br(r))return [new zt(n,r,"array expected, "+Br(r)+" found")];var i,a=e.styleSpec,o=[];if(r.length<1)return [new zt(n,r,"filter array must have at least 1 element")];switch(o=o.concat(Qr({key:n+"[0]",value:r[0],valueSpec:a.filter_operator,style:e.style,styleSpec:e.styleSpec})),Et(r[0])){case"<":case"<=":case">":case">=":r.length>=2&&"$type"===Et(r[1])&&o.push(new zt(n,r,'"$type" cannot be use with operator "'+r[0]+'"'));case"==":case"!=":3!==r.length&&o.push(new zt(n,r,'filter array for operator "'+r[0]+'" must have 3 elements'));case"in":case"!in":r.length>=2&&"string"!==(i=Br(r[1]))&&o.push(new zt(n+"[1]",r[1],"string expected, "+i+" found"));for(var s=2;s=p[f+0]&&n>=p[f+1])?(o[h]=!0,a.push(l[h])):o[h]=!1;}}},Tn.prototype._forEachCell=function(t,e,r,n,i,a,o,s){for(var u=this._convertToCellCoord(t),l=this._convertToCellCoord(e),p=this._convertToCellCoord(r),c=this._convertToCellCoord(n),h=u;h<=p;h++)for(var f=l;f<=c;f++){var y=this.d*f+h;if((!s||s(this._convertFromCellCoord(h),this._convertFromCellCoord(f),this._convertFromCellCoord(h+1),this._convertFromCellCoord(f+1)))&&i.call(this,t,e,r,n,y,a,o,s))return}},Tn.prototype._convertFromCellCoord=function(t){return (t-this.padding)/this.scale},Tn.prototype._convertToCellCoord=function(t){return Math.max(0,Math.min(this.d-1,Math.floor(t*this.scale)+this.padding))},Tn.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 p=t[l];u[l]=Vn[s].shallow.indexOf(l)>=0?p:On(p,e);}t instanceof Error&&(u.message=t.message);}if(u.$name)throw new Error("$name property is reserved for worker serialization logic.");return "Object"!==s&&(u.$name=s),u}throw new Error("can't serialize object of type "+typeof t)}function Un(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||Ln(t)||Rn(t)||ArrayBuffer.isView(t)||t instanceof Pn)return t;if(Array.isArray(t))return t.map(Un);if("object"==typeof t){var e=t.$name||"Object",r=Vn[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:Un(s);}}return n}throw new Error("can't deserialize object of type "+typeof t)}var jn=function(){this.first=!0;};jn.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 Nn(t){for(var e=0,r=t;e=65097&&t<=65103)||qn["CJK Compatibility Ideographs"](t)||qn["CJK Compatibility"](t)||qn["CJK Radicals Supplement"](t)||qn["CJK Strokes"](t)||!(!qn["CJK Symbols and Punctuation"](t)||t>=12296&&t<=12305||t>=12308&&t<=12319||12336===t)||qn["CJK Unified Ideographs Extension A"](t)||qn["CJK Unified Ideographs"](t)||qn["Enclosed CJK Letters and Months"](t)||qn["Hangul Compatibility Jamo"](t)||qn["Hangul Jamo Extended-A"](t)||qn["Hangul Jamo Extended-B"](t)||qn["Hangul Jamo"](t)||qn["Hangul Syllables"](t)||qn.Hiragana(t)||qn["Ideographic Description Characters"](t)||qn.Kanbun(t)||qn["Kangxi Radicals"](t)||qn["Katakana Phonetic Extensions"](t)||qn.Katakana(t)&&12540!==t||!(!qn["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)||!(!qn["Small Form Variants"](t)||t>=65112&&t<=65118||t>=65123&&t<=65126)||qn["Unified Canadian Aboriginal Syllabics"](t)||qn["Unified Canadian Aboriginal Syllabics Extended"](t)||qn["Vertical Forms"](t)||qn["Yijing Hexagram Symbols"](t)||qn["Yi Syllables"](t)||qn["Yi Radicals"](t))))}function Gn(t){return !(Kn(t)||function(t){return !!(qn["Latin-1 Supplement"](t)&&(167===t||169===t||174===t||177===t||188===t||189===t||190===t||215===t||247===t)||qn["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)||qn["Letterlike Symbols"](t)||qn["Number Forms"](t)||qn["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)||qn["Control Pictures"](t)&&9251!==t||qn["Optical Character Recognition"](t)||qn["Enclosed Alphanumerics"](t)||qn["Geometric Shapes"](t)||qn["Miscellaneous Symbols"](t)&&!(t>=9754&&t<=9759)||qn["Miscellaneous Symbols and Arrows"](t)&&(t>=11026&&t<=11055||t>=11088&&t<=11097||t>=11192&&t<=11243)||qn["CJK Symbols and Punctuation"](t)||qn.Katakana(t)||qn["Private Use Area"](t)||qn["CJK Compatibility Forms"](t)||qn["Small Form Variants"](t)||qn["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 Zn(t){return t>=1424&&t<=2303||qn["Arabic Presentation Forms-A"](t)||qn["Arabic Presentation Forms-B"](t)}function Xn(t,e){return !(!e&&Zn(t)||t>=2304&&t<=3583||t>=3840&&t<=4255||qn.Khmer(t))}function Jn(t){for(var e=0,r=t;e-1&&(Yn="error"),Hn&&Hn(t);};function Qn(){ti.fire(new At("pluginStateChange",{pluginStatus:Yn,pluginURL:$n}));}var ti=new kt,ei=function(){return Yn},ri=function(){if("deferred"!==Yn||!$n)throw new Error("rtl-text-plugin cannot be downloaded unless a pluginURL is specified");Yn="loading",Qn(),$n&>({url:$n},(function(t){t?Wn(t):(Yn="loaded",Qn());}));},ni={applyArabicShaping:null,processBidirectionalText:null,processStyledBidirectionalText:null,isLoaded:function(){return "loaded"===Yn||null!=ni.applyArabicShaping},isLoading:function(){return "loading"===Yn},setState:function(t){Yn=t.pluginStatus,$n=t.pluginURL;},isParsed:function(){return null!=ni.applyArabicShaping&&null!=ni.processBidirectionalText&&null!=ni.processStyledBidirectionalText},getPluginURL:function(){return $n}},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 jn,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(Vr(t))return new Xr(t,e);if(qr(t)){var r=Zr(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=$t.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 ui(this.property,this.value,e,p({},t.transition,this.transition),t.now)},oi.prototype.untransitioned=function(){return new ui(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 li=function(t){this._properties=t,this._values=Object.create(t.defaultTransitioningPropertyValues);};li.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}(yi),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 gi=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({});}};Fn("DataDrivenProperty",yi),Fn("DataConstantProperty",fi),Fn("CrossFadedDataDrivenProperty",di),Fn("CrossFadedProperty",mi),Fn("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 pi(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(Cn,"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(zn,"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),g(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)&&Mn(this,t.call(kn,{key:e,layerType:this.type,objectKey:r,value:n,styleSpec:It,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 ci&&Er(e.property.specification)&&("source"===e.value.kind||"composite"===e.value.kind)&&e.value.isStateDependent)return !0}return !1},e}(kt),bi={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array},wi=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;},_i=function(){this.isTransferred=!1,this.capacity=-1,this.resize(0);};function Ai(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=Si(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:Si(r,Math.max(n,e)),alignment:e}}function Si(t,e){return Math.ceil(t/e)*e}_i.serialize=function(t,e){return t._trim(),e&&(t.isTransferred=!0,e.push(t.arrayBuffer)),{length:t.length,arrayBuffer:t.arrayBuffer}},_i.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},_i.prototype._trim=function(){this.length!==this.capacity&&(this.capacity=this.length,this.arrayBuffer=this.arrayBuffer.slice(0,this.length*this.bytesPerElement),this._refreshViews());},_i.prototype.clear=function(){this.length=0;},_i.prototype.resize=function(t){this.reserve(t),this.length=t;},_i.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);}},_i.prototype._refreshViews=function(){throw new Error("_refreshViews() must be implemented by each concrete StructArray layout")};var ki=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}(_i);ki.prototype.bytesPerElement=4,Fn("StructArrayLayout2i4",ki);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.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}(_i);Ii.prototype.bytesPerElement=8,Fn("StructArrayLayout4i8",Ii);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);},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}(_i);zi.prototype.bytesPerElement=12,Fn("StructArrayLayout2i4i12",zi);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.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,u=8*t;return this.int16[s+0]=e,this.int16[s+1]=r,this.uint8[u+4]=n,this.uint8[u+5]=i,this.uint8[u+6]=a,this.uint8[u+7]=o,t},e}(_i);Ci.prototype.bytesPerElement=8,Fn("StructArrayLayout2i4ub8",Ci);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.uint16=new Uint16Array(this.arrayBuffer);},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,u,l){var p=this.length;return this.resize(p+1),this.emplace(p,t,e,r,n,i,a,o,s,u,l)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,u,l,p){var c=9*t,h=18*t;return this.uint16[c+0]=e,this.uint16[c+1]=r,this.uint16[c+2]=n,this.uint16[c+3]=i,this.uint16[c+4]=a,this.uint16[c+5]=o,this.uint16[c+6]=s,this.uint16[c+7]=u,this.uint8[h+16]=l,this.uint8[h+17]=p,t},e}(_i);Mi.prototype.bytesPerElement=18,Fn("StructArrayLayout8ui2ub18",Mi);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),this.uint16=new Uint16Array(this.arrayBuffer);},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,u,l,p,c){var h=this.length;return this.resize(h+1),this.emplace(h,t,e,r,n,i,a,o,s,u,l,p,c)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,u,l,p,c,h){var f=12*t;return this.int16[f+0]=e,this.int16[f+1]=r,this.int16[f+2]=n,this.int16[f+3]=i,this.uint16[f+4]=a,this.uint16[f+5]=o,this.uint16[f+6]=s,this.uint16[f+7]=u,this.int16[f+8]=l,this.int16[f+9]=p,this.int16[f+10]=c,this.int16[f+11]=h,t},e}(_i);Ei.prototype.bytesPerElement=24,Fn("StructArrayLayout4i4ui4i24",Ei);var Ti=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}(_i);Ti.prototype.bytesPerElement=12,Fn("StructArrayLayout3f12",Ti);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}(_i);Pi.prototype.bytesPerElement=4,Fn("StructArrayLayout1ul4",Pi);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.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,u){var l=this.length;return this.resize(l+1),this.emplace(l,t,e,r,n,i,a,o,s,u)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,u,l){var p=10*t,c=5*t;return this.int16[p+0]=e,this.int16[p+1]=r,this.int16[p+2]=n,this.int16[p+3]=i,this.int16[p+4]=a,this.int16[p+5]=o,this.uint32[c+3]=s,this.uint16[p+8]=u,this.uint16[p+9]=l,t},e}(_i);Bi.prototype.bytesPerElement=20,Fn("StructArrayLayout6i1ul2ui20",Bi);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.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}(_i);Vi.prototype.bytesPerElement=12,Fn("StructArrayLayout2i2i2i12",Vi);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.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}(_i);Fi.prototype.bytesPerElement=16,Fn("StructArrayLayout2f1f2i16",Fi);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);},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}(_i);Di.prototype.bytesPerElement=12,Fn("StructArrayLayout2ub2f12",Di);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.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}(_i);Li.prototype.bytesPerElement=6,Fn("StructArrayLayout3ui6",Li);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.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,u,l,p,c,h,f,y,d,m){var v=this.length;return this.resize(v+1),this.emplace(v,t,e,r,n,i,a,o,s,u,l,p,c,h,f,y,d,m)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,u,l,p,c,h,f,y,d,m,v){var g=24*t,x=12*t,b=48*t;return this.int16[g+0]=e,this.int16[g+1]=r,this.uint16[g+2]=n,this.uint16[g+3]=i,this.uint32[x+2]=a,this.uint32[x+3]=o,this.uint32[x+4]=s,this.uint16[g+10]=u,this.uint16[g+11]=l,this.uint16[g+12]=p,this.float32[x+7]=c,this.float32[x+8]=h,this.uint8[b+36]=f,this.uint8[b+37]=y,this.uint8[b+38]=d,this.uint32[x+10]=m,this.int16[g+22]=v,t},e}(_i);Ri.prototype.bytesPerElement=48,Fn("StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48",Ri);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),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,u,l,p,c,h,f,y,d,m,v,g,x,b,w,_,A,S,k,I,z){var C=this.length;return this.resize(C+1),this.emplace(C,t,e,r,n,i,a,o,s,u,l,p,c,h,f,y,d,m,v,g,x,b,w,_,A,S,k,I,z)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,u,l,p,c,h,f,y,d,m,v,g,x,b,w,_,A,S,k,I,z,C){var M=34*t,E=17*t;return this.int16[M+0]=e,this.int16[M+1]=r,this.int16[M+2]=n,this.int16[M+3]=i,this.int16[M+4]=a,this.int16[M+5]=o,this.int16[M+6]=s,this.int16[M+7]=u,this.uint16[M+8]=l,this.uint16[M+9]=p,this.uint16[M+10]=c,this.uint16[M+11]=h,this.uint16[M+12]=f,this.uint16[M+13]=y,this.uint16[M+14]=d,this.uint16[M+15]=m,this.uint16[M+16]=v,this.uint16[M+17]=g,this.uint16[M+18]=x,this.uint16[M+19]=b,this.uint16[M+20]=w,this.uint16[M+21]=_,this.uint16[M+22]=A,this.uint32[E+12]=S,this.float32[E+13]=k,this.float32[E+14]=I,this.float32[E+15]=z,this.float32[E+16]=C,t},e}(_i);Oi.prototype.bytesPerElement=68,Fn("StructArrayLayout8i15ui1ul4f68",Oi);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.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}(_i);Ui.prototype.bytesPerElement=4,Fn("StructArrayLayout1f4",Ui);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.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}(_i);ji.prototype.bytesPerElement=6,Fn("StructArrayLayout3i6",ji);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.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}(_i);qi.prototype.bytesPerElement=8,Fn("StructArrayLayout1ul2ui8",qi);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.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}(_i);Ni.prototype.bytesPerElement=4,Fn("StructArrayLayout2ui4",Ni);var Ki=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}(_i);Ki.prototype.bytesPerElement=2,Fn("StructArrayLayout1ui2",Ki);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}(_i);Gi.prototype.bytesPerElement=8,Fn("StructArrayLayout2f8",Gi);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.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}(_i);Zi.prototype.bytesPerElement=16,Fn("StructArrayLayout4f16",Zi);var Xi=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}(wi);Xi.prototype.size=20;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 Xi(this,t)},e}(Bi);Fn("CollisionBoxArray",Ji);var Hi=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}(wi);Hi.prototype.size=48;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.get=function(t){return new Hi(this,t)},e}(Ri);Fn("PlacedSymbolArray",Yi);var $i=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}(wi);$i.prototype.size=68;var Wi=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 $i(this,t)},e}(Oi);Fn("SymbolInstanceArray",Wi);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.getoffsetX=function(t){return this.float32[1*t+0]},e}(Ui);Fn("GlyphOffsetArray",Qi);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}(ji);Fn("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}(wi);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}(qi);Fn("FeatureIndexArray",ra);var na=Ai([{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=u(Math.floor(t),0,255))+u(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&&w("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|u>>>17))*s+(((u>>>16)*s&65535)<<16)&4294967295)<<13|i>>>19))+((5*(i>>>16)&65535)<<16)&4294967295))+((58964+(a>>>16)&65535)<<16);switch(u=0,r){case 3:u^=(255&t.charCodeAt(l+2))<<16;case 2:u^=(255&t.charCodeAt(l+1))<<8;case 1:i^=u=(65535&(u=(u=(65535&(u^=255&t.charCodeAt(l)))*o+(((u>>>16)*o&65535)<<16)&4294967295)<<15|u>>>17))*s+(((u>>>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};})),ua=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};})),la=sa,pa=ua;la.murmur3=sa,la.murmur2=pa;var ca=function(){this.ids=[],this.positions=[],this.indexed=!1;};ca.prototype.add=function(t,e,r,n){this.ids.push(fa(t)),this.positions.push(e,r,n);},ca.prototype.getPositions=function(t){for(var e=fa(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},ca.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;ya(e,o,s),ya(r,3*o,3*s),ya(r,3*o+1,3*s+1),ya(r,3*o+2,3*s+2);}s-nVa.max||o.yVa.max)&&(w("Geometry exceeds allowed extent, reduce your vector tile buffer size"),o.x=u(o.x,Va.min,Va.max),o.y=u(o.y,Va.min,Va.max));}return r}function Da(t,e,r,n,i){t.emplaceBack(2*e+(n+1)/2,2*r+(i+1)/2);}var La=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 ki,this.indexArray=new Li,this.segments=new ia,this.programConfigurations=new Ta(na,t.layers,t.zoom),this.stateDependentLayerIds=this.layers.filter((function(t){return t.isStateDependent()})).map((function(t){return t.id}));};function Ra(t,e){for(var r=0;r1){if(qa(t,e))return !0;for(var n=0;n1?r:r.sub(e)._mult(i)._add(e))}function Za(t,e){for(var r,n,i,a=!1,o=0;oe.y!=(i=r[u]).y>e.y&&e.x<(i.x-n.x)*(e.y-n.y)/(i.y-n.y)+n.x&&(a=!a);return a}function Xa(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 Ja(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=_(t,e,r[0]);return a!==_(t,e,r[1])||a!==_(t,e,r[2])||a!==_(t,e,r[3])}function Ha(t,e,r){var n=e.paint.get(t).value;return "constant"===n.kind?n.value:r.programConfigurations.get(e.id).getMaxValue(t)}function Ya(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}function $a(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=[],u=0;u=8192||p<0||p>=8192)){var c=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,t.sortKey),h=c.vertexLength;Da(this.layoutVertexArray,l,p,-1,-1),Da(this.layoutVertexArray,l,p,1,-1),Da(this.layoutVertexArray,l,p,1,1),Da(this.layoutVertexArray,l,p,-1,1),this.indexArray.emplaceBack(h,h+1,h+2),this.indexArray.emplaceBack(h,h+3,h+2),c.vertexLength+=4,c.primitiveLength+=2;}}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,r,{},n);},Fn("CircleBucket",La,{omit:["layers"]});var Wa=new gi({"circle-sort-key":new yi(It.layout_circle["circle-sort-key"])}),Qa={paint:new gi({"circle-radius":new yi(It.paint_circle["circle-radius"]),"circle-color":new yi(It.paint_circle["circle-color"]),"circle-blur":new yi(It.paint_circle["circle-blur"]),"circle-opacity":new yi(It.paint_circle["circle-opacity"]),"circle-translate":new fi(It.paint_circle["circle-translate"]),"circle-translate-anchor":new fi(It.paint_circle["circle-translate-anchor"]),"circle-pitch-scale":new fi(It.paint_circle["circle-pitch-scale"]),"circle-pitch-alignment":new fi(It.paint_circle["circle-pitch-alignment"]),"circle-stroke-width":new yi(It.paint_circle["circle-stroke-width"]),"circle-stroke-color":new yi(It.paint_circle["circle-stroke-color"]),"circle-stroke-opacity":new yi(It.paint_circle["circle-stroke-opacity"])}),layout:Wa},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],u=e[5],l=e[6],p=e[7],c=e[8],h=e[9],f=e[10],y=e[11],d=e[12],m=e[13],v=e[14],g=e[15],x=r[0],b=r[1],w=r[2],_=r[3];return t[0]=x*n+b*s+w*c+_*d,t[1]=x*i+b*u+w*h+_*m,t[2]=x*a+b*l+w*f+_*v,t[3]=x*o+b*p+w*y+_*g,t[4]=(x=r[4])*n+(b=r[5])*s+(w=r[6])*c+(_=r[7])*d,t[5]=x*i+b*u+w*h+_*m,t[6]=x*a+b*l+w*f+_*v,t[7]=x*o+b*p+w*y+_*g,t[8]=(x=r[8])*n+(b=r[9])*s+(w=r[10])*c+(_=r[11])*d,t[9]=x*i+b*u+w*h+_*m,t[10]=x*a+b*l+w*f+_*v,t[11]=x*o+b*p+w*y+_*g,t[12]=(x=r[12])*n+(b=r[13])*s+(w=r[14])*c+(_=r[15])*d,t[13]=x*i+b*u+w*h+_*m,t[14]=x*a+b*l+w*f+_*v,t[15]=x*o+b*p+w*y+_*g,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,Qa);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.createBucket=function(t){return new La(t)},e.prototype.queryRadius=function(t){var e=t;return Ha("circle-radius",this,e)+Ha("circle-stroke-width",this,e)+Ya(this.paint.get("circle-translate"))},e.prototype.queryIntersectsFeature=function(t,e,r,n,i,a,o,s){for(var u=$a(t,this.paint.get("circle-translate"),this.paint.get("circle-translate-anchor"),a.angle,o),l=this.paint.get("circle-radius").evaluate(e,r)+this.paint.get("circle-stroke-width").evaluate(e,r),p="map"===this.paint.get("circle-pitch-alignment"),c=p?u:function(t,e){return t.map((function(t){return so(t,e)}))}(u,s),h=p?l*o:l,f=0,y=n;ft.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,u=0;u80*r){n=a=t[0],i=o=t[1];for(var y=r;ya&&(a=s),u>o&&(o=u);l=0!==(l=Math.max(a-n,o-i))?1/l:0;}return Io(h,f,r,n,i,l),f}function So(t,e,r,n,i){var a,o;if(i===Jo(t,e,r,n)>0)for(a=e;a=e;a-=n)o=Go(a,t[a],t[a+1],o);return o&&Oo(o,o.next)&&(Zo(o),o=o.next),o}function ko(t,e){if(!t)return t;e||(e=t);var r,n=t;do{if(r=!1,n.steiner||!Oo(n,n.next)&&0!==Ro(n.prev,n,n.next))n=n.next;else {if(Zo(n),(n=e=n.prev)===n.next)break;r=!0;}}while(r||n!==e);return e}function Io(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=Vo(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,u,l=1;do{for(r=t,t=null,a=null,o=0;r;){for(o++,n=r,s=0,e=0;e0||u>0&&n;)0!==s&&(0===u||!n||r.z<=n.z)?(i=r,r=r.nextZ,s--):(i=n,n=n.nextZ,u--),a?a.nextZ=i:t=i,i.prevZ=a,a=i;r=n;}a.nextZ=null,l*=2;}while(o>1)}(i);}(t,n,i,a);for(var s,u,l=t;t.prev!==t.next;)if(s=t.prev,u=t.next,a?Co(t,n,i,a):zo(t))e.push(s.i/r),e.push(t.i/r),e.push(u.i/r),Zo(t),t=u.next,l=u.next;else if((t=u)===l){o?1===o?Io(t=Mo(ko(t),e,r),e,r,n,i,a,2):2===o&&Eo(t,e,r,n,i,a):Io(ko(t),e,r,n,i,a,1);break}}}function zo(t){var e=t.prev,r=t,n=t.next;if(Ro(e,r,n)>=0)return !1;for(var i=t.next.next;i!==t.prev;){if(Do(e.x,e.y,r.x,r.y,n.x,n.y,i.x,i.y)&&Ro(i.prev,i,i.next)>=0)return !1;i=i.next;}return !0}function Co(t,e,r,n){var i=t.prev,a=t,o=t.next;if(Ro(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,u=i.y>a.y?i.y>o.y?i.y:o.y:a.y>o.y?a.y:o.y,l=Vo(i.x=l&&h&&h.z<=p;){if(c!==t.prev&&c!==t.next&&Do(i.x,i.y,a.x,a.y,o.x,o.y,c.x,c.y)&&Ro(c.prev,c,c.next)>=0)return !1;if(c=c.prevZ,h!==t.prev&&h!==t.next&&Do(i.x,i.y,a.x,a.y,o.x,o.y,h.x,h.y)&&Ro(h.prev,h,h.next)>=0)return !1;h=h.nextZ;}for(;c&&c.z>=l;){if(c!==t.prev&&c!==t.next&&Do(i.x,i.y,a.x,a.y,o.x,o.y,c.x,c.y)&&Ro(c.prev,c,c.next)>=0)return !1;c=c.prevZ;}for(;h&&h.z<=p;){if(h!==t.prev&&h!==t.next&&Do(i.x,i.y,a.x,a.y,o.x,o.y,h.x,h.y)&&Ro(h.prev,h,h.next)>=0)return !1;h=h.nextZ;}return !0}function Mo(t,e,r){var n=t;do{var i=n.prev,a=n.next.next;!Oo(i,a)&&Uo(i,n,n.next,a)&&No(i,a)&&No(a,i)&&(e.push(i.i/r),e.push(n.i/r),e.push(a.i/r),Zo(n),Zo(n.next),n=t=a),n=n.next;}while(n!==t);return ko(n)}function Eo(t,e,r,n,i,a){var o=t;do{for(var s=o.next.next;s!==o.prev;){if(o.i!==s.i&&Lo(o,s)){var u=Ko(o,s);return o=ko(o,o.next),u=ko(u,u.next),Io(o,e,r,n,i,a),void Io(u,e,r,n,i,a)}s=s.next;}o=o.next;}while(o!==t)}function To(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>=p&&i!==n.x&&Do(ar.x||n.x===r.x&&Bo(r,n)))&&(r=n,h=u)),n=n.next;}while(n!==l);return r}(t,e)){var r=Ko(e,t);ko(e,e.next),ko(r,r.next);}}function Bo(t,e){return Ro(t.prev,t,e.prev)<0&&Ro(e.next,t,t.next)<0}function Vo(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 Fo(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 Lo(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&&Uo(r,r.next,t,e))return !0;r=r.next;}while(r!==t);return !1}(t,e)&&(No(t,e)&&No(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)&&(Ro(t.prev,t,e.prev)||Ro(t,e.prev,e))||Oo(t,e)&&Ro(t.prev,t,t.next)>0&&Ro(e.prev,e,e.next)>0)}function Ro(t,e,r){return (e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function Oo(t,e){return t.x===e.x&&t.y===e.y}function Uo(t,e,r,n){var i=qo(Ro(t,e,r)),a=qo(Ro(t,e,n)),o=qo(Ro(r,n,t)),s=qo(Ro(r,n,e));return i!==a&&o!==s||!(0!==i||!jo(t,r,e))||!(0!==a||!jo(t,n,e))||!(0!==o||!jo(r,t,n))||!(0!==s||!jo(r,e,n))}function jo(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 qo(t){return t>0?1:t<0?-1:0}function No(t,e){return Ro(t.prev,t,t.next)<0?Ro(t,e,t.next)>=0&&Ro(t,t.prev,e)>=0:Ro(t,e,t.prev)<0||Ro(t,t.next,e)<0}function Ko(t,e){var r=new Xo(t.i,t.x,t.y),n=new Xo(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 Xo(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 Zo(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 Xo(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 Jo(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,u=Math.log(o),l=.5*Math.exp(2*u/3),p=.5*Math.sqrt(u*l*(o-l)/o)*(s-o/2<0?-1:1);t(e,r,Math.max(n,Math.floor(r-s*l/o+p)),Math.min(i,Math.floor(r+(o-s)*l/o+p)),a);}var c=e[r],h=n,f=i;for(Yo(e,n,r),a(e[i],c)>0&&Yo(e,n,i);h0;)f--;}0===a(e[n],c)?Yo(e,n,f):Yo(e,++f,i),f<=r&&(n=f+1),r<=f&&(i=f-1);}}(t,e,r||0,n||t.length-1,i||$o);}function Yo(t,e,r){var n=t[e];t[e]=t[r],t[r]=n;}function $o(t,e){return te?1:0}function Wo(t,e){var r=t.length;if(r<=1)return [t];for(var n,i,a=[],o=0;o1)for(var u=0;u0&&r.holes.push(n+=t[i-1].length);}return r},wo.default=_o;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 ki,this.indexArray=new Li,this.indexArray2=new Ni,this.programConfigurations=new Ta(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&&u.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&&u.push(e),u},us.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,u=1/0,l=-1/0;t.pos>3;}if(n--,1===r||2===r)(i+=t.readSVarint())s&&(s=i),(a+=t.readSVarint())l&&(l=a);else if(7!==r)throw new Error("unknown command "+r)}return [o,u,s,l]},us.prototype.toGeoJSON=function(t,e,r){var n,i,a=this.extent*Math.pow(2,r),o=this.extent*t,s=this.extent*e,u=this.loadGeometry(),l=us.types[this.type];function p(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 ys(t,e,r){if(3===t){var n=new cs(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 ds={VectorTile:function(t,e){this.layers=t.readFields(ys,{},e);},VectorTileFeature:ss,VectorTileLayer:cs},ms=ds.VectorTileFeature.types,vs=Math.pow(2,13);function gs(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 zi,this.indexArray=new Li,this.programConfigurations=new Ta(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 d=0,m=0;m=1){var g=y[m-1];if(!bs(v,g)){c.vertexLength+4>ia.MAX_VERTEX_ARRAY_LENGTH&&(c=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));var x=v.sub(g)._perp()._unit(),b=g.dist(v);d+b>32768&&(d=0),gs(this.layoutVertexArray,v.x,v.y,x.x,x.y,0,0,d),gs(this.layoutVertexArray,v.x,v.y,x.x,x.y,0,1,d),gs(this.layoutVertexArray,g.x,g.y,x.x,x.y,0,0,d+=b),gs(this.layoutVertexArray,g.x,g.y,x.x,x.y,0,1,d);var w=c.vertexLength;this.indexArray.emplaceBack(w,w+2,w+1),this.indexArray.emplaceBack(w+1,w+2,w+3),c.vertexLength+=4,c.primitiveLength+=2;}}}}if(c.vertexLength+u>ia.MAX_VERTEX_ARRAY_LENGTH&&(c=this.segments.prepareSegment(u,this.layoutVertexArray,this.indexArray)),"Polygon"===ms[t.type]){for(var _=[],A=[],S=c.vertexLength,k=0,I=s;k=2&&t[u-1].equals(t[u-2]);)u--;for(var l=0;l0;if(A&&v>l){var k=p.dist(f);if(k>2*c){var I=p.sub(p.sub(f)._mult(c/k)._round());this.updateDistance(f,I),this.addCurrentVertex(I,d,0,0,h),f=I;}}var z=f&&y,C=z?r:s?"butt":n;if(z&&"round"===C&&(wi&&(C="bevel"),"bevel"===C&&(w>2&&(C="flipbevel"),w100)g=m.mult(-1);else {var M=w*d.add(m).mag()/d.sub(m).mag();g._perp()._mult(M*(S?-1:1));}this.addCurrentVertex(p,g,0,0,h),this.addCurrentVertex(p,g.mult(-1),0,0,h);}else if("bevel"===C||"fakeround"===C){var E=-Math.sqrt(w*w-1),T=S?E:0,P=S?0:E;if(f&&this.addCurrentVertex(p,d,T,P,h),"fakeround"===C)for(var B=Math.round(180*_/Math.PI/20),V=1;V2*c){var U=p.add(y.sub(p)._mult(c/O)._round());this.updateDistance(p,U),this.addCurrentVertex(U,m,0,0,h),p=U;}}}}},Ms.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>Cs/2&&0===this.totalDistance&&(this.distance=0,this.addCurrentVertex(t,e,r,n,i,a));},Ms.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 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;},Ms.prototype.updateScaledDistance=function(){this.scaledDistance=this.totalDistance>0?(this.clipStart+(this.clipEnd-this.clipStart)*this.distance/this.totalDistance)*(Cs-1):this.distance;},Ms.prototype.updateDistance=function(t,e){this.distance+=t.dist(e),this.updateScaledDistance();},Fn("LineBucket",Ms,{omit:["layers","patternFeatures"]});var Es=new gi({"line-cap":new fi(It.layout_line["line-cap"]),"line-join":new yi(It.layout_line["line-join"]),"line-miter-limit":new fi(It.layout_line["line-miter-limit"]),"line-round-limit":new fi(It.layout_line["line-round-limit"]),"line-sort-key":new yi(It.layout_line["line-sort-key"])}),Ts={paint:new gi({"line-opacity":new yi(It.paint_line["line-opacity"]),"line-color":new yi(It.paint_line["line-color"]),"line-translate":new fi(It.paint_line["line-translate"]),"line-translate-anchor":new fi(It.paint_line["line-translate-anchor"]),"line-width":new yi(It.paint_line["line-width"]),"line-gap-width":new yi(It.paint_line["line-gap-width"]),"line-offset":new yi(It.paint_line["line-offset"]),"line-blur":new yi(It.paint_line["line-blur"]),"line-dasharray":new mi(It.paint_line["line-dasharray"]),"line-pattern":new di(It.paint_line["line-pattern"]),"line-gradient":new vi(It.paint_line["line-gradient"])}),layout:Es},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=p({},r,{zoom:Math.floor(r.zoom)}),t.prototype.evaluate.call(this,e,r,n,i)},e}(yi))(Ts.paint.properties["line-width"].specification);Ps.useIntegerZoom=!0;var Bs=function(t){function e(e){t.call(this,e,Ts);}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 Ms(t)},e.prototype.queryRadius=function(t){var e=t,r=Vs(Ha("line-width",this,e),Ha("line-gap-width",this,e)),n=Ha("line-offset",this,e);return r/2+Math.abs(n)+Ya(this.paint.get("line-translate"))},e.prototype.queryIntersectsFeature=function(t,e,r,n,a,o,s){var u=$a(t,this.paint.get("line-translate"),this.paint.get("line-translate-anchor"),o.angle,s),l=s/2*Vs(this.paint.get("line-width").evaluate(e,r),this.paint.get("line-gap-width").evaluate(e,r)),p=this.paint.get("line-offset").evaluate(e,r);return p&&(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 Fs=Ai([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_data",components:4,type:"Uint16"},{name:"a_pixeloffset",components:4,type:"Int16"}],4),Ds=Ai([{name:"a_projected_pos",components:3,type:"Float32"}],4),Ls=(Ai([{name:"a_fade_opacity",components:1,type:"Uint32"}],4),Ai([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"}])),Rs=(Ai([{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"}]),Ai([{name:"a_pos",components:2,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4)),Os=Ai([{name:"a_pos",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);function Us(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}Ai([{name:"triangle",components:3,type:"Uint16"}]),Ai([{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"}]),Ai([{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"}]),Ai([{type:"Float32",name:"offsetX"}]),Ai([{type:"Int16",name:"x"},{type:"Int16",name:"y"},{type:"Int16",name:"tileUnitDistanceFromAnchor"}]);var js={"!":"︕","#":"#",$:"$","%":"%","&":"&","(":"︵",")":"︶","*":"*","+":"+",",":"︐","-":"︲",".":"・","/":"/",":":"︓",";":"︔","<":"︿","=":"=",">":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"},qs=function(t,e,r,n,i){var a,o,s=8*i-n-1,u=(1<>1,p=-7,c=r?i-1:0,h=r?-1:1,f=t[e+c];for(c+=h,a=f&(1<<-p)-1,f>>=-p,p+=s;p>0;a=256*a+t[e+c],c+=h,p-=8);for(o=a&(1<<-p)-1,a>>=-p,p+=n;p>0;o=256*o+t[e+c],c+=h,p-=8);if(0===a)a=1-l;else {if(a===u)return o?NaN:1/0*(f?-1:1);o+=Math.pow(2,n),a-=l;}return (f?-1:1)*o*Math.pow(2,a-n)},Ns=function(t,e,r,n,i,a){var o,s,u,l=8*a-i-1,p=(1<>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=n?0:a-1,y=n?1:-1,d=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=p):(o=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-o))<1&&(o--,u*=2),(e+=o+c>=1?h/u:h*Math.pow(2,1-c))*u>=2&&(o++,u/=2),o+c>=p?(s=0,o=p):o+c>=1?(s=(e*u-1)*Math.pow(2,i),o+=c):(s=e*Math.pow(2,c-1)*Math.pow(2,i),o=0));i>=8;t[r+f]=255&s,f+=y,s/=256,i-=8);for(o=o<0;t[r+f]=255&o,f+=y,o/=256,l-=8);t[r+f-y]|=128*d;},Ks=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 Zs="undefined"==typeof TextDecoder?null:new TextDecoder("utf8");function Xs(t){return t.type===Gs.Bytes?t.readVarint()+t.pos:t.pos+1}function Js(t,e,r){return r?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}function Hs(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 Ys(t,e){for(var r=0;r>>8,t[r+2]=e>>>16,t[r+3]=e>>>24;}function su(t,e){return (t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}function uu(t,e,r){1===t&&r.readMessage(lu,e);}function lu(t,e,r){if(3===t){var n=r.readMessage(pu,{}),i=n.width,a=n.height,o=n.left,s=n.top,u=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:u}});}}function pu(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 cu(t){for(var e=0,r=0,n=0,i=t;n=0;h--){var f=o[h];if(!(c.w>f.w||c.h>f.h)){if(c.x=f.x,c.y=f.y,u=Math.max(u,c.y+c.h),s=Math.max(s,c.x+c.w),c.w===f.w&&c.h===f.h){var y=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=au(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=su(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=au(this.buf,this.pos)+4294967296*au(this.buf,this.pos+4);return this.pos+=8,t},readSFixed64:function(){var t=au(this.buf,this.pos)+4294967296*su(this.buf,this.pos+4);return this.pos+=8,t},readFloat:function(){var t=qs(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=qs(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 Js(t,n,e);if(n|=(127&(i=a[r.pos++]))<<3,i<128)return Js(t,n,e);if(n|=(127&(i=a[r.pos++]))<<10,i<128)return Js(t,n,e);if(n|=(127&(i=a[r.pos++]))<<17,i<128)return Js(t,n,e);if(n|=(127&(i=a[r.pos++]))<<24,i<128)return Js(t,n,e);if(n|=(1&(i=a[r.pos++]))<<31,i<128)return Js(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&&Zs?function(t,e,r){return Zs.decode(t.subarray(e,r))}(this.buf,e,t):function(t,e,r){for(var n="",i=e;i239?4:u>223?3:u>191?2:1;if(i+p>r)break;1===p?u<128&&(l=u):2===p?128==(192&(a=t[i+1]))&&(l=(31&u)<<6|63&a)<=127&&(l=null):3===p?(o=t[i+2],128==(192&(a=t[i+1]))&&128==(192&o)&&((l=(15&u)<<12|(63&a)<<6|63&o)<=2047||l>=55296&&l<=57343)&&(l=null)):4===p&&(o=t[i+2],s=t[i+3],128==(192&(a=t[i+1]))&&128==(192&o)&&128==(192&s)&&((l=(15&u)<<18|(63&a)<<12|(63&o)<<6|63&s)<=65535||l>=1114112)&&(l=null)),null===l?(l=65533,p=1):l>65535&&(l-=65536,n+=String.fromCharCode(l>>>10&1023|55296),l=56320|1023&l),n+=String.fromCharCode(l),i+=p;}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=Xs(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&&Hs(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r;},writeFloat:function(t){this.realloc(4),Ns(this.buf,t,this.pos,!0,23,4),this.pos+=4;},writeDouble:function(t){this.realloc(8),Ns(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&&Hs(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,Ys,e);},writePackedSVarint:function(t,e){e.length&&this.writeMessage(t,$s,e);},writePackedBoolean:function(t,e){e.length&&this.writeMessage(t,tu,e);},writePackedFloat:function(t,e){e.length&&this.writeMessage(t,Ws,e);},writePackedDouble:function(t,e){e.length&&this.writeMessage(t,Qs,e);},writePackedFixed32:function(t,e){e.length&&this.writeMessage(t,eu,e);},writePackedSFixed32:function(t,e){e.length&&this.writeMessage(t,ru,e);},writePackedFixed64:function(t,e){e.length&&this.writeMessage(t,nu,e);},writePackedSFixed64:function(t,e){e.length&&this.writeMessage(t,iu,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 hu=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;},fu={tl:{configurable:!0},br:{configurable:!0},tlbr:{configurable:!0},displaySize:{configurable:!0}};fu.tl.get=function(){return [this.paddedRect.x+1,this.paddedRect.y+1]},fu.br.get=function(){return [this.paddedRect.x+this.paddedRect.w-1,this.paddedRect.y+this.paddedRect.h-1]},fu.tlbr.get=function(){return this.tl.concat(this.br)},fu.displaySize.get=function(){return [(this.paddedRect.w-2)/this.pixelRatio,(this.paddedRect.h-2)/this.pixelRatio]},Object.defineProperties(hu.prototype,fu);var yu=function(t,e){var r={},n={};this.haveRenderCallbacks=[];var i=[];this.addImages(t,r,i),this.addImages(e,n,i);var a=cu(i),o=new fo({width:a.w||1,height:a.h||1});for(var s in t){var u=t[s],l=r[s].paddedRect;fo.copy(u.data,o,{x:0,y:0},{x:l.x+1,y:l.y+1},u.data);}for(var p in e){var c=e[p],h=n[p].paddedRect,f=h.x+1,y=h.y+1,d=c.data.width,m=c.data.height;fo.copy(c.data,o,{x:0,y:0},{x:f,y:y},c.data),fo.copy(c.data,o,{x:0,y:m-1},{x:f,y:y-1},{width:d,height:1}),fo.copy(c.data,o,{x:0,y:0},{x:f,y:y+m},{width:d,height:1}),fo.copy(c.data,o,{x:d-1,y:0},{x:f-1,y:y},{width:1,height:m}),fo.copy(c.data,o,{x:0,y:0},{x:f+d,y:y},{width:1,height:m});}this.image=o,this.iconPositions=r,this.patternPositions=n;};yu.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 hu(a,i),i.hasRenderCallback&&this.haveRenderCallbacks.push(n);}},yu.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);},yu.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]});}},Fn("ImagePosition",hu),Fn("ImageAtlas",yu);var du={horizontal:1,vertical:2,horizontalOnly:3},mu=function(){this.scale=1,this.fontStack="",this.imageName=null;};mu.forText=function(t,e){var r=new mu;return r.scale=t||1,r.fontStack=e,r},mu.forImage=function(t){var e=new mu;return e.imageName=t,e};var vu=function(){this.text="",this.sectionIndex=[],this.sections=[],this.imageSectionID=null;};function gu(t,e,r,n,i,a,o,s,u,l,p,c,h,f,y,d){var m,v=vu.fromFeature(t,i);c===du.vertical&&v.verticalizePunctuation();var g=ni.processBidirectionalText,x=ni.processStyledBidirectionalText;if(g&&1===v.sections.length){m=[];for(var b=0,w=g(v.toString(),ku(v,l,a,e,n,f,y));b0&&R>k&&(k=R);}else {var O=r[z.fontStack],U=O&&O[M];if(U&&U.rect)P=U.rect,T=U.metrics;else {var j=e[z.fontStack],q=j&&j[M];if(!q)continue;T=q.metrics;}E=24*(w-z.scale);}F?(t.verticalizable=!0,S.push({glyph:M,imageName:B,x:h,y:f+E,vertical:F,scale:z.scale,fontStack:z.fontStack,sectionIndex:C,metrics:T,rect:P}),h+=V*z.scale+l):(S.push({glyph:M,imageName:B,x:h,y:f+E,vertical:F,scale:z.scale,fontStack:z.fontStack,sectionIndex:C,metrics:T,rect:P}),h+=T.advance*z.scale+l);}0!==S.length&&(y=Math.max(h-l,y),zu(S,0,S.length-1,m,k)),h=0;var N=a*w+k;A.lineOffset=Math.max(k,_),f+=N,d=Math.max(N,d),++v;}else f+=a,++v;}var K,G=f- -17,Z=Iu(o),X=Z.horizontalAlign,J=Z.verticalAlign;(function(t,e,r,n,i,a,o,s,u){var l,p=(e-r)*i;l=a!==o?-s*n- -17:(-n*u+.5)*o;for(var c=0,h=t;c=0&&n>=t&&xu[this.text.charCodeAt(n)];n--)r--;this.text=this.text.substring(t,r),this.sectionIndex=this.sectionIndex.slice(t,r);},vu.prototype.substring=function(t,e){var r=new vu;return r.text=this.text.substring(t,e),r.sectionIndex=this.sectionIndex.slice(t,e),r.sections=this.sections,r},vu.prototype.toString=function(){return this.text},vu.prototype.getMaxScale=function(){var t=this;return this.sectionIndex.reduce((function(e,r){return Math.max(e,t.sections[r].scale)}),0)},vu.prototype.addTextSection=function(t,e){this.text+=t.text,this.sections.push(mu.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 xu={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},bu={};function wu(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],u=s&&s[t];return u?u.metrics.advance*e.scale+i:0}function _u(t,e,r,n){var i=Math.pow(t-e,2);return n?t=0,c=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 u=[],l=0;sn;)l-=u.shift().angleDelta;if(l>i)return !1;o++,s+=p.dist(c);}return !0}function Fu(t){for(var e=0,r=0;rl){var y=(l-u)/f,d=je(c.x,h.x,y),m=je(c.y,h.y,y),v=new Mu(d,m,h.angleTo(c),p);return v._round(),!o||Vu(t,v,s,o,e)?v:void 0}u+=f;}}function Ou(t,e,r,n,i,a,o,s,u){var l=Du(n,a,o),p=Lu(n,i),c=p*o,h=0===t[0].x||t[0].x===u||0===t[0].y||t[0].y===u;return e-c=0&&w=0&&_=0&&f+p<=c){var A=new Mu(w,_,x,d);A._round(),i&&!Vu(e,A,o,i,a)||y.push(A);}}h+=g;}return u||y.length||s||(y=t(e,h/2,n,i,a,o,s,!0,l)),y}(t,h?e/2*s%e:(p/2+2*a)*o*s%e,e,l,r,c,h,!1,u)}function Uu(t,e,r,n,a){for(var o=[],s=0;s=n&&h.x>=n||(c.x>=n?c=new i(n,c.y+(n-c.x)/(h.x-c.x)*(h.y-c.y))._round():h.x>=n&&(h=new i(n,c.y+(n-c.x)/(h.x-c.x)*(h.y-c.y))._round()),c.y>=a&&h.y>=a||(c.y>=a?c=new i(c.x+(a-c.y)/(h.y-c.y)*(h.x-c.x),a)._round():h.y>=a&&(h=new i(c.x+(a-c.y)/(h.y-c.y)*(h.x-c.x),a)._round()),l&&c.equals(l[l.length-1])||o.push(l=[c]),l.push(h)))));}return o}function ju(t,e,r,n){var a=[],o=t.image,s=o.pixelRatio,u=o.paddedRect.w-2,l=o.paddedRect.h-2,p=t.right-t.left,c=t.bottom-t.top,h=o.stretchX||[[0,u]],f=o.stretchY||[[0,l]],y=function(t,e){return t+e[1]-e[0]},d=h.reduce(y,0),m=f.reduce(y,0),v=u-d,g=l-m,x=0,b=d,w=0,_=m,A=0,S=v,k=0,I=g;if(o.content&&n){var z=o.content;x=qu(h,0,z[0]),w=qu(f,0,z[1]),b=qu(h,z[0],z[2]),_=qu(f,z[1],z[3]),A=z[0]-x,k=z[1]-w,S=z[2]-z[0]-b,I=z[3]-z[1]-_;}var C=function(n,a,u,l){var h=Ku(n.stretch-x,b,p,t.left),f=Gu(n.fixed-A,S,n.stretch,d),y=Ku(a.stretch-w,_,c,t.top),v=Gu(a.fixed-k,I,a.stretch,m),g=Ku(u.stretch-x,b,p,t.left),z=Gu(u.fixed-A,S,u.stretch,d),C=Ku(l.stretch-w,_,c,t.top),M=Gu(l.fixed-k,I,l.stretch,m),E=new i(h,y),T=new i(g,y),P=new i(g,C),B=new i(h,C),V=new i(f/s,v/s),F=new i(z/s,M/s),D=e*Math.PI/180;if(D){var L=Math.sin(D),R=Math.cos(D),O=[R,-L,L,R];E._matMult(O),T._matMult(O),B._matMult(O),P._matMult(O);}var U=n.stretch+n.fixed,j=a.stretch+a.fixed;return {tl:E,tr:T,bl:B,br:P,tex:{x:o.paddedRect.x+1+U,y:o.paddedRect.y+1+j,w:u.stretch+u.fixed-U,h:l.stretch+l.fixed-j},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:V,pixelOffsetBR:F,minFontScaleX:S/s/p,minFontScaleY:I/s/c,isSDF:r}};if(n&&(o.stretchX||o.stretchY))for(var M=Nu(h,v,d),E=Nu(f,g,m),T=0;T0&&(y=Math.max(10,y),this.circleDiameter=y);}else {var d=o.top*s-u,m=o.bottom*s+u,v=o.left*s-u,g=o.right*s+u,x=o.collisionPadding;if(x&&(v-=x[0]*s,d-=x[1]*s,g+=x[2]*s,m+=x[3]*s),p){var b=new i(v,d),w=new i(g,d),_=new i(v,m),A=new i(g,m),S=p*Math.PI/180;b._rotate(S),w._rotate(S),_._rotate(S),A._rotate(S),v=Math.min(b.x,w.x,_.x,A.x),g=Math.max(b.x,w.x,_.x,A.x),d=Math.min(b.y,w.y,_.y,A.y),m=Math.max(b.y,w.y,_.y,A.y);}t.emplaceBack(e.x,e.y,v,d,g,m,r,n,a);}this.boxEndIndex=t.length;},Xu=function(t,e){if(void 0===t&&(t=[]),void 0===e&&(e=Ju),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 Ju(t,e){return te?1:0}function Hu(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,u=t[0],l=0;lo)&&(o=p.x),(!l||p.y>s)&&(s=p.y);}var c=Math.min(o-n,s-a),h=c/2,f=new Xu([],Yu);if(0===c)return new i(n,a);for(var y=n;ym.d||!m.d)&&(m=g,r&&console.log("found best %d after %d probes",Math.round(1e4*g.d)/1e4,v)),g.max-m.d<=e||(f.push(new $u(g.p.x-(h=g.h/2),g.p.y-h,h,t)),f.push(new $u(g.p.x+h,g.p.y-h,h,t)),f.push(new $u(g.p.x-h,g.p.y+h,h,t)),f.push(new $u(g.p.x+h,g.p.y+h,h,t)),v+=4);}return r&&(console.log("num probes: "+v),console.log("best distance: "+m.d)),m.p}function Yu(t,e){return e.max-t.max}function $u(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!=p.y>t.y&&t.x<(p.x-l.x)*(t.y-l.y)/(p.y-l.y)+l.x&&(r=!r),n=Math.min(n,Ga(t,l,p));}return (r?1:-1)*Math.sqrt(n)}(this.p,n),this.max=this.d+this.h*Math.SQRT2;}Xu.prototype.push=function(t){this.data.push(t),this.length++,this._up(this.length-1);},Xu.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}},Xu.prototype.peek=function(){return this.data[0]},Xu.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;},Xu.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 Wu=Number.POSITIVE_INFINITY;function Qu(t,e){return e[1]!==Wu?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 tl(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 el(t,e,r,n,a,o,s,u,l,p,c,h,f,y,d){var m=function(t,e,r,n,a,o,s,u){for(var l=n.layout.get("text-rotate").evaluate(o,{})*Math.PI/180,p=[],c=0,h=e.positionedLines;c32640&&w(t.layerIds[0]+': Value for "text-size" is >= 255. Reduce your "text-size".'):"composite"===v.kind&&((g=[128*y.compositeTextSizes[0].evaluate(s,{},d),128*y.compositeTextSizes[1].evaluate(s,{},d)])[0]>32640||g[1]>32640)&&w(t.layerIds[0]+': Value for "text-size" is >= 255. Reduce your "text-size".'),t.addSymbols(t.text,m,g,u,o,s,p,e,l.lineStartIndex,l.lineLength,f,d);for(var x=0,b=c;x=0;o--)if(n.dist(a[o])0)&&("constant"!==a.value.kind||a.value.value.length>0),l="constant"!==s.value.kind||!!s.value.value||Object.keys(s.parameters).length>0,p=i.get("symbol-sort-key");if(this.features=[],u||l){for(var c=e.iconDependencies,h=e.glyphDependencies,f=e.availableImages,y=new ii(this.zoom),d=0,m=t;d=0;for(var B=0,V=S.sections;B=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 u=0;u0},cl.prototype.hasIconData=function(){return this.icon.segments.get().length>0},cl.prototype.hasDebugData=function(){return this.textCollisionBox&&this.iconCollisionBox},cl.prototype.hasTextCollisionBoxData=function(){return this.hasDebugData()&&this.textCollisionBox.segments.get().length>0},cl.prototype.hasIconCollisionBoxData=function(){return this.hasDebugData()&&this.iconCollisionBox.segments.get().length>0},cl.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);}},Fn("SymbolBucket",cl,{omit:["layers","collisionBoxArray","features","compareText"]}),cl.MAX_GLYPHS=65535,cl.addDynamicAttributes=sl;var hl=new gi({"symbol-placement":new fi(It.layout_symbol["symbol-placement"]),"symbol-spacing":new fi(It.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new fi(It.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new yi(It.layout_symbol["symbol-sort-key"]),"symbol-z-order":new fi(It.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new fi(It.layout_symbol["icon-allow-overlap"]),"icon-ignore-placement":new fi(It.layout_symbol["icon-ignore-placement"]),"icon-optional":new fi(It.layout_symbol["icon-optional"]),"icon-rotation-alignment":new fi(It.layout_symbol["icon-rotation-alignment"]),"icon-size":new yi(It.layout_symbol["icon-size"]),"icon-text-fit":new fi(It.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new fi(It.layout_symbol["icon-text-fit-padding"]),"icon-image":new yi(It.layout_symbol["icon-image"]),"icon-rotate":new yi(It.layout_symbol["icon-rotate"]),"icon-padding":new fi(It.layout_symbol["icon-padding"]),"icon-keep-upright":new fi(It.layout_symbol["icon-keep-upright"]),"icon-offset":new yi(It.layout_symbol["icon-offset"]),"icon-anchor":new yi(It.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new fi(It.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new fi(It.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new fi(It.layout_symbol["text-rotation-alignment"]),"text-field":new yi(It.layout_symbol["text-field"]),"text-font":new yi(It.layout_symbol["text-font"]),"text-size":new yi(It.layout_symbol["text-size"]),"text-max-width":new yi(It.layout_symbol["text-max-width"]),"text-line-height":new fi(It.layout_symbol["text-line-height"]),"text-letter-spacing":new yi(It.layout_symbol["text-letter-spacing"]),"text-justify":new yi(It.layout_symbol["text-justify"]),"text-radial-offset":new yi(It.layout_symbol["text-radial-offset"]),"text-variable-anchor":new fi(It.layout_symbol["text-variable-anchor"]),"text-anchor":new yi(It.layout_symbol["text-anchor"]),"text-max-angle":new fi(It.layout_symbol["text-max-angle"]),"text-writing-mode":new fi(It.layout_symbol["text-writing-mode"]),"text-rotate":new yi(It.layout_symbol["text-rotate"]),"text-padding":new fi(It.layout_symbol["text-padding"]),"text-keep-upright":new fi(It.layout_symbol["text-keep-upright"]),"text-transform":new yi(It.layout_symbol["text-transform"]),"text-offset":new yi(It.layout_symbol["text-offset"]),"text-allow-overlap":new fi(It.layout_symbol["text-allow-overlap"]),"text-ignore-placement":new fi(It.layout_symbol["text-ignore-placement"]),"text-optional":new fi(It.layout_symbol["text-optional"])}),fl={paint:new gi({"icon-opacity":new yi(It.paint_symbol["icon-opacity"]),"icon-color":new yi(It.paint_symbol["icon-color"]),"icon-halo-color":new yi(It.paint_symbol["icon-halo-color"]),"icon-halo-width":new yi(It.paint_symbol["icon-halo-width"]),"icon-halo-blur":new yi(It.paint_symbol["icon-halo-blur"]),"icon-translate":new fi(It.paint_symbol["icon-translate"]),"icon-translate-anchor":new fi(It.paint_symbol["icon-translate-anchor"]),"text-opacity":new yi(It.paint_symbol["text-opacity"]),"text-color":new yi(It.paint_symbol["text-color"],{runtimeType:Rt,getOverride:function(t){return t.textColor},hasOverride:function(t){return !!t.textColor}}),"text-halo-color":new yi(It.paint_symbol["text-halo-color"]),"text-halo-width":new yi(It.paint_symbol["text-halo-width"]),"text-halo-blur":new yi(It.paint_symbol["text-halo-blur"]),"text-translate":new fi(It.paint_symbol["text-translate"]),"text-translate-anchor":new fi(It.paint_symbol["text-translate-anchor"])}),layout:hl},yl=function(t){this.type=t.property.overrides?t.property.overrides.runtimeType:Vt,this.defaultValue=t;};yl.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},yl.prototype.eachChild=function(t){this.defaultValue.isConstant()||t(this.defaultValue.value._styleExpression.expression);},yl.prototype.outputDefined=function(){return !1},yl.prototype.serialize=function(){return null},Fn("FormatSectionOverride",yl,{omit:["defaultValue"]});var dl=function(t){function e(e){t.call(this,e,fl);}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});}}},Ml.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 S()||e.mustQueue?(this.tasks[r]=e,this.taskQueue.push(r),this.invoker.trigger()):this.processTask(r,e);},Ml.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);}},Ml.prototype.processTask=function(t,e){var r=this;if(""===e.type){var n=this.callbacks[t];delete this.callbacks[t],n&&(e.error?n(Un(e.error)):n(null,Un(e.data)));}else {var i=!1,a=z(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?On(e):null,data:On(n,a)},a);}:function(t){i=!0;},s=null,u=Un(e.data);if(this.parent[e.type])s=this.parent[e.type](e.sourceMapId,u,o);else if(this.parent.getWorkerSource){var l=e.type.split(".");s=this.parent.getWorkerSource(e.sourceMapId,l[0],u.source)[l[1]](u,o);}else o(new Error("Could not find function "+e.type));!i&&s&&s.cancel&&(this.cancelCallbacks[t]=s.cancel);}},Ml.prototype.remove=function(){this.invoker.remove(),this.target.removeEventListener("message",this.receive,!1);};var Tl=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]));};Tl.prototype.setNorthEast=function(t){return this._ne=t instanceof Pl?new Pl(t.lng,t.lat):Pl.convert(t),this},Tl.prototype.setSouthWest=function(t){return this._sw=t instanceof Pl?new Pl(t.lng,t.lat):Pl.convert(t),this},Tl.prototype.extend=function(t){var e,r,n=this._sw,i=this._ne;if(t instanceof Pl)e=t,r=t;else {if(!(t instanceof Tl))return Array.isArray(t)?4===t.length||t.every(Array.isArray)?this.extend(Tl.convert(t)):this.extend(Pl.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 Pl(e.lng,e.lat),this._ne=new Pl(r.lng,r.lat)),this},Tl.prototype.getCenter=function(){return new Pl((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)},Tl.prototype.getSouthWest=function(){return this._sw},Tl.prototype.getNorthEast=function(){return this._ne},Tl.prototype.getNorthWest=function(){return new Pl(this.getWest(),this.getNorth())},Tl.prototype.getSouthEast=function(){return new Pl(this.getEast(),this.getSouth())},Tl.prototype.getWest=function(){return this._sw.lng},Tl.prototype.getSouth=function(){return this._sw.lat},Tl.prototype.getEast=function(){return this._ne.lng},Tl.prototype.getNorth=function(){return this._ne.lat},Tl.prototype.toArray=function(){return [this._sw.toArray(),this._ne.toArray()]},Tl.prototype.toString=function(){return "LngLatBounds("+this._sw.toString()+", "+this._ne.toString()+")"},Tl.prototype.isEmpty=function(){return !(this._sw&&this._ne)},Tl.prototype.contains=function(t){var e=Pl.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},Tl.convert=function(t){return !t||t instanceof Tl?t:new Tl(t)};var Pl=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")};Pl.prototype.wrap=function(){return new Pl(l(this.lng,-180,180),this.lat)},Pl.prototype.toArray=function(){return [this.lng,this.lat]},Pl.prototype.toString=function(){return "LngLat("+this.lng+", "+this.lat+")"},Pl.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))},Pl.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 Tl(new Pl(this.lng-r,this.lat-e),new Pl(this.lng+r,this.lat+e))},Pl.convert=function(t){if(t instanceof Pl)return t;if(Array.isArray(t)&&(2===t.length||3===t.length))return new Pl(Number(t[0]),Number(t[1]));if(!Array.isArray(t)&&"object"==typeof t&&null!==t)return new Pl(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 Bl=2*Math.PI*6371008.8;function Vl(t){return Bl*Math.cos(t*Math.PI/180)}function Fl(t){return (180+t)/360}function Dl(t){return (180-180/Math.PI*Math.log(Math.tan(Math.PI/4+t*Math.PI/360)))/360}function Ll(t,e){return t/Vl(e)}function Rl(t){return 360/Math.PI*Math.atan(Math.exp((180-360*t)*Math.PI/180))-90}var Ol=function(t,e,r){void 0===r&&(r=0),this.x=+t,this.y=+e,this.z=+r;};Ol.fromLngLat=function(t,e){void 0===e&&(e=0);var r=Pl.convert(t);return new Ol(Fl(r.lng),Dl(r.lat),Ll(e,r.lat))},Ol.prototype.toLngLat=function(){return new Pl(360*this.x-180,Rl(this.y))},Ol.prototype.toAltitude=function(){return this.z*Vl(Rl(this.y))},Ol.prototype.meterInMercatorCoordinateUnits=function(){return 1/Bl*(t=Rl(this.y),1/Math.cos(t*Math.PI/180));var t;};var Ul=function(t,e,r){this.z=t,this.x=e,this.y=r,this.key=Nl(0,t,t,e,r);};Ul.prototype.equals=function(t){return this.z===t.z&&this.x===t.x&&this.y===t.y},Ul.prototype.url=function(t,e){var r,n,i,a,o,s=(n=this.y,i=this.z,a=El(256*(r=this.x),256*(n=Math.pow(2,i)-n-1),i),o=El(256*(r+1),256*(n+1),i),a[0]+","+a[1]+","+o[0]+","+o[1]),u=function(t,e,r){for(var n,i="",a=t;a>0;a--)i+=(e&(n=1<this.canonical.z?new ql(t,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new ql(t,this.wrap,t,this.canonical.x>>e,this.canonical.y>>e)},ql.prototype.calculateScaledKey=function(t,e){var r=this.canonical.z-t;return t>this.canonical.z?Nl(this.wrap*+e,t,this.canonical.z,this.canonical.x,this.canonical.y):Nl(this.wrap*+e,t,t,this.canonical.x>>r,this.canonical.y>>r)},ql.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},ql.prototype.children=function(t){if(this.overscaledZ>=t)return [new ql(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 ql(e,this.wrap,e,r,n),new ql(e,this.wrap,e,r+1,n),new ql(e,this.wrap,e,r,n+1),new ql(e,this.wrap,e,r+1,n+1)]},ql.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)},Kl.prototype._unpackMapbox=function(t,e,r){return (256*t*256+256*e+r)/10-1e4},Kl.prototype._unpackTerrarium=function(t,e,r){return 256*t+e+r/256-32768},Kl.prototype.getPixels=function(){return new fo({width:this.stride,height:this.stride},new Uint8Array(this.data.buffer))},Kl.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,u=-r*this.dim,l=a;l=0&&p[3]>=0&&s.insert(o,p[0],p[1],p[2],p[3]);}},Hl.prototype.loadVTLayers=function(){return this.vtLayers||(this.vtLayers=new ds.VectorTile(new Ks(this.rawTileData)).layers,this.sourceLayerCoder=new Gl(this.vtLayers?Object.keys(this.vtLayers).sort():["_geojsonTileLayer"])),this.vtLayers},Hl.prototype.query=function(t,e,r,n){var a=this;this.loadVTLayers();for(var o=t.params||{},s=8192/t.tileSize/t.scale,u=rn(o.filter),l=t.queryGeometry,p=t.queryPadding*s,c=$l(l),h=this.grid.query(c.minX-p,c.minY-p,c.maxX+p,c.maxY+p),f=$l(t.cameraQueryGeometry),y=this.grid3D.query(f.minX-p,f.minY-p,f.maxX+p,f.maxY+p,(function(e,r,n,a){return function(t,e,r,n,a){for(var o=0,s=t;o=u.x&&a>=u.y)return !0}var l=[new i(e,r),new i(e,a),new i(n,a),new i(n,r)];if(t.length>2)for(var p=0,c=l;p=0)return !0;return !1}(a,c)){var h=this.sourceLayerCoder.decode(r),f=this.vtLayers[h].feature(n);if(i.filter(new ii(this.tileID.overscaledZ),f))for(var y=this.getId(f,h),d=0;dn)i=!1;else if(e)if(this.expirationTimeot&&(t.getActor().send("enforceCacheSizeLimit",at),pt=0);},t.clamp=u,t.clearTileCache=function(t){var e=self.caches.delete("mapbox-tiles");t&&e.catch(t).then((function(){return t()}));},t.clipLine=Uu,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=Os,t.config=L,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=Nr,t.createLayout=Ai,t.createStyleLayer=function(t){return "custom"===t.type?new bl(t):new wl[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],u=r[2];return t[0]=i*u-a*s,t[1]=a*o-n*u,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=je,t.offscreenCanvasSupported=ct,t.ortho=function(t,e,r,n,i,a,o){var s=1/(e-r),u=1/(n-i),l=1/(a-o);return t[0]=-2*s,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*u,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*l,t[11]=0,t[12]=(e+r)*s,t[13]=(i+n)*u,t[14]=(o+a)*l,t[15]=1,t},t.parseGlyphPBF=function(t){return new Ks(t).readFields(uu,[])},t.pbf=Ks,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,u=t.layers[0]._unevaluatedLayout._values,l={};if("composite"===t.textSizeData.kind){var p=t.textSizeData,c=p.maxZoom;l.compositeTextSizes=[u["text-size"].possiblyEvaluate(new ii(p.minZoom),o),u["text-size"].possiblyEvaluate(new ii(c),o)];}if("composite"===t.iconSizeData.kind){var h=t.iconSizeData,f=h.maxZoom;l.compositeIconSizes=[u["icon-size"].possiblyEvaluate(new ii(h.minZoom),o),u["icon-size"].possiblyEvaluate(new ii(f),o)];}l.layoutTextSize=u["text-size"].possiblyEvaluate(new ii(t.zoom+1),o),l.layoutIconSize=u["icon-size"].possiblyEvaluate(new ii(t.zoom+1),o),l.textMaxSize=u["text-size"].possiblyEvaluate(new ii(18));for(var y=24*s.get("text-line-height"),d="map"===s.get("text-rotation-alignment")&&"point"!==s.get("symbol-placement"),m=s.get("text-keep-upright"),v=s.get("text-size"),g=function(){var a=b[x],u=s.get("text-font").evaluate(a,{},o).join(","),p=v.evaluate(a,{},o),c=l.layoutTextSize.evaluate(a,{},o),h=l.layoutIconSize.evaluate(a,{},o),f={horizontal:{},vertical:void 0},g=a.text,_=[0,0];if(g){var A=g.toString(),S=24*s.get("text-letter-spacing").evaluate(a,{},o),k=function(t){for(var e=0,r=t;e=8192||c.y<0||c.y>=8192||function(t,e,r,n,i,a,o,s,u,l,p,c,h,f,y,d,m,v,g,x,b,_,A,S,k){var I,z,C,M,E,T=t.addToLineVertexArray(e,r),P=0,B=0,V=0,F=0,D=-1,L=-1,R={},O=la(""),U=0,j=0;if(void 0===s._unevaluatedLayout.getValue("text-radial-offset")?(U=(I=s.layout.get("text-offset").evaluate(b,{},S).map((function(t){return 24*t})))[0],j=I[1]):(U=24*s.layout.get("text-radial-offset").evaluate(b,{},S),j=Wu),t.allowVerticalPlacement&&n.vertical){var q=s.layout.get("text-rotate").evaluate(b,{},S)+90;M=new Zu(u,e,l,p,c,n.vertical,h,f,y,q),o&&(E=new Zu(u,e,l,p,c,o,m,v,y,q));}if(i){var N=s.layout.get("icon-rotate").evaluate(b,{}),K="none"!==s.layout.get("icon-text-fit"),G=ju(i,N,A,K),Z=o?ju(o,N,A,K):void 0;C=new Zu(u,e,l,p,c,i,m,v,!1,N),P=4*G.length;var X=t.iconSizeData,J=null;"source"===X.kind?(J=[128*s.layout.get("icon-size").evaluate(b,{})])[0]>32640&&w(t.layerIds[0]+': Value for "icon-size" is >= 255. Reduce your "icon-size".'):"composite"===X.kind&&((J=[128*_.compositeIconSizes[0].evaluate(b,{},S),128*_.compositeIconSizes[1].evaluate(b,{},S)])[0]>32640||J[1]>32640)&&w(t.layerIds[0]+': Value for "icon-size" is >= 255. Reduce your "icon-size".'),t.addSymbols(t.icon,G,J,x,g,b,!1,e,T.lineStartIndex,T.lineLength,-1,S),D=t.icon.placedSymbolArray.length-1,Z&&(B=4*Z.length,t.addSymbols(t.icon,Z,J,x,g,b,du.vertical,e,T.lineStartIndex,T.lineLength,-1,S),L=t.icon.placedSymbolArray.length-1);}for(var H in n.horizontal){var Y=n.horizontal[H];if(!z){O=la(Y.text);var $=s.layout.get("text-rotate").evaluate(b,{},S);z=new Zu(u,e,l,p,c,Y,h,f,y,$);}var W=1===Y.positionedLines.length;if(V+=el(t,e,Y,a,s,y,b,d,T,n.vertical?du.horizontal:du.horizontalOnly,W?Object.keys(n.horizontal):[H],R,D,_,S),W)break}n.vertical&&(F+=el(t,e,n.vertical,a,s,y,b,d,T,du.vertical,["vertical"],R,L,_,S));var Q=z?z.boxStartIndex:t.collisionBoxArray.length,tt=z?z.boxEndIndex:t.collisionBoxArray.length,et=M?M.boxStartIndex:t.collisionBoxArray.length,rt=M?M.boxEndIndex:t.collisionBoxArray.length,nt=C?C.boxStartIndex:t.collisionBoxArray.length,it=C?C.boxEndIndex:t.collisionBoxArray.length,at=E?E.boxStartIndex:t.collisionBoxArray.length,ot=E?E.boxEndIndex:t.collisionBoxArray.length,st=-1,ut=function(t,e){return t&&t.circleDiameter?Math.max(t.circleDiameter,e):e};st=ut(z,st),st=ut(M,st),st=ut(C,st);var lt=(st=ut(E,st))>-1?1:0;lt&&(st*=k/24),t.glyphOffsetArray.length>=cl.MAX_GLYPHS&&w("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,R.right>=0?R.right:-1,R.center>=0?R.center:-1,R.left>=0?R.left:-1,R.vertical||-1,D,L,O,Q,tt,et,rt,nt,it,at,ot,l,V,F,P,B,lt,0,h,U,j,st);}(t,c,s,r,n,i,h,t.layers[0],t.collisionBoxArray,e.index,e.sourceLayerIndex,t.index,v,_,k,u,x,A,I,y,e,a,l,p,o);};if("line"===z)for(var T=0,P=Uu(e.geometry,0,0,8192,8192);T1){var U=Ru(O,S,r.vertical||d,n,24,g);U&&E(O,U);}}else if("Polygon"===e.type)for(var j=0,q=Wo(e.geometry,0);j=T.maxzoom||"none"!==T.visibility&&(s(P,this.zoom,i),(g[T.id]=T.createBucket({index:h.bucketLayerIDs.length,layers:P,zoom:this.zoom,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:w,sourceID:this.source})).populate(S,v,this.tileID.canonical),h.bucketLayerIDs.push(P.map((function(e){return e.id}))));}}}var C=e.mapObject(v.glyphDependencies,(function(e){return Object.keys(e).map(Number)}));Object.keys(C).length?n.send("getGlyphs",{uid:this.uid,stacks:C},(function(e,t){c||(c=e,p=t,O.call(l));})):p={};var D=Object.keys(v.iconDependencies);D.length?n.send("getImages",{icons:D,source:this.source,tileID:this.tileID,type:"icons"},(function(e,t){c||(c=e,f=t,O.call(l));})):f={};var L=Object.keys(v.patternDependencies);function O(){if(c)return a(c);if(p&&f&&d){var t=new o(p),r=new e.ImageAtlas(f,d);for(var n in g){var l=g[n];l instanceof e.SymbolBucket?(s(l.layers,this.zoom,i),e.performSymbolLayout(l,p,t.positions,f,r.iconPositions,this.showCollisionBoxes,this.tileID.canonical)):l.hasPattern&&(l instanceof e.LineBucket||l instanceof e.FillBucket||l instanceof e.FillExtrusionBucket)&&(s(l.layers,this.zoom,i),l.addFeatures(v,this.tileID.canonical,r.patternPositions));}this.status="done",a(null,{buckets:e.values(g).filter((function(e){return !e.isEmpty()})),featureIndex:h,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:t.image,imageAtlas:r,glyphMap:this.returnDependencies?p:null,iconMap:this.returnDependencies?f:null,glyphPositions:this.returnDependencies?t.positions:null});}}L.length?n.send("getImages",{icons:L,source:this.source,tileID:this.tileID,type:"patterns"},(function(e,t){c||(c=e,d=t,O.call(l));})):d={},O.call(this);};var l=function(e,t,r,i){this.actor=e,this.layerIndex=t,this.availableImages=r,this.loadVectorData=i||a,this.loading={},this.loaded={};};l.prototype.loadTile=function(t,r){var i=this,o=t.uid;this.loading||(this.loading={});var s=!!(t&&t.request&&t.request.collectResourceTiming)&&new e.RequestPerformance(t.request),a=this.loading[o]=new n(t);a.abort=this.loadVectorData(t,(function(t,n){if(delete i.loading[o],t||!n)return a.status="done",i.loaded[o]=a,r(t);var l=n.rawData,u={};n.expires&&(u.expires=n.expires),n.cacheControl&&(u.cacheControl=n.cacheControl);var h={};if(s){var c=s.finish();c&&(h.resourceTiming=JSON.parse(JSON.stringify(c)));}a.vectorTile=n.vectorTile,a.parse(n.vectorTile,i.layerIndex,i.availableImages,i.actor,(function(t,i){if(t||!i)return r(t);r(null,e.extend({rawTileData:l.slice(0)},i,u,h));})),i.loaded=i.loaded||{},i.loaded[o]=a;}));},l.prototype.reloadTile=function(e,t){var r=this,i=this.loaded,o=e.uid,n=this;if(i&&i[o]){var s=i[o];s.showCollisionBoxes=e.showCollisionBoxes;var a=function(e,i){var o=s.reloadCallback;o&&(delete s.reloadCallback,s.parse(s.vectorTile,n.layerIndex,r.availableImages,n.actor,o)),t(e,i);};"parsing"===s.status?s.reloadCallback=a:"done"===s.status&&(s.vectorTile?s.parse(s.vectorTile,this.layerIndex,this.availableImages,this.actor,a):a());}},l.prototype.abortTile=function(e,t){var r=this.loading,i=e.uid;r&&r[i]&&r[i].abort&&(r[i].abort(),delete r[i]),t();},l.prototype.removeTile=function(e,t){var r=this.loaded,i=e.uid;r&&r[i]&&delete r[i],t();};var u=e.window.ImageBitmap,h=function(){this.loaded={};};function c(e,t){if(0!==e.length){p(e[0],t);for(var r=1;r=0!=!!t&&e.reverse();}h.prototype.loadTile=function(t,r){var i=t.uid,o=t.encoding,n=t.rawImageData,s=u&&n instanceof u?this.getImageData(n):n,a=new e.DEMData(i,s,o);this.loaded=this.loaded||{},this.loaded[i]=a,r(null,a);},h.prototype.getImageData=function(t){this.offscreenCanvas&&this.offscreenCanvasContext||(this.offscreenCanvas=new OffscreenCanvas(t.width,t.height),this.offscreenCanvasContext=this.offscreenCanvas.getContext("2d")),this.offscreenCanvas.width=t.width,this.offscreenCanvas.height=t.height,this.offscreenCanvasContext.drawImage(t,0,0,t.width,t.height);var r=this.offscreenCanvasContext.getImageData(-1,-1,t.width+2,t.height+2);return this.offscreenCanvasContext.clearRect(0,0,this.offscreenCanvas.width,this.offscreenCanvas.height),new e.RGBAImage({width:r.width,height:r.height},r.data)},h.prototype.removeTile=function(e){var t=this.loaded,r=e.uid;t&&t[r]&&delete t[r];};var f=e.vectorTile.VectorTileFeature.prototype.toGeoJSON,d=function(t){this._feature=t,this.extent=e.EXTENT,this.type=t.type,this.properties=t.tags,"id"in t&&!isNaN(t.id)&&(this.id=parseInt(t.id,10));};d.prototype.loadGeometry=function(){if(1===this._feature.type){for(var t=[],r=0,i=this._feature.geometry;r>31}function T(e,t){for(var r=e.loadGeometry(),i=e.type,o=0,n=0,s=r.length,a=0;a>1;!function e(t,r,i,o,n,s){for(;n>o;){if(n-o>600){var a=n-o+1,l=i-o+1,u=Math.log(a),h=.5*Math.exp(2*u/3),c=.5*Math.sqrt(u*h*(a-h)/a)*(l-a/2<0?-1:1);e(t,r,i,Math.max(o,Math.floor(i-l*h/a+c)),Math.min(n,Math.floor(i+(a-l)*h/a+c)),s);}var p=r[2*i+s],f=o,d=n;for(D(t,r,o,i),r[2*n+s]>p&&D(t,r,o,n);fp;)d--;}r[2*o+s]===p?D(t,r,o,d):D(t,r,++d,n),d<=i&&(o=d+1),i<=d&&(n=d-1);}}(t,r,a,o,n,s%2),e(t,r,i,o,a-1,s+1),e(t,r,i,a+1,n,s+1);}}(s,a,i,0,s.length-1,0);};F.prototype.range=function(e,t,r,i){return function(e,t,r,i,o,n,s){for(var a,l,u=[0,e.length-1,0],h=[];u.length;){var c=u.pop(),p=u.pop(),f=u.pop();if(p-f<=s)for(var d=f;d<=p;d++)l=t[2*d+1],(a=t[2*d])>=r&&a<=o&&l>=i&&l<=n&&h.push(e[d]);else {var g=Math.floor((f+p)/2);l=t[2*g+1],(a=t[2*g])>=r&&a<=o&&l>=i&&l<=n&&h.push(e[g]);var v=(c+1)%2;(0===c?r<=a:i<=l)&&(u.push(f),u.push(g-1),u.push(v)),(0===c?o>=a:n>=l)&&(u.push(g+1),u.push(p),u.push(v));}}return h}(this.ids,this.coords,e,t,r,i,this.nodeSize)},F.prototype.within=function(e,t,r){return function(e,t,r,i,o,n){for(var s=[0,e.length-1,0],a=[],l=o*o;s.length;){var u=s.pop(),h=s.pop(),c=s.pop();if(h-c<=n)for(var p=c;p<=h;p++)O(t[2*p],t[2*p+1],r,i)<=l&&a.push(e[p]);else {var f=Math.floor((c+h)/2),d=t[2*f],g=t[2*f+1];O(d,g,r,i)<=l&&a.push(e[f]);var v=(u+1)%2;(0===u?r-o<=d:i-o<=g)&&(s.push(c),s.push(f-1),s.push(v)),(0===u?r+o>=d:i+o>=g)&&(s.push(f+1),s.push(h),s.push(v));}}return a}(this.ids,this.coords,e,t,r,this.nodeSize)};var N={minZoom:0,maxZoom:16,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:function(e){return e}},J=function(e){this.options=V(Object.create(N),e),this.trees=new Array(this.options.maxZoom+1);};function Z(e,t,r,i,o){return {x:e,y:t,zoom:1/0,id:r,parentId:-1,numPoints:i,properties:o}}function A(e,t){var r=e.geometry.coordinates,i=r[1];return {x:Y(r[0]),y:j(i),zoom:1/0,index:t,parentId:-1}}function B(e){return {type:"Feature",id:e.id,properties:G(e),geometry:{type:"Point",coordinates:[(i=e.x,360*(i-.5)),(t=e.y,r=(180-360*t)*Math.PI/180,360*Math.atan(Math.exp(r))/Math.PI-90)]}};var t,r,i;}function G(e){var t=e.numPoints,r=t>=1e4?Math.round(t/1e3)+"k":t>=1e3?Math.round(t/100)/10+"k":t;return V(V({},e.properties),{cluster:!0,cluster_id:e.id,point_count:t,point_count_abbreviated:r})}function Y(e){return e/360+.5}function j(e){var t=Math.sin(e*Math.PI/180),r=.5-.25*Math.log((1+t)/(1-t))/Math.PI;return r<0?0:r>1?1:r}function V(e,t){for(var r in t)e[r]=t[r];return e}function X(e){return e.x}function W(e){return e.y}function R(e,t,r,i,o,n){var s=o-r,a=n-i;if(0!==s||0!==a){var l=((e-r)*s+(t-i)*a)/(s*s+a*a);l>1?(r=o,i=n):l>0&&(r+=s*l,i+=a*l);}return (s=e-r)*s+(a=t-i)*a}function q(e,t,r,i){var o={id:void 0===e?null:e,type:t,geometry:r,tags:i,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(e){var t=e.geometry,r=e.type;if("Point"===r||"MultiPoint"===r||"LineString"===r)U(e,t);else if("Polygon"===r||"MultiLineString"===r)for(var i=0;i0&&(s+=i?(o*u-l*n)/2:Math.sqrt(Math.pow(l-o,2)+Math.pow(u-n,2))),o=l,n=u;}var h=t.length-3;t[2]=1,function e(t,r,i,o){for(var n,s=o,a=i-r>>1,l=i-r,u=t[r],h=t[r+1],c=t[i],p=t[i+1],f=r+3;fs)n=f,s=d;else if(d===s){var g=Math.abs(f-a);go&&(n-r>3&&e(t,r,n,o),t[n+2]=s,i-n>3&&e(t,n,i,o));}(t,0,h,r),t[h+2]=1,t.size=Math.abs(s),t.start=0,t.end=t.size;}function Q(e,t,r,i){for(var o=0;o1?1:r}function re(e,t,r,i,o,n,s,a){if(i/=t,n>=(r/=t)&&s=i)return null;for(var l=[],u=0;u=r&&d=i)){var g=[];if("Point"===p||"MultiPoint"===p)ie(c,g,r,i,o);else if("LineString"===p)oe(c,g,r,i,o,!1,a.lineMetrics);else if("MultiLineString"===p)se(c,g,r,i,o,!1);else if("Polygon"===p)se(c,g,r,i,o,!0);else if("MultiPolygon"===p)for(var v=0;v=r&&s<=i&&(t.push(e[n]),t.push(e[n+1]),t.push(e[n+2]));}}function oe(e,t,r,i,o,n,s){for(var a,l,u=ne(e),h=0===o?le:ue,c=e.start,p=0;pr&&(l=h(u,f,d,v,m,r),s&&(u.start=c+a*l)):y>i?x=r&&(l=h(u,f,d,v,m,r),w=!0),x>i&&y<=i&&(l=h(u,f,d,v,m,i),w=!0),!n&&w&&(s&&(u.end=c+a*l),t.push(u),u=ne(e)),s&&(c+=a);}var S=e.length-3;f=e[S],d=e[S+1],g=e[S+2],(y=0===o?f:d)>=r&&y<=i&&ae(u,f,d,g),S=u.length-3,n&&S>=3&&(u[S]!==u[0]||u[S+1]!==u[1])&&ae(u,u[0],u[1],u[2]),u.length&&t.push(u);}function ne(e){var t=[];return t.size=e.size,t.start=e.start,t.end=e.end,t}function se(e,t,r,i,o,n){for(var s=0;ss.maxX&&(s.maxX=h),c>s.maxY&&(s.maxY=c);}return s}function ge(e,t,r,i){var o=t.geometry,n=t.type,s=[];if("Point"===n||"MultiPoint"===n)for(var a=0;a0&&t.size<(o?s:i))r.numPoints+=t.length/3;else {for(var a=[],l=0;ls)&&(r.numSimplified++,a.push(t[l]),a.push(t[l+1])),r.numPoints++;o&&function(e,t){for(var r=0,i=0,o=e.length,n=o-2;i0===t)for(i=0,o=e.length;i24)throw new Error("maxZoom should be in the 0-24 range");if(t.promoteId&&t.generateId)throw new Error("promoteId and generateId cannot be used together.");var i=function(e,t){var r=[];if("FeatureCollection"===e.type)for(var i=0;i=i;u--){var h=+Date.now();a=this._cluster(a,u),this.trees[u]=new F(a,X,W,n,Float32Array),r&&console.log("z%d: %d clusters in %dms",u,a.length,+Date.now()-h);}return r&&console.timeEnd("total time"),this},J.prototype.getClusters=function(e,t){var r=((e[0]+180)%360+360)%360-180,i=Math.max(-90,Math.min(90,e[1])),o=180===e[2]?180:((e[2]+180)%360+360)%360-180,n=Math.max(-90,Math.min(90,e[3]));if(e[2]-e[0]>=360)r=-180,o=180;else if(r>o){var s=this.getClusters([r,i,180,n],t),a=this.getClusters([-180,i,o,n],t);return s.concat(a)}for(var l=this.trees[this._limitZoom(t)],u=[],h=0,c=l.range(Y(r),j(n),Y(o),j(i));h1?this._map(a,!0):null,d=(s<<5)+(t+1)+this.points.length,g=0,v=u;g>5},J.prototype._getOriginZoom=function(e){return (e-this.points.length)%32},J.prototype._map=function(e,t){if(e.numPoints)return t?V({},e.properties):e.properties;var r=this.points[e.index].properties,i=this.options.map(r);return t&&i===r?V({},i):i},me.prototype.options={maxZoom:14,indexMaxZoom:5,indexMaxPoints:1e5,tolerance:3,extent:4096,buffer:64,lineMetrics:!1,promoteId:null,generateId:!1,debug:0},me.prototype.splitTile=function(e,t,r,i,o,n,s){for(var a=[e,t,r,i],l=this.options,u=l.debug;a.length;){i=a.pop(),r=a.pop(),t=a.pop(),e=a.pop();var h=1<1&&console.time("creation"),p=this.tiles[c]=de(e,t,r,i,l),this.tileCoords.push({z:t,x:r,y:i}),u)){u>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",t,r,i,p.numFeatures,p.numPoints,p.numSimplified),console.timeEnd("creation"));var f="z"+t;this.stats[f]=(this.stats[f]||0)+1,this.total++;}if(p.source=e,o){if(t===l.maxZoom||t===o)continue;var d=1<1&&console.time("clipping");var g,v,m,y,x,w,S=.5*l.buffer/l.extent,I=.5-S,M=.5+S,b=1+S;g=v=m=y=null,x=re(e,h,r-S,r+M,0,p.minX,p.maxX,l),w=re(e,h,r+I,r+b,0,p.minX,p.maxX,l),e=null,x&&(g=re(x,h,i-S,i+M,1,p.minY,p.maxY,l),v=re(x,h,i+I,i+b,1,p.minY,p.maxY,l),x=null),w&&(m=re(w,h,i-S,i+M,1,p.minY,p.maxY,l),y=re(w,h,i+I,i+b,1,p.minY,p.maxY,l),w=null),u>1&&console.timeEnd("clipping"),a.push(g||[],t+1,2*r,2*i),a.push(v||[],t+1,2*r,2*i+1),a.push(m||[],t+1,2*r+1,2*i),a.push(y||[],t+1,2*r+1,2*i+1);}}},me.prototype.getTile=function(e,t,r){var i=this.options,o=i.extent,n=i.debug;if(e<0||e>24)return null;var s=1<1&&console.log("drilling down to z%d-%d-%d",e,t,r);for(var l,u=e,h=t,c=r;!l&&u>0;)u--,h=Math.floor(h/2),c=Math.floor(c/2),l=this.tiles[ye(u,h,c)];return l&&l.source?(n>1&&console.log("found parent tile z%d-%d-%d",u,h,c),n>1&&console.time("drilling down"),this.splitTile(l.source,u,h,c,e,t,r),n>1&&console.timeEnd("drilling down"),this.tiles[a]?pe(this.tiles[a],o):null):null};var we=function(t){function r(e,r,i,o){t.call(this,e,r,i,xe),o&&(this.loadGeoJSON=o);}return t&&(r.__proto__=t),(r.prototype=Object.create(t&&t.prototype)).constructor=r,r.prototype.loadData=function(e,t){this._pendingCallback&&this._pendingCallback(null,{abandoned:!0}),this._pendingCallback=t,this._pendingLoadDataParams=e,this._state&&"Idle"!==this._state?this._state="NeedsLoadData":(this._state="Coalescing",this._loadData());},r.prototype._loadData=function(){var t=this;if(this._pendingCallback&&this._pendingLoadDataParams){var r=this._pendingCallback,i=this._pendingLoadDataParams;delete this._pendingCallback,delete this._pendingLoadDataParams;var o=!!(i&&i.request&&i.request.collectResourceTiming)&&new e.RequestPerformance(i.request);this.loadGeoJSON(i,(function(n,s){if(n||!s)return r(n);if("object"!=typeof s)return r(new Error("Input data given to '"+i.source+"' is not a valid GeoJSON object."));!function e(t,r){var i,o=t&&t.type;if("FeatureCollection"===o)for(i=0;i=0?0:e.button},i.remove=function(t){t.parentNode&&t.parentNode.removeChild(t);};var p=function(e){function i(){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&&(i.__proto__=e),(i.prototype=Object.create(e&&e.prototype)).constructor=i,i.prototype.isLoaded=function(){return this.loaded},i.prototype.setLoaded=function(t){if(this.loaded!==t&&(this.loaded=t,t)){for(var e=0,i=this.requestors;e=0?1.2:1));}function g(t,e,i,o,r,a,n){for(var s=0;s65535)e(new Error("glyphs > 65535 not supported"));else if(a.ranges[s])e(null,{stack:i,id:r,glyph:n});else {var l=a.requests[s];l||(l=a.requests[s]=[],y.loadGlyphRange(i,s,o.url,o.requestManager,(function(t,e){if(e){for(var i in e)o._doesCharSupportLocalGlyph(+i)||(a.glyphs[+i]=e[+i]);a.ranges[s]=!0;}for(var r=0,n=l;r1&&(s=t[++n]);var c=Math.abs(l-s.left),u=Math.abs(l-s.right),h=Math.min(c,u),p=void 0,d=r/i*(o+1);if(s.isDash){var _=o-Math.abs(d);p=Math.sqrt(h*h+_*_);}else p=o-Math.sqrt(h*h+d*d);this.data[a+l]=Math.max(0,Math.min(255,p+128));}},T.prototype.addRegularDash=function(t){for(var e=t.length-1;e>=0;--e){var i=t[e],o=t[e+1];i.zeroLength?t.splice(e,1):o&&o.isDash===i.isDash&&(o.left=i.left,t.splice(e,1));}var r=t[0],a=t[t.length-1];r.isDash===a.isDash&&(r.left=a.left-this.width,a.right=r.right+this.width);for(var n=this.width*this.nextRow,s=0,l=t[s],c=0;c1&&(l=t[++s]);var u=Math.abs(c-l.left),h=Math.abs(c-l.right),p=Math.min(u,h);this.data[n+c]=Math.max(0,Math.min(255,(l.isDash?p:-p)+128));}},T.prototype.addDash=function(e,i){var o=i?7:0,r=2*o+1;if(this.nextRow+r>this.height)return t.warnOnce("LineAtlas out of space"),null;for(var a=0,n=0;n=o&&e.x=r&&e.y0&&(l[new t.OverscaledTileID(e.overscaledZ,a,i.z,r,i.y-1).key]={backfilled:!1},l[new t.OverscaledTileID(e.overscaledZ,e.wrap,i.z,i.x,i.y-1).key]={backfilled:!1},l[new t.OverscaledTileID(e.overscaledZ,s,i.z,n,i.y-1).key]={backfilled:!1}),i.y+10&&(o.resourceTiming=e._resourceTiming,e._resourceTiming=[]),e.fire(new t.Event("data",o));}}));},i.prototype.onAdd=function(t){this.map=t,this.load();},i.prototype.setData=function(e){var i=this;return this._data=e,this.fire(new t.Event("dataloading",{dataType:"source"})),this._updateWorkerData((function(e){if(e)i.fire(new t.ErrorEvent(e));else {var o={dataType:"source",sourceDataType:"content"};i._collectResourceTiming&&i._resourceTiming&&i._resourceTiming.length>0&&(o.resourceTiming=i._resourceTiming,i._resourceTiming=[]),i.fire(new t.Event("data",o));}})),this},i.prototype.getClusterExpansionZoom=function(t,e){return this.actor.send("geojson.getClusterExpansionZoom",{clusterId:t,source:this.id},e),this},i.prototype.getClusterChildren=function(t,e){return this.actor.send("geojson.getClusterChildren",{clusterId:t,source:this.id},e),this},i.prototype.getClusterLeaves=function(t,e,i,o){return this.actor.send("geojson.getClusterLeaves",{source:this.id,clusterId:t,limit:e,offset:i},o),this},i.prototype._updateWorkerData=function(e){var i=this;this._loaded=!1;var o=t.extend({},this.workerOptions),r=this._data;"string"==typeof r?(o.request=this.map._requestManager.transformRequest(t.browser.resolveURL(r),t.ResourceType.Source),o.request.collectResourceTiming=this._collectResourceTiming):o.data=JSON.stringify(r),this.actor.send(this.type+".loadData",o,(function(t,r){i._removed||r&&r.abandoned||(i._loaded=!0,r&&r.resourceTiming&&r.resourceTiming[i.id]&&(i._resourceTiming=r.resourceTiming[i.id].slice(0)),i.actor.send(i.type+".coalesce",{source:o.source},null),e(t));}));},i.prototype.loaded=function(){return this._loaded},i.prototype.loadTile=function(e,i){var o=this,r=e.actor?"reloadTile":"loadTile";e.actor=this.actor,e.request=this.actor.send(r,{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?i(null):t?i(t):(e.loadVectorData(a,o.map.painter,"reloadTile"===r),i(null))}));},i.prototype.abortTile=function(t){t.request&&(t.request.cancel(),delete t.request),t.aborted=!0;},i.prototype.unloadTile=function(t){t.unloadVectorData(),this.actor.send("removeTile",{uid:t.uid,type:this.type,source:this.id});},i.prototype.onRemove=function(){this._removed=!0,this.actor.send("removeSource",{type:this.type,source:this.id});},i.prototype.serialize=function(){return t.extend({},this._options,{type:this.type,data:this._data})},i.prototype.hasTransition=function(){return !1},i}(t.Evented),M=t.createLayout([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]),L=function(e){function i(t,i,o,r){e.call(this),this.id=t,this.dispatcher=o,this.coordinates=i.coordinates,this.type="image",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(r),this.options=i;}return e&&(i.__proto__=e),(i.prototype=Object.create(e&&e.prototype)).constructor=i,i.prototype.load=function(e,i){var o=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(r,a){o._loaded=!0,r?o.fire(new t.ErrorEvent(r)):a&&(o.image=a,e&&(o.coordinates=e),i&&i(),o._finishLoading());}));},i.prototype.loaded=function(){return this._loaded},i.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},i.prototype._finishLoading=function(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new t.Event("data",{dataType:"source",sourceDataType:"metadata"})));},i.prototype.onAdd=function(t){this.map=t,this.load();},i.prototype.setCoordinates=function(e){var i=this;this.coordinates=e;var o=e.map(t.MercatorCoordinate.fromLngLat);this.tileID=function(e){for(var i=1/0,o=1/0,r=-1/0,a=-1/0,n=0,s=e;ni.end(0)?this.fire(new t.ErrorEvent(new t.ValidationError("sources."+this.id,null,"Playback for this video can be set only between the "+i.start(0)+" and "+i.end(0)+"-second mark."))):this.video.currentTime=e;}},i.prototype.getVideo=function(){return this.video},i.prototype.onAdd=function(t){this.map||(this.map=t,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)));},i.prototype.prepare=function(){if(!(0===Object.keys(this.tiles).length||this.video.readyState<2)){var e=this.map.painter.context,i=e.gl;for(var o in this.boundsBuffer||(this.boundsBuffer=e.createVertexBuffer(this._boundsArray,M.members)),this.boundsSegments||(this.boundsSegments=t.SegmentVector.simpleSegment(0,0,4,2)),this.texture?this.video.paused||(this.texture.bind(i.LINEAR,i.CLAMP_TO_EDGE),i.texSubImage2D(i.TEXTURE_2D,0,0,0,i.RGBA,i.UNSIGNED_BYTE,this.video)):(this.texture=new t.Texture(e,this.video,i.RGBA),this.texture.bind(i.LINEAR,i.CLAMP_TO_EDGE)),this.tiles){var r=this.tiles[o];"loaded"!==r.state&&(r.state="loaded",r.texture=this.texture);}}},i.prototype.serialize=function(){return {type:"video",urls:this.urls,coordinates:this.coordinates}},i.prototype.hasTransition=function(){return this.video&&!this.video.paused},i}(L),R=function(e){function i(i,o,r,a){e.call(this,i,o,r,a),o.coordinates?Array.isArray(o.coordinates)&&4===o.coordinates.length&&!o.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."+i,null,'"coordinates" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new t.ErrorEvent(new t.ValidationError("sources."+i,null,'missing required property "coordinates"'))),o.animate&&"boolean"!=typeof o.animate&&this.fire(new t.ErrorEvent(new t.ValidationError("sources."+i,null,'optional "animate" property must be a boolean value'))),o.canvas?"string"==typeof o.canvas||o.canvas instanceof t.window.HTMLCanvasElement||this.fire(new t.ErrorEvent(new t.ValidationError("sources."+i,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."+i,null,'missing required property "canvas"'))),this.options=o,this.animate=void 0===o.animate||o.animate;}return e&&(i.__proto__=e),(i.prototype=Object.create(e&&e.prototype)).constructor=i,i.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());},i.prototype.getCanvas=function(){return this.canvas},i.prototype.onAdd=function(t){this.map=t,this.load(),this.canvas&&this.animate&&this.play();},i.prototype.onRemove=function(){this.pause();},i.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 i=this.map.painter.context,o=i.gl;for(var r in this.boundsBuffer||(this.boundsBuffer=i.createVertexBuffer(this._boundsArray,M.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(i,this.canvas,o.RGBA,{premultiply:!0}),this.tiles){var a=this.tiles[r];"loaded"!==a.state&&(a.state="loaded",a.texture=this.texture);}}},i.prototype.serialize=function(){return {type:"canvas",coordinates:this.coordinates}},i.prototype.hasTransition=function(){return this._playing},i.prototype._hasInvalidDimensions=function(){for(var t=0,e=[this.canvas.width,this.canvas.height];tthis.max){var n=this._getAndRemoveByKey(this.order[0]);n&&this.onRemove(n);}return this},U.prototype.has=function(t){return t.wrapped().key in this.data},U.prototype.getAndRemove=function(t){return this.has(t)?this._getAndRemoveByKey(t.wrapped().key):null},U.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},U.prototype.getByKey=function(t){var e=this.data[t];return e?e[0].value:null},U.prototype.get=function(t){return this.has(t)?this.data[t.wrapped().key][0].value:null},U.prototype.remove=function(t,e){if(!this.has(t))return this;var i=t.wrapped().key,o=void 0===e?0:this.data[i].indexOf(e),r=this.data[i][o];return this.data[i].splice(o,1),r.timeout&&clearTimeout(r.timeout),0===this.data[i].length&&delete this.data[i],this.onRemove(r.value),this.order.splice(this.order.indexOf(i),1),this},U.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},U.prototype.filter=function(t){var e=[];for(var i in this.data)for(var o=0,r=this.data[i];o1||(Math.abs(i)>1&&(1===Math.abs(i+r)?i+=r:1===Math.abs(i-r)&&(i-=r)),e.dem&&t.dem&&(t.dem.backfillBorder(e.dem,i,o),t.neighboringTiles&&t.neighboringTiles[a]&&(t.neighboringTiles[a].backfilled=!0)));}},i.prototype.getTile=function(t){return this.getTileByID(t.key)},i.prototype.getTileByID=function(t){return this._tiles[t]},i.prototype._retainLoadedChildren=function(t,e,i,o){for(var r in this._tiles){var a=this._tiles[r];if(!(o[r]||!a.hasData()||a.tileID.overscaledZ<=e||a.tileID.overscaledZ>i)){for(var n=a.tileID;a&&a.tileID.overscaledZ>e+1;){var s=a.tileID.scaledTo(a.tileID.overscaledZ-1);(a=this._tiles[s.key])&&a.hasData()&&(n=s);}for(var l=n;l.overscaledZ>e;)if(t[(l=l.scaledTo(l.overscaledZ-1)).key]){o[n.key]=n;break}}}},i.prototype.findLoadedParent=function(t,e){if(t.key in this._loadedParentTiles){var i=this._loadedParentTiles[t.key];return i&&i.tileID.overscaledZ>=e?i:null}for(var o=t.overscaledZ-1;o>=e;o--){var r=t.scaledTo(o),a=this._getLoadedTile(r);if(a)return a}},i.prototype._getLoadedTile=function(t){var e=this._tiles[t.key];return e&&e.hasData()?e:this._cache.getByKey(t.wrapped().key)},i.prototype.updateCacheSize=function(t){var e=Math.ceil(t.width/this._source.tileSize)+1,i=Math.ceil(t.height/this._source.tileSize)+1,o=Math.floor(e*i*5),r="number"==typeof this._maxTileCacheSize?Math.min(this._maxTileCacheSize,o):o;this._cache.setMaxSize(r);},i.prototype.handleWrapJump=function(t){var e=Math.round((t-(void 0===this._prevLng?t:this._prevLng))/360);if(this._prevLng=t,e){var i={};for(var o in this._tiles){var r=this._tiles[o];r.tileID=r.tileID.unwrapTo(r.tileID.wrap+e),i[r.tileID.key]=r;}for(var a in this._tiles=i,this._timers)clearTimeout(this._timers[a]),delete this._timers[a];for(var n in this._tiles)this._setTileReloadTimer(n,this._tiles[n]);}},i.prototype.update=function(e){var o=this;if(this.transform=e,this._sourceLoaded&&!this._paused){var r;this.updateCacheSize(e),this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used?this._source.tileID?r=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)})):(r=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&&(r=r.filter((function(t){return o._source.hasTile(t)})))):r=[];var a=e.coveringZoomLevel(this._source),n=Math.max(a-i.maxOverzooming,this._source.minzoom),s=Math.max(a+i.maxUnderzooming,this._source.minzoom),l=this._updateRetainedTiles(r,a);if(Lt(this._source.type)){for(var c={},u={},h=0,p=Object.keys(l);hthis._source.maxzoom){var m=_.children(this._source.maxzoom)[0],g=this.getTile(m);if(g&&g.hasData()){o[m.key]=m;continue}}else {var v=_.children(this._source.maxzoom);if(o[v[0].key]&&o[v[1].key]&&o[v[2].key]&&o[v[3].key])continue}for(var y=f.wasRequested(),x=_.overscaledZ-1;x>=a;--x){var b=_.scaledTo(x);if(r[b.key])break;if(r[b.key]=!0,!(f=this.getTile(b))&&y&&(f=this._addTile(b)),f&&(o[b.key]=b,y=f.wasRequested(),f.hasData()))break}}}return o},i.prototype._updateLoadedParentTileCache=function(){for(var t in this._loadedParentTiles={},this._tiles){for(var e=[],i=void 0,o=this._tiles[t].tileID;o.overscaledZ>0;){if(o.key in this._loadedParentTiles){i=this._loadedParentTiles[o.key];break}e.push(o.key);var r=o.scaledTo(o.overscaledZ-1);if(i=this._getLoadedTile(r))break;o=r;}for(var a=0,n=e;a0||(e.hasData()&&"reloading"!==e.state?this._cache.add(e.tileID,e,e.getExpiryTimeout()):(e.aborted=!0,this._abortTile(e),this._unloadTile(e))));},i.prototype.clearTiles=function(){for(var t in this._shouldReloadOnResume=!1,this._paused=!1,this._tiles)this._removeTile(t);this._cache.reset();},i.prototype.tilesIn=function(e,i,o){var r=this,a=[],n=this.transform;if(!n)return a;for(var s=o?n.getCameraQueryGeometry(e):e,l=e.map((function(t){return n.pointCoordinate(t)})),c=s.map((function(t){return n.pointCoordinate(t)})),u=this.getIds(),h=1/0,p=1/0,d=-1/0,_=-1/0,f=0,m=c;f=0&&g[1].y+m>=0){var v=l.map((function(t){return s.getTilePoint(t)})),y=c.map((function(t){return s.getTilePoint(t)}));a.push({tile:o,tileID:s,queryGeometry:v,cameraQueryGeometry:y,scale:f});}}},y=0;y=t.browser.now())return !0}return !1},i.prototype.setFeatureState=function(t,e,i){this._state.updateState(t=t||"_geojsonTileLayer",e,i);},i.prototype.removeFeatureState=function(t,e,i){this._state.removeFeatureState(t=t||"_geojsonTileLayer",e,i);},i.prototype.getFeatureState=function(t,e){return this._state.getState(t=t||"_geojsonTileLayer",e)},i.prototype.setDependencies=function(t,e,i){var o=this._tiles[t];o&&o.setDependencies(e,i);},i.prototype.reloadTilesForDependencies=function(t,e){for(var i in this._tiles)this._tiles[i].hasDependency(t,e)&&this._reloadTile(i,"reloading");this._cache.filter((function(i){return !i.hasDependency(t,e)}));},i}(t.Evented);function Mt(t,e){var i=Math.abs(2*t.wrap)-+(t.wrap<0),o=Math.abs(2*e.wrap)-+(e.wrap<0);return t.overscaledZ-e.overscaledZ||o-i||e.canonical.y-t.canonical.y||e.canonical.x-t.canonical.x}function Lt(t){return "raster"===t||"image"===t||"video"===t}function At(){return new t.window.Worker(Wr.workerUrl)}Dt.maxOverzooming=10,Dt.maxUnderzooming=3;var Rt="mapboxgl_preloaded_worker_pool",kt=function(){this.active={};};kt.prototype.acquire=function(t){if(!this.workers)for(this.workers=[];this.workers.length0?(r-n)/s:0;return this.points[a].mult(1-l).add(this.points[i].mult(l))};var Yt=function(t,e,i){var o=this.boxCells=[],r=this.circleCells=[];this.xCellCount=Math.ceil(t/i),this.yCellCount=Math.ceil(e/i);for(var a=0;a=-e[0]&&i<=e[0]&&o>=-e[1]&&o<=e[1]}function ie(e,i,o,r,a,n,s,l){var c=r?e.textSizeData:e.iconSizeData,u=t.evaluateSizeForZoom(c,o.transform.zoom),h=[256/o.width*2+1,256/o.height*2+1],p=r?e.text.dynamicLayoutVertexArray:e.icon.dynamicLayoutVertexArray;p.clear();for(var d=e.lineVertexArray,_=r?e.text.placedSymbolArray:e.icon.placedSymbolArray,f=o.transform.width/o.transform.height,m=!1,g=0;g<_.length;g++){var v=_.get(g);if(v.hidden||v.writingMode===t.WritingMode.vertical&&!m)ce(v.numGlyphs,p);else {m=!1;var y=[v.anchorX,v.anchorY,0,1];if(t.transformMat4(y,y,i),ee(y,h)){var x=te(o.transform.cameraToCenterDistance,y[3]),b=t.evaluateSizeForFeature(c,u,v),w=s?b/x:b*x,T=new t.Point(v.anchorX,v.anchorY),E=$t(T,a).point,I={},P=ae(v,w,!1,l,i,a,n,e.glyphOffsetArray,d,p,E,T,I,f);m=P.useVertical,(P.notEnoughRoom||m||P.needsFlipping&&ae(v,w,!0,l,i,a,n,e.glyphOffsetArray,d,p,E,T,I,f).notEnoughRoom)&&ce(v.numGlyphs,p);}else ce(v.numGlyphs,p);}}r?e.text.dynamicLayoutVertexBuffer.updateData(p):e.icon.dynamicLayoutVertexBuffer.updateData(p);}function oe(t,e,i,o,r,a,n,s,l,c,u){var h=s.glyphStartIndex+s.numGlyphs,p=s.lineStartIndex,d=s.lineStartIndex+s.lineLength,_=e.getoffsetX(s.glyphStartIndex),f=e.getoffsetX(h-1),m=se(t*_,i,o,r,a,n,s.segment,p,d,l,c,u);if(!m)return null;var g=se(t*f,i,o,r,a,n,s.segment,p,d,l,c,u);return g?{first:m,last:g}:null}function re(e,i,o,r){return e===t.WritingMode.horizontal&&Math.abs(o.y-i.y)>Math.abs(o.x-i.x)*r?{useVertical:!0}:(e===t.WritingMode.vertical?i.yo.x)?{needsFlipping:!0}:null}function ae(e,i,o,r,a,n,s,l,c,u,h,p,d,_){var f,m=i/24,g=e.lineOffsetX*m,v=e.lineOffsetY*m;if(e.numGlyphs>1){var y=e.glyphStartIndex+e.numGlyphs,x=e.lineStartIndex,b=e.lineStartIndex+e.lineLength,w=oe(m,l,g,v,o,h,p,e,c,n,d);if(!w)return {notEnoughRoom:!0};var T=$t(w.first.point,s).point,E=$t(w.last.point,s).point;if(r&&!o){var I=re(e.writingMode,T,E,_);if(I)return I}f=[w.first];for(var P=e.glyphStartIndex+1;P0?D.point:ne(p,z,S,1,a),L=re(e.writingMode,S,M,_);if(L)return L}var A=se(m*l.getoffsetX(e.glyphStartIndex),g,v,o,h,p,e.segment,e.lineStartIndex,e.lineStartIndex+e.lineLength,c,n,d);if(!A)return {notEnoughRoom:!0};f=[A];}for(var R=0,k=f;R0?1:-1,f=0;r&&(_*=-1,f=Math.PI),_<0&&(f+=Math.PI);for(var m=_>0?l+s:l+s+1,g=a,v=a,y=0,x=0,b=Math.abs(d),w=[];y+x<=b;){if((m+=_)=c)return null;if(v=g,w.push(g),void 0===(g=p[m])){var T=new t.Point(u.getx(m),u.gety(m)),E=$t(T,h);if(E.signedDistanceFromCamera>0)g=p[m]=E.point;else {var I=m-_;g=ne(0===y?n:new t.Point(u.getx(I),u.gety(I)),T,v,b-y+1,h);}}y+=x,x=v.dist(g);}var P=(b-y)/x,S=g.sub(v),C=S.mult(P)._add(v);C._add(S._unit()._perp()._mult(o*_));var z=f+Math.atan2(g.y-v.y,g.x-v.x);return w.push(C),{point:C,angle:z,path:w}}Yt.prototype.keysLength=function(){return this.boxKeys.length+this.circleKeys.length},Yt.prototype.insert=function(t,e,i,o,r){this._forEachCell(e,i,o,r,this._insertBoxCell,this.boxUid++),this.boxKeys.push(t),this.bboxes.push(e),this.bboxes.push(i),this.bboxes.push(o),this.bboxes.push(r);},Yt.prototype.insertCircle=function(t,e,i,o){this._forEachCell(e-o,i-o,e+o,i+o,this._insertCircleCell,this.circleUid++),this.circleKeys.push(t),this.circles.push(e),this.circles.push(i),this.circles.push(o);},Yt.prototype._insertBoxCell=function(t,e,i,o,r,a){this.boxCells[r].push(a);},Yt.prototype._insertCircleCell=function(t,e,i,o,r,a){this.circleCells[r].push(a);},Yt.prototype._query=function(t,e,i,o,r,a){if(i<0||t>this.width||o<0||e>this.height)return !r&&[];var n=[];if(t<=0&&e<=0&&this.width<=i&&this.height<=o){if(r)return !0;for(var s=0;s0:n},Yt.prototype._queryCircle=function(t,e,i,o,r){var a=t-i,n=t+i,s=e-i,l=e+i;if(n<0||a>this.width||l<0||s>this.height)return !o&&[];var c=[];return this._forEachCell(a,s,n,l,this._queryCellCircle,c,{hitTest:o,circle:{x:t,y:e,radius:i},seenUids:{box:{},circle:{}}},r),o?c.length>0:c},Yt.prototype.query=function(t,e,i,o,r){return this._query(t,e,i,o,!1,r)},Yt.prototype.hitTest=function(t,e,i,o,r){return this._query(t,e,i,o,!0,r)},Yt.prototype.hitTestCircle=function(t,e,i,o){return this._queryCircle(t,e,i,!0,o)},Yt.prototype._queryCell=function(t,e,i,o,r,a,n,s){var l=n.seenUids,c=this.boxCells[r];if(null!==c)for(var u=this.bboxes,h=0,p=c;h=u[_+0]&&o>=u[_+1]&&(!s||s(this.boxKeys[d]))){if(n.hitTest)return a.push(!0),!0;a.push({key:this.boxKeys[d],x1:u[_],y1:u[_+1],x2:u[_+2],y2:u[_+3]});}}}var f=this.circleCells[r];if(null!==f)for(var m=this.circles,g=0,v=f;gn*n+s*s},Yt.prototype._circleAndRectCollide=function(t,e,i,o,r,a,n){var s=(a-o)/2,l=Math.abs(t-(o+s));if(l>s+i)return !1;var c=(n-r)/2,u=Math.abs(e-(r+c));if(u>c+i)return !1;if(l<=s||u<=c)return !0;var h=l-s,p=u-c;return h*h+p*p<=i*i};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 i=0;i=1;M--)D.push(C.path[M]);for(var L=1;L0){for(var B=D[0].clone(),O=D[0].clone(),F=1;F=I.x&&O.x<=P.x&&B.y>=I.y&&O.y<=P.y?[D]:O.xP.x||O.yP.y?[]:t.clipLine([D],I.x,I.y,P.x,P.y);}for(var U=0,N=k;U=this.screenRightBoundary||o<100||e>this.screenBottomBoundary},he.prototype.isInsideGrid=function(t,e,i,o){return i>=0&&t=0&&e0?(this.prevPlacement&&this.prevPlacement.variableOffsets[h.crossTileID]&&this.prevPlacement.placements[h.crossTileID]&&this.prevPlacement.placements[h.crossTileID].text&&(f=this.prevPlacement.variableOffsets[h.crossTileID].anchor),this.variableOffsets[h.crossTileID]={textOffset:m,width:i,height:o,anchor:t,textBoxScale:r,prevAnchor:f},this.markUsedJustification(p,t,h,d),p.allowVerticalPlacement&&(this.markUsedOrientation(p,d,h),this.placedOrientations[h.crossTileID]=d),{shift:g,placedGlyphBoxes:v}):void 0},be.prototype.placeLayerBucketPart=function(e,i,o){var r=this,a=e.parameters,n=a.bucket,s=a.layout,l=a.posMatrix,c=a.textLabelPlaneMatrix,u=a.labelToScreenMatrix,h=a.textPixelRatio,p=a.holdingForFade,d=a.collisionBoxArray,_=a.partiallyEvaluatedTextSize,f=a.collisionGroup,m=s.get("text-optional"),g=s.get("icon-optional"),v=s.get("text-allow-overlap"),y=s.get("icon-allow-overlap"),x="map"===s.get("text-rotation-alignment"),b="map"===s.get("text-pitch-alignment"),w="none"!==s.get("icon-text-fit"),T="viewport-y"===s.get("symbol-z-order"),E=v&&(y||!n.hasIconData()||g),I=y&&(v||!n.hasTextData()||m);!n.collisionArrays&&d&&n.deserializeCollisionBoxes(d);var P=function(e,a){if(!i[e.crossTileID])if(p)r.placements[e.crossTileID]=new fe(!1,!1,!1);else {var d,T=!1,P=!1,S=!0,C=null,z={box:null,offscreen:null},D={box:null,offscreen:null},M=null,L=null,A=0,R=0,k=0;a.textFeatureIndex?A=a.textFeatureIndex:e.useRuntimeCollisionCircles&&(A=e.featureIndex),a.verticalTextFeatureIndex&&(R=a.verticalTextFeatureIndex);var B=a.textBox;if(B){var O=function(i){var o=t.WritingMode.horizontal;if(n.allowVerticalPlacement&&!i&&r.prevPlacement){var a=r.prevPlacement.placedOrientations[e.crossTileID];a&&(r.placedOrientations[e.crossTileID]=a,r.markUsedOrientation(n,o=a,e));}return o},F=function(i,o){if(n.allowVerticalPlacement&&e.numVerticalGlyphVertices>0&&a.verticalTextBox)for(var r=0,s=n.writingModes;r0&&(U=U.filter((function(t){return t!==N.anchor}))).unshift(N.anchor);}var Z=function(t,i,o){for(var a=t.x2-t.x1,s=t.y2-t.y1,c=e.textBoxScale,u=w&&!y?i:null,p={box:[],offscreen:!1},d=v?2*U.length:U.length,_=0;_=U.length,e,n,o,u);if(m&&(p=m.placedGlyphBoxes)&&p.box&&p.box.length){T=!0,C=m.shift;break}}return p};F((function(){return Z(B,a.iconBox,t.WritingMode.horizontal)}),(function(){var i=a.verticalTextBox;return n.allowVerticalPlacement&&!(z&&z.box&&z.box.length)&&e.numVerticalGlyphVertices>0&&i?Z(i,a.verticalIconBox,t.WritingMode.vertical):{box:null,offscreen:null}})),z&&(T=z.box,S=z.offscreen);var j=O(z&&z.box);if(!T&&r.prevPlacement){var q=r.prevPlacement.variableOffsets[e.crossTileID];q&&(r.variableOffsets[e.crossTileID]=q,r.markUsedJustification(n,q.anchor,e,j));}}else {var V=function(t,i){var o=r.collisionIndex.placeCollisionBox(t,v,h,l,f.predicate);return o&&o.box&&o.box.length&&(r.markUsedOrientation(n,i,e),r.placedOrientations[e.crossTileID]=i),o};F((function(){return V(B,t.WritingMode.horizontal)}),(function(){var i=a.verticalTextBox;return n.allowVerticalPlacement&&e.numVerticalGlyphVertices>0&&i?V(i,t.WritingMode.vertical):{box:null,offscreen:null}})),O(z&&z.box&&z.box.length);}}if(T=(d=z)&&d.box&&d.box.length>0,S=d&&d.offscreen,e.useRuntimeCollisionCircles){var G=n.text.placedSymbolArray.get(e.centerJustifiedTextSymbolIndex),W=t.evaluateSizeForFeature(n.textSizeData,_,G),X=s.get("text-padding");M=r.collisionIndex.placeCollisionCircles(v,G,n.lineVertexArray,n.glyphOffsetArray,W,l,c,u,o,b,f.predicate,e.collisionCircleDiameter,X),T=v||M.circles.length>0&&!M.collisionDetected,S=S&&M.offscreen;}if(a.iconFeatureIndex&&(k=a.iconFeatureIndex),a.iconBox){var H=function(t){var e=w&&C?xe(t,C.x,C.y,x,b,r.transform.angle):t;return r.collisionIndex.placeCollisionBox(e,y,h,l,f.predicate)};P=D&&D.box&&D.box.length&&a.verticalIconBox?(L=H(a.verticalIconBox)).box.length>0:(L=H(a.iconBox)).box.length>0,S=S&&L.offscreen;}var K=m||0===e.numHorizontalGlyphVertices&&0===e.numVerticalGlyphVertices,Y=g||0===e.numIconVertices;if(K||Y?Y?K||(P=P&&T):T=P&&T:P=T=P&&T,T&&d&&d.box&&r.collisionIndex.insertCollisionBox(d.box,s.get("text-ignore-placement"),n.bucketInstanceId,D&&D.box&&R?R:A,f.ID),P&&L&&r.collisionIndex.insertCollisionBox(L.box,s.get("icon-ignore-placement"),n.bucketInstanceId,k,f.ID),M&&(T&&r.collisionIndex.insertCollisionCircles(M.circles,s.get("text-ignore-placement"),n.bucketInstanceId,A,f.ID),o)){var J=n.bucketInstanceId,Q=r.collisionCircleArrays[J];void 0===Q&&(Q=r.collisionCircleArrays[J]=new me);for(var $=0;$=0;--C){var z=S[C];P(n.symbolInstances.get(z),n.collisionArrays[z]);}else for(var D=e.symbolInstanceStart;D=0&&(e.text.placedSymbolArray.get(l).crossTileID=a>=0&&l!==a?0:o.crossTileID);}},be.prototype.markUsedOrientation=function(e,i,o){for(var r=i===t.WritingMode.horizontal||i===t.WritingMode.horizontalOnly?i:0,a=i===t.WritingMode.vertical?i:0,n=0,s=[o.leftJustifiedTextSymbolIndex,o.centerJustifiedTextSymbolIndex,o.rightJustifiedTextSymbolIndex];n0,v=r.placedOrientations[a.crossTileID],y=v===t.WritingMode.vertical,x=v===t.WritingMode.horizontal||v===t.WritingMode.horizontalOnly;if(s>0||l>0){var b=De(m.text);_(e.text,s,y?Me:b),_(e.text,l,x?Me:b);var w=m.text.isHidden();[a.rightJustifiedTextSymbolIndex,a.centerJustifiedTextSymbolIndex,a.leftJustifiedTextSymbolIndex].forEach((function(t){t>=0&&(e.text.placedSymbolArray.get(t).hidden=w||y?1:0);})),a.verticalPlacedTextSymbolIndex>=0&&(e.text.placedSymbolArray.get(a.verticalPlacedTextSymbolIndex).hidden=w||x?1:0);var T=r.variableOffsets[a.crossTileID];T&&r.markUsedJustification(e,T.anchor,a,v);var E=r.placedOrientations[a.crossTileID];E&&(r.markUsedJustification(e,"left",a,E),r.markUsedOrientation(e,E,a));}if(g){var I=De(m.icon),P=!(p&&a.verticalPlacedIconSymbolIndex&&y);a.placedIconSymbolIndex>=0&&(_(e.icon,a.numIconVertices,P?I:Me),e.icon.placedSymbolArray.get(a.placedIconSymbolIndex).hidden=m.icon.isHidden()),a.verticalPlacedIconSymbolIndex>=0&&(_(e.icon,a.numVerticalIconVertices,P?Me:I),e.icon.placedSymbolArray.get(a.verticalPlacedIconSymbolIndex).hidden=m.icon.isHidden());}if(e.hasIconCollisionBoxData()||e.hasTextCollisionBoxData()){var S=e.collisionArrays[o];if(S){var C=new t.Point(0,0);if(S.textBox||S.verticalTextBox){var z=!0;if(c){var D=r.variableOffsets[f];D?(C=ye(D.anchor,D.width,D.height,D.textOffset,D.textBoxScale),u&&C._rotate(h?r.transform.angle:-r.transform.angle)):z=!1;}S.textBox&&we(e.textCollisionBox.collisionVertexArray,m.text.placed,!z||y,C.x,C.y),S.verticalTextBox&&we(e.textCollisionBox.collisionVertexArray,m.text.placed,!z||x,C.x,C.y);}var M=Boolean(!x&&S.verticalIconBox);S.iconBox&&we(e.iconCollisionBox.collisionVertexArray,m.icon.placed,M,p?C.x:0,p?C.y:0),S.verticalIconBox&&we(e.iconCollisionBox.collisionVertexArray,m.icon.placed,!M,p?C.x:0,p?C.y:0);}}},m=0;mt},be.prototype.setStale=function(){this.stale=!0;};var Te=Math.pow(2,25),Ee=Math.pow(2,24),Ie=Math.pow(2,17),Pe=Math.pow(2,16),Se=Math.pow(2,9),Ce=Math.pow(2,8),ze=Math.pow(2,1);function De(t){if(0===t.opacity&&!t.placed)return 0;if(1===t.opacity&&t.placed)return 4294967295;var e=t.placed?1:0,i=Math.floor(127*t.opacity);return i*Te+e*Ee+i*Ie+e*Pe+i*Se+e*Ce+i*ze+e}var Me=0,Le=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=[];};Le.prototype.continuePlacement=function(t,e,i,o,r){for(var a=this._bucketParts;this._currentTileIndex2};this._currentPlacementIndex>=0;){var s=i[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 Le(s)),this._inProgressLayer.continuePlacement(o[s.source],this.placement,this._showCollisionBoxes,s,n))return;delete this._inProgressLayer;}this._currentPlacementIndex--;}this._done=!0;},Ae.prototype.commit=function(t){return this.placement.commit(t),this.placement};var Re=512/t.EXTENT/2,ke=function(t,e,i){this.tileID=t,this.indexedSymbolInstances={},this.bucketInstanceId=i;for(var o=0;ot.overscaledZ)for(var s in n){var l=n[s];l.tileID.isChildOf(t)&&l.findMatches(e.symbolInstances,t,r);}else {var c=n[t.scaledTo(Number(a)).key];c&&c.findMatches(e.symbolInstances,t,r);}}for(var u=0;u1?"@2x":"",l=t.getJSON(i.transformRequest(i.normalizeSpriteURL(e,s,".json"),t.ResourceType.SpriteJSON),(function(t,e){l=null,n||(n=t,r=e,u());})),c=t.getImage(i.transformRequest(i.normalizeSpriteURL(e,s,".png"),t.ResourceType.SpriteImage),(function(t,e){c=null,n||(n=t,a=e,u());}));function u(){if(n)o(n);else if(r&&a){var e=t.browser.getImageData(a),i={};for(var s in r){var l=r[s],c=l.width,u=l.height,h=l.x,p=l.y,d=l.sdf,_=l.pixelRatio,f=l.stretchX,m=l.stretchY,g=l.content,v=new t.RGBAImage({width:c,height:u});t.RGBAImage.copy(e,v,{x:h,y:p},{x:0,y:0},{width:c,height:u}),i[s]={data:v,pixelRatio:_,sdf:d,stretchX:f,stretchY:m,content:g};}o(null,i);}}return {cancel:function(){l&&(l.cancel(),l=null),c&&(c.cancel(),c=null);}}}(e,this.map._requestManager,(function(e,o){if(i._spriteRequest=null,e)i.fire(new t.ErrorEvent(e));else if(o)for(var r in o)i.imageManager.addImage(r,o[r]);i.imageManager.setLoaded(!0),i._availableImages=i.imageManager.listImages(),i.dispatcher.broadcast("setImages",i._availableImages),i.fire(new t.Event("data",{dataType:"style"}));}));},i.prototype._validateLayer=function(e){var i=this.sourceCaches[e.source];if(i){var o=e.sourceLayer;if(o){var r=i.getSource();("geojson"===r.type||r.vectorLayerIds&&-1===r.vectorLayerIds.indexOf(o))&&this.fire(new t.ErrorEvent(new Error('Source layer "'+o+'" does not exist on source "'+r.id+'" as specified by style layer "'+e.id+'"')));}}},i.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()},i.prototype._serializeLayers=function(t){for(var e=[],i=0,o=t;i0)throw new Error("Unimplemented: "+r.map((function(t){return t.command})).join(", ")+".");return o.forEach((function(t){"setTransition"!==t.command&&i[t.command].apply(i,t.args);})),this.stylesheet=e,!0},i.prototype.addImage=function(e,i){if(this.getImage(e))return this.fire(new t.ErrorEvent(new Error("An image with this name already exists.")));this.imageManager.addImage(e,i),this._availableImages=this.imageManager.listImages(),this._changedImages[e]=!0,this._changed=!0,this.fire(new t.Event("data",{dataType:"style"}));},i.prototype.updateImage=function(t,e){this.imageManager.updateImage(t,e);},i.prototype.getImage=function(t){return this.imageManager.getImage(t)},i.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"}));},i.prototype.listImages=function(){return this._checkLoaded(),this.imageManager.listImages()},i.prototype.addSource=function(e,i,o){var r=this;if(void 0===o&&(o={}),this._checkLoaded(),void 0!==this.sourceCaches[e])throw new Error("There is already a source with this ID");if(!i.type)throw new Error("The type property must be defined, but the only the following properties were given: "+Object.keys(i).join(", ")+".");if(!(["vector","raster","geojson","video","image"].indexOf(i.type)>=0&&this._validate(t.validateStyle.source,"sources."+e,i,null,o))){this.map&&this.map._collectResourceTiming&&(i.collectResourceTiming=!0);var a=this.sourceCaches[e]=new Dt(e,i,this.dispatcher);a.style=this,a.setEventedParent(this,(function(){return {isSourceLoaded:r.loaded(),source:a.serialize(),sourceId:e}})),a.onAdd(this.map),this._changed=!0;}},i.prototype.removeSource=function(e){if(this._checkLoaded(),void 0===this.sourceCaches[e])throw new Error("There is no source with this ID");for(var i in this._layers)if(this._layers[i].source===e)return this.fire(new t.ErrorEvent(new Error('Source "'+e+'" cannot be removed while layer "'+i+'" is using it.')));var o=this.sourceCaches[e];delete this.sourceCaches[e],delete this._updatedSources[e],o.fire(new t.Event("data",{sourceDataType:"metadata",dataType:"source",sourceId:e})),o.setEventedParent(null),o.clearTiles(),o.onRemove&&o.onRemove(this.map),this._changed=!0;},i.prototype.setGeoJSONSourceData=function(t,e){this._checkLoaded(),this.sourceCaches[t].getSource().setData(e),this._changed=!0;},i.prototype.getSource=function(t){return this.sourceCaches[t]&&this.sourceCaches[t].getSource()},i.prototype.addLayer=function(e,i,o){void 0===o&&(o={}),this._checkLoaded();var r=e.id;if(this.getLayer(r))this.fire(new t.ErrorEvent(new Error('Layer with id "'+r+'" already exists on this map')));else {var a;if("custom"===e.type){if(Ue(this,t.validateCustomStyleLayer(e)))return;a=t.createStyleLayer(e);}else {if("object"==typeof e.source&&(this.addSource(r,e.source),e=t.clone$1(e),e=t.extend(e,{source:r})),this._validate(t.validateStyle.layer,"layers."+r,e,{arrayIndex:-1},o))return;a=t.createStyleLayer(e),this._validateLayer(a),a.setEventedParent(this,{layer:{id:r}}),this._serializedLayers[a.id]=a.serialize();}var n=i?this._order.indexOf(i):this._order.length;if(i&&-1===n)this.fire(new t.ErrorEvent(new Error('Layer with id "'+i+'" does not exist on this map.')));else {if(this._order.splice(n,0,r),this._layerOrderChanged=!0,this._layers[r]=a,this._removedLayers[r]&&a.source&&"custom"!==a.type){var s=this._removedLayers[r];delete this._removedLayers[r],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);}}},i.prototype.moveLayer=function(e,i){if(this._checkLoaded(),this._changed=!0,this._layers[e]){if(e!==i){var o=this._order.indexOf(e);this._order.splice(o,1);var r=i?this._order.indexOf(i):this._order.length;i&&-1===r?this.fire(new t.ErrorEvent(new Error('Layer with id "'+i+'" does not exist on this map.'))):(this._order.splice(r,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.")));},i.prototype.removeLayer=function(e){this._checkLoaded();var i=this._layers[e];if(i){i.setEventedParent(null);var o=this._order.indexOf(e);this._order.splice(o,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[e]=i,delete this._layers[e],delete this._serializedLayers[e],delete this._updatedLayers[e],delete this._updatedPaintProps[e],i.onRemove&&i.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.")));},i.prototype.getLayer=function(t){return this._layers[t]},i.prototype.hasLayer=function(t){return t in this._layers},i.prototype.setLayerZoomRange=function(e,i,o){this._checkLoaded();var r=this.getLayer(e);r?r.minzoom===i&&r.maxzoom===o||(null!=i&&(r.minzoom=i),null!=o&&(r.maxzoom=o),this._updateLayer(r)):this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot have zoom extent.")));},i.prototype.setFilter=function(e,i,o){void 0===o&&(o={}),this._checkLoaded();var r=this.getLayer(e);if(r){if(!t.deepEqual(r.filter,i))return null==i?(r.filter=void 0,void this._updateLayer(r)):void(this._validate(t.validateStyle.filter,"layers."+r.id+".filter",i,null,o)||(r.filter=t.clone$1(i),this._updateLayer(r)))}else this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot be filtered.")));},i.prototype.getFilter=function(e){return t.clone$1(this.getLayer(e).filter)},i.prototype.setLayoutProperty=function(e,i,o,r){void 0===r&&(r={}),this._checkLoaded();var a=this.getLayer(e);a?t.deepEqual(a.getLayoutProperty(i),o)||(a.setLayoutProperty(i,o,r),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.")));},i.prototype.getLayoutProperty=function(e,i){var o=this.getLayer(e);if(o)return o.getLayoutProperty(i);this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style.")));},i.prototype.setPaintProperty=function(e,i,o,r){void 0===r&&(r={}),this._checkLoaded();var a=this.getLayer(e);a?t.deepEqual(a.getPaintProperty(i),o)||(a.setPaintProperty(i,o,r)&&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.")));},i.prototype.getPaintProperty=function(t,e){return this.getLayer(t).getPaintProperty(e)},i.prototype.setFeatureState=function(e,i){this._checkLoaded();var o=e.source,r=e.sourceLayer,a=this.sourceCaches[o];if(void 0!==a){var n=a.getSource().type;"geojson"===n&&r?this.fire(new t.ErrorEvent(new Error("GeoJSON sources cannot have a sourceLayer parameter."))):"vector"!==n||r?(void 0===e.id&&this.fire(new t.ErrorEvent(new Error("The feature id parameter must be provided."))),a.setFeatureState(r,e.id,i)):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 '"+o+"' does not exist in the map's style.")));},i.prototype.removeFeatureState=function(e,i){this._checkLoaded();var o=e.source,r=this.sourceCaches[o];if(void 0!==r){var a=r.getSource().type,n="vector"===a?e.sourceLayer:void 0;"vector"!==a||n?i&&"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."))):r.removeFeatureState(n,e.id,i):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 '"+o+"' does not exist in the map's style.")));},i.prototype.getFeatureState=function(e){this._checkLoaded();var i=e.source,o=e.sourceLayer,r=this.sourceCaches[i];if(void 0!==r){if("vector"!==r.getSource().type||o)return void 0===e.id&&this.fire(new t.ErrorEvent(new Error("The feature id parameter must be provided."))),r.getFeatureState(o,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 '"+i+"' does not exist in the map's style.")));},i.prototype.getTransition=function(){return t.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)},i.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}))},i.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;},i.prototype._flattenAndSortRenderedFeatures=function(t){for(var e=this,i=function(t){return "fill-extrusion"===e._layers[t].type},o={},r=[],a=this._order.length-1;a>=0;a--){var n=this._order[a];if(i(n)){o[n]=a;for(var s=0,l=t;s=0;d--){var _=this._order[d];if(i(_))for(var f=r.length-1;f>=0;f--){var m=r[f].feature;if(o[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=gi("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);}"),ti=gi("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);}"),ei=gi("#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);}"),ii=gi("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;}"),oi=gi("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;}"),ri=gi("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);}"),ai=gi("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;}"),ni=gi("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;}"),si=gi("#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;}"),li=gi("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;}"),ci=gi("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);}"),ui=gi("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);}"),hi=gi("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;}"),pi=gi("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);}"),di=gi("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;}"),_i=gi("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));}"),fi=gi("#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);}"),mi=gi("#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 gi(t,e){var i=/#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,o={};return {fragmentSource:t=t.replace(i,(function(t,e,i,r,a){return o[a]=!0,"define"===e?"\n#ifndef HAS_UNIFORM_u_"+a+"\nvarying "+i+" "+r+" "+a+";\n#else\nuniform "+i+" "+r+" u_"+a+";\n#endif\n":"\n#ifdef HAS_UNIFORM_u_"+a+"\n "+i+" "+r+" "+a+" = u_"+a+";\n#endif\n"})),vertexSource:e=e.replace(i,(function(t,e,i,r,a){var n="float"===r?"vec2":"vec4",s=a.match(/color/)?"color":n;return o[a]?"define"===e?"\n#ifndef HAS_UNIFORM_u_"+a+"\nuniform lowp float u_"+a+"_t;\nattribute "+i+" "+n+" a_"+a+";\nvarying "+i+" "+r+" "+a+";\n#else\nuniform "+i+" "+r+" u_"+a+";\n#endif\n":"vec4"===s?"\n#ifndef HAS_UNIFORM_u_"+a+"\n "+a+" = a_"+a+";\n#else\n "+i+" "+r+" "+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 "+i+" "+r+" "+a+" = u_"+a+";\n#endif\n":"define"===e?"\n#ifndef HAS_UNIFORM_u_"+a+"\nuniform lowp float u_"+a+"_t;\nattribute "+i+" "+n+" a_"+a+";\n#else\nuniform "+i+" "+r+" u_"+a+";\n#endif\n":"vec4"===s?"\n#ifndef HAS_UNIFORM_u_"+a+"\n "+i+" "+r+" "+a+" = a_"+a+";\n#else\n "+i+" "+r+" "+a+" = u_"+a+";\n#endif\n":"\n#ifndef HAS_UNIFORM_u_"+a+"\n "+i+" "+r+" "+a+" = unpack_mix_"+s+"(a_"+a+", u_"+a+"_t);\n#else\n "+i+" "+r+" "+a+" = u_"+a+";\n#endif\n"}))}}var vi=Object.freeze({__proto__:null,prelude:Ge,background:We,backgroundPattern:Xe,circle:He,clippingMask:Ke,heatmap:Ye,heatmapTexture:Je,collisionBox:Qe,collisionCircle:$e,debug:ti,fill:ei,fillOutline:ii,fillOutlinePattern:oi,fillPattern:ri,fillExtrusion:ai,fillExtrusionPattern:ni,hillshadePrepare:si,hillshade:li,line:ci,lineGradient:ui,linePattern:hi,lineSDF:pi,raster:di,symbolIcon:_i,symbolSDF:fi,symbolTextAndIcon:mi}),yi=function(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffer=null,this.vao=null;};yi.prototype.bind=function(t,e,i,o,r,a,n,s){this.context=t;for(var l=this.boundPaintVertexBuffers.length!==o.length,c=0;!l&&c>16,s>>16],u_pixel_coord_lower:[65535&n,65535&s]}}xi.prototype.draw=function(t,e,i,o,r,a,n,s,l,c,u,h,p,d,_,f){var m,g=t.gl;if(!this.failedToCreate){for(var v in t.program.set(this.program),t.setDepthMode(i),t.setStencilMode(o),t.setColorMode(r),t.setCullFace(a),this.fixedUniforms)this.fixedUniforms[v].set(n[v]);d&&d.setUniforms(t,this.binderUniforms,h,{zoom:p});for(var y=(m={},m[g.LINES]=2,m[g.TRIANGLES]=3,m[g.LINE_STRIP]=1,m)[e],x=0,b=u.get();x0?1-1/(1.001-n):-n),u_contrast_factor:(a=r.paint.get("raster-contrast"),a>0?1/(1-a):1+a),u_spin_weights:Zi(r.paint.get("raster-hue-rotate"))};var a,n;};function Zi(t){t*=Math.PI/180;var e=Math.sin(t),i=Math.cos(t);return [(2*i+1)/3,(-Math.sqrt(3)*e-i+1)/3,(Math.sqrt(3)*e-i+1)/3]}var ji,qi=function(t,e,i,o,r,a,n,s,l,c){var u=r.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:+i,u_aspect_ratio:u.width/u.height,u_fade_change:r.options.fadeDuration?r.symbolFadeChange:1,u_matrix:a,u_label_plane_matrix:n,u_coord_matrix:s,u_is_text:+l,u_pitch_with_map:+o,u_texsize:c,u_texture:0}},Vi=function(e,i,o,r,a,n,s,l,c,u,h){var p=a.transform;return t.extend(qi(e,i,o,r,a,n,s,l,c,u),{u_gamma_scale:r?Math.cos(p._pitch)*p.cameraToCenterDistance:1,u_device_pixel_ratio:t.browser.devicePixelRatio,u_is_halo:+h})},Gi=function(e,i,o,r,a,n,s,l,c,u){return t.extend(Vi(e,i,o,r,a,n,s,l,!0,c,!0),{u_texsize_icon:u,u_texture_icon:1})},Wi=function(t,e,i){return {u_matrix:t,u_opacity:e,u_color:i}},Xi=function(e,i,o,r,a,n){return t.extend(function(t,e,i,o){var r=i.imageManager.getPattern(t.from.toString()),a=i.imageManager.getPattern(t.to.toString()),n=i.imageManager.getPixelSize(),s=n.width,l=n.height,c=Math.pow(2,o.tileID.overscaledZ),u=o.tileSize*Math.pow(2,i.transform.tileZoom)/c,h=u*(o.tileID.canonical.x+o.tileID.wrap*c),p=u*o.tileID.canonical.y;return {u_image:0,u_pattern_tl_a:r.tl,u_pattern_br_a:r.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:r.displaySize,u_pattern_size_b:a.displaySize,u_scale_a:e.fromScale,u_scale_b:e.toScale,u_tile_units_to_pixels:1/pe(o,1,i.transform.tileZoom),u_pixel_coord_upper:[h>>16,p>>16],u_pixel_coord_lower:[65535&h,65535&p]}}(r,n,o,a),{u_matrix:e,u_opacity:i})},Hi={fillExtrusion:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_lightpos:new t.Uniform3f(e,i.u_lightpos),u_lightintensity:new t.Uniform1f(e,i.u_lightintensity),u_lightcolor:new t.Uniform3f(e,i.u_lightcolor),u_vertical_gradient:new t.Uniform1f(e,i.u_vertical_gradient),u_opacity:new t.Uniform1f(e,i.u_opacity)}},fillExtrusionPattern:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_lightpos:new t.Uniform3f(e,i.u_lightpos),u_lightintensity:new t.Uniform1f(e,i.u_lightintensity),u_lightcolor:new t.Uniform3f(e,i.u_lightcolor),u_vertical_gradient:new t.Uniform1f(e,i.u_vertical_gradient),u_height_factor:new t.Uniform1f(e,i.u_height_factor),u_image:new t.Uniform1i(e,i.u_image),u_texsize:new t.Uniform2f(e,i.u_texsize),u_pixel_coord_upper:new t.Uniform2f(e,i.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,i.u_pixel_coord_lower),u_scale:new t.Uniform3f(e,i.u_scale),u_fade:new t.Uniform1f(e,i.u_fade),u_opacity:new t.Uniform1f(e,i.u_opacity)}},fill:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix)}},fillPattern:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_image:new t.Uniform1i(e,i.u_image),u_texsize:new t.Uniform2f(e,i.u_texsize),u_pixel_coord_upper:new t.Uniform2f(e,i.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,i.u_pixel_coord_lower),u_scale:new t.Uniform3f(e,i.u_scale),u_fade:new t.Uniform1f(e,i.u_fade)}},fillOutline:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_world:new t.Uniform2f(e,i.u_world)}},fillOutlinePattern:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_world:new t.Uniform2f(e,i.u_world),u_image:new t.Uniform1i(e,i.u_image),u_texsize:new t.Uniform2f(e,i.u_texsize),u_pixel_coord_upper:new t.Uniform2f(e,i.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,i.u_pixel_coord_lower),u_scale:new t.Uniform3f(e,i.u_scale),u_fade:new t.Uniform1f(e,i.u_fade)}},circle:function(e,i){return {u_camera_to_center_distance:new t.Uniform1f(e,i.u_camera_to_center_distance),u_scale_with_map:new t.Uniform1i(e,i.u_scale_with_map),u_pitch_with_map:new t.Uniform1i(e,i.u_pitch_with_map),u_extrude_scale:new t.Uniform2f(e,i.u_extrude_scale),u_device_pixel_ratio:new t.Uniform1f(e,i.u_device_pixel_ratio),u_matrix:new t.UniformMatrix4f(e,i.u_matrix)}},collisionBox:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_camera_to_center_distance:new t.Uniform1f(e,i.u_camera_to_center_distance),u_pixels_to_tile_units:new t.Uniform1f(e,i.u_pixels_to_tile_units),u_extrude_scale:new t.Uniform2f(e,i.u_extrude_scale),u_overscale_factor:new t.Uniform1f(e,i.u_overscale_factor)}},collisionCircle:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_inv_matrix:new t.UniformMatrix4f(e,i.u_inv_matrix),u_camera_to_center_distance:new t.Uniform1f(e,i.u_camera_to_center_distance),u_viewport_size:new t.Uniform2f(e,i.u_viewport_size)}},debug:function(e,i){return {u_color:new t.UniformColor(e,i.u_color),u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_overlay:new t.Uniform1i(e,i.u_overlay),u_overlay_scale:new t.Uniform1f(e,i.u_overlay_scale)}},clippingMask:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix)}},heatmap:function(e,i){return {u_extrude_scale:new t.Uniform1f(e,i.u_extrude_scale),u_intensity:new t.Uniform1f(e,i.u_intensity),u_matrix:new t.UniformMatrix4f(e,i.u_matrix)}},heatmapTexture:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_world:new t.Uniform2f(e,i.u_world),u_image:new t.Uniform1i(e,i.u_image),u_color_ramp:new t.Uniform1i(e,i.u_color_ramp),u_opacity:new t.Uniform1f(e,i.u_opacity)}},hillshade:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_image:new t.Uniform1i(e,i.u_image),u_latrange:new t.Uniform2f(e,i.u_latrange),u_light:new t.Uniform2f(e,i.u_light),u_shadow:new t.UniformColor(e,i.u_shadow),u_highlight:new t.UniformColor(e,i.u_highlight),u_accent:new t.UniformColor(e,i.u_accent)}},hillshadePrepare:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_image:new t.Uniform1i(e,i.u_image),u_dimension:new t.Uniform2f(e,i.u_dimension),u_zoom:new t.Uniform1f(e,i.u_zoom),u_maxzoom:new t.Uniform1f(e,i.u_maxzoom),u_unpack:new t.Uniform4f(e,i.u_unpack)}},line:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_ratio:new t.Uniform1f(e,i.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,i.u_device_pixel_ratio),u_units_to_pixels:new t.Uniform2f(e,i.u_units_to_pixels)}},lineGradient:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_ratio:new t.Uniform1f(e,i.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,i.u_device_pixel_ratio),u_units_to_pixels:new t.Uniform2f(e,i.u_units_to_pixels),u_image:new t.Uniform1i(e,i.u_image)}},linePattern:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_texsize:new t.Uniform2f(e,i.u_texsize),u_ratio:new t.Uniform1f(e,i.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,i.u_device_pixel_ratio),u_image:new t.Uniform1i(e,i.u_image),u_units_to_pixels:new t.Uniform2f(e,i.u_units_to_pixels),u_scale:new t.Uniform3f(e,i.u_scale),u_fade:new t.Uniform1f(e,i.u_fade)}},lineSDF:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_ratio:new t.Uniform1f(e,i.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,i.u_device_pixel_ratio),u_units_to_pixels:new t.Uniform2f(e,i.u_units_to_pixels),u_patternscale_a:new t.Uniform2f(e,i.u_patternscale_a),u_patternscale_b:new t.Uniform2f(e,i.u_patternscale_b),u_sdfgamma:new t.Uniform1f(e,i.u_sdfgamma),u_image:new t.Uniform1i(e,i.u_image),u_tex_y_a:new t.Uniform1f(e,i.u_tex_y_a),u_tex_y_b:new t.Uniform1f(e,i.u_tex_y_b),u_mix:new t.Uniform1f(e,i.u_mix)}},raster:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_tl_parent:new t.Uniform2f(e,i.u_tl_parent),u_scale_parent:new t.Uniform1f(e,i.u_scale_parent),u_buffer_scale:new t.Uniform1f(e,i.u_buffer_scale),u_fade_t:new t.Uniform1f(e,i.u_fade_t),u_opacity:new t.Uniform1f(e,i.u_opacity),u_image0:new t.Uniform1i(e,i.u_image0),u_image1:new t.Uniform1i(e,i.u_image1),u_brightness_low:new t.Uniform1f(e,i.u_brightness_low),u_brightness_high:new t.Uniform1f(e,i.u_brightness_high),u_saturation_factor:new t.Uniform1f(e,i.u_saturation_factor),u_contrast_factor:new t.Uniform1f(e,i.u_contrast_factor),u_spin_weights:new t.Uniform3f(e,i.u_spin_weights)}},symbolIcon:function(e,i){return {u_is_size_zoom_constant:new t.Uniform1i(e,i.u_is_size_zoom_constant),u_is_size_feature_constant:new t.Uniform1i(e,i.u_is_size_feature_constant),u_size_t:new t.Uniform1f(e,i.u_size_t),u_size:new t.Uniform1f(e,i.u_size),u_camera_to_center_distance:new t.Uniform1f(e,i.u_camera_to_center_distance),u_pitch:new t.Uniform1f(e,i.u_pitch),u_rotate_symbol:new t.Uniform1i(e,i.u_rotate_symbol),u_aspect_ratio:new t.Uniform1f(e,i.u_aspect_ratio),u_fade_change:new t.Uniform1f(e,i.u_fade_change),u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_label_plane_matrix:new t.UniformMatrix4f(e,i.u_label_plane_matrix),u_coord_matrix:new t.UniformMatrix4f(e,i.u_coord_matrix),u_is_text:new t.Uniform1i(e,i.u_is_text),u_pitch_with_map:new t.Uniform1i(e,i.u_pitch_with_map),u_texsize:new t.Uniform2f(e,i.u_texsize),u_texture:new t.Uniform1i(e,i.u_texture)}},symbolSDF:function(e,i){return {u_is_size_zoom_constant:new t.Uniform1i(e,i.u_is_size_zoom_constant),u_is_size_feature_constant:new t.Uniform1i(e,i.u_is_size_feature_constant),u_size_t:new t.Uniform1f(e,i.u_size_t),u_size:new t.Uniform1f(e,i.u_size),u_camera_to_center_distance:new t.Uniform1f(e,i.u_camera_to_center_distance),u_pitch:new t.Uniform1f(e,i.u_pitch),u_rotate_symbol:new t.Uniform1i(e,i.u_rotate_symbol),u_aspect_ratio:new t.Uniform1f(e,i.u_aspect_ratio),u_fade_change:new t.Uniform1f(e,i.u_fade_change),u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_label_plane_matrix:new t.UniformMatrix4f(e,i.u_label_plane_matrix),u_coord_matrix:new t.UniformMatrix4f(e,i.u_coord_matrix),u_is_text:new t.Uniform1i(e,i.u_is_text),u_pitch_with_map:new t.Uniform1i(e,i.u_pitch_with_map),u_texsize:new t.Uniform2f(e,i.u_texsize),u_texture:new t.Uniform1i(e,i.u_texture),u_gamma_scale:new t.Uniform1f(e,i.u_gamma_scale),u_device_pixel_ratio:new t.Uniform1f(e,i.u_device_pixel_ratio),u_is_halo:new t.Uniform1i(e,i.u_is_halo)}},symbolTextAndIcon:function(e,i){return {u_is_size_zoom_constant:new t.Uniform1i(e,i.u_is_size_zoom_constant),u_is_size_feature_constant:new t.Uniform1i(e,i.u_is_size_feature_constant),u_size_t:new t.Uniform1f(e,i.u_size_t),u_size:new t.Uniform1f(e,i.u_size),u_camera_to_center_distance:new t.Uniform1f(e,i.u_camera_to_center_distance),u_pitch:new t.Uniform1f(e,i.u_pitch),u_rotate_symbol:new t.Uniform1i(e,i.u_rotate_symbol),u_aspect_ratio:new t.Uniform1f(e,i.u_aspect_ratio),u_fade_change:new t.Uniform1f(e,i.u_fade_change),u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_label_plane_matrix:new t.UniformMatrix4f(e,i.u_label_plane_matrix),u_coord_matrix:new t.UniformMatrix4f(e,i.u_coord_matrix),u_is_text:new t.Uniform1i(e,i.u_is_text),u_pitch_with_map:new t.Uniform1i(e,i.u_pitch_with_map),u_texsize:new t.Uniform2f(e,i.u_texsize),u_texsize_icon:new t.Uniform2f(e,i.u_texsize_icon),u_texture:new t.Uniform1i(e,i.u_texture),u_texture_icon:new t.Uniform1i(e,i.u_texture_icon),u_gamma_scale:new t.Uniform1f(e,i.u_gamma_scale),u_device_pixel_ratio:new t.Uniform1f(e,i.u_device_pixel_ratio),u_is_halo:new t.Uniform1i(e,i.u_is_halo)}},background:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_opacity:new t.Uniform1f(e,i.u_opacity),u_color:new t.UniformColor(e,i.u_color)}},backgroundPattern:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_opacity:new t.Uniform1f(e,i.u_opacity),u_image:new t.Uniform1i(e,i.u_image),u_pattern_tl_a:new t.Uniform2f(e,i.u_pattern_tl_a),u_pattern_br_a:new t.Uniform2f(e,i.u_pattern_br_a),u_pattern_tl_b:new t.Uniform2f(e,i.u_pattern_tl_b),u_pattern_br_b:new t.Uniform2f(e,i.u_pattern_br_b),u_texsize:new t.Uniform2f(e,i.u_texsize),u_mix:new t.Uniform1f(e,i.u_mix),u_pattern_size_a:new t.Uniform2f(e,i.u_pattern_size_a),u_pattern_size_b:new t.Uniform2f(e,i.u_pattern_size_b),u_scale_a:new t.Uniform1f(e,i.u_scale_a),u_scale_b:new t.Uniform1f(e,i.u_scale_b),u_pixel_coord_upper:new t.Uniform2f(e,i.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,i.u_pixel_coord_lower),u_tile_units_to_pixels:new t.Uniform1f(e,i.u_tile_units_to_pixels)}}};function Ki(e,i,o,r,a,n,s){for(var l=e.context,c=l.gl,u=e.useProgram("collisionBox"),h=[],p=0,d=0,_=0;_0){var b=t.create(),w=v;t.mul(b,g.placementInvProjMatrix,e.transform.glCoordMatrix),t.mul(b,b,g.placementViewportMatrix),h.push({circleArray:x,circleOffset:d,transform:w,invTransform:b}),d=p+=x.length/4;}y&&u.draw(l,c.LINES,It.disabled,Pt.disabled,e.colorModeForRenderPass(),Ct.disabled,zi(v,e.transform,m),o.id,y.layoutVertexBuffer,y.indexBuffer,y.segments,null,e.transform.zoom,null,null,y.collisionVertexBuffer);}}if(s&&h.length){var T=e.useProgram("collisionCircle"),E=new t.StructArrayLayout2f1f2i16;E.resize(4*p),E._trim();for(var I=0,P=0,S=h;P=0&&(f[g.associatedIconIndex]={shiftedAnchor:E,angle:I});}else ce(g.numGlyphs,d);}if(h){_.clear();for(var S=e.icon.placedSymbolArray,C=0;C0){var s=t.browser.now(),l=(s-e.timeAdded)/n,c=i?(s-i.timeAdded)/n:-1,u=o.getSource(),h=a.coveringZoomLevel({tileSize:u.tileSize,roundZoom:u.roundZoom}),p=!i||Math.abs(i.tileID.overscaledZ-h)>Math.abs(e.tileID.overscaledZ-h),d=p&&e.refreshedUponExpiration?1:t.clamp(p?l:1-c,0,1);return e.refreshedUponExpiration&&l>=1&&(e.refreshedUponExpiration=!1),i?{opacity:1,mix:1-d}:{opacity:d,mix:0}}return {opacity:1,mix:0}}var so=new t.Color(1,0,0,1),lo=new t.Color(0,1,0,1),co=new t.Color(0,0,1,1),uo=new t.Color(1,0,1,1),ho=new t.Color(0,1,1,1);function po(t,e,i,o){fo(t,0,e+i/2,t.transform.width,i,o);}function _o(t,e,i,o){fo(t,e-i/2,0,i,t.transform.height,o);}function fo(e,i,o,r,a,n){var s=e.context,l=s.gl;l.enable(l.SCISSOR_TEST),l.scissor(i*t.browser.devicePixelRatio,o*t.browser.devicePixelRatio,r*t.browser.devicePixelRatio,a*t.browser.devicePixelRatio),s.clear({color:n}),l.disable(l.SCISSOR_TEST);}function mo(e,i,o){var r=e.context,a=r.gl,n=o.posMatrix,s=e.useProgram("debug"),l=It.disabled,c=Pt.disabled,u=e.colorModeForRenderPass();r.activeTexture.set(a.TEXTURE0),e.emptyTexture.bind(a.LINEAR,a.CLAMP_TO_EDGE),s.draw(r,a.LINE_STRIP,l,c,u,Ct.disabled,Mi(n,t.Color.red),"$debug",e.debugBuffer,e.tileBorderIndexBuffer,e.debugSegments);var h=i.getTileByID(o.key).latestRawTileData,p=Math.floor((h&&h.byteLength||0)/1024),d=i.getTile(o).tileSize,_=512/Math.min(d,512)*(o.overscaledZ/e.transform.zoom)*.5,f=o.canonical.toString();o.overscaledZ!==o.canonical.z&&(f+=" => "+o.overscaledZ),function(t,e){t.initDebugOverlayCanvas();var i=t.debugOverlayCanvas,o=t.context.gl,r=t.debugOverlayCanvas.getContext("2d");r.clearRect(0,0,i.width,i.height),r.shadowColor="white",r.shadowBlur=2,r.lineWidth=1.5,r.strokeStyle="white",r.textBaseline="top",r.font="bold 36px Open Sans, sans-serif",r.fillText(e,5,5),r.strokeText(e,5,5),t.debugOverlayTexture.update(i),t.debugOverlayTexture.bind(o.LINEAR,o.CLAMP_TO_EDGE);}(e,f+" "+p+"kb"),s.draw(r,a.TRIANGLES,l,c,St.alphaBlended,Ct.disabled,Mi(n,t.Color.transparent,_),"$debug",e.debugBuffer,e.quadTriangleIndexBuffer,e.debugSegments);}var go={symbol:function(e,i,o,r,a){if("translucent"===e.renderPass){var n=Pt.disabled,s=e.colorModeForRenderPass();o.layout.get("text-variable-anchor")&&function(e,i,o,r,a,n,s){for(var l=i.transform,c="map"===a,u="map"===n,h=0,p=e;h256&&this.clearStencil(),i.setColorMode(St.disabled),i.setDepthMode(It.disabled);var r=this.useProgram("clippingMask");this._tileClippingMaskIDs={};for(var a=0,n=e;a256&&this.clearStencil();var t=this.nextStencilID++,e=this.context.gl;return new Pt({func:e.NOTEQUAL,mask:255},t,255,e.KEEP,e.KEEP,e.REPLACE)},vo.prototype.stencilModeForClipping=function(t){var e=this.context.gl;return new Pt({func:e.EQUAL,mask:255},this._tileClippingMaskIDs[t.key],0,e.KEEP,e.KEEP,e.REPLACE)},vo.prototype.stencilConfigForOverlap=function(t){var e,i=this.context.gl,o=t.sort((function(t,e){return e.overscaledZ-t.overscaledZ})),r=o[o.length-1].overscaledZ,a=o[0].overscaledZ-r+1;if(a>1){this.currentStencilSource=void 0,this.nextStencilID+a>256&&this.clearStencil();for(var n={},s=0;s=0;this.currentLayer--){var x=this.style._layers[r[this.currentLayer]],b=a[x.source],w=u[x.source];this._renderTileClippingMasks(x,w),this.renderLayer(this,b,x,w);}for(this.renderPass="translucent",this.currentLayer=0;this.currentLayer0?e.pop():null},vo.prototype.isPatternMissing=function(t){if(!t)return !1;if(!t.from||!t.to)return !0;var e=this.imageManager.getPattern(t.from.toString()),i=this.imageManager.getPattern(t.to.toString());return !e||!i},vo.prototype.useProgram=function(t,e){this.cache=this.cache||{};var i=""+t+(e?e.cacheKey:"")+(this._showOverdrawInspector?"/overdraw":"");return this.cache[i]||(this.cache[i]=new xi(this.context,vi[t],e,Hi[t],this._showOverdrawInspector)),this.cache[i]},vo.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();},vo.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);},vo.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));},vo.prototype.destroy=function(){this.emptyTexture.destroy(),this.debugOverlayTexture&&this.debugOverlayTexture.destroy();};var yo=function(t,e){this.points=t,this.planes=e;};yo.fromInvProjectionMatrix=function(e,i,o){var r=Math.pow(2,o),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(i){return t.transformMat4([],i,e)})).map((function(e){return t.scale$1([],e,1/e[3]/i*r)})),n=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map((function(e){var i=t.sub([],a[e[0]],a[e[1]]),o=t.sub([],a[e[2]],a[e[1]]),r=t.normalize([],t.cross([],i,o)),n=-t.dot(r,a[e[1]]);return r.concat(n)}));return new yo(a,n)};var xo=function(e,i){this.min=e,this.max=i,this.center=t.scale$2([],t.add([],this.min,this.max),.5);};xo.prototype.quadrant=function(e){for(var i=[e%2==0,e<2],o=t.clone$2(this.min),r=t.clone$2(this.max),a=0;a=0;if(0===n)return 0;n!==i.length&&(o=!1);}if(o)return 2;for(var l=0;l<3;l++){for(var c=Number.MAX_VALUE,u=-Number.MAX_VALUE,h=0;hthis.max[l]-this.min[l])return 0}return 1};var bo=function(t,e,i,o){if(void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),void 0===o&&(o=0),isNaN(t)||t<0||isNaN(e)||e<0||isNaN(i)||i<0||isNaN(o)||o<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=i,this.right=o;};bo.prototype.interpolate=function(e,i,o){return null!=i.top&&null!=e.top&&(this.top=t.number(e.top,i.top,o)),null!=i.bottom&&null!=e.bottom&&(this.bottom=t.number(e.bottom,i.bottom,o)),null!=i.left&&null!=e.left&&(this.left=t.number(e.left,i.left,o)),null!=i.right&&null!=e.right&&(this.right=t.number(e.right,i.right,o)),this},bo.prototype.getCenter=function(e,i){var o=t.clamp((this.left+e-this.right)/2,0,e),r=t.clamp((this.top+i-this.bottom)/2,0,i);return new t.Point(o,r)},bo.prototype.equals=function(t){return this.top===t.top&&this.bottom===t.bottom&&this.left===t.left&&this.right===t.right},bo.prototype.clone=function(){return new bo(this.top,this.bottom,this.left,this.right)},bo.prototype.toJSON=function(){return {top:this.top,bottom:this.bottom,left:this.left,right:this.right}};var wo=function(e,i,o,r,a){this.tileSize=512,this.maxValidLatitude=85.051129,this._renderWorldCopies=void 0===a||a,this._minZoom=e||0,this._maxZoom=i||22,this._minPitch=null==o?0:o,this._maxPitch=null==r?60:r,this.setMaxBounds(),this.width=0,this.height=0,this._center=new t.LngLat(0,0),this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._unmodified=!0,this._edgeInsets=new bo,this._posMatrixCache={},this._alignedPosMatrixCache={};},To={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}};wo.prototype.clone=function(){var t=new wo(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},To.minZoom.get=function(){return this._minZoom},To.minZoom.set=function(t){this._minZoom!==t&&(this._minZoom=t,this.zoom=Math.max(this.zoom,t));},To.maxZoom.get=function(){return this._maxZoom},To.maxZoom.set=function(t){this._maxZoom!==t&&(this._maxZoom=t,this.zoom=Math.min(this.zoom,t));},To.minPitch.get=function(){return this._minPitch},To.minPitch.set=function(t){this._minPitch!==t&&(this._minPitch=t,this.pitch=Math.max(this.pitch,t));},To.maxPitch.get=function(){return this._maxPitch},To.maxPitch.set=function(t){this._maxPitch!==t&&(this._maxPitch=t,this.pitch=Math.min(this.pitch,t));},To.renderWorldCopies.get=function(){return this._renderWorldCopies},To.renderWorldCopies.set=function(t){void 0===t?t=!0:null===t&&(t=!1),this._renderWorldCopies=t;},To.worldSize.get=function(){return this.tileSize*this.scale},To.centerOffset.get=function(){return this.centerPoint._sub(this.size._div(2))},To.size.get=function(){return new t.Point(this.width,this.height)},To.bearing.get=function(){return -this.angle/Math.PI*180},To.bearing.set=function(e){var i=-t.wrap(e,-180,180)*Math.PI/180;this.angle!==i&&(this._unmodified=!1,this.angle=i,this._calcMatrices(),this.rotationMatrix=t.create$2(),t.rotate(this.rotationMatrix,this.rotationMatrix,this.angle));},To.pitch.get=function(){return this._pitch/Math.PI*180},To.pitch.set=function(e){var i=t.clamp(e,this.minPitch,this.maxPitch)/180*Math.PI;this._pitch!==i&&(this._unmodified=!1,this._pitch=i,this._calcMatrices());},To.fov.get=function(){return this._fov/Math.PI*180},To.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());},To.zoom.get=function(){return this._zoom},To.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());},To.center.get=function(){return this._center},To.center.set=function(t){t.lat===this._center.lat&&t.lng===this._center.lng||(this._unmodified=!1,this._center=t,this._constrain(),this._calcMatrices());},To.padding.get=function(){return this._edgeInsets.toJSON()},To.padding.set=function(t){this._edgeInsets.equals(t)||(this._unmodified=!1,this._edgeInsets.interpolate(this._edgeInsets,t,1),this._calcMatrices());},To.centerPoint.get=function(){return this._edgeInsets.getCenter(this.width,this.height)},wo.prototype.isPaddingEqual=function(t){return this._edgeInsets.equals(t)},wo.prototype.interpolatePadding=function(t,e,i){this._unmodified=!1,this._edgeInsets.interpolate(t,e,i),this._constrain(),this._calcMatrices();},wo.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)},wo.prototype.getVisibleUnwrappedCoordinates=function(e){var i=[new t.UnwrappedTileID(0,e)];if(this._renderWorldCopies)for(var o=this.pointCoordinate(new t.Point(0,0)),r=this.pointCoordinate(new t.Point(this.width,0)),a=this.pointCoordinate(new t.Point(this.width,this.height)),n=this.pointCoordinate(new t.Point(0,this.height)),s=Math.floor(Math.min(o.x,r.x,a.x,n.x)),l=Math.floor(Math.max(o.x,r.x,a.x,n.x)),c=s-1;c<=l+1;c++)0!==c&&i.push(new t.UnwrappedTileID(c,e));return i},wo.prototype.coveringTiles=function(e){var i=this.coveringZoomLevel(e),o=i;if(void 0!==e.minzoom&&ie.maxzoom&&(i=e.maxzoom);var r=t.MercatorCoordinate.fromLngLat(this.center),a=Math.pow(2,i),n=[a*r.x,a*r.y,0],s=yo.fromInvProjectionMatrix(this.invProjMatrix,this.worldSize,i),l=e.minzoom||0;this.pitch<=60&&this._edgeInsets.top<.1&&(l=i);var c=function(t){return {aabb:new xo([t*a,0,0],[(t+1)*a,a,0]),zoom:0,x:0,y:0,wrap:t,fullyVisible:!1}},u=[],h=[],p=i,d=e.reparseOverscaled?o:i;if(this._renderWorldCopies)for(var _=1;_<=3;_++)u.push(c(-_)),u.push(c(_));for(u.push(c(0));u.length>0;){var f=u.pop(),m=f.x,g=f.y,v=f.fullyVisible;if(!v){var y=f.aabb.intersects(s);if(0===y)continue;v=2===y;}var x=f.aabb.distanceX(n),b=f.aabb.distanceY(n),w=Math.max(Math.abs(x),Math.abs(b));if(f.zoom===p||w>3+(1<=l)h.push({tileID:new t.OverscaledTileID(f.zoom===p?d:f.zoom,f.wrap,f.zoom,m,g),distanceSq:t.sqrLen([n[0]-.5-m,n[1]-.5-g])});else for(var T=0;T<4;T++){var E=(m<<1)+T%2,I=(g<<1)+(T>>1);u.push({aabb:f.aabb.quadrant(T),zoom:f.zoom+1,x:E,y:I,wrap:f.wrap,fullyVisible:v});}}return h.sort((function(t,e){return t.distanceSq-e.distanceSq})).map((function(t){return t.tileID}))},wo.prototype.resize=function(t,e){this.width=t,this.height=e,this.pixelsToGLUnits=[2/t,-2/e],this._constrain(),this._calcMatrices();},To.unmodified.get=function(){return this._unmodified},wo.prototype.zoomScale=function(t){return Math.pow(2,t)},wo.prototype.scaleZoom=function(t){return Math.log(t)/Math.LN2},wo.prototype.project=function(e){var i=t.clamp(e.lat,-this.maxValidLatitude,this.maxValidLatitude);return new t.Point(t.mercatorXfromLng(e.lng)*this.worldSize,t.mercatorYfromLat(i)*this.worldSize)},wo.prototype.unproject=function(e){return new t.MercatorCoordinate(e.x/this.worldSize,e.y/this.worldSize).toLngLat()},To.point.get=function(){return this.project(this.center)},wo.prototype.setLocationAtPoint=function(e,i){var o=this.pointCoordinate(i),r=this.pointCoordinate(this.centerPoint),a=this.locationCoordinate(e),n=new t.MercatorCoordinate(a.x-(o.x-r.x),a.y-(o.y-r.y));this.center=this.coordinateLocation(n),this._renderWorldCopies&&(this.center=this.center.wrap());},wo.prototype.locationPoint=function(t){return this.coordinatePoint(this.locationCoordinate(t))},wo.prototype.pointLocation=function(t){return this.coordinateLocation(this.pointCoordinate(t))},wo.prototype.locationCoordinate=function(e){return t.MercatorCoordinate.fromLngLat(e)},wo.prototype.coordinateLocation=function(t){return t.toLngLat()},wo.prototype.pointCoordinate=function(e){var i=[e.x,e.y,0,1],o=[e.x,e.y,1,1];t.transformMat4(i,i,this.pixelMatrixInverse),t.transformMat4(o,o,this.pixelMatrixInverse);var r=i[3],a=o[3],n=i[1]/r,s=o[1]/a,l=i[2]/r,c=o[2]/a,u=l===c?0:(0-l)/(c-l);return new t.MercatorCoordinate(t.number(i[0]/r,o[0]/a,u)/this.worldSize,t.number(n,s,u)/this.worldSize)},wo.prototype.coordinatePoint=function(e){var i=[e.x*this.worldSize,e.y*this.worldSize,0,1];return t.transformMat4(i,i,this.pixelMatrix),new t.Point(i[0]/i[3],i[1]/i[3])},wo.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)))},wo.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},wo.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]);},wo.prototype.calculatePosMatrix=function(e,i){void 0===i&&(i=!1);var o=e.key,r=i?this._alignedPosMatrixCache:this._posMatrixCache;if(r[o])return r[o];var a=e.canonical,n=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*n,a.y*n,0]),t.scale(l,l,[n/t.EXTENT,n/t.EXTENT,1]),t.multiply(l,i?this.alignedProjMatrix:this.projMatrix,l),r[o]=new Float32Array(l),r[o]},wo.prototype.customLayerMatrix=function(){return this.mercatorMatrix.slice()},wo.prototype._constrain=function(){if(this.center&&this.width&&this.height&&!this._constraining){this._constraining=!0;var e,i,o,r,a=-90,n=90,s=-180,l=180,c=this.size,u=this._unmodified;if(this.latRange){var h=this.latRange;a=t.mercatorYfromLat(h[1])*this.worldSize,e=(n=t.mercatorYfromLat(h[0])*this.worldSize)-an&&(r=n-m);}if(this.lngRange){var g=d.x,v=c.x/2;g-vl&&(o=l-v);}void 0===o&&void 0===r||(this.center=this.unproject(new t.Point(void 0!==o?o:d.x,void 0!==r?r:d.y))),this._unmodified=u,this._constraining=!1;}},wo.prototype._calcMatrices=function(){if(this.height){var e=this.centerOffset;this.cameraToCenterDistance=.5/Math.tan(this._fov/2)*this.height;var i=Math.PI/2+this._pitch,o=this._fov*(.5+e.y/this.height),r=Math.sin(o)*this.cameraToCenterDistance/Math.sin(t.clamp(Math.PI-i-o,.01,Math.PI-.01)),a=this.point,n=a.x,s=a.y,l=1.01*(Math.cos(Math.PI/2-this._pitch)*r+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,[-n,-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 h=this.width%2/2,p=this.height%2/2,d=Math.cos(this.angle),_=Math.sin(this.angle),f=n-Math.round(n)+d*h+_*p,m=s-Math.round(s)+d*p+_*h,g=new Float64Array(u);if(t.translate(g,g,[f>.5?f-1:f,m>.5?m-1:m,0]),this.alignedProjMatrix=g,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={};}},wo.prototype.maxPitchScaleFactor=function(){if(!this.pixelMatrixInverse)return 1;var e=this.pointCoordinate(new t.Point(0,0)),i=[e.x*this.worldSize,e.y*this.worldSize,0,1];return t.transformMat4(i,i,this.pixelMatrix)[3]/this.cameraToCenterDistance},wo.prototype.getCameraPoint=function(){var e=Math.tan(this._pitch)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new t.Point(0,e))},wo.prototype.getCameraQueryGeometry=function(e){var i=this.getCameraPoint();if(1===e.length)return [e[0],i];for(var o=i.x,r=i.y,a=i.x,n=i.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},Eo.prototype._updateHashUnthrottled=function(){var e=this.getHashString();try{t.window.history.replaceState(t.window.history.state,"",e);}catch(t){}};var Io={linearity:.3,easing:t.bezier(0,0,.3,1)},Po=t.extend({deceleration:2500,maxSpeed:1400},Io),So=t.extend({deceleration:20,maxSpeed:1400},Io),Co=t.extend({deceleration:1e3,maxSpeed:360},Io),zo=t.extend({deceleration:1e3,maxSpeed:90},Io),Do=function(t){this._map=t,this.clear();};function Mo(t,e){(!t.duration||t.duration0&&i-e[0].time>160;)e.shift();},Do.prototype._onMoveEnd=function(e){if(this._drainInertiaBuffer(),!(this._inertiaBuffer.length<2)){for(var i={zoom:0,bearing:0,pitch:0,pan:new t.Point(0,0),pinchAround:void 0,around:void 0},o=0,r=this._inertiaBuffer;o=this._clickTolerance||this._map.fire(new Ao(t.type,this._map,t));},Bo.prototype.dblclick=function(t){return this._firePreventable(new Ao(t.type,this._map,t))},Bo.prototype.mouseover=function(t){this._map.fire(new Ao(t.type,this._map,t));},Bo.prototype.mouseout=function(t){this._map.fire(new Ao(t.type,this._map,t));},Bo.prototype.touchstart=function(t){return this._firePreventable(new Ro(t.type,this._map,t))},Bo.prototype.touchmove=function(t){this._map.fire(new Ro(t.type,this._map,t));},Bo.prototype.touchend=function(t){this._map.fire(new Ro(t.type,this._map,t));},Bo.prototype.touchcancel=function(t){this._map.fire(new Ro(t.type,this._map,t));},Bo.prototype._firePreventable=function(t){if(this._map.fire(t),t.defaultPrevented)return {}},Bo.prototype.isEnabled=function(){return !0},Bo.prototype.isActive=function(){return !1},Bo.prototype.enable=function(){},Bo.prototype.disable=function(){};var Oo=function(t){this._map=t;};Oo.prototype.reset=function(){this._delayContextMenu=!1,delete this._contextMenuEvent;},Oo.prototype.mousemove=function(t){this._map.fire(new Ao(t.type,this._map,t));},Oo.prototype.mousedown=function(){this._delayContextMenu=!0;},Oo.prototype.mouseup=function(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new Ao("contextmenu",this._map,this._contextMenuEvent)),delete this._contextMenuEvent);},Oo.prototype.contextmenu=function(t){this._delayContextMenu?this._contextMenuEvent=t:this._map.fire(new Ao(t.type,this._map,t)),this._map.listens("contextmenu")&&t.preventDefault();},Oo.prototype.isEnabled=function(){return !0},Oo.prototype.isActive=function(){return !1},Oo.prototype.enable=function(){},Oo.prototype.disable=function(){};var Fo=function(t,e){this._map=t,this._el=t.getCanvasContainer(),this._container=t.getContainer(),this._clickTolerance=e.clickTolerance||1;};function Uo(t,e){for(var i={},o=0;othis.numTouches)&&(this.aborted=!0),this.aborted||(void 0===this.startTime&&(this.startTime=e.timeStamp),o.length===this.numTouches&&(this.centroid=function(e){for(var i=new t.Point(0,0),o=0,r=e;o30)&&(this.aborted=!0);}}},No.prototype.touchend=function(t,e,i){if((!this.centroid||t.timeStamp-this.startTime>500)&&(this.aborted=!0),0===i.length){var o=!this.aborted&&this.centroid;if(this.reset(),o)return o}};var Zo=function(t){this.singleTap=new No(t),this.numTaps=t.numTaps,this.reset();};Zo.prototype.reset=function(){this.lastTime=1/0,delete this.lastTap,this.count=0,this.singleTap.reset();},Zo.prototype.touchstart=function(t,e,i){this.singleTap.touchstart(t,e,i);},Zo.prototype.touchmove=function(t,e,i){this.singleTap.touchmove(t,e,i);},Zo.prototype.touchend=function(t,e,i){var o=this.singleTap.touchend(t,e,i);if(o){var r=t.timeStamp-this.lastTime<500,a=!this.lastTap||this.lastTap.dist(o)<30;if(r&&a||this.reset(),this.count++,this.lastTime=t.timeStamp,this.lastTap=o,this.count===this.numTaps)return this.reset(),o}};var jo=function(){this._zoomIn=new Zo({numTouches:1,numTaps:2}),this._zoomOut=new Zo({numTouches:2,numTaps:1}),this.reset();};jo.prototype.reset=function(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset();},jo.prototype.touchstart=function(t,e,i){this._zoomIn.touchstart(t,e,i),this._zoomOut.touchstart(t,e,i);},jo.prototype.touchmove=function(t,e,i){this._zoomIn.touchmove(t,e,i),this._zoomOut.touchmove(t,e,i);},jo.prototype.touchend=function(t,e,i){var o=this,r=this._zoomIn.touchend(t,e,i),a=this._zoomOut.touchend(t,e,i);return r?(this._active=!0,t.preventDefault(),setTimeout((function(){return o.reset()}),0),{cameraAnimation:function(e){return e.easeTo({duration:300,zoom:e.getZoom()+1,around:e.unproject(r)},{originalEvent:t})}}):a?(this._active=!0,t.preventDefault(),setTimeout((function(){return o.reset()}),0),{cameraAnimation:function(e){return e.easeTo({duration:300,zoom:e.getZoom()-1,around:e.unproject(a)},{originalEvent:t})}}):void 0},jo.prototype.touchcancel=function(){this.reset();},jo.prototype.enable=function(){this._enabled=!0;},jo.prototype.disable=function(){this._enabled=!1,this.reset();},jo.prototype.isEnabled=function(){return this._enabled},jo.prototype.isActive=function(){return this._active};var qo=function(t){this.reset(),this._clickTolerance=t.clickTolerance||1;};qo.prototype.reset=function(){this._active=!1,this._moved=!1,delete this._lastPoint,delete this._eventButton;},qo.prototype._correctButton=function(t,e){return !1},qo.prototype._move=function(t,e){return {}},qo.prototype.mousedown=function(t,e){if(!this._lastPoint){var o=i.mouseButton(t);this._correctButton(t,o)&&(this._lastPoint=e,this._eventButton=o);}},qo.prototype.mousemoveWindow=function(t,e){var i=this._lastPoint;if(i&&(t.preventDefault(),this._moved||!(e.dist(i)0&&(this._active=!0);var r=Uo(o,i),a=new t.Point(0,0),n=new t.Point(0,0),s=0;for(var l in r){var c=r[l],u=this._touches[l];u&&(a._add(c),n._add(c.sub(u)),s++,r[l]=c);}if(this._touches=r,!(sMath.abs(t.x)}var er=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,tr(t[0].sub(t[1]))&&(this._valid=!1);},e.prototype._move=function(t,e,i){var o=t[0].sub(this._lastPoints[0]),r=t[1].sub(this._lastPoints[1]);if(this._valid=this.gestureBeginsVertically(o,r,i.timeStamp),this._valid)return this._lastPoints=t,this._active=!0,{pitchDelta:(o.y+r.y)/2*-.5}},e.prototype.gestureBeginsVertically=function(t,e,i){if(void 0!==this._valid)return this._valid;var o=t.mag()>=2,r=e.mag()>=2;if(o||r){if(!o||!r)return void 0===this._firstMove&&(this._firstMove=i),i-this._firstMove<100&&void 0;var a=t.y>0==e.y>0;return tr(t)&&tr(e)&&a}},e}(Ho),ir={panStep:100,bearingStep:15,pitchStep:10},or=function(){var t=ir;this._panStep=t.panStep,this._bearingStep=t.bearingStep,this._pitchStep=t.pitchStep;};function rr(t){return t*(2-t)}or.prototype.reset=function(){this._active=!1;},or.prototype.keydown=function(t){var e=this;if(!(t.altKey||t.ctrlKey||t.metaKey)){var i=0,o=0,r=0,a=0,n=0;switch(t.keyCode){case 61:case 107:case 171:case 187:i=1;break;case 189:case 109:case 173:i=-1;break;case 37:t.shiftKey?o=-1:(t.preventDefault(),a=-1);break;case 39:t.shiftKey?o=1:(t.preventDefault(),a=1);break;case 38:t.shiftKey?r=1:(t.preventDefault(),n=-1);break;case 40:t.shiftKey?r=-1:(t.preventDefault(),n=1);break;default:return}return {cameraAnimation:function(s){var l=s.getZoom();s.easeTo({duration:300,easeId:"keyboardHandler",easing:rr,zoom:i?Math.round(l)+i*(t.shiftKey?2:1):l,bearing:s.getBearing()+o*e._bearingStep,pitch:s.getPitch()+r*e._pitchStep,offset:[-a*e._panStep,-n*e._panStep],center:s.getCenter()},{originalEvent:t});}}}},or.prototype.enable=function(){this._enabled=!0;},or.prototype.disable=function(){this._enabled=!1,this.reset();},or.prototype.isEnabled=function(){return this._enabled},or.prototype.isActive=function(){return this._active};var ar=function(e,i){this._map=e,this._el=e.getCanvasContainer(),this._handler=i,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=1/450,t.bindAll(["_onWheel","_onTimeout","_onScrollFrame","_onScrollFinished"],this);};ar.prototype.setZoomRate=function(t){this._defaultZoomRate=t;},ar.prototype.setWheelZoomRate=function(t){this._wheelZoomRate=t;},ar.prototype.isEnabled=function(){return !!this._enabled},ar.prototype.isActive=function(){return !!this._active||void 0!==this._finishTimeout},ar.prototype.isZooming=function(){return !!this._zooming},ar.prototype.enable=function(t){this.isEnabled()||(this._enabled=!0,this._aroundCenter=t&&"center"===t.around);},ar.prototype.disable=function(){this.isEnabled()&&(this._enabled=!1);},ar.prototype.wheel=function(e){if(this.isEnabled()){var i=e.deltaMode===t.window.WheelEvent.DOM_DELTA_LINE?40*e.deltaY:e.deltaY,o=t.browser.now(),r=o-(this._lastWheelEventTime||0);this._lastWheelEventTime=o,0!==i&&i%4.000244140625==0?this._type="wheel":0!==i&&Math.abs(i)<4?this._type="trackpad":r>400?(this._type=null,this._lastValue=i,this._timeout=setTimeout(this._onTimeout,40,e)):this._type||(this._type=Math.abs(r*i)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,i+=this._lastValue)),e.shiftKey&&i&&(i/=4),this._type&&(this._lastWheelEvent=e,this._delta-=i,this._active||this._start(e)),e.preventDefault();}},ar.prototype._onTimeout=function(t){this._type="wheel",this._delta-=this._lastValue,this._active||this._start(t);},ar.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 o=i.mousePos(this._el,e);this._around=t.LngLat.convert(this._aroundCenter?this._map.getCenter():this._map.unproject(o)),this._aroundPoint=this._map.transform.locationPoint(this._around),this._frameId||(this._frameId=!0,this._handler._triggerRenderFrame());}},ar.prototype.renderFrame=function(){return this._onScrollFrame()},ar.prototype._onScrollFrame=function(){var e=this;if(this._frameId&&(this._frameId=null,this.isActive())){var i=this._map.transform;if(0!==this._delta){var o="wheel"===this._type&&Math.abs(this._delta)>4.000244140625?this._wheelZoomRate:this._defaultZoomRate,r=2/(1+Math.exp(-Math.abs(this._delta*o)));this._delta<0&&0!==r&&(r=1/r);var a="number"==typeof this._targetZoom?i.zoomScale(this._targetZoom):i.scale;this._targetZoom=Math.min(i.maxZoom,Math.max(i.minZoom,i.scaleZoom(a*r))),"wheel"===this._type&&(this._startZoom=i.zoom,this._easing=this._smoothOutEasing(200)),this._delta=0;}var n,s="number"==typeof this._targetZoom?this._targetZoom:i.zoom,l=this._startZoom,c=this._easing,u=!1;if("wheel"===this._type&&l&&c){var h=Math.min((t.browser.now()-this._lastWheelEventTime)/200,1),p=c(h);n=t.number(l,s,p),h<1?this._frameId||(this._frameId=!0):u=!0;}else n=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:n-i.zoom,around:this._aroundPoint,originalEvent:this._lastWheelEvent}}},ar.prototype._smoothOutEasing=function(e){var i=t.ease;if(this._prevEase){var o=this._prevEase,r=(t.browser.now()-o.start)/o.duration,a=o.easing(r+.01)-o.easing(r),n=.27/Math.sqrt(a*a+1e-4)*.01,s=Math.sqrt(.0729-n*n);i=t.bezier(n,s,.25,1);}return this._prevEase={start:t.browser.now(),duration:e,easing:i},i},ar.prototype.reset=function(){this._active=!1;};var nr=function(t,e){this._clickZoom=t,this._tapZoom=e;};nr.prototype.enable=function(){this._clickZoom.enable(),this._tapZoom.enable();},nr.prototype.disable=function(){this._clickZoom.disable(),this._tapZoom.disable();},nr.prototype.isEnabled=function(){return this._clickZoom.isEnabled()&&this._tapZoom.isEnabled()},nr.prototype.isActive=function(){return this._clickZoom.isActive()||this._tapZoom.isActive()};var sr=function(){this.reset();};sr.prototype.reset=function(){this._active=!1;},sr.prototype.dblclick=function(t,e){return t.preventDefault(),{cameraAnimation:function(i){i.easeTo({duration:300,zoom:i.getZoom()+(t.shiftKey?-1:1),around:i.unproject(e)},{originalEvent:t});}}},sr.prototype.enable=function(){this._enabled=!0;},sr.prototype.disable=function(){this._enabled=!1,this.reset();},sr.prototype.isEnabled=function(){return this._enabled},sr.prototype.isActive=function(){return this._active};var lr=function(){this._tap=new Zo({numTouches:1,numTaps:1}),this.reset();};lr.prototype.reset=function(){this._active=!1,delete this._swipePoint,delete this._swipeTouch,delete this._tapTime,this._tap.reset();},lr.prototype.touchstart=function(t,e,i){this._swipePoint||(this._tapTime&&t.timeStamp-this._tapTime>500&&this.reset(),this._tapTime?i.length>0&&(this._swipePoint=e[0],this._swipeTouch=i[0].identifier):this._tap.touchstart(t,e,i));},lr.prototype.touchmove=function(t,e,i){if(this._tapTime){if(this._swipePoint){if(i[0].identifier!==this._swipeTouch)return;var o=e[0],r=o.y-this._swipePoint.y;return this._swipePoint=o,t.preventDefault(),this._active=!0,{zoomDelta:r/128}}}else this._tap.touchmove(t,e,i);},lr.prototype.touchend=function(t,e,i){this._tapTime?this._swipePoint&&0===i.length&&this.reset():this._tap.touchend(t,e,i)&&(this._tapTime=t.timeStamp);},lr.prototype.touchcancel=function(){this.reset();},lr.prototype.enable=function(){this._enabled=!0;},lr.prototype.disable=function(){this._enabled=!1,this.reset();},lr.prototype.isEnabled=function(){return this._enabled},lr.prototype.isActive=function(){return this._active};var cr=function(t,e,i){this._el=t,this._mousePan=e,this._touchPan=i;};cr.prototype.enable=function(t){this._inertiaOptions=t||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add("mapboxgl-touch-drag-pan");},cr.prototype.disable=function(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove("mapboxgl-touch-drag-pan");},cr.prototype.isEnabled=function(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()},cr.prototype.isActive=function(){return this._mousePan.isActive()||this._touchPan.isActive()};var ur=function(t,e,i){this._pitchWithRotate=t.pitchWithRotate,this._mouseRotate=e,this._mousePitch=i;};ur.prototype.enable=function(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable();},ur.prototype.disable=function(){this._mouseRotate.disable(),this._mousePitch.disable();},ur.prototype.isEnabled=function(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())},ur.prototype.isActive=function(){return this._mouseRotate.isActive()||this._mousePitch.isActive()};var hr=function(t,e,i,o){this._el=t,this._touchZoom=e,this._touchRotate=i,this._tapDragZoom=o,this._rotationDisabled=!1,this._enabled=!0;};hr.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");},hr.prototype.disable=function(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove("mapboxgl-touch-zoom-rotate");},hr.prototype.isEnabled=function(){return this._touchZoom.isEnabled()&&(this._rotationDisabled||this._touchRotate.isEnabled())&&this._tapDragZoom.isEnabled()},hr.prototype.isActive=function(){return this._touchZoom.isActive()||this._touchRotate.isActive()||this._tapDragZoom.isActive()},hr.prototype.disableRotation=function(){this._rotationDisabled=!0,this._touchRotate.disable();},hr.prototype.enableRotation=function(){this._rotationDisabled=!1,this._touchZoom.isEnabled()&&this._touchRotate.enable();};var pr=function(t){return t.zoom||t.drag||t.pitch||t.rotate},dr=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 _r(t){return t.panDelta&&t.panDelta.mag()||t.zoomDelta||t.bearingDelta||t.pitchDelta}var fr=function(e,o){this._map=e,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new Do(e),this._bearingSnap=o.bearingSnap,this._previousActiveHandlers={},this._eventsInProgress={},this._addDefaultHandlers(o),t.bindAll(["handleEvent","handleWindowEvent"],this);var r=this._el;this._listeners=[[r,"touchstart",{passive:!1}],[r,"touchmove",{passive:!1}],[r,"touchend",void 0],[r,"touchcancel",void 0],[r,"mousedown",void 0],[r,"mousemove",void 0],[r,"mouseup",void 0],[t.window.document,"mousemove",{capture:!0}],[t.window.document,"mouseup",void 0],[r,"mouseover",void 0],[r,"mouseout",void 0],[r,"dblclick",void 0],[r,"click",void 0],[r,"keydown",{capture:!1}],[r,"keyup",void 0],[r,"wheel",{passive:!1}],[r,"contextmenu",void 0],[t.window,"blur",void 0]];for(var a=0,n=this._listeners;aa?Math.min(2,b):Math.max(.5,b),w=Math.pow(m,1-e),T=r.unproject(y.add(x.mult(e*w)).mult(f));r.setLocationAtPoint(r.renderWorldCopies?T.wrap():T,_);}o._fireMoveEvents(i);}),(function(t){o._afterEase(i,t);}),e),this},i.prototype._prepareEase=function(e,i,o){void 0===o&&(o={}),this._moving=!0,i||o.moving||this.fire(new t.Event("movestart",e)),this._zooming&&!o.zooming&&this.fire(new t.Event("zoomstart",e)),this._rotating&&!o.rotating&&this.fire(new t.Event("rotatestart",e)),this._pitching&&!o.pitching&&this.fire(new t.Event("pitchstart",e));},i.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));},i.prototype._afterEase=function(e,i){if(!this._easeId||!i||this._easeId!==i){delete this._easeId;var o=this._zooming,r=this._rotating,a=this._pitching;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._padding=!1,o&&this.fire(new t.Event("zoomend",e)),r&&this.fire(new t.Event("rotateend",e)),a&&this.fire(new t.Event("pitchend",e)),this.fire(new t.Event("moveend",e));}},i.prototype.flyTo=function(e,i){var o=this;if(!e.essential&&t.browser.prefersReducedMotion){var r=t.pick(e,["center","zoom","bearing","pitch","around"]);return this.jumpTo(r,i)}this.stop(),e=t.extend({offset:[0,0],speed:1.2,curve:1.42,easing:t.ease},e);var a=this.transform,n=this.getZoom(),s=this.getBearing(),l=this.getPitch(),c=this.getPadding(),u="zoom"in e?t.clamp(+e.zoom,a.minZoom,a.maxZoom):n,h="bearing"in e?this._normalizeBearing(e.bearing,s):s,p="pitch"in e?+e.pitch:l,d="padding"in e?e.padding:a.padding,_=a.zoomScale(u-n),f=t.Point.convert(e.offset),m=a.centerPoint.add(f),g=a.pointLocation(m),v=t.LngLat.convert(e.center||g);this._normalizeCenter(v);var y=a.project(g),x=a.project(v).sub(y),b=e.curve,w=Math.max(a.width,a.height),T=w/_,E=x.mag();if("minZoom"in e){var I=t.clamp(Math.min(e.minZoom,n,u),a.minZoom,a.maxZoom),P=w/a.zoomScale(I-n);b=Math.sqrt(P/E*2);}var S=b*b;function C(t){var e=(T*T-w*w+(t?-1:1)*S*S*E*E)/(2*(t?T:w)*S*E);return Math.log(Math.sqrt(e*e+1)-e)}function z(t){return (Math.exp(t)-Math.exp(-t))/2}function D(t){return (Math.exp(t)+Math.exp(-t))/2}var M=C(0),L=function(t){return D(M)/D(M+b*t)},A=function(t){return w*((D(M)*(z(e=M+b*t)/D(e))-z(M))/S)/E;var e;},R=(C(1)-M)/b;if(Math.abs(E)<1e-6||!isFinite(R)){if(Math.abs(w-T)<1e-6)return this.easeTo(e,i);var k=Te.maxDuration&&(e.duration=0),this._zooming=!0,this._rotating=s!==h,this._pitching=p!==l,this._padding=!a.isPaddingEqual(d),this._prepareEase(i,!1),this._ease((function(e){var r=e*R,_=1/L(r);a.zoom=1===e?u:n+a.scaleZoom(_),o._rotating&&(a.bearing=t.number(s,h,e)),o._pitching&&(a.pitch=t.number(l,p,e)),o._padding&&(a.interpolatePadding(c,d,e),m=a.centerPoint.add(f));var g=1===e?v:a.unproject(y.add(x.mult(A(r))).mult(_));a.setLocationAtPoint(a.renderWorldCopies?g.wrap():g,m),o._fireMoveEvents(i);}),(function(){return o._afterEase(i)}),e),this},i.prototype.isEasing=function(){return !!this._easeFrameId},i.prototype.stop=function(){return this._stop()},i.prototype._stop=function(t,e){if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),delete this._easeFrameId,delete this._onEaseFrame),this._onEaseEnd){var i=this._onEaseEnd;delete this._onEaseEnd,i.call(this,e);}if(!t){var o=this.handlers;o&&o.stop();}return this},i.prototype._ease=function(e,i,o){!1===o.animate||0===o.duration?(e(1),i()):(this._easeStart=t.browser.now(),this._easeOptions=o,this._onEaseFrame=e,this._onEaseEnd=i,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback));},i.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();},i.prototype._normalizeBearing=function(e,i){e=t.wrap(e,-180,180);var o=Math.abs(e-i);return Math.abs(e-360-i)180?-360:i<-180?360:0;}},i}(t.Evented),gr=function(e){void 0===e&&(e={}),this.options=e,t.bindAll(["_updateEditLink","_updateData","_updateCompact"],this);};gr.prototype.getDefaultPosition=function(){return "bottom-right"},gr.prototype.onAdd=function(t){var e=this.options&&this.options.compact;return this._map=t,this._container=i.create("div","mapboxgl-ctrl mapboxgl-ctrl-attrib"),this._innerContainer=i.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},gr.prototype.onRemove=function(){i.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;},gr.prototype._updateEditLink=function(){var e=this._editLink;e||(e=this._editLink=this._container.querySelector(".mapbox-improve-map"));var i=[{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 o=i.reduce((function(t,e,o){return e.value&&(t+=e.key+"="+e.value+(o=0)return !1;return !0}))).join(" | ");n!==this._attribHTML&&(this._attribHTML=n,t.length?(this._innerContainer.innerHTML=n,this._container.classList.remove("mapboxgl-attrib-empty")):this._container.classList.add("mapboxgl-attrib-empty"),this._editLink=null);}},gr.prototype._updateCompact=function(){this._map.getCanvasContainer().offsetWidth<=640?this._container.classList.add("mapboxgl-compact"):this._container.classList.remove("mapboxgl-compact");};var vr=function(){t.bindAll(["_updateLogo"],this),t.bindAll(["_updateCompact"],this);};vr.prototype.onAdd=function(t){this._map=t,this._container=i.create("div","mapboxgl-ctrl");var e=i.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},vr.prototype.onRemove=function(){i.remove(this._container),this._map.off("sourcedata",this._updateLogo),this._map.off("resize",this._updateCompact);},vr.prototype.getDefaultPosition=function(){return "bottom-left"},vr.prototype._updateLogo=function(t){t&&"metadata"!==t.sourceDataType||(this._container.style.display=this._logoRequired()?"block":"none");},vr.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}},vr.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 yr=function(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1;};yr.prototype.add=function(t){var e=++this._id;return this._queue.push({callback:t,id:e,cancelled:!1}),e},yr.prototype.remove=function(t){for(var e=this._currentlyRunning,i=0,o=e?this._queue.concat(e):this._queue;ie.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 r=new wo(e.minZoom,e.maxZoom,e.minPitch,e.maxPitch,e.renderWorldCopies);if(o.call(this,r,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 yr,this._controls=[],this._mapId=t.uniqueId(),this._locale=t.extend({},xr,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 wr))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 i._update(!1)})),this.on("moveend",(function(){return i._update(!1)})),this.on("zoom",(function(){return i._update(!0)})),void 0!==t.window&&(t.window.addEventListener("online",this._onWindowOnline,!1),t.window.addEventListener("resize",this._onWindowResize,!1)),this.handlers=new fr(this,e),this._hash=e.hash&&new Eo("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 gr({customAttribution:e.customAttribution})),this.addControl(new vr,e.logoPosition),this.on("style.load",(function(){i.transform.unmodified&&i.jumpTo(i.style.stylesheet);})),this.on("data",(function(e){i._update("style"===e.dataType),i.fire(new t.Event(e.dataType+"data",e));})),this.on("dataloading",(function(e){i.fire(new t.Event(e.dataType+"dataloading",e));}));}o&&(r.__proto__=o),(r.prototype=Object.create(o&&o.prototype)).constructor=r;var a={showTileBoundaries:{configurable:!0},showPadding:{configurable:!0},showCollisionBoxes:{configurable:!0},showOverdrawInspector:{configurable:!0},repaint:{configurable:!0},vertices:{configurable:!0},version:{configurable:!0}};return r.prototype._getMapId=function(){return this._mapId},r.prototype.addControl=function(e,i){if(void 0===i&&e.getDefaultPosition&&(i=e.getDefaultPosition()),void 0===i&&(i="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 o=e.onAdd(this);this._controls.push(e);var r=this._controlPositions[i];return -1!==i.indexOf("bottom")?r.insertBefore(o,r.firstChild):r.appendChild(o),this},r.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 i=this._controls.indexOf(e);return i>-1&&this._controls.splice(i,1),e.onRemove(this),this},r.prototype.resize=function(e){var i=this._containerDimensions(),o=i[0],r=i[1];this._resizeCanvas(o,r),this.transform.resize(o,r),this.painter.resize(o,r);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},r.prototype.getBounds=function(){return this.transform.getBounds()},r.prototype.getMaxBounds=function(){return this.transform.getMaxBounds()},r.prototype.setMaxBounds=function(e){return this.transform.setMaxBounds(t.LngLatBounds.convert(e)),this._update()},r.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")},r.prototype.getMaxZoom=function(){return this.transform.maxZoom},r.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")},r.prototype.getMaxPitch=function(){return this.transform.maxPitch},r.prototype.getRenderWorldCopies=function(){return this.transform.renderWorldCopies},r.prototype.setRenderWorldCopies=function(t){return this.transform.renderWorldCopies=t,this._update()},r.prototype.project=function(e){return this.transform.locationPoint(t.LngLat.convert(e))},r.prototype.unproject=function(e){return this.transform.pointLocation(t.Point.convert(e))},r.prototype.isMoving=function(){return this._moving||this.handlers.isMoving()},r.prototype.isZooming=function(){return this._zooming||this.handlers.isZooming()},r.prototype.isRotating=function(){return this._rotating||this.handlers.isRotating()},r.prototype._createDelegatedListener=function(t,e,i){var o,r=this;if("mouseenter"===t||"mouseover"===t){var a=!1;return {layer:e,listener:i,delegates:{mousemove:function(o){var n=r.getLayer(e)?r.queryRenderedFeatures(o.point,{layers:[e]}):[];n.length?a||(a=!0,i.call(r,new Ao(t,r,o.originalEvent,{features:n}))):a=!1;},mouseout:function(){a=!1;}}}}if("mouseleave"===t||"mouseout"===t){var n=!1;return {layer:e,listener:i,delegates:{mousemove:function(o){(r.getLayer(e)?r.queryRenderedFeatures(o.point,{layers:[e]}):[]).length?n=!0:n&&(n=!1,i.call(r,new Ao(t,r,o.originalEvent)));},mouseout:function(e){n&&(n=!1,i.call(r,new Ao(t,r,e.originalEvent)));}}}}return {layer:e,listener:i,delegates:(o={},o[t]=function(t){var o=r.getLayer(e)?r.queryRenderedFeatures(t.point,{layers:[e]}):[];o.length&&(t.features=o,i.call(r,t),delete t.features);},o)}},r.prototype.on=function(t,e,i){if(void 0===i)return o.prototype.on.call(this,t,e);var r=this._createDelegatedListener(t,e,i);for(var a in this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[t]=this._delegatedListeners[t]||[],this._delegatedListeners[t].push(r),r.delegates)this.on(a,r.delegates[a]);return this},r.prototype.once=function(t,e,i){if(void 0===i)return o.prototype.once.call(this,t,e);var r=this._createDelegatedListener(t,e,i);for(var a in r.delegates)this.once(a,r.delegates[a]);return this},r.prototype.off=function(t,e,i){var r=this;return void 0===i?o.prototype.off.call(this,t,e):(this._delegatedListeners&&this._delegatedListeners[t]&&function(o){for(var a=o[t],n=0;n180;){var s=o.locationPoint(e);if(s.x>=0&&s.y>=0&&s.x<=o.width&&s.y<=o.height)break;e.lng>o.center.lng?e.lng-=360:e.lng+=360;}return e}zr.prototype.down=function(t,e){this.mouseRotate.mousedown(t,e),this.mousePitch&&this.mousePitch.mousedown(t,e),i.disableDrag();},zr.prototype.move=function(t,e){var i=this.map,o=this.mouseRotate.mousemoveWindow(t,e);if(o&&o.bearingDelta&&i.setBearing(i.getBearing()+o.bearingDelta),this.mousePitch){var r=this.mousePitch.mousemoveWindow(t,e);r&&r.pitchDelta&&i.setPitch(i.getPitch()+r.pitchDelta);}},zr.prototype.off=function(){var t=this.element;i.removeEventListener(t,"mousedown",this.mousedown),i.removeEventListener(t,"touchstart",this.touchstart,{passive:!1}),i.removeEventListener(t,"touchmove",this.touchmove),i.removeEventListener(t,"touchend",this.touchend),i.removeEventListener(t,"touchcancel",this.reset),this.offTemp();},zr.prototype.offTemp=function(){i.enableDrag(),i.removeEventListener(t.window,"mousemove",this.mousemove),i.removeEventListener(t.window,"mouseup",this.mouseup);},zr.prototype.mousedown=function(e){this.down(t.extend({},e,{ctrlKey:!0,preventDefault:function(){return e.preventDefault()}}),i.mousePos(this.element,e)),i.addEventListener(t.window,"mousemove",this.mousemove),i.addEventListener(t.window,"mouseup",this.mouseup);},zr.prototype.mousemove=function(t){this.move(t,i.mousePos(this.element,t));},zr.prototype.mouseup=function(t){this.mouseRotate.mouseupWindow(t),this.mousePitch&&this.mousePitch.mouseupWindow(t),this.offTemp();},zr.prototype.touchstart=function(t){1!==t.targetTouches.length?this.reset():(this._startPos=this._lastPos=i.touchPos(this.element,t.targetTouches)[0],this.down({type:"mousedown",button:0,ctrlKey:!0,preventDefault:function(){return t.preventDefault()}},this._startPos));},zr.prototype.touchmove=function(t){1!==t.targetTouches.length?this.reset():(this._lastPos=i.touchPos(this.element,t.targetTouches)[0],this.move({preventDefault:function(){return t.preventDefault()}},this._lastPos));},zr.prototype.touchend=function(t){0===t.targetTouches.length&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos)e.getEast()||i.latitudee.getNorth())},o.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");}},o.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();}},o.prototype._updateCamera=function(e){var i=new t.LngLat(e.coords.longitude,e.coords.latitude),o=e.coords.accuracy,r=this._map.getBearing(),a=t.extend({bearing:r},this.options.fitBoundsOptions);this._map.fitBounds(i.toBounds(o),a,{geolocateSource:!0});},o.prototype._updateMarker=function(e){if(e){var i=new t.LngLat(e.coords.longitude,e.coords.latitude);this._accuracyCircleMarker.setLngLat(i).addTo(this._map),this._userLocationDotMarker.setLngLat(i).addTo(this._map),this._accuracy=e.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius();}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove();},o.prototype._updateCircleRadius=function(){var t=this._map._container.clientHeight/2,e=this._map.unproject([0,t]),i=this._map.unproject([1,t]),o=e.distanceTo(i),r=Math.ceil(2*this._accuracy/o);this._circleElement.style.width=r+"px",this._circleElement.style.height=r+"px";},o.prototype._onZoom=function(){this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius();},o.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 i=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.title=i,this._geolocateButton.setAttribute("aria-label",i),void 0!==this._geolocationWatchID&&this._clearWatch();}else {if(3===e.code&&Or)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();}},o.prototype._finish=function(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0;},o.prototype._setupUI=function(e){var o=this;if(this._container.addEventListener("contextmenu",(function(t){return t.preventDefault()})),this._geolocateButton=i.create("button","mapboxgl-ctrl-geolocate",this._container),i.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 r=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.title=r,this._geolocateButton.setAttribute("aria-label",r);}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=i.create("div","mapboxgl-user-location-dot"),this._userLocationDotMarker=new Rr(this._dotElement),this._circleElement=i.create("div","mapboxgl-user-location-accuracy-circle"),this._accuracyCircleMarker=new Rr({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"!==o._watchState||e.originalEvent&&"resize"===e.originalEvent.type||(o._watchState="BACKGROUND",o._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background"),o._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),o.fire(new t.Event("trackuserlocationend")));}));},o.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":Br--,Or=!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"),++Br>1?(e={maximumAge:6e5,timeout:0},Or=!0):(e=this.options.positionOptions,Or=!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},o.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);},o}(t.Evented),Ur={maxWidth:100,unit:"metric"},Nr=function(e){this.options=t.extend({},Ur,e),t.bindAll(["_onMove","setUnit"],this);};function Zr(t,e,i){var o=i&&i.maxWidth||100,r=t._container.clientHeight/2,a=t.unproject([0,r]),n=t.unproject([o,r]),s=a.distanceTo(n);if(i&&"imperial"===i.unit){var l=3.2808*s;l>5280?jr(e,o,l/5280,t._getUIString("ScaleControl.Miles")):jr(e,o,l,t._getUIString("ScaleControl.Feet"));}else i&&"nautical"===i.unit?jr(e,o,s/1852,t._getUIString("ScaleControl.NauticalMiles")):s>=1e3?jr(e,o,s/1e3,t._getUIString("ScaleControl.Kilometers")):jr(e,o,s,t._getUIString("ScaleControl.Meters"));}function jr(t,e,i,o){var r,a,n,s=(r=i,(a=Math.pow(10,(""+Math.floor(r)).length-1))*(n=(n=r/a)>=10?10:n>=5?5:n>=3?3:n>=2?2:n>=1?1:function(t){var e=Math.pow(10,Math.ceil(-Math.log(t)/Math.LN10));return Math.round(t*e)/e}(n)));t.style.width=e*(s/i)+"px",t.innerHTML=s+" "+o;}Nr.prototype.getDefaultPosition=function(){return "bottom-left"},Nr.prototype._onMove=function(){Zr(this._map,this._container,this.options);},Nr.prototype.onAdd=function(t){return this._map=t,this._container=i.create("div","mapboxgl-ctrl mapboxgl-ctrl-scale",t.getContainer()),this._map.on("move",this._onMove),this._onMove(),this._container},Nr.prototype.onRemove=function(){i.remove(this._container),this._map.off("move",this._onMove),this._map=void 0;},Nr.prototype.setUnit=function(t){this.options.unit=t,Zr(this._map,this._container,this.options);};var qr=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");};qr.prototype.onAdd=function(e){return this._map=e,this._container||(this._container=this._map.getContainer()),this._controlContainer=i.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},qr.prototype.onRemove=function(){i.remove(this._controlContainer),this._map=null,t.window.document.removeEventListener(this._fullscreenchange,this._changeIcon);},qr.prototype._checkFullscreenSupport=function(){return !!(t.window.document.fullscreenEnabled||t.window.document.mozFullScreenEnabled||t.window.document.msFullscreenEnabled||t.window.document.webkitFullscreenEnabled)},qr.prototype._setupUI=function(){var e=this._fullscreenButton=i.create("button","mapboxgl-ctrl-fullscreen",this._controlContainer);i.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);},qr.prototype._updateTitle=function(){var t=this._getTitle();this._fullscreenButton.setAttribute("aria-label",t),this._fullscreenButton.title=t;},qr.prototype._getTitle=function(){return this._map._getUIString(this._isFullscreen()?"FullscreenControl.Exit":"FullscreenControl.Enter")},qr.prototype._isFullscreen=function(){return this._fullscreen},qr.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());},qr.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 Vr={closeButton:!0,closeOnClick:!0,className:"",maxWidth:"240px"},Gr=function(e){function o(i){e.call(this),this.options=t.extend(Object.create(Vr),i),t.bindAll(["_update","_onClose","remove","_onMouseMove","_onMouseUp","_onDrag"],this);}return e&&(o.__proto__=e),(o.prototype=Object.create(e&&e.prototype)).constructor=o,o.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},o.prototype.isOpen=function(){return !!this._map},o.prototype.remove=function(){return this._content&&i.remove(this._content),this._container&&(i.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},o.prototype.getLngLat=function(){return this._lngLat},o.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},o.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},o.prototype.getElement=function(){return this._container},o.prototype.setText=function(e){return this.setDOMContent(t.window.document.createTextNode(e))},o.prototype.setHTML=function(e){var i,o=t.window.document.createDocumentFragment(),r=t.window.document.createElement("body");for(r.innerHTML=e;i=r.firstChild;)o.appendChild(i);return this.setDOMContent(o)},o.prototype.getMaxWidth=function(){return this._container&&this._container.style.maxWidth},o.prototype.setMaxWidth=function(t){return this.options.maxWidth=t,this._update(),this},o.prototype.setDOMContent=function(t){return this._createContent(),this._content.appendChild(t),this._update(),this},o.prototype.addClassName=function(t){this._container&&this._container.classList.add(t);},o.prototype.removeClassName=function(t){this._container&&this._container.classList.remove(t);},o.prototype.toggleClassName=function(t){if(this._container)return this._container.classList.toggle(t)},o.prototype._createContent=function(){this._content&&i.remove(this._content),this._content=i.create("div","mapboxgl-popup-content",this._container),this.options.closeButton&&(this._closeButton=i.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));},o.prototype._onMouseUp=function(t){this._update(t.point);},o.prototype._onMouseMove=function(t){this._update(t.point);},o.prototype._onDrag=function(t){this._update(t.point);},o.prototype._update=function(e){var o=this;if(this._map&&(this._lngLat||this._trackPointer)&&this._content&&(this._container||(this._container=i.create("div","mapboxgl-popup",this._map.getContainer()),this._tip=i.create("div","mapboxgl-popup-tip",this._container),this._container.appendChild(this._content),this.options.className&&this.options.className.split(" ").forEach((function(t){return o._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=Dr(this._lngLat,this._pos,this._map.transform)),!this._trackPointer||e)){var r=this._pos=this._trackPointer&&e?e:this._map.project(this._lngLat),a=this.options.anchor,n=function e(i){if(i){if("number"==typeof i){var o=Math.round(Math.sqrt(.5*Math.pow(i,2)));return {center:new t.Point(0,0),top:new t.Point(0,i),"top-left":new t.Point(o,o),"top-right":new t.Point(-o,o),bottom:new t.Point(0,-i),"bottom-left":new t.Point(o,-o),"bottom-right":new t.Point(-o,-o),left:new t.Point(i,0),right:new t.Point(-i,0)}}if(i instanceof t.Point||Array.isArray(i)){var r=t.Point.convert(i);return {center:r,top:r,"top-left":r,"top-right":r,bottom:r,"bottom-left":r,"bottom-right":r,left:r,right:r}}return {center:t.Point.convert(i.center||[0,0]),top:t.Point.convert(i.top||[0,0]),"top-left":t.Point.convert(i["top-left"]||[0,0]),"top-right":t.Point.convert(i["top-right"]||[0,0]),bottom:t.Point.convert(i.bottom||[0,0]),"bottom-left":t.Point.convert(i["bottom-left"]||[0,0]),"bottom-right":t.Point.convert(i["bottom-right"]||[0,0]),left:t.Point.convert(i.left||[0,0]),right:t.Point.convert(i.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=r.y+n.bottom.ythis._map.transform.height-c?["bottom"]:[],r.xthis._map.transform.width-l/2&&s.push("right"),a=0===s.length?"bottom":s.join("-");}var u=r.add(n[a]).round();i.setTransform(this._container,Mr[a]+" translate("+u.x+"px,"+u.y+"px)"),Lr(this._container,a,"popup");}},o.prototype._onClose=function(){this.remove();},o}(t.Evented),Wr={version:t.version,supported:e,setRTLTextPlugin:t.setRTLTextPlugin,getRTLTextPluginStatus:t.getRTLTextPluginStatus,Map:Ir,NavigationControl:Cr,GeolocateControl:Fr,AttributionControl:gr,ScaleControl:Nr,FullscreenControl:qr,Popup:Gr,Marker:Rr,Style:qe,LngLat:t.LngLat,LngLatBounds:t.LngLatBounds,Point:t.Point,MercatorCoordinate:t.MercatorCoordinate,Evented:t.Evented,config:t.config,prewarm:function(){Ft().acquire(Rt);},clearPrewarmedResources:function(){var t=Bt;t&&(t.isPreloaded()&&1===t.numActive()?(t.release(Rt),Bt=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 kt.workerCount},set workerCount(t){kt.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 Wr})); + result.setDistanceLimits(options.zoomMin, options.zoomMax) -// + if('eye' in options || 'up' in options) { + result.lookAt(0, options.eye, options.center, options.up) + } -return mapboxgl; + return result +} +},{"./lib/quatFromFrame":485,"filtered-vector":242,"gl-mat4/fromQuat":282,"gl-mat4/invert":293,"gl-mat4/lookAt":294}],487:[function(_dereq_,module,exports){ +/*! + * pad-left + * + * Copyright (c) 2014-2015, Jon Schlinkert. + * Licensed under the MIT license. + */ -}))); +'use strict'; +var repeat = _dereq_('repeat-string'); -},{}],474:[function(_dereq_,module,exports){ +module.exports = function padLeft(str, num, ch) { + ch = typeof ch !== 'undefined' ? (ch + '') : ' '; + return repeat(ch, num) + str; +}; +},{"repeat-string":535}],488:[function(_dereq_,module,exports){ 'use strict' -module.exports = createTable +/** + * @module parenthesis + */ -var chull = _dereq_('convex-hull') +function parse (str, opts) { + // pretend non-string parsed per-se + if (typeof str !== 'string') return [str] -function constructVertex(d, a, b) { - var x = new Array(d) - for(var i=0; i 10e3) throw Error('References have circular dependency. Please, check them.') + } - // If the perspectiveMatrix is not invertible, we are also unable to - // decompose, so we'll bail early. Constant taken from SkMatrix44::invert. - if (Math.abs(determinant(perspectiveMatrix) < 1e-8)) - return false + res[i] = str + }) - var a03 = tmp[3], a13 = tmp[7], a23 = tmp[11], - a30 = tmp[12], a31 = tmp[13], a32 = tmp[14], a33 = tmp[15] + // wrap found refs to brackets + ids = ids.reverse() + res = res.map(function (str) { + ids.forEach(function (id) { + str = str.replace(new RegExp('(\\' + escape + id + '\\' + escape + ')', 'g'), bracket[0] + '$1' + bracket[1]) + }) + return str + }) + }) - // First, isolate perspective. - if (a03 !== 0 || a13 !== 0 || a23 !== 0) { - tmpVec4[0] = a03 - tmpVec4[1] = a13 - tmpVec4[2] = a23 - tmpVec4[3] = a33 + var re = new RegExp('\\' + escape + '([0-9]+)' + '\\' + escape) - // Solve the equation by inverting perspectiveMatrix and multiplying - // rightHandSide by the inverse. - // resuing the perspectiveMatrix here since it's no longer needed - var ret = invert(perspectiveMatrix, perspectiveMatrix) - if (!ret) return false - transpose(perspectiveMatrix, perspectiveMatrix) + // transform references to tree + function nest (str, refs, escape) { + var res = [], match - //multiply by transposed inverse perspective matrix, into perspective vec4 - vec4multMat4(perspective, tmpVec4, perspectiveMatrix) - } else { - //no perspective - perspective[0] = perspective[1] = perspective[2] = 0 - perspective[3] = 1 - } + var a = 0 + while (match = re.exec(str)) { + if (a++ > 10e3) throw Error('Circular references in parenthesis') - // Next take care of translation - translation[0] = a30 - translation[1] = a31 - translation[2] = a32 + res.push(str.slice(0, match.index)) - // Now get scale and shear. 'row' is a 3 element array of 3 component vectors - mat3from4(row, tmp) + res.push(nest(refs[match[1]], refs)) - // Compute X scale factor and normalize first row. - scale[0] = vec3.length(row[0]) - vec3.normalize(row[0], row[0]) + str = str.slice(match.index + match[0].length) + } - // Compute XY shear factor and make 2nd row orthogonal to 1st. - skew[0] = vec3.dot(row[0], row[1]) - combine(row[1], row[1], row[0], 1.0, -skew[0]) + res.push(str) - // Now, compute Y scale and normalize 2nd row. - scale[1] = vec3.length(row[1]) - vec3.normalize(row[1], row[1]) - skew[0] /= scale[1] + return res + } - // Compute XZ and YZ shears, orthogonalize 3rd row - skew[1] = vec3.dot(row[0], row[2]) - combine(row[2], row[2], row[0], 1.0, -skew[1]) - skew[2] = vec3.dot(row[1], row[2]) - combine(row[2], row[2], row[1], 1.0, -skew[2]) + return flat ? res : nest(res[0], res) +} - // Next, get Z scale and normalize 3rd row. - scale[2] = vec3.length(row[2]) - vec3.normalize(row[2], row[2]) - skew[1] /= scale[2] - skew[2] /= scale[2] +function stringify (arg, opts) { + if (opts && opts.flat) { + var escape = opts && opts.escape || '___' + var str = arg[0], prevStr - // At this point, the matrix (in rows) is orthonormal. - // Check for a coordinate system flip. If the determinant - // is -1, then negate the matrix and the scaling factors. - vec3.cross(pdum3, row[1], row[2]) - if (vec3.dot(row[0], pdum3) < 0) { - for (var i = 0; i < 3; i++) { - scale[i] *= -1; - row[i][0] *= -1 - row[i][1] *= -1 - row[i][2] *= -1 - } - } + // pretend bad string stringified with no parentheses + if (!str) return '' - // Now, get the rotations out - quaternion[0] = 0.5 * Math.sqrt(Math.max(1 + row[0][0] - row[1][1] - row[2][2], 0)) - quaternion[1] = 0.5 * Math.sqrt(Math.max(1 - row[0][0] + row[1][1] - row[2][2], 0)) - quaternion[2] = 0.5 * Math.sqrt(Math.max(1 - row[0][0] - row[1][1] + row[2][2], 0)) - quaternion[3] = 0.5 * Math.sqrt(Math.max(1 + row[0][0] + row[1][1] + row[2][2], 0)) - if (row[2][1] > row[1][2]) - quaternion[0] = -quaternion[0] - if (row[0][2] > row[2][0]) - quaternion[1] = -quaternion[1] - if (row[1][0] > row[0][1]) - quaternion[2] = -quaternion[2] - return true -} + var re = new RegExp('\\' + escape + '([0-9]+)' + '\\' + escape) -//will be replaced by gl-vec4 eventually -function vec4multMat4(out, a, m) { - var x = a[0], y = a[1], z = a[2], w = a[3]; - out[0] = m[0] * x + m[4] * y + m[8] * z + m[12] * w; - out[1] = m[1] * x + m[5] * y + m[9] * z + m[13] * w; - out[2] = m[2] * x + m[6] * y + m[10] * z + m[14] * w; - out[3] = m[3] * x + m[7] * y + m[11] * z + m[15] * w; - return out; -} + var a = 0 + while (str != prevStr) { + if (a++ > 10e3) throw Error('Circular references in ' + arg) + prevStr = str + str = str.replace(re, replaceRef) + } -//gets upper-left of a 4x4 matrix into a 3x3 of vectors -function mat3from4(out, mat4x4) { - out[0][0] = mat4x4[0] - out[0][1] = mat4x4[1] - out[0][2] = mat4x4[2] - - out[1][0] = mat4x4[4] - out[1][1] = mat4x4[5] - out[1][2] = mat4x4[6] + return str + } - out[2][0] = mat4x4[8] - out[2][1] = mat4x4[9] - out[2][2] = mat4x4[10] -} + return arg.reduce(function f (prev, curr) { + if (Array.isArray(curr)) { + curr = curr.reduce(f, '') + } + return prev + curr + }, '') -function combine(out, a, b, scale1, scale2) { - out[0] = a[0] * scale1 + b[0] * scale2 - out[1] = a[1] * scale1 + b[1] * scale2 - out[2] = a[2] * scale1 + b[2] * scale2 + function replaceRef(match, idx){ + if (arg[idx] == null) throw Error('Reference ' + idx + 'is undefined') + return arg[idx] + } } -},{"./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(_dereq_,module,exports){ -module.exports = function normalize(out, mat) { - var m44 = mat[15] - // Cannot normalize. - if (m44 === 0) - return false - var scale = 1 / m44 - for (var i=0; i<16; i++) - out[i] = mat[i] * scale - return true + +function parenthesis (arg, opts) { + if (Array.isArray(arg)) { + return stringify(arg, opts) + } + else { + return parse(arg, opts) + } } -},{}],477:[function(_dereq_,module,exports){ -var lerp = _dereq_('gl-vec3/lerp') -var recompose = _dereq_('mat4-recompose') -var decompose = _dereq_('mat4-decompose') -var determinant = _dereq_('gl-mat4/determinant') -var slerp = _dereq_('quat-slerp') +parenthesis.parse = parse +parenthesis.stringify = stringify -var state0 = state() -var state1 = state() -var tmp = state() +module.exports = parenthesis -module.exports = interpolate -function interpolate(out, start, end, alpha) { - if (determinant(start) === 0 || determinant(end) === 0) - return false +},{}],489:[function(_dereq_,module,exports){ +'use strict' + +var pick = _dereq_('pick-by-alias') + +module.exports = parseRect + +function parseRect (arg) { + var rect + + // direct arguments sequence + if (arguments.length > 1) { + arg = arguments + } + + // svg viewbox + if (typeof arg === 'string') { + arg = arg.split(/\s/).map(parseFloat) + } + else if (typeof arg === 'number') { + arg = [arg] + } + + // 0, 0, 100, 100 - array-like + if (arg.length && typeof arg[0] === 'number') { + // [w, w] + if (arg.length === 1) { + rect = { + width: arg[0], + height: arg[0], + x: 0, y: 0 + } + } + // [w, h] + else if (arg.length === 2) { + rect = { + width: arg[0], + height: arg[1], + x: 0, y: 0 + } + } + // [l, t, r, b] + else { + rect = { + x: arg[0], + y: arg[1], + width: (arg[2] - arg[0]) || 0, + height: (arg[3] - arg[1]) || 0 + } + } + } + // {x, y, w, h} or {l, t, b, r} + else if (arg) { + arg = pick(arg, { + 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' + }) + + rect = { + x: arg.left || 0, + y: arg.top || 0 + } + + if (arg.width == null) { + if (arg.right) rect.width = arg.right - rect.x + else rect.width = 0 + } + else { + rect.width = arg.width + } + + if (arg.height == null) { + if (arg.bottom) rect.height = arg.bottom - rect.y + else rect.height = 0 + } + else { + rect.height = arg.height + } + } + + return rect +} - //decompose the start and end matrices into individual components - var r0 = decompose(start, state0.translate, state0.scale, state0.skew, state0.perspective, state0.quaternion) - var r1 = decompose(end, state1.translate, state1.scale, state1.skew, state1.perspective, state1.quaternion) - if (!r0 || !r1) - return false +},{"pick-by-alias":495}],490:[function(_dereq_,module,exports){ +module.exports = parse - //now lerp/slerp the start and end components into a temporary lerp(tmptranslate, state0.translate, state1.translate, alpha) - lerp(tmp.translate, state0.translate, state1.translate, alpha) - lerp(tmp.skew, state0.skew, state1.skew, alpha) - lerp(tmp.scale, state0.scale, state1.scale, alpha) - lerp(tmp.perspective, state0.perspective, state1.perspective, alpha) - slerp(tmp.quaternion, state0.quaternion, state1.quaternion, alpha) +/** + * expected argument lengths + * @type {Object} + */ - //and recompose into our 'out' matrix - recompose(out, tmp.translate, tmp.scale, tmp.skew, tmp.perspective, tmp.quaternion) - return true -} +var length = {a: 7, c: 6, h: 1, l: 2, m: 2, q: 4, s: 4, t: 2, v: 1, z: 0} -function state() { - return { - translate: vec3(), - scale: vec3(1), - skew: vec3(), - perspective: vec4(), - quaternion: vec4() - } -} +/** + * segment pattern + * @type {RegExp} + */ -function vec3(n) { - return [n||0,n||0,n||0] +var segment = /([astvzqmhlc])([^astvzqmhlc]*)/ig + +/** + * parse an svg path data string. Generates an Array + * of commands where each command is an Array of the + * form `[command, arg1, arg2, ...]` + * + * @param {String} path + * @return {Array} + */ + +function parse(path) { + var data = [] + path.replace(segment, function(_, command, args){ + var type = command.toLowerCase() + args = parseValues(args) + + // overloaded moveTo + if (type == 'm' && args.length > 2) { + data.push([command].concat(args.splice(0, 2))) + type = 'l' + command = command == 'm' ? 'l' : 'L' + } + + while (true) { + if (args.length == length[type]) { + args.unshift(command) + return data.push(args) + } + if (args.length < length[type]) throw new Error('malformed path data') + data.push([command].concat(args.splice(0, length[type]))) + } + }) + return data } -function vec4() { - return [0,0,0,1] +var number = /-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/ig + +function parseValues(args) { + var numbers = args.match(number) + return numbers ? numbers.map(Number) : [] } -},{"gl-mat4/determinant":281,"gl-vec3/lerp":381,"mat4-decompose":475,"mat4-recompose":478,"quat-slerp":527}],478:[function(_dereq_,module,exports){ -/* -Input: translation ; a 3 component vector - scale ; a 3 component vector - skew ; skew factors XY,XZ,YZ represented as a 3 component vector - perspective ; a 4 component vector - quaternion ; a 4 component vector -Output: matrix ; a 4x4 matrix -From: http://www.w3.org/TR/css3-transforms/#recomposing-to-a-3d-matrix -*/ +},{}],491:[function(_dereq_,module,exports){ +module.exports = function parseUnit(str, out) { + if (!out) + out = [ 0, '' ] -var mat4 = { - identity: _dereq_('gl-mat4/identity'), - translate: _dereq_('gl-mat4/translate'), - multiply: _dereq_('gl-mat4/multiply'), - create: _dereq_('gl-mat4/create'), - scale: _dereq_('gl-mat4/scale'), - fromRotationTranslation: _dereq_('gl-mat4/fromRotationTranslation') + str = String(str) + var num = parseFloat(str, 10) + out[0] = num + out[1] = str.match(/[\d.\-\+]*\s*(.*)/)[1] || '' + return out } +},{}],492:[function(_dereq_,module,exports){ +(function (process){(function (){ +// Generated by CoffeeScript 1.12.2 +(function() { + var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime; -var rotationMatrix = mat4.create() -var temp = mat4.create() + if ((typeof performance !== "undefined" && performance !== null) && performance.now) { + module.exports = function() { + return performance.now(); + }; + } else if ((typeof process !== "undefined" && process !== null) && process.hrtime) { + module.exports = function() { + return (getNanoSeconds() - nodeLoadTime) / 1e6; + }; + hrtime = process.hrtime; + getNanoSeconds = function() { + var hr; + hr = hrtime(); + return hr[0] * 1e9 + hr[1]; + }; + moduleLoadTime = getNanoSeconds(); + upTime = process.uptime() * 1e9; + nodeLoadTime = moduleLoadTime - upTime; + } else if (Date.now) { + module.exports = function() { + return Date.now() - loadTime; + }; + loadTime = Date.now(); + } else { + module.exports = function() { + return new Date().getTime() - loadTime; + }; + loadTime = new Date().getTime(); + } -module.exports = function recomposeMat4(matrix, translation, scale, skew, perspective, quaternion) { - mat4.identity(matrix) +}).call(this); - //apply translation & rotation - mat4.fromRotationTranslation(matrix, quaternion, translation) - //apply perspective - matrix[3] = perspective[0] - matrix[7] = perspective[1] - matrix[11] = perspective[2] - matrix[15] = perspective[3] - - // apply skew - // temp is a identity 4x4 matrix initially - mat4.identity(temp) - if (skew[2] !== 0) { - temp[9] = skew[2] - mat4.multiply(matrix, matrix, temp) - } +}).call(this)}).call(this,_dereq_('_process')) +},{"_process":522}],493:[function(_dereq_,module,exports){ +"use strict" - if (skew[1] !== 0) { - temp[9] = 0 - temp[8] = skew[1] - mat4.multiply(matrix, matrix, temp) - } +module.exports = permutationSign - if (skew[0] !== 0) { - temp[8] = 0 - temp[4] = skew[0] - mat4.multiply(matrix, matrix, temp) +var BRUTE_FORCE_CUTOFF = 32 + +var pool = _dereq_("typedarray-pool") + +function permutationSign(p) { + var n = p.length + if(n < BRUTE_FORCE_CUTOFF) { + //Use quadratic algorithm for small n + var sgn = 1 + for(var i=0; i0; --i) { + t = pinv[i] + s = p[i] + p[i] = p[t] + p[t] = s + pinv[i] = pinv[s] + pinv[s] = t + r = (r + s) * i + } + pool.freeUint32(pinv) + pool.freeUint32(p) + return r } -},{"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(_dereq_,module,exports){ -'use strict'; -module.exports = Math.log2 || function (x) { - return Math.log(x) * Math.LOG2E; -}; -},{}],480:[function(_dereq_,module,exports){ +function unrank(n, r, p) { + switch(n) { + case 0: + if(p) { return p } + return [] + case 1: + if(p) { + p[0] = 0 + return p + } else { + return [0] + } + case 2: + if(p) { + if(r) { + p[0] = 0 + p[1] = 1 + } else { + p[0] = 1 + p[1] = 0 + } + return p + } else { + return r ? [0,1] : [1,0] + } + default: + break + } + p = p || new Array(n) + var s, t, i, nf=1 + p[0] = 0 + for(i=1; i0; --i) { + s = (r / nf)|0 + r = (r - s * nf)|0 + nf = (nf / i)|0 + t = p[i]|0 + p[i] = p[s]|0 + p[s] = t|0 + } + return p +} + +exports.rank = rank +exports.unrank = unrank + +},{"invert-permutation":446,"typedarray-pool":611}],495:[function(_dereq_,module,exports){ 'use strict' -var bsearch = _dereq_('binary-search-bounds') -var m4interp = _dereq_('mat4-interpolate') -var invert44 = _dereq_('gl-mat4/invert') -var rotateX = _dereq_('gl-mat4/rotateX') -var rotateY = _dereq_('gl-mat4/rotateY') -var rotateZ = _dereq_('gl-mat4/rotateZ') -var lookAt = _dereq_('gl-mat4/lookAt') -var translate = _dereq_('gl-mat4/translate') -var scale = _dereq_('gl-mat4/scale') -var normalize = _dereq_('gl-vec3/normalize') - -var DEFAULT_CENTER = [0,0,0] - -module.exports = createMatrixCameraController - -function MatrixCameraController(initialMatrix) { - this._components = initialMatrix.slice() - this._time = [0] - this.prevMatrix = initialMatrix.slice() - this.nextMatrix = initialMatrix.slice() - this.computedMatrix = initialMatrix.slice() - this.computedInverse = initialMatrix.slice() - this.computedEye = [0,0,0] - this.computedUp = [0,0,0] - this.computedCenter = [0,0,0] - this.computedRadius = [0] - this._limits = [-Infinity, Infinity] -} - -var proto = MatrixCameraController.prototype - -proto.recalcMatrix = function(t) { - var time = this._time - var tidx = bsearch.le(time, t) - var mat = this.computedMatrix - if(tidx < 0) { - return - } - var comps = this._components - if(tidx === time.length-1) { - var ptr = 16*tidx - for(var i=0; i<16; ++i) { - mat[i] = comps[ptr++] - } - } else { - var dt = (time[tidx+1] - time[tidx]) - var ptr = 16*tidx - var prev = this.prevMatrix - var allEqual = true - for(var i=0; i<16; ++i) { - prev[i] = comps[ptr++] - } - var next = this.nextMatrix - for(var i=0; i<16; ++i) { - next[i] = comps[ptr++] - allEqual = allEqual && (prev[i] === next[i]) - } - if(dt < 1e-6 || allEqual) { - for(var i=0; i<16; ++i) { - mat[i] = prev[i] - } - } else { - m4interp(mat, prev, next, (t - time[tidx])/dt) - } - } - - var up = this.computedUp - up[0] = mat[1] - up[1] = mat[5] - up[2] = mat[9] - normalize(up, up) - var imat = this.computedInverse - invert44(imat, mat) - var eye = this.computedEye - var w = imat[15] - eye[0] = imat[12]/w - eye[1] = imat[13]/w - eye[2] = imat[14]/w +module.exports = function pick (src, props, keepRest) { + var result = {}, prop, i - var center = this.computedCenter - var radius = Math.exp(this.computedRadius[0]) - for(var i=0; i<3; ++i) { - center[i] = eye[i] - mat[2+4*i] * radius - } -} + if (typeof props === 'string') props = toList(props) + if (Array.isArray(props)) { + var res = {} + for (i = 0; i < props.length; i++) { + res[props[i]] = true + } + props = res + } -proto.idle = function(t) { - if(t < this.lastT()) { - return - } - var mc = this._components - var ptr = mc.length-16 - for(var i=0; i<16; ++i) { - mc.push(mc[ptr++]) - } - this._time.push(t) -} + // convert strings to lists + for (prop in props) { + props[prop] = toList(props[prop]) + } -proto.flush = function(t) { - var idx = bsearch.gt(this._time, t) - 2 - if(idx < 0) { - return - } - this._time.splice(0, idx) - this._components.splice(0, 16*idx) -} + // keep-rest strategy requires unmatched props to be preserved + var occupied = {} -proto.lastT = function() { - return this._time[this._time.length-1] -} + for (prop in props) { + var aliases = props[prop] -proto.lookAt = function(t, eye, center, up) { - this.recalcMatrix(t) - eye = eye || this.computedEye - center = center || DEFAULT_CENTER - up = up || this.computedUp - this.setMatrix(t, lookAt(this.computedMatrix, eye, center, up)) - var d2 = 0.0 - for(var i=0; i<3; ++i) { - d2 += Math.pow(center[i] - eye[i], 2) - } - d2 = Math.log(Math.sqrt(d2)) - this.computedRadius[0] = d2 -} + if (Array.isArray(aliases)) { + for (i = 0; i < aliases.length; i++) { + var alias = aliases[i] -proto.rotate = function(t, yaw, pitch, roll) { - this.recalcMatrix(t) - var mat = this.computedInverse - if(yaw) rotateY(mat, mat, yaw) - if(pitch) rotateX(mat, mat, pitch) - if(roll) rotateZ(mat, mat, roll) - this.setMatrix(t, invert44(this.computedMatrix, mat)) -} + if (keepRest) { + occupied[alias] = true + } -var tvec = [0,0,0] + if (alias in src) { + result[prop] = src[alias] -proto.pan = function(t, dx, dy, dz) { - tvec[0] = -(dx || 0.0) - tvec[1] = -(dy || 0.0) - tvec[2] = -(dz || 0.0) - this.recalcMatrix(t) - var mat = this.computedInverse - translate(mat, mat, tvec) - this.setMatrix(t, invert44(mat, mat)) -} + if (keepRest) { + for (var j = i; j < aliases.length; j++) { + occupied[aliases[j]] = true + } + } -proto.translate = function(t, dx, dy, dz) { - tvec[0] = dx || 0.0 - tvec[1] = dy || 0.0 - tvec[2] = dz || 0.0 - this.recalcMatrix(t) - var mat = this.computedMatrix - translate(mat, mat, tvec) - this.setMatrix(t, mat) -} + break + } + } + } + else if (prop in src) { + if (props[prop]) { + result[prop] = src[prop] + } -proto.setMatrix = function(t, mat) { - if(t < this.lastT()) { - return - } - this._time.push(t) - for(var i=0; i<16; ++i) { - this._components.push(mat[i]) - } -} + if (keepRest) { + occupied[prop] = true + } + } + } -proto.setDistance = function(t, d) { - this.computedRadius[0] = d -} + if (keepRest) { + for (prop in src) { + if (occupied[prop]) continue + result[prop] = src[prop] + } + } -proto.setDistanceLimits = function(a,b) { - var lim = this._limits - lim[0] = a - lim[1] = b + return result } -proto.getDistanceLimits = function(out) { - var lim = this._limits - if(out) { - out[0] = lim[0] - out[1] = lim[1] - return out - } - return lim -} +var CACHE = {} -function createMatrixCameraController(options) { - options = options || {} - var matrix = options.matrix || - [1,0,0,0, - 0,1,0,0, - 0,0,1,0, - 0,0,0,1] - return new MatrixCameraController(matrix) +function toList(arg) { + if (CACHE[arg]) return CACHE[arg] + if (typeof arg === 'string') { + arg = CACHE[arg] = arg.split(/\s*,\s*|\s+/) + } + return arg } -},{"binary-search-bounds":481,"gl-mat4/invert":293,"gl-mat4/lookAt":294,"gl-mat4/rotateX":300,"gl-mat4/rotateY":301,"gl-mat4/rotateZ":302,"gl-mat4/scale":303,"gl-mat4/translate":305,"gl-vec3/normalize":387,"mat4-interpolate":477}],481:[function(_dereq_,module,exports){ -arguments[4][243][0].apply(exports,arguments) -},{"dup":243}],482:[function(_dereq_,module,exports){ -'use strict' +},{}],496:[function(_dereq_,module,exports){ +"use strict" -module.exports = monotoneConvexHull2D +module.exports = planarDual -var orient = _dereq_('robust-orientation')[3] +var compareAngle = _dereq_("compare-angle") -function monotoneConvexHull2D(points) { - var n = points.length +function planarDual(cells, positions) { + + var numVertices = positions.length|0 + var numEdges = cells.length + var adj = [new Array(numVertices), new Array(numVertices)] + for(var i=0; i 0) { + nextCell = adj[i][b][0] + nextDir = i + break + } } + nextVertex = nextCell[nextDir^1] - if(n === 2 && - points[0][0] === points[1][0] && - points[0][1] === points[1][1]) { - return [0] + for(var dir=0; dir<2; ++dir) { + var nbhd = adj[dir][b] + for(var k=0; k 0) { + nextCell = e + nextVertex = p + nextDir = dir + } + } + } + if(noCut) { + return nextVertex + } + if(nextCell) { + cut(nextCell, nextDir) } + return nextVertex + } - return result + function extractCycle(v, dir) { + var e0 = adj[dir][v][0] + var cycle = [v] + cut(e0, dir) + var u = e0[dir^1] + var d0 = dir + while(true) { + while(u !== v) { + cycle.push(u) + u = next(cycle[cycle.length-2], u, false) + } + if(adj[0][v].length + adj[1][v].length === 0) { + break + } + var a = cycle[cycle.length-1] + var b = v + var c = cycle[1] + var d = next(a, b, true) + if(compareAngle(positions[a], positions[b], positions[c], positions[d]) < 0) { + break + } + cycle.push(v) + u = next(a, b) + } + return cycle } - //Sort point indices along x-axis - var sorted = new Array(n) - for(var i=0; i 0) { + var ni = adj[0][i].length + var ncycle = extractCycle(i,j) + if(shouldGlue(pcycle, ncycle)) { + //Glue together trivial cycles + pcycle.push.apply(pcycle, ncycle) + } else { + if(pcycle.length > 0) { + cycles.push(pcycle) + } + pcycle = ncycle + } + } + if(pcycle.length > 0) { + cycles.push(pcycle) + } } - return points[a][1] - points[b][1] - }) + } - //Construct upper and lower hulls - var lower = [sorted[0], sorted[1]] - var upper = [sorted[0], sorted[1]] + //Combine paths and loops together + return cycles +} +},{"compare-angle":134}],497:[function(_dereq_,module,exports){ +'use strict' - for(var i=2; i 1 && orient( - points[lower[m-2]], - points[lower[m-1]], - p) <= 0) { - m -= 1 - lower.pop() - } - lower.push(idx) +var e2a = _dereq_('edges-to-adjacency-list') - //Insert into upper list - m = upper.length - while(m > 1 && orient( - points[upper[m-2]], - points[upper[m-1]], - p) >= 0) { - m -= 1 - upper.pop() +function trimLeaves(edges, positions) { + var adj = e2a(edges, positions.length) + var live = new Array(positions.length) + var nbhd = new Array(positions.length) + + var dead = [] + for(var i=0; i 0) { + var v = dead.pop() + live[v] = false + var n = adj[v] + for(var i=0; i0; --j) { - result[ptr++] = upper[j] + + var newIndex = new Array(positions.length) + var npositions = [] + for(var i=0; i 0 + } + + //Extract all clockwise faces + faces = faces.filter(ccw) + + //Detect which loops are contained in one another to handle parent-of relation + var numFaces = faces.length + var parent = new Array(numFaces) + var containment = new Array(numFaces) + for(var i=0; i 0) { + var top = toVisit.pop() + var nbhd = fadj[top] + uniq(nbhd, function(a,b) { + return a-b + }) + var nnbhr = nbhd.length + var p = parity[top] + var polyline + if(p === 0) { + var c = faces[top] + polyline = [c] + } + for(var i=0; i= 0) { + continue + } + parity[f] = p^1 + toVisit.push(f) + if(p === 0) { + var c = faces[f] + if(!sharedBoundary(c)) { + c.reverse() + polyline.push(c) + } + } + } + if(p === 0) { + result.push(polyline) } } - function handleMods (ev) { - if (updateMods(ev)) { - callback && callback(buttonState, x, y, mods) + return result +} +},{"./lib/trim-leaves":497,"edges-to-adjacency-list":179,"planar-dual":496,"point-in-big-polygon":500,"robust-sum":547,"two-product":598,"uniq":613}],499:[function(_dereq_,module,exports){ +arguments[4][243][0].apply(exports,arguments) +},{"dup":243}],500:[function(_dereq_,module,exports){ +module.exports = preprocessPolygon + +var orient = _dereq_('robust-orientation')[3] +var makeSlabs = _dereq_('slab-decomposition') +var makeIntervalTree = _dereq_('interval-tree-1d') +var bsearch = _dereq_('binary-search-bounds') + +function visitInterval() { + return true +} + +function intervalSearch(table) { + return function(x, y) { + var tree = table[x] + if(tree) { + return !!tree.queryPoint(y, visitInterval) } + return false } +} - function handleMouseMove (ev) { - if (mouse.buttons(ev) === 0) { - handleEvent(0, ev) +function buildVerticalIndex(segments) { + var table = {} + for(var i=0; i 0 && coordinates[bucket] === p[0]) { + root = slabs[bucket-1] + } else { + return 1 + } + } + var lastOrientation = 1 + while(root) { + var s = root.key + var o = orient(p, s[0], s[1]) + if(s[0][0] < s[1][0]) { + if(o < 0) { + root = root.left + } else if(o > 0) { + lastOrientation = -1 + root = root.right + } else { + return 0 + } + } else { + if(o > 0) { + root = root.left + } else if(o < 0) { + lastOrientation = 1 + root = root.right + } else { + return 0 + } + } + } + return lastOrientation } +} - function handleMouseUp (ev) { - handleEvent(buttonState & ~mouse.buttons(ev), ev) +function classifyEmpty(p) { + return 1 +} + +function createClassifyVertical(testVertical) { + return function classify(p) { + if(testVertical(p[0], p[1])) { + return 0 + } + return 1 } +} - function attachListeners () { - if (attached) { - return +function createClassifyPointDegen(testVertical, testNormal) { + return function classify(p) { + if(testVertical(p[0], p[1])) { + return 0 } - attached = true + return testNormal(p) + } +} - element.addEventListener('mousemove', handleMouseMove) +function preprocessPolygon(loops) { + //Compute number of loops + var numLoops = loops.length - element.addEventListener('mousedown', handleMouseDown) + //Unpack segments + var segments = [] + var vsegments = [] + var ptr = 0 + for(var i=0; i= -eps; + }, + pointBetween: function(p, left, right){ + // p must be collinear with left->right + // returns false if p == left, p == right, or left == right + var d_py_ly = p[1] - left[1]; + var d_rx_lx = right[0] - left[0]; + var d_px_lx = p[0] - left[0]; + var d_ry_ly = right[1] - left[1]; + + var dot = d_px_lx * d_rx_lx + d_py_ly * d_ry_ly; + // if `dot` is 0, then `p` == `left` or `left` == `right` (reject) + // if `dot` is less than 0, then `p` is to the left of `left` (reject) + if (dot < eps) + return false; + + var sqlen = d_rx_lx * d_rx_lx + d_ry_ly * d_ry_ly; + // if `dot` > `sqlen`, then `p` is to the right of `right` (reject) + // therefore, if `dot - sqlen` is greater than 0, then `p` is to the right of `right` (reject) + if (dot - sqlen > -eps) + return false; + + return true; + }, + pointsSameX: function(p1, p2){ + return Math.abs(p1[0] - p2[0]) < eps; + }, + pointsSameY: function(p1, p2){ + return Math.abs(p1[1] - p2[1]) < eps; + }, + pointsSame: function(p1, p2){ + return my.pointsSameX(p1, p2) && my.pointsSameY(p1, p2); + }, + pointsCompare: function(p1, p2){ + // returns -1 if p1 is smaller, 1 if p2 is smaller, 0 if equal + if (my.pointsSameX(p1, p2)) + return my.pointsSameY(p1, p2) ? 0 : (p1[1] < p2[1] ? -1 : 1); + return p1[0] < p2[0] ? -1 : 1; + }, + pointsCollinear: function(pt1, pt2, pt3){ + // does pt1->pt2->pt3 make a straight line? + // essentially this is just checking to see if the slope(pt1->pt2) === slope(pt2->pt3) + // if slopes are equal, then they must be collinear, because they share pt2 + var dx1 = pt1[0] - pt2[0]; + var dy1 = pt1[1] - pt2[1]; + var dx2 = pt2[0] - pt3[0]; + var dy2 = pt2[1] - pt3[1]; + return Math.abs(dx1 * dy2 - dx2 * dy1) < eps; + }, + linesIntersect: function(a0, a1, b0, b1){ + // returns false if the lines are coincident (e.g., parallel or on top of each other) + // + // returns an object if the lines intersect: + // { + // pt: [x, y], where the intersection point is at + // alongA: where intersection point is along A, + // alongB: where intersection point is along B + // } + // + // alongA and alongB will each be one of: -2, -1, 0, 1, 2 + // + // with the following meaning: + // + // -2 intersection point is before segment's first point + // -1 intersection point is directly on segment's first point + // 0 intersection point is between segment's first and second points (exclusive) + // 1 intersection point is directly on segment's second point + // 2 intersection point is after segment's second point + var adx = a1[0] - a0[0]; + var ady = a1[1] - a0[1]; + var bdx = b1[0] - b0[0]; + var bdy = b1[1] - b0[1]; + + var axb = adx * bdy - ady * bdx; + if (Math.abs(axb) < eps) + return false; // lines are coincident + + var dx = a0[0] - b0[0]; + var dy = a0[1] - b0[1]; + + var A = (bdx * dy - bdy * dx) / axb; + var B = (adx * dy - ady * dx) / axb; + + var ret = { + alongA: 0, + alongB: 0, + pt: [ + a0[0] + A * adx, + a0[1] + A * ady + ] + }; + + // categorize where intersection point is along A and B + + if (A <= -eps) + ret.alongA = -2; + else if (A < eps) + ret.alongA = -1; + else if (A - 1 <= -eps) + ret.alongA = 0; + else if (A - 1 < eps) + ret.alongA = 1; + else + ret.alongA = 2; + + if (B <= -eps) + ret.alongB = -2; + else if (B < eps) + ret.alongB = -1; + else if (B - 1 <= -eps) + ret.alongB = 0; + else if (B - 1 < eps) + ret.alongB = 1; + else + ret.alongB = 2; + + return ret; + }, + pointInsideRegion: function(pt, region){ + var x = pt[0]; + var y = pt[1]; + var last_x = region[region.length - 1][0]; + var last_y = region[region.length - 1][1]; + var inside = false; + for (var i = 0; i < region.length; i++){ + var curr_x = region[i][0]; + var curr_y = region[i][1]; + + // if y is between curr_y and last_y, and + // x is to the right of the boundary created by the line + if ((curr_y - y > eps) != (last_y - y > eps) && + (last_x - curr_x) * (y - curr_y) / (last_y - curr_y) + curr_x - x > eps) + inside = !inside + + last_x = curr_x; + last_y = curr_y; + } + return inside; + } + }; + return my; +} + +module.exports = Epsilon; + +},{}],504:[function(_dereq_,module,exports){ +// (c) Copyright 2017, Sean Connelly (@voidqk), http://syntheti.cc +// MIT License +// Project Home: https://github.com/voidqk/polybooljs + +// +// convert between PolyBool polygon format and GeoJSON formats (Polygon and MultiPolygon) +// + +var GeoJSON = { + // convert a GeoJSON object to a PolyBool polygon + toPolygon: function(PolyBool, geojson){ + + // converts list of LineString's to segments + function GeoPoly(coords){ + // check for empty coords + if (coords.length <= 0) + return PolyBool.segments({ inverted: false, regions: [] }); + + // convert LineString to segments + function LineString(ls){ + // remove tail which should be the same as head + var reg = ls.slice(0, ls.length - 1); + return PolyBool.segments({ inverted: false, regions: [reg] }); + } + + // the first LineString is considered the outside + var out = LineString(coords[0]); - element.addEventListener('blur', handleBlur) + // the rest of the LineStrings are considered interior holes, so subtract them from the + // current result + for (var i = 1; i < coords.length; i++) + out = PolyBool.selectDifference(PolyBool.combine(out, LineString(coords[i]))); - element.addEventListener('keyup', handleMods) - element.addEventListener('keydown', handleMods) - element.addEventListener('keypress', handleMods) + return out; + } - if (element !== window) { - window.addEventListener('blur', handleBlur) + if (geojson.type === 'Polygon'){ + // single polygon, so just convert it and we're done + return PolyBool.polygon(GeoPoly(geojson.coordinates)); + } + else if (geojson.type === 'MultiPolygon'){ + // multiple polygons, so union all the polygons together + var out = PolyBool.segments({ inverted: false, regions: [] }); + for (var i = 0; i < geojson.coordinates.length; i++) + out = PolyBool.selectUnion(PolyBool.combine(out, GeoPoly(geojson.coordinates[i]))); + return PolyBool.polygon(out); + } + throw new Error('PolyBool: Cannot convert GeoJSON object to PolyBool polygon'); + }, - window.addEventListener('keyup', handleMods) - window.addEventListener('keydown', handleMods) - window.addEventListener('keypress', handleMods) - } - } + // convert a PolyBool polygon to a GeoJSON object + fromPolygon: function(PolyBool, eps, poly){ + // make sure out polygon is clean + poly = PolyBool.polygon(PolyBool.segments(poly)); - function detachListeners () { - if (!attached) { - return - } - attached = false + // test if r1 is inside r2 + function regionInsideRegion(r1, r2){ + // we're guaranteed no lines intersect (because the polygon is clean), but a vertex + // could be on the edge -- so we just average pt[0] and pt[1] to produce a point on the + // edge of the first line, which cannot be on an edge + return eps.pointInsideRegion([ + (r1[0][0] + r1[1][0]) * 0.5, + (r1[0][1] + r1[1][1]) * 0.5 + ], r2); + } - element.removeEventListener('mousemove', handleMouseMove) + // calculate inside heirarchy + // + // _____________________ _______ roots -> A -> F + // | A | | F | | | + // | _______ _______ | | ___ | +-- B +-- G + // | | B | | C | | | | | | | | + // | | ___ | | ___ | | | | | | | +-- D + // | | | D | | | | E | | | | | G | | | + // | | |___| | | |___| | | | | | | +-- C + // | |_______| |_______| | | |___| | | + // |_____________________| |_______| +-- E - element.removeEventListener('mousedown', handleMouseDown) + function newNode(region){ + return { + region: region, + children: [] + }; + } - element.removeEventListener('mouseup', handleMouseUp) + var roots = newNode(null); - element.removeEventListener('mouseleave', clearState) - element.removeEventListener('mouseenter', clearState) - element.removeEventListener('mouseout', clearState) - element.removeEventListener('mouseover', clearState) + function addChild(root, region){ + // first check if we're inside any children + for (var i = 0; i < root.children.length; i++){ + var child = root.children[i]; + if (regionInsideRegion(region, child.region)){ + // we are, so insert inside them instead + addChild(child, region); + return; + } + } - element.removeEventListener('blur', handleBlur) + // not inside any children, so check to see if any children are inside us + var node = newNode(region); + for (var i = 0; i < root.children.length; i++){ + var child = root.children[i]; + if (regionInsideRegion(child.region, region)){ + // oops... move the child beneath us, and remove them from root + node.children.push(child); + root.children.splice(i, 1); + i--; + } + } - element.removeEventListener('keyup', handleMods) - element.removeEventListener('keydown', handleMods) - element.removeEventListener('keypress', handleMods) + // now we can add ourselves + root.children.push(node); + } - if (element !== window) { - window.removeEventListener('blur', handleBlur) + // add all regions to the root + for (var i = 0; i < poly.regions.length; i++){ + var region = poly.regions[i]; + if (region.length < 3) // regions must have at least 3 points (sanity check) + continue; + addChild(roots, region); + } - window.removeEventListener('keyup', handleMods) - window.removeEventListener('keydown', handleMods) - window.removeEventListener('keypress', handleMods) - } - } + // with our heirarchy, we can distinguish between exterior borders, and interior holes + // the root nodes are exterior, children are interior, children's children are exterior, + // children's children's children are interior, etc - // Attach listeners - attachListeners() + // while we're at it, exteriors are counter-clockwise, and interiors are clockwise - var result = { - element: element - } + function forceWinding(region, clockwise){ + // first, see if we're clockwise or counter-clockwise + // https://en.wikipedia.org/wiki/Shoelace_formula + var winding = 0; + var last_x = region[region.length - 1][0]; + var last_y = region[region.length - 1][1]; + var copy = []; + for (var i = 0; i < region.length; i++){ + var curr_x = region[i][0]; + var curr_y = region[i][1]; + copy.push([curr_x, curr_y]); // create a copy while we're at it + winding += curr_y * last_x - curr_x * last_y; + last_x = curr_x; + last_y = curr_y; + } + // this assumes Cartesian coordinates (Y is positive going up) + var isclockwise = winding < 0; + if (isclockwise !== clockwise) + copy.reverse(); + // while we're here, the last point must be the first point... + copy.push([copy[0][0], copy[0][1]]); + return copy; + } - Object.defineProperties(result, { - enabled: { - get: function () { return attached }, - set: function (f) { - if (f) { - attachListeners() - } else { - detachListeners() - } - }, - enumerable: true - }, - buttons: { - get: function () { return buttonState }, - enumerable: true - }, - x: { - get: function () { return x }, - enumerable: true - }, - y: { - get: function () { return y }, - enumerable: true - }, - mods: { - get: function () { return mods }, - enumerable: true - } - }) + var geopolys = []; - return result -} + function addExterior(node){ + var poly = [forceWinding(node.region, false)]; + geopolys.push(poly); + // children of exteriors are interior + for (var i = 0; i < node.children.length; i++) + poly.push(getInterior(node.children[i])); + } -},{"mouse-event":485}],484:[function(_dereq_,module,exports){ -var rootPosition = { left: 0, top: 0 } + function getInterior(node){ + // children of interiors are exterior + for (var i = 0; i < node.children.length; i++) + addExterior(node.children[i]); + // return the clockwise interior + return forceWinding(node.region, true); + } -module.exports = mouseEventOffset -function mouseEventOffset (ev, target, out) { - target = target || ev.currentTarget || ev.srcElement - if (!Array.isArray(out)) { - out = [ 0, 0 ] - } - var cx = ev.clientX || 0 - var cy = ev.clientY || 0 - var rect = getBoundingClientOffset(target) - out[0] = cx - rect.left - out[1] = cy - rect.top - return out -} + // root nodes are exterior + for (var i = 0; i < roots.children.length; i++) + addExterior(roots.children[i]); -function getBoundingClientOffset (element) { - if (element === window || - element === document || - element === document.body) { - return rootPosition - } else { - return element.getBoundingClientRect() - } -} + // lastly, construct the approrpriate GeoJSON object -},{}],485:[function(_dereq_,module,exports){ -'use strict' + if (geopolys.length <= 0) // empty GeoJSON Polygon + return { type: 'Polygon', coordinates: [] }; + if (geopolys.length == 1) // use a GeoJSON Polygon + return { type: 'Polygon', coordinates: geopolys[0] }; + return { // otherwise, use a GeoJSON MultiPolygon + type: 'MultiPolygon', + coordinates: geopolys + }; + } +}; -function mouseButtons(ev) { - if(typeof ev === 'object') { - if('buttons' in ev) { - return ev.buttons - } else if('which' in ev) { - var b = ev.which - if(b === 2) { - return 4 - } else if(b === 3) { - return 2 - } else if(b > 0) { - return 1<<(b-1) - } - } else if('button' in ev) { - var b = ev.button - if(b === 1) { - return 4 - } else if(b === 2) { - return 2 - } else if(b >= 0) { - return 1< 0) { - stepVal.push(stride(i, order[j-1]) + "*" + shape(order[j-1]) ) - } - vars.push(step(i,order[j]) + "=(" + stepVal.join("-") + ")|0") - } - } - //Create index variables - for(var i=0; i=0; --i) { - sizeVariable.push(shape(order[i])) - } - //Previous phases and vertex_ids - vars.push(POOL_SIZE + "=(" + sizeVariable.join("*") + ")|0", - PHASES + "=mallocUint32(" + POOL_SIZE + ")", - VERTEX_IDS + "=mallocUint32(" + POOL_SIZE + ")", - POINTER + "=0") - //Create cube variables for phases - vars.push(pcube(0) + "=0") - for(var j=1; j<(1<=0; --i) { - forLoopBegin(i, 0) - } - var phaseFuncArgs = [] - for(var i=0; i0; k=(k-1)&subset) { - faceArgs.push(VERTEX_IDS + "[" + POINTER + "+" + pdelta(k) + "]") - } - faceArgs.push(vert(0)) - for(var k=0; k 0; + }); + } - function createLoop(i, mask) { - if(i < 0) { - processGridCell(mask) - return - } - fillEmptySlice(i) - code.push("if(", shape(order[i]), ">0){", - index(order[i]), "=1;") - createLoop(i-1, mask|(1< 0") - } - if(typeof args.vertex !== "function") { - error("Must specify vertex creation function") - } - if(typeof args.cell !== "function") { - error("Must specify cell creation function") - } - if(typeof args.phase !== "function") { - error("Must specify phase function") - } - var getters = args.getters || [] - var typesig = new Array(arrays) - for(var i=0; i= 0) { - typesig[i] = true - } else { - typesig[i] = false - } - } - return compileSurfaceProcedure( - args.vertex, - args.cell, - args.phase, - scalars, - order, - typesig) -} -},{"typedarray-pool":595}],488:[function(_dereq_,module,exports){ -'use strict' + if (eps.pointsSame(a1, b2) || eps.pointsSame(a2, b1)) + return false; // segments touch at endpoints... no intersection -module.exports = gradient + var a1_equ_b1 = eps.pointsSame(a1, b1); + var a2_equ_b2 = eps.pointsSame(a2, b2); -var dup = _dereq_('dup') -var cwiseCompiler = _dereq_('cwise-compiler') + if (a1_equ_b1 && a2_equ_b2) + return ev2; // segments are exactly equal -var TEMPLATE_CACHE = {} -var GRADIENT_CACHE = {} + var a1_between = !a1_equ_b1 && eps.pointBetween(a1, b1, b2); + var a2_between = !a2_equ_b2 && eps.pointBetween(a2, b1, b2); -var EmptyProc = { - body: "", - args: [], - thisVars: [], - localVars: [] -} + // handy for debugging: + // buildLog.log({ + // a1_equ_b1: a1_equ_b1, + // a2_equ_b2: a2_equ_b2, + // a1_between: a1_between, + // a2_between: a2_between + // }); -var centralDiff = cwiseCompiler({ - args: [ 'array', 'array', 'array' ], - pre: EmptyProc, - post: EmptyProc, - body: { - args: [ { - name: 'out', - lvalue: true, - rvalue: false, - count: 1 - }, { - name: 'left', - lvalue: false, - rvalue: true, - count: 1 - }, { - name: 'right', - lvalue: false, - rvalue: true, - count: 1 - }], - body: "out=0.5*(left-right)", - thisVars: [], - localVars: [] - }, - funcName: 'cdiff' -}) + if (a1_equ_b1){ + if (a2_between){ + // (a1)---(a2) + // (b1)----------(b2) + eventDivide(ev2, a2); + } + else{ + // (a1)----------(a2) + // (b1)---(b2) + eventDivide(ev1, b2); + } + return ev2; + } + else if (a1_between){ + if (!a2_equ_b2){ + // make a2 equal to b2 + if (a2_between){ + // (a1)---(a2) + // (b1)-----------------(b2) + eventDivide(ev2, a2); + } + else{ + // (a1)----------(a2) + // (b1)----------(b2) + eventDivide(ev1, b2); + } + } -var zeroOut = cwiseCompiler({ - args: [ 'array' ], - pre: EmptyProc, - post: EmptyProc, - body: { - args: [ { - name: 'out', - lvalue: true, - rvalue: false, - count: 1 - }], - body: "out=0", - thisVars: [], - localVars: [] - }, - funcName: 'zero' -}) + // (a1)---(a2) + // (b1)----------(b2) + eventDivide(ev2, a1); + } + } + else{ + // otherwise, lines intersect at i.pt, which may or may not be between the endpoints -function generateTemplate(d) { - if(d in TEMPLATE_CACHE) { - return TEMPLATE_CACHE[d] - } - var code = [] - for(var i=0; i= 0) { - pickStr.push('0') - } else if(facet.indexOf(-(i+1)) >= 0) { - pickStr.push('s['+i+']-1') - } else { - pickStr.push('-1') - loStr.push('1') - hiStr.push('s['+i+']-2') - } - } - var boundStr = '.lo(' + loStr.join() + ').hi(' + hiStr.join() + ')' - if(loStr.length === 0) { - boundStr = '' - } - - if(cod > 0) { - code.push('if(1') - for(var i=0; i= 0 || facet.indexOf(-(i+1)) >= 0) { - continue - } - code.push('&&s[', i, ']>2') - } - code.push('){grad', cod, '(src.pick(', pickStr.join(), ')', boundStr) - for(var i=0; i= 0 || facet.indexOf(-(i+1)) >= 0) { - continue - } - code.push(',dst.pick(', pickStr.join(), ',', i, ')', boundStr) - } - code.push(');') - } + if (buildLog) + buildLog.vert(ev.pt[0]); - for(var i=0; i1){dst.set(', - pickStr.join(), ',', bnd, ',0.5*(src.get(', - cPickStr.join(), ')-src.get(', - dPickStr.join(), ')))}else{dst.set(', - pickStr.join(), ',', bnd, ',0)};') - } else { - code.push('if(s[', bnd, ']>1){diff(', outStr, - ',src.pick(', cPickStr.join(), ')', boundStr, - ',src.pick(', dPickStr.join(), ')', boundStr, - ');}else{zero(', outStr, ');};') - } - break + if (buildLog) + buildLog.segmentNew(ev.seg, ev.primary); - case 'mirror': - if(cod === 0) { - code.push('dst.set(', pickStr.join(), ',', bnd, ',0);') - } else { - code.push('zero(', outStr, ');') - } - break + var surrounding = statusFindSurrounding(ev); + var above = surrounding.before ? surrounding.before.ev : null; + var below = surrounding.after ? surrounding.after.ev : null; - case 'wrap': - var aPickStr = pickStr.slice() - var bPickStr = pickStr.slice() - if(facet[i] < 0) { - aPickStr[bnd] = 's[' + bnd + ']-2' - bPickStr[bnd] = '0' - - } else { - aPickStr[bnd] = 's[' + bnd + ']-1' - bPickStr[bnd] = '1' - } - if(cod === 0) { - code.push('if(s[', bnd, ']>2){dst.set(', - pickStr.join(), ',', bnd, ',0.5*(src.get(', - aPickStr.join(), ')-src.get(', - bPickStr.join(), ')))}else{dst.set(', - pickStr.join(), ',', bnd, ',0)};') - } else { - code.push('if(s[', bnd, ']>2){diff(', outStr, - ',src.pick(', aPickStr.join(), ')', boundStr, - ',src.pick(', bPickStr.join(), ')', boundStr, - ');}else{zero(', outStr, ');};') - } - break + if (buildLog){ + buildLog.tempStatus( + ev.seg, + above ? above.seg : false, + below ? below.seg : false + ); + } - default: - throw new Error('ndarray-gradient: Invalid boundary condition') - } - } + function checkBothIntersections(){ + if (above){ + var eve = checkIntersection(ev, above); + if (eve) + return eve; + } + if (below) + return checkIntersection(ev, below); + return false; + } - if(cod > 0) { - code.push('};') - } - } + var eve = checkBothIntersections(); + if (eve){ + // ev and eve are equal + // we'll keep eve and throw away ev - //Enumerate ridges, facets, etc. of hypercube - for(var i=0; i<(1<>", - rrshift: ">>>" -} -;(function(){ - for(var id in assign_ops) { - var op = assign_ops[id] - exports[id] = makeOp({ - args: ["array","array","array"], - body: {args:["a","b","c"], - body: "a=b"+op+"c"}, - funcName: id - }) - exports[id+"eq"] = makeOp({ - args: ["array","array"], - body: {args:["a","b"], - body:"a"+op+"=b"}, - rvalue: true, - funcName: id+"eq" - }) - exports[id+"s"] = makeOp({ - args: ["array", "array", "scalar"], - body: {args:["a","b","s"], - body:"a=b"+op+"s"}, - funcName: id+"s" - }) - exports[id+"seq"] = makeOp({ - args: ["array","scalar"], - body: {args:["a","s"], - body:"a"+op+"=s"}, - rvalue: true, - funcName: id+"seq" - }) - } -})(); + // if we've reached this point, we've calculated everything there is to know, so + // save the segment for reporting + if (!ev.primary){ + // make sure `seg.myFill` actually points to the primary polygon though + var s = ev.seg.myFill; + ev.seg.myFill = ev.seg.otherFill; + ev.seg.otherFill = s; + } + segments.push(ev.seg); + } -var unary_ops = { - not: "!", - bnot: "~", - neg: "-", - recip: "1.0/" -} -;(function(){ - for(var id in unary_ops) { - var op = unary_ops[id] - exports[id] = makeOp({ - args: ["array", "array"], - body: {args:["a","b"], - body:"a="+op+"b"}, - funcName: id - }) - exports[id+"eq"] = makeOp({ - args: ["array"], - body: {args:["a"], - body:"a="+op+"a"}, - rvalue: true, - count: 2, - funcName: id+"eq" - }) - } -})(); + // remove the event and continue + event_root.getHead().remove(); + } -var binary_ops = { - and: "&&", - or: "||", - eq: "===", - neq: "!==", - lt: "<", - gt: ">", - leq: "<=", - geq: ">=" -} -;(function() { - for(var id in binary_ops) { - var op = binary_ops[id] - exports[id] = makeOp({ - args: ["array","array","array"], - body: {args:["a", "b", "c"], - body:"a=b"+op+"c"}, - funcName: id - }) - exports[id+"s"] = makeOp({ - args: ["array","array","scalar"], - body: {args:["a", "b", "s"], - body:"a=b"+op+"s"}, - funcName: id+"s" - }) - exports[id+"eq"] = makeOp({ - args: ["array", "array"], - body: {args:["a", "b"], - body:"a=a"+op+"b"}, - rvalue:true, - count:2, - funcName: id+"eq" - }) - exports[id+"seq"] = makeOp({ - args: ["array", "scalar"], - body: {args:["a","s"], - body:"a=a"+op+"s"}, - rvalue:true, - count:2, - funcName: id+"seq" - }) - } -})(); + if (buildLog) + buildLog.done(); -var math_unary = [ - "abs", - "acos", - "asin", - "atan", - "ceil", - "cos", - "exp", - "floor", - "log", - "round", - "sin", - "sqrt", - "tan" -] -;(function() { - for(var i=0; ithis_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" -}) +var LinkedList = { + create: function(){ + var my = { + root: { root: true, next: null }, + exists: function(node){ + if (node === null || node === my.root) + return false; + return true; + }, + isEmpty: function(){ + return my.root.next === null; + }, + getHead: function(){ + return my.root.next; + }, + insertBefore: function(node, check){ + var last = my.root; + var here = my.root.next; + while (here !== null){ + if (check(here)){ + node.prev = here.prev; + node.next = here; + here.prev.next = node; + here.prev = node; + return; + } + last = here; + here = here.next; + } + last.next = node; + node.prev = last; + node.next = null; + }, + findTransition: function(check){ + var prev = my.root; + var here = my.root.next; + while (here !== null){ + if (check(here)) + break; + prev = here; + here = here.next; + } + return { + before: prev === my.root ? null : prev, + after: here, + insert: function(node){ + node.prev = prev; + node.next = here; + prev.next = node; + if (here !== null) + here.prev = node; + return node; + } + }; + } + }; + return my; + }, + node: function(data){ + data.prev = null; + data.next = null; + data.remove = function(){ + data.prev.next = data.next; + if (data.next) + data.next.prev = data.prev; + data.prev = null; + data.next = null; + }; + return data; + } +}; -exports.norm1 = compile({ - args:["array"], - pre: {args:[], localVars:[], thisVars:["this_s"], body:"this_s=0"}, - body: {args:[{name:"a", lvalue:false, rvalue:true, 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" -}) +module.exports = LinkedList; -exports.sup = compile({ - 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":false,"rvalue":true,"count":2} ], - thisVars: [ "this_h" ], - localVars: [] }, - post: - { body: "return this_h", - args: [], - thisVars: [ "this_h" ], - localVars: [] } - }) +},{}],507:[function(_dereq_,module,exports){ +// (c) Copyright 2016, Sean Connelly (@voidqk), http://syntheti.cc +// MIT License +// Project Home: https://github.com/voidqk/polybooljs -exports.inf = compile({ - 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:false,rvalue:true,count:2}, - {name:"_inline_1_arg1_",lvalue:false,rvalue:true,count:2}], - thisVars:["this_i","this_v"], - localVars:["_inline_1_k"]}, - post:{ - body:"{return this_i}", - args:[], - thisVars:["this_i"], - localVars:[]} -}) + if (next_match === first_match){ + // we didn't match anything, so create a new chain + chains.push([ pt1, pt2 ]); + if (buildLog) + buildLog.chainNew(pt1, pt2); + return; + } -exports.random = makeOp({ - args: ["array"], - pre: {args:[], body:"this_f=Math.random", thisVars:["this_f"]}, - body: {args: ["a"], body:"a=this_f()", thisVars:["this_f"]}, - funcName: "random" -}) + if (next_match === second_match){ + // we matched a single chain -exports.assign = makeOp({ - args:["array", "array"], - body: {args:["a", "b"], body:"a=b"}, - funcName: "assign" }) + if (buildLog) + buildLog.chainMatch(first_match.index); -exports.assigns = makeOp({ - args:["array", "scalar"], - body: {args:["a", "b"], body:"a=b"}, - funcName: "assigns" }) + // add the other point to the apporpriate end, and check to see if we've closed the + // chain into a loop + var index = first_match.index; + var pt = first_match.matches_pt1 ? pt2 : pt1; // if we matched pt1, then we add pt2, etc + var addToHead = first_match.matches_head; // if we matched at head, then add to the head -exports.equals = compile({ - args:["array", "array"], - pre: EmptyProc, - body: {args:[{name:"x", lvalue:false, rvalue:true, count:1}, - {name:"y", lvalue:false, rvalue:true, count:1}], - body: "if(x!==y){return false}", - localVars: [], - thisVars: []}, - post: {args:[], localVars:[], thisVars:[], body:"return true"}, - funcName: "equals" -}) + var chain = chains[index]; + var grow = addToHead ? chain[0] : chain[chain.length - 1]; + var grow2 = addToHead ? chain[1] : chain[chain.length - 2]; + var oppo = addToHead ? chain[chain.length - 1] : chain[0]; + var oppo2 = addToHead ? chain[chain.length - 2] : chain[1]; + if (eps.pointsCollinear(grow2, grow, pt)){ + // grow isn't needed because it's directly between grow2 and pt: + // grow2 ---grow---> pt + if (addToHead){ + if (buildLog) + buildLog.chainRemoveHead(first_match.index, pt); + chain.shift(); + } + else{ + if (buildLog) + buildLog.chainRemoveTail(first_match.index, pt); + chain.pop(); + } + grow = grow2; // old grow is gone... new grow is what grow2 was + } + if (eps.pointsSame(oppo, pt)){ + // we're closing the loop, so remove chain from chains + chains.splice(index, 1); -},{"cwise-compiler":151}],491:[function(_dereq_,module,exports){ -"use strict" + if (eps.pointsCollinear(oppo2, oppo, grow)){ + // oppo isn't needed because it's directly between oppo2 and grow: + // oppo2 ---oppo--->grow + if (addToHead){ + if (buildLog) + buildLog.chainRemoveTail(first_match.index, grow); + chain.pop(); + } + else{ + if (buildLog) + buildLog.chainRemoveHead(first_match.index, grow); + chain.shift(); + } + } -var ndarray = _dereq_("ndarray") -var do_convert = _dereq_("./doConvert.js") + if (buildLog) + buildLog.chainClose(first_match.index); -module.exports = function convert(arr, result) { - var shape = [], c = arr, sz = 1 - while(Array.isArray(c)) { - shape.push(c.length) - sz *= c.length - c = c[0] - } - if(shape.length === 0) { - return ndarray() - } - if(!result) { - result = ndarray(new Float64Array(sz), shape) - } - do_convert(result, arr) - return result -} + // we have a closed chain! + regions.push(chain); + return; + } -},{"./doConvert.js":492,"ndarray":495}],492:[function(_dereq_,module,exports){ -module.exports=_dereq_('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":true,"rvalue":false,"count":1},{"name":"_inline_1_arg1_","lvalue":false,"rvalue":true,"count":1},{"name":"_inline_1_arg2_","lvalue":false,"rvalue":true,"count":4}],"thisVars":[],"localVars":["_inline_1_i","_inline_1_v"]},"post":{"body":"{}","args":[],"thisVars":[],"localVars":[]},"funcName":"convert","blockSize":64}) + // not closing a loop, so just add it to the apporpriate side + if (addToHead){ + if (buildLog) + buildLog.chainAddHead(first_match.index, pt); + chain.unshift(pt); + } + else{ + if (buildLog) + buildLog.chainAddTail(first_match.index, pt); + chain.push(pt); + } + return; + } -},{"cwise-compiler":151}],493:[function(_dereq_,module,exports){ -"use strict" + // otherwise, we matched two chains, so we need to combine those chains together -var pool = _dereq_("typedarray-pool") + function reverseChain(index){ + if (buildLog) + buildLog.chainReverse(index); + chains[index].reverse(); // gee, that's easy + } -var INSERTION_SORT_THRESHOLD = 32 + function appendChain(index1, index2){ + // index1 gets index2 appended to it, and index2 is removed + var chain1 = chains[index1]; + var chain2 = chains[index2]; + var tail = chain1[chain1.length - 1]; + var tail2 = chain1[chain1.length - 2]; + var head = chain2[0]; + var head2 = chain2[1]; -function getMallocFree(dtype) { - switch(dtype) { - case "uint8": - return [pool.mallocUint8, pool.freeUint8] - case "uint16": - return [pool.mallocUint16, pool.freeUint16] - case "uint32": - return [pool.mallocUint32, pool.freeUint32] - case "int8": - return [pool.mallocInt8, pool.freeInt8] - case "int16": - return [pool.mallocInt16, pool.freeInt16] - case "int32": - return [pool.mallocInt32, pool.freeInt32] - case "float32": - return [pool.mallocFloat, pool.freeFloat] - case "float64": - return [pool.mallocDouble, pool.freeDouble] - default: - return null - } -} + if (eps.pointsCollinear(tail2, tail, head)){ + // tail isn't needed because it's directly between tail2 and head + // tail2 ---tail---> head + if (buildLog) + buildLog.chainRemoveTail(index1, tail); + chain1.pop(); + tail = tail2; // old tail is gone... new tail is what tail2 was + } -function shapeArgs(dimension) { - var args = [] - for(var i=0; i head2 + if (buildLog) + buildLog.chainRemoveHead(index2, head); + chain2.shift(); + } -function createInsertionSort(order, dtype) { + if (buildLog) + buildLog.chainJoin(index1, index2); + chains[index1] = chain1.concat(chain2); + chains.splice(index2, 1); + } - var code = ["'use strict'"] - var funcName = ["ndarrayInsertionSort", order.join("d"), dtype].join("") - var funcArgs = ["left", "right", "data", "offset" ].concat(shapeArgs(order.length)) - var allocator = getMallocFree(dtype) - - var vars = [ "i,j,cptr,ptr=left*s0+offset" ] - - if(order.length > 1) { - var scratch_shape = [] - for(var i=1; i 1) { - - //Copy data into scratch - code.push("dptr=0;sptr=ptr") - for(var i=order.length-1; i>=0; --i) { - var j = order[i] - if(j === 0) { - continue - } - code.push(["for(i",j,"=0;i",j,"left){", - "dptr=0", - "sptr=cptr-s0") - for(var i=1; ib){break __l}"].join("")) - for(var i=order.length-1; i>=1; --i) { - code.push( - "sptr+=e"+i, - "dptr+=f"+i, - "}") - } - - //Copy data back - code.push("dptr=cptr;sptr=cptr-s0") - for(var i=order.length-1; i>=0; --i) { - var j = order[i] - if(j === 0) { - continue - } - code.push(["for(i",j,"=0;i",j,"=0; --i) { - var j = order[i] - if(j === 0) { - continue - } - code.push(["for(i",j,"=0;i",j,"left)&&("+dataRead("cptr-s0")+">scratch)){", - dataWrite("cptr", dataRead("cptr-s0")), - "cptr-=s0", - "}", - dataWrite("cptr", "scratch")) - } - - //Close outer loop body - code.push("}") - if(order.length > 1 && allocator) { - code.push("free(scratch)") - } - code.push("} return " + funcName) - - //Compile and link function - if(allocator) { - var result = new Function("malloc", "free", code.join("\n")) - return result(allocator[0], allocator[1]) - } else { - var result = new Function(code.join("\n")) - return result() - } + var reverseF = chains[F].length < chains[S].length; // reverse the shorter chain, if needed + if (first_match.matches_head){ + if (second_match.matches_head){ + if (reverseF){ + // <<<< F <<<< --- >>>> S >>>> + reverseChain(F); + // >>>> F >>>> --- >>>> S >>>> + appendChain(F, S); + } + else{ + // <<<< F <<<< --- >>>> S >>>> + reverseChain(S); + // <<<< F <<<< --- <<<< S <<<< logically same as: + // >>>> S >>>> --- >>>> F >>>> + appendChain(S, F); + } + } + else{ + // <<<< F <<<< --- <<<< S <<<< logically same as: + // >>>> S >>>> --- >>>> F >>>> + appendChain(S, F); + } + } + else{ + if (second_match.matches_head){ + // >>>> F >>>> --- >>>> S >>>> + appendChain(F, S); + } + else{ + if (reverseF){ + // >>>> F >>>> --- <<<< S <<<< + reverseChain(F); + // <<<< F <<<< --- <<<< S <<<< logically same as: + // >>>> S >>>> --- >>>> F >>>> + appendChain(S, F); + } + else{ + // >>>> F >>>> --- <<<< S <<<< + reverseChain(S); + // >>>> F >>>> --- >>>> S >>>> + appendChain(F, S); + } + } + } + }); + + return regions; } -function createQuickSort(order, dtype, insertionSort) { - var code = [ "'use strict'" ] - var funcName = ["ndarrayQuickSort", order.join("d"), dtype].join("") - var funcArgs = ["left", "right", "data", "offset" ].concat(shapeArgs(order.length)) - var allocator = getMallocFree(dtype) - var labelCounter=0 - - code.push(["function ", funcName, "(", funcArgs.join(","), "){"].join("")) - - var vars = [ - "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(order.length > 1) { - var ele_size = [] - for(var i=1; i=0; --i) { - var j = order[i] - if(j === 0) { - continue - } - code.push(["for(i",j,"=0;i",j," 1) { - for(var i=0; i1) { - code.push("ptr_shift+=d"+j) - } else { - code.push("ptr0+=d"+j) - } - code.push("}") - } - } - - function lexicoLoop(label, ptrs, usePivot, body) { - if(ptrs.length === 1) { - code.push("ptr0="+toPointer(ptrs[0])) - } else { - for(var i=0; i 1) { - for(var i=0; i=1; --i) { - if(usePivot) { - code.push("pivot_ptr+=f"+i) - } - if(ptrs.length > 1) { - code.push("ptr_shift+=e"+i) - } else { - code.push("ptr0+=e"+i) - } - code.push("}") - } - } - - function cleanUp() { - if(order.length > 1 && allocator) { - code.push("free(pivot1)", "free(pivot2)") - } - } - - function compareSwap(a_id, b_id) { - var a = "el"+a_id - var b = "el"+b_id - if(order.length > 1) { - var lbl = "__l" + (++labelCounter) - lexicoLoop(lbl, [a, b], false, [ - "comp=",dataRead("ptr0"),"-",dataRead("ptr1"),"\n", - "if(comp>0){tmp0=", a, ";",a,"=",b,";", b,"=tmp0;break ", lbl,"}\n", - "if(comp<0){break ", lbl, "}" - ].join("")) - } else { - code.push(["if(", dataRead(toPointer(a)), ">", dataRead(toPointer(b)), "){tmp0=", a, ";",a,"=",b,";", b,"=tmp0}"].join("")) - } - } - - compareSwap(1, 2) - compareSwap(4, 5) - compareSwap(1, 3) - compareSwap(2, 3) - compareSwap(1, 4) - compareSwap(3, 4) - compareSwap(2, 5) - compareSwap(2, 3) - compareSwap(4, 5) - - if(order.length > 1) { - cacheLoop(["el1", "el2", "el3", "el4", "el5", "index1", "index3", "index5"], true, [ - "pivot1[pivot_ptr]=",dataRead("ptr1"),"\n", - "pivot2[pivot_ptr]=",dataRead("ptr3"),"\n", - "pivots_are_equal=pivots_are_equal&&(pivot1[pivot_ptr]===pivot2[pivot_ptr])\n", - "x=",dataRead("ptr0"),"\n", - "y=",dataRead("ptr2"),"\n", - "z=",dataRead("ptr4"),"\n", - dataWrite("ptr5", "x"),"\n", - dataWrite("ptr6", "y"),"\n", - dataWrite("ptr7", "z") - ].join("")) - } else { - code.push([ - "pivot1=", dataRead(toPointer("el2")), "\n", - "pivot2=", dataRead(toPointer("el4")), "\n", - "pivots_are_equal=pivot1===pivot2\n", - "x=", dataRead(toPointer("el1")), "\n", - "y=", dataRead(toPointer("el3")), "\n", - "z=", dataRead(toPointer("el5")), "\n", - dataWrite(toPointer("index1"), "x"), "\n", - dataWrite(toPointer("index3"), "y"), "\n", - dataWrite(toPointer("index5"), "z") - ].join("")) - } - +module.exports = SegmentChainer; - function moveElement(dst, src) { - if(order.length > 1) { - cacheLoop([dst, src], false, - dataWrite("ptr0", dataRead("ptr1")) - ) - } else { - code.push(dataWrite(toPointer(dst), dataRead(toPointer(src)))) - } - } - - moveElement("index2", "left") - moveElement("index4", "right") - - function comparePivot(result, ptr, n) { - if(order.length > 1) { - var lbl = "__l" + (++labelCounter) - lexicoLoop(lbl, [ptr], true, [ - result,"=",dataRead("ptr0"),"-pivot",n,"[pivot_ptr]\n", - "if(",result,"!==0){break ", lbl, "}" - ].join("")) - } else { - code.push([result,"=", dataRead(toPointer(ptr)), "-pivot", n].join("")) - } - } - - function swapElements(a, b) { - if(order.length > 1) { - cacheLoop([a,b],false,[ - "tmp=",dataRead("ptr0"),"\n", - dataWrite("ptr0", dataRead("ptr1")),"\n", - dataWrite("ptr1", "tmp") - ].join("")) - } else { - code.push([ - "ptr0=",toPointer(a),"\n", - "ptr1=",toPointer(b),"\n", - "tmp=",dataRead("ptr0"),"\n", - dataWrite("ptr0", dataRead("ptr1")),"\n", - dataWrite("ptr1", "tmp") - ].join("")) - } - } - - function tripleSwap(k, less, great) { - if(order.length > 1) { - cacheLoop([k,less,great], false, [ - "tmp=",dataRead("ptr0"),"\n", - dataWrite("ptr0", dataRead("ptr1")),"\n", - dataWrite("ptr1", dataRead("ptr2")),"\n", - dataWrite("ptr2", "tmp") - ].join("")) - code.push("++"+less, "--"+great) - } else { - code.push([ - "ptr0=",toPointer(k),"\n", - "ptr1=",toPointer(less),"\n", - "ptr2=",toPointer(great),"\n", - "++",less,"\n", - "--",great,"\n", - "tmp=", dataRead("ptr0"), "\n", - dataWrite("ptr0", dataRead("ptr1")), "\n", - dataWrite("ptr1", dataRead("ptr2")), "\n", - dataWrite("ptr2", "tmp") - ].join("")) - } - } - - function swapAndDecrement(k, great) { - swapElements(k, great) - code.push("--"+great) - } - - code.push("if(pivots_are_equal){") - //Pivots are equal case - code.push("for(k=less;k<=great;++k){") - comparePivot("comp", "k", 1) - code.push("if(comp===0){continue}") - code.push("if(comp<0){") - code.push("if(k!==less){") - swapElements("k", "less") - code.push("}") - code.push("++less") - code.push("}else{") - code.push("while(true){") - comparePivot("comp", "great", 1) - code.push("if(comp>0){") - code.push("great--") - code.push("}else if(comp<0){") - tripleSwap("k", "less", "great") - code.push("break") - code.push("}else{") - swapAndDecrement("k", "great") - code.push("break") - code.push("}") - code.push("}") - code.push("}") - code.push("}") - code.push("}else{") - //Pivots not equal case - code.push("for(k=less;k<=great;++k){") - comparePivot("comp_pivot1", "k", 1) - code.push("if(comp_pivot1<0){") - code.push("if(k!==less){") - swapElements("k", "less") - code.push("}") - code.push("++less") - code.push("}else{") - comparePivot("comp_pivot2", "k", 2) - code.push("if(comp_pivot2>0){") - code.push("while(true){") - comparePivot("comp", "great", 2) - code.push("if(comp>0){") - code.push("if(--great1) { - cacheLoop([mem_dest, pivot_dest], true, [ - dataWrite("ptr0", dataRead("ptr1")), "\n", - dataWrite("ptr1", ["pivot",pivot,"[pivot_ptr]"].join("")) - ].join("")) - } else { - code.push( - dataWrite(toPointer(mem_dest), dataRead(toPointer(pivot_dest))), - dataWrite(toPointer(pivot_dest), "pivot"+pivot)) - } - } - - storePivot("left", "(less-1)", 1) - storePivot("right", "(great+1)", 2) +},{}],508:[function(_dereq_,module,exports){ +// (c) Copyright 2016, Sean Connelly (@voidqk), http://syntheti.cc +// MIT License +// Project Home: https://github.com/voidqk/polybooljs - //Recursive sort call - function doSort(left, right) { - code.push([ - "if((",right,"-",left,")<=",INSERTION_SORT_THRESHOLD,"){\n", - "insertionSort(", left, ",", right, ",data,offset,", shapeArgs(order.length).join(","), ")\n", - "}else{\n", - funcName, "(", left, ",", right, ",data,offset,", shapeArgs(order.length).join(","), ")\n", - "}" - ].join("")) - } - doSort("left", "(less-2)") - doSort("(great+2)", "right") - - //If pivots are equal, then early out - code.push("if(pivots_are_equal){") - cleanUp() - code.push("return") - code.push("}") - - function walkPointer(ptr, pivot, body) { - if(order.length > 1) { - code.push(["__l",++labelCounter,":while(true){"].join("")) - cacheLoop([ptr], true, [ - "if(", dataRead("ptr0"), "!==pivot", pivot, "[pivot_ptr]){break __l", labelCounter, "}" - ].join("")) - code.push(body, "}") - } else { - code.push(["while(", dataRead(toPointer(ptr)), "===pivot", pivot, "){", body, "}"].join("")) - } - } - - //Check bounds - code.push("if(lessindex5){") - - walkPointer("less", 1, "++less") - walkPointer("great", 2, "--great") - - code.push("for(k=less;k<=great;++k){") - comparePivot("comp_pivot1", "k", 1) - code.push("if(comp_pivot1===0){") - code.push("if(k!==less){") - swapElements("k", "less") - code.push("}") - code.push("++less") - code.push("}else{") - comparePivot("comp_pivot2", "k", 2) - code.push("if(comp_pivot2===0){") - code.push("while(true){") - comparePivot("comp", "great", 2) - code.push("if(comp===0){") - code.push("if(--great 1 && allocator) { - var compiled = new Function("insertionSort", "malloc", "free", code.join("\n")) - return compiled(insertionSort, allocator[0], allocator[1]) - } - var compiled = new Function("insertionSort", code.join("\n")) - return compiled(insertionSort) +// +// filter a list of segments based on boolean operations +// + +function select(segments, selection, buildLog){ + var result = []; + segments.forEach(function(seg){ + var index = + (seg.myFill.above ? 8 : 0) + + (seg.myFill.below ? 4 : 0) + + ((seg.otherFill && seg.otherFill.above) ? 2 : 0) + + ((seg.otherFill && seg.otherFill.below) ? 1 : 0); + if (selection[index] !== 0){ + // copy the segment to the results, while also calculating the fill status + result.push({ + id: buildLog ? buildLog.segmentId() : -1, + start: seg.start, + end: seg.end, + myFill: { + above: selection[index] === 1, // 1 if filled above + below: selection[index] === 2 // 2 if filled below + }, + otherFill: null + }); + } + }); + + if (buildLog) + buildLog.selected(result); + + return result; } -function compileSort(order, dtype) { - var code = ["'use strict'"] - var funcName = ["ndarraySortWrapper", order.join("d"), dtype].join("") - var funcArgs = [ "array" ] - - code.push(["function ", funcName, "(", funcArgs.join(","), "){"].join("")) - - //Unpack local variables from array - var vars = ["data=array.data,offset=array.offset|0,shape=array.shape,stride=array.stride"] - for(var i=0; i no 0 + // 0 0 0 1 => yes filled below 2 + // 0 0 1 0 => yes filled above 1 + // 0 0 1 1 => no 0 + // 0 1 0 0 => yes filled below 2 + // 0 1 0 1 => yes filled below 2 + // 0 1 1 0 => no 0 + // 0 1 1 1 => no 0 + // 1 0 0 0 => yes filled above 1 + // 1 0 0 1 => no 0 + // 1 0 1 0 => yes filled above 1 + // 1 0 1 1 => no 0 + // 1 1 0 0 => no 0 + // 1 1 0 1 => no 0 + // 1 1 1 0 => no 0 + // 1 1 1 1 => no 0 + return select(segments, [ + 0, 2, 1, 0, + 2, 2, 0, 0, + 1, 0, 1, 0, + 0, 0, 0, 0 + ], buildLog); + }, + intersect: function(segments, buildLog){ // primary & secondary + // above1 below1 above2 below2 Keep? Value + // 0 0 0 0 => no 0 + // 0 0 0 1 => no 0 + // 0 0 1 0 => no 0 + // 0 0 1 1 => no 0 + // 0 1 0 0 => no 0 + // 0 1 0 1 => yes filled below 2 + // 0 1 1 0 => no 0 + // 0 1 1 1 => yes filled below 2 + // 1 0 0 0 => no 0 + // 1 0 0 1 => no 0 + // 1 0 1 0 => yes filled above 1 + // 1 0 1 1 => yes filled above 1 + // 1 1 0 0 => no 0 + // 1 1 0 1 => yes filled below 2 + // 1 1 1 0 => yes filled above 1 + // 1 1 1 1 => no 0 + return select(segments, [ + 0, 0, 0, 0, + 0, 2, 0, 2, + 0, 0, 1, 1, + 0, 2, 1, 0 + ], buildLog); + }, + difference: function(segments, buildLog){ // primary - secondary + // above1 below1 above2 below2 Keep? Value + // 0 0 0 0 => no 0 + // 0 0 0 1 => no 0 + // 0 0 1 0 => no 0 + // 0 0 1 1 => no 0 + // 0 1 0 0 => yes filled below 2 + // 0 1 0 1 => no 0 + // 0 1 1 0 => yes filled below 2 + // 0 1 1 1 => no 0 + // 1 0 0 0 => yes filled above 1 + // 1 0 0 1 => yes filled above 1 + // 1 0 1 0 => no 0 + // 1 0 1 1 => no 0 + // 1 1 0 0 => no 0 + // 1 1 0 1 => yes filled above 1 + // 1 1 1 0 => yes filled below 2 + // 1 1 1 1 => no 0 + return select(segments, [ + 0, 0, 0, 0, + 2, 0, 2, 0, + 1, 1, 0, 0, + 0, 1, 2, 0 + ], buildLog); + }, + differenceRev: function(segments, buildLog){ // secondary - primary + // above1 below1 above2 below2 Keep? Value + // 0 0 0 0 => no 0 + // 0 0 0 1 => yes filled below 2 + // 0 0 1 0 => yes filled above 1 + // 0 0 1 1 => no 0 + // 0 1 0 0 => no 0 + // 0 1 0 1 => no 0 + // 0 1 1 0 => yes filled above 1 + // 0 1 1 1 => yes filled above 1 + // 1 0 0 0 => no 0 + // 1 0 0 1 => yes filled below 2 + // 1 0 1 0 => no 0 + // 1 0 1 1 => yes filled below 2 + // 1 1 0 0 => no 0 + // 1 1 0 1 => no 0 + // 1 1 1 0 => no 0 + // 1 1 1 1 => no 0 + return select(segments, [ + 0, 2, 1, 0, + 0, 0, 1, 1, + 0, 2, 0, 2, + 0, 0, 0, 0 + ], buildLog); + }, + xor: function(segments, buildLog){ // primary ^ secondary + // above1 below1 above2 below2 Keep? Value + // 0 0 0 0 => no 0 + // 0 0 0 1 => yes filled below 2 + // 0 0 1 0 => yes filled above 1 + // 0 0 1 1 => no 0 + // 0 1 0 0 => yes filled below 2 + // 0 1 0 1 => no 0 + // 0 1 1 0 => no 0 + // 0 1 1 1 => yes filled above 1 + // 1 0 0 0 => yes filled above 1 + // 1 0 0 1 => no 0 + // 1 0 1 0 => no 0 + // 1 0 1 1 => yes filled below 2 + // 1 1 0 0 => no 0 + // 1 1 0 1 => yes filled above 1 + // 1 1 1 0 => yes filled below 2 + // 1 1 1 1 => no 0 + return select(segments, [ + 0, 2, 1, 0, + 2, 0, 0, 1, + 1, 0, 0, 2, + 0, 1, 2, 0 + ], buildLog); + } +}; + +module.exports = SegmentSelector; + +},{}],509:[function(_dereq_,module,exports){ +//Optimized version for triangle closest point +// Based on Eberly's WildMagick codes +// http://www.geometrictools.com/LibMathematics/Distance/Distance.html +"use strict"; + +var diff = new Float64Array(4); +var edge0 = new Float64Array(4); +var edge1 = new Float64Array(4); + +function closestPoint2d(V0, V1, V2, point, result) { + //Reallocate buffers if necessary + if(diff.length < point.length) { + diff = new Float64Array(point.length); + edge0 = new Float64Array(point.length); + edge1 = new Float64Array(point.length); } - - var scratch_stride = new Array(order.length) - var nprod = [] - for(var i=0; i 0) { - vars.push(["d",j,"=s",j,"-d",p,"*n",p].join("")) + //Compute coefficients for quadratic func + var a00 = 0.0 + , a01 = 0.0 + , a11 = 0.0 + , b0 = 0.0 + , b1 = 0.0 + , c = 0.0; + for(var i=0; i= a00) { + s = 1.0; + sqrDistance = a00 + 2.0*b0 + c; + } else { + s = -b0/a00; + sqrDistance = b0*s + c; + } + } else { + s = 0; + if (b1 >= 0) { + t = 0; + sqrDistance = c; + } else if (-b1 >= a11) { + t = 1; + sqrDistance = a11 + 2.0*b1 + c; + } else { + t = -b1/a11; + sqrDistance = b1*t + c; + } + } + } else { // region 3 + s = 0; + if (b1 >= 0) { + t = 0; + sqrDistance = c; + } else if (-b1 >= a11) { + t = 1; + sqrDistance = a11 + 2.0*b1 + c; + } else { + t = -b1/a11; + sqrDistance = b1*t + c; + } + } + } else if (t < 0) { // region 5 + t = 0; + if (b0 >= 0) { + s = 0; + sqrDistance = c; + } else if (-b0 >= a00) { + s = 1; + sqrDistance = a00 + 2.0*b0 + c; } else { - vars.push(["d",j,"=s",j].join("")) + s = -b0/a00; + sqrDistance = b0*s + c; } - p = j + } else { // region 0 + // minimum at interior point + var invDet = 1.0 / det; + s *= invDet; + t *= invDet; + sqrDistance = s*(a00*s + a01*t + 2.0*b0) + t*(a01*s + a11*t + 2.0*b1) + c; } - var k = order.length-1-i - if(k !== 0) { - if(q > 0) { - vars.push(["e",k,"=s",k,"-e",q,"*n",q, - ",f",k,"=",scratch_stride[k],"-f",q,"*n",q].join("")) + } else { + var tmp0, tmp1, numer, denom; + + if (s < 0) { // region 2 + tmp0 = a01 + b0; + tmp1 = a11 + b1; + if (tmp1 > tmp0) { + numer = tmp1 - tmp0; + denom = a00 - 2.0*a01 + a11; + if (numer >= denom) { + s = 1; + t = 0; + sqrDistance = a00 + 2.0*b0 + c; + } else { + s = numer/denom; + t = 1 - s; + sqrDistance = s*(a00*s + a01*t + 2.0*b0) + + t*(a01*s + a11*t + 2.0*b1) + c; + } } else { - vars.push(["e",k,"=s",k,",f",k,"=",scratch_stride[k]].join("")) + s = 0; + if (tmp1 <= 0) { + t = 1; + sqrDistance = a11 + 2.0*b1 + c; + } else if (b1 >= 0) { + t = 0; + sqrDistance = c; + } else { + t = -b1/a11; + sqrDistance = b1*t + c; + } + } + } else if (t < 0) { // region 6 + tmp0 = a01 + b1; + tmp1 = a00 + b0; + if (tmp1 > tmp0) { + numer = tmp1 - tmp0; + denom = a00 - 2.0*a01 + a11; + if (numer >= denom) { + t = 1; + s = 0; + sqrDistance = a11 + 2.0*b1 + c; + } else { + t = numer/denom; + s = 1 - t; + sqrDistance = s*(a00*s + a01*t + 2.0*b0) + + t*(a01*s + a11*t + 2.0*b1) + c; + } + } else { + t = 0; + if (tmp1 <= 0) { + s = 1; + sqrDistance = a00 + 2.0*b0 + c; + } else if (b0 >= 0) { + s = 0; + sqrDistance = c; + } else { + s = -b0/a00; + sqrDistance = b0*s + c; + } + } + } else { // region 1 + numer = a11 + b1 - a01 - b0; + if (numer <= 0) { + s = 0; + t = 1; + sqrDistance = a11 + 2.0*b1 + c; + } else { + denom = a00 - 2.0*a01 + a11; + if (numer >= denom) { + s = 1; + t = 0; + sqrDistance = a00 + 2.0*b0 + c; + } else { + s = numer/denom; + t = 1 - s; + sqrDistance = s*(a00*s + a01*t + 2.0*b0) + + t*(a01*s + a11*t + 2.0*b1) + c; + } } - q = k } } - - //Declare local variables - code.push("var " + vars.join(",")) - - //Create arguments for subroutine - var sortArgs = ["0", "n0-1", "data", "offset"].concat(shapeArgs(order.length)) - - //Call main sorting routine - code.push([ - "if(n0<=",INSERTION_SORT_THRESHOLD,"){", - "insertionSort(", sortArgs.join(","), ")}else{", - "quickSort(", sortArgs.join(","), - ")}" - ].join("")) - - //Return - code.push("}return " + funcName) - - //Link everything together - var result = new Function("insertionSort", "quickSort", code.join("\n")) - var insertionSort = createInsertionSort(order, dtype) - var quickSort = createQuickSort(order, dtype, insertionSort) - return result(insertionSort, quickSort) + var u = 1.0 - s - t; + for(var i=0; iMath.abs(this.stride[1]))?[1,0]:[0,1]}})") - } else if(dimension === 3) { - code.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];\ -}}})") - } - } else { - code.push("ORDER})") - } +exports.sliceEq = function (src, start, dest) { + for (var i = start, j = 0; j < dest.length;) { + if (src[i++] !== dest[j++]) return false; } + return true; +}; - //view.set(i0, ..., v): - code.push( -"proto.set=function "+className+"_set("+args.join(",")+",v){") - if(useGetters) { - code.push("return this.data.set("+index_str+",v)}") - } else { - code.push("return this.data["+index_str+"]=v}") - } +exports.str2arr = function (str, format) { + var arr = [], i = 0; - //view.get(i0, ...): - code.push("proto.get=function "+className+"_get("+args.join(",")+"){") - if(useGetters) { - code.push("return this.data.get("+index_str+")}") + if (format && format === 'hex') { + while (i < str.length) { + arr.push(parseInt(str.slice(i, i + 2), 16)); + i += 2; + } } else { - code.push("return this.data["+index_str+"]}") + for (; i < str.length; i++) { + /* eslint-disable no-bitwise */ + arr.push(str.charCodeAt(i) & 0xFF); + } } - //view.index: - code.push( - "proto.index=function "+className+"_index(", args.join(), "){return "+index_str+"}") - - //view.hi(): - code.push("proto.hi=function "+className+"_hi("+args.join(",")+"){return new "+className+"(this.data,"+ - indices.map(function(i) { - return ["(typeof i",i,"!=='number'||i",i,"<0)?this.shape[", i, "]:i", i,"|0"].join("") - }).join(",")+","+ - indices.map(function(i) { - return "this.stride["+i + "]" - }).join(",")+",this.offset)}") + return arr; +}; - //view.lo(): - var a_vars = indices.map(function(i) { return "a"+i+"=this.shape["+i+"]" }) - var c_vars = indices.map(function(i) { return "c"+i+"=this.stride["+i+"]" }) - code.push("proto.lo=function "+className+"_lo("+args.join(",")+"){var b=this.offset,d=0,"+a_vars.join(",")+","+c_vars.join(",")) - for(var i=0; i=0){\ -d=i"+i+"|0;\ -b+=c"+i+"*d;\ -a"+i+"-=d}") - } - code.push("return new "+className+"(this.data,"+ - indices.map(function(i) { - return "a"+i - }).join(",")+","+ - indices.map(function(i) { - return "c"+i - }).join(",")+",b)}") +exports.readUInt16LE = function (data, offset) { + return data[offset] | (data[offset + 1] << 8); +}; - //view.step(): - code.push("proto.step=function "+className+"_step("+args.join(",")+"){var "+ - indices.map(function(i) { - return "a"+i+"=this.shape["+i+"]" - }).join(",")+","+ - indices.map(function(i) { - return "b"+i+"=this.stride["+i+"]" - }).join(",")+",c=this.offset,d=0,ceil=Math.ceil") - for(var i=0; i=0){c=(c+this.stride["+i+"]*i"+i+")|0}else{a.push(this.shape["+i+"]);b.push(this.stride["+i+"])}") - } - code.push("var ctor=CTOR_LIST[a.length+1];return ctor(this.data,a,b,c)}") +exports.readUInt32BE = function (data, offset) { + return data[offset + 3] | + (data[offset + 2] << 8) | + (data[offset + 1] << 16) | + (data[offset] * 0x1000000); +}; - //Add return statement - code.push("return function construct_"+className+"(data,shape,stride,offset){return new "+className+"(data,"+ - indices.map(function(i) { - return "shape["+i+"]" - }).join(",")+","+ - indices.map(function(i) { - return "stride["+i+"]" - }).join(",")+",offset)}") - //Compile procedure - var procedure = new Function("CTOR_LIST", "ORDER", code.join("\n")) - return procedure(CACHED_CONSTRUCTORS[dtype], order) -} +function ProbeError(message, code, statusCode) { + Error.call(this); + Error.captureStackTrace(this, this.constructor); -function arrayDType(data) { - if(isBuffer(data)) { - return "buffer" - } - if(hasTypedArrays) { - switch(Object.prototype.toString.call(data)) { - case "[object Float64Array]": - return "float64" - case "[object Float32Array]": - return "float32" - case "[object Int8Array]": - return "int8" - case "[object Int16Array]": - return "int16" - case "[object Int32Array]": - return "int32" - case "[object Uint8Array]": - return "uint8" - case "[object Uint16Array]": - return "uint16" - case "[object Uint32Array]": - return "uint32" - case "[object Uint8ClampedArray]": - return "uint8_clamped" - case "[object BigInt64Array]": - return "bigint64" - case "[object BigUint64Array]": - return "biguint64" - } - } - if(Array.isArray(data)) { - return "array" - } - return "generic" -} + this.name = this.constructor.name; -var CACHED_CONSTRUCTORS = { - "float32":[], - "float64":[], - "int8":[], - "int16":[], - "int32":[], - "uint8":[], - "uint16":[], - "uint32":[], - "array":[], - "uint8_clamped":[], - "bigint64": [], - "biguint64": [], - "buffer":[], - "generic":[] + this.message = message; + if (code) this.code = code; + if (statusCode) this.statusCode = statusCode; } -;(function() { - for(var id in CACHED_CONSTRUCTORS) { - CACHED_CONSTRUCTORS[id].push(compileConstructor(id, -1)) - } -}); +// Inherit from Error +ProbeError.prototype = Object.create(Error.prototype); +ProbeError.prototype.constructor = ProbeError; -function wrappedNDArrayCtor(data, shape, stride, offset) { - if(data === undefined) { - var ctor = CACHED_CONSTRUCTORS.array[0] - return ctor([]) - } else if(typeof data === "number") { - data = [data] - } - if(shape === undefined) { - shape = [ data.length ] - } - var d = shape.length - if(stride === undefined) { - stride = new Array(d) - for(var i=d-1, sz=1; i>=0; --i) { - stride[i] = sz - sz *= shape[i] - } - } - if(offset === undefined) { - offset = 0 - for(var i=0; i>>0 +var str2arr = _dereq_('../common').str2arr; +var sliceEq = _dereq_('../common').sliceEq; +var readUInt16LE = _dereq_('../common').readUInt16LE; -module.exports = nextafter +var SIG_BM = str2arr('BM'); -function nextafter(x, y) { - if(isNaN(x) || isNaN(y)) { - return NaN - } - if(x === y) { - return x - } - if(x === 0) { - if(y < 0) { - return -SMALLEST_DENORM - } else { - return SMALLEST_DENORM - } - } - var hi = doubleBits.hi(x) - var lo = doubleBits.lo(x) - if((y > x) === (x > 0)) { - if(lo === UINT_MAX) { - hi += 1 - lo = 0 - } else { - lo += 1 - } - } else { - if(lo === 0) { - lo = UINT_MAX - hi -= 1 - } else { - lo -= 1 - } - } - return doubleBits.pack(lo, hi) -} -},{"double-bits":173}],497:[function(_dereq_,module,exports){ -var π = Math.PI -var _120 = radians(120) +module.exports = function (data) { + if (data.length < 26) return; -module.exports = normalize + if (!sliceEq(data, 0, SIG_BM)) return; -/** - * describe `path` in terms of cubic bézier - * curves and move commands - * - * @param {Array} path - * @return {Array} - */ + return { + width: readUInt16LE(data, 18), + height: readUInt16LE(data, 22), + type: 'bmp', + mime: 'image/bmp', + wUnits: 'px', + hUnits: 'px' + }; +}; -function normalize(path){ - // init state - var prev - var result = [] - var bezierX = 0 - var bezierY = 0 - var startX = 0 - var startY = 0 - var quadX = null - var quadY = null - var x = 0 - var y = 0 +},{"../common":510}],512:[function(_dereq_,module,exports){ +'use strict'; - for (var i = 0, len = path.length; i < len; i++) { - var seg = path[i] - var command = seg[0] - switch (command) { - case 'M': - startX = seg[1] - startY = seg[2] - break - case 'A': - seg = arc(x, y,seg[1],seg[2],radians(seg[3]),seg[4],seg[5],seg[6],seg[7]) - // split multi part - seg.unshift('C') - if (seg.length > 7) { - result.push(seg.splice(0, 7)) - seg.unshift('C') - } - break - case 'S': - // default control point - var cx = x - var cy = y - if (prev == 'C' || prev == 'S') { - cx += cx - bezierX // reflect the previous command's control - cy += cy - bezierY // point relative to the current point - } - seg = ['C', cx, cy, seg[1], seg[2], seg[3], seg[4]] - break - case 'T': - if (prev == 'Q' || prev == 'T') { - quadX = x * 2 - quadX // as with 'S' reflect previous control point - quadY = y * 2 - quadY - } else { - quadX = x - quadY = y - } - seg = quadratic(x, y, quadX, quadY, seg[1], seg[2]) - break - case 'Q': - quadX = seg[1] - quadY = seg[2] - seg = quadratic(x, y, seg[1], seg[2], seg[3], seg[4]) - break - case 'L': - seg = line(x, y, seg[1], seg[2]) - break - case 'H': - seg = line(x, y, seg[1], y) - break - case 'V': - seg = line(x, y, x, seg[1]) - break - case 'Z': - seg = line(x, y, startX, startY) - break - } +/* eslint-disable consistent-return */ - // update state - prev = command - x = seg[seg.length - 2] - y = seg[seg.length - 1] - if (seg.length > 4) { - bezierX = seg[seg.length - 4] - bezierY = seg[seg.length - 3] - } else { - bezierX = x - bezierY = y - } - result.push(seg) - } +var str2arr = _dereq_('../common').str2arr; +var sliceEq = _dereq_('../common').sliceEq; +var readUInt16LE = _dereq_('../common').readUInt16LE; - return result -} -function line(x1, y1, x2, y2){ - return ['C', x1, y1, x2, y2, x2, y2] -} +var SIG_GIF87a = str2arr('GIF87a'); +var SIG_GIF89a = str2arr('GIF89a'); -function quadratic(x1, y1, cx, cy, x2, y2){ - return [ - 'C', - x1/3 + (2/3) * cx, - y1/3 + (2/3) * cy, - x2/3 + (2/3) * cx, - y2/3 + (2/3) * cy, - x2, - y2 - ] -} -// This function is ripped from -// github.com/DmitryBaranovskiy/raphael/blob/4d97d4/raphael.js#L2216-L2304 -// which references w3.org/TR/SVG11/implnote.html#ArcImplementationNotes -// TODO: make it human readable +module.exports = function (data) { + if (data.length < 10) return; -function arc(x1, y1, rx, ry, angle, large_arc_flag, sweep_flag, x2, y2, recursive) { - if (!recursive) { - var xy = rotate(x1, y1, -angle) - x1 = xy.x - y1 = xy.y - xy = rotate(x2, y2, -angle) - x2 = xy.x - y2 = xy.y - var x = (x1 - x2) / 2 - var y = (y1 - y2) / 2 - var h = (x * x) / (rx * rx) + (y * y) / (ry * ry) - if (h > 1) { - h = Math.sqrt(h) - rx = h * rx - ry = h * ry - } - var rx2 = rx * rx - var ry2 = ry * ry - var k = (large_arc_flag == sweep_flag ? -1 : 1) - * Math.sqrt(Math.abs((rx2 * ry2 - rx2 * y * y - ry2 * x * x) / (rx2 * y * y + ry2 * x * x))) - if (k == Infinity) k = 1 // neutralize - var cx = k * rx * y / ry + (x1 + x2) / 2 - var cy = k * -ry * x / rx + (y1 + y2) / 2 - var f1 = Math.asin(((y1 - cy) / ry).toFixed(9)) - var f2 = Math.asin(((y2 - cy) / ry).toFixed(9)) + if (!sliceEq(data, 0, SIG_GIF87a) && !sliceEq(data, 0, SIG_GIF89a)) return; - f1 = x1 < cx ? π - f1 : f1 - f2 = x2 < cx ? π - f2 : f2 - if (f1 < 0) f1 = π * 2 + f1 - if (f2 < 0) f2 = π * 2 + f2 - if (sweep_flag && f1 > f2) f1 = f1 - π * 2 - if (!sweep_flag && f2 > f1) f2 = f2 - π * 2 - } else { - f1 = recursive[0] - f2 = recursive[1] - cx = recursive[2] - cy = recursive[3] - } - // greater than 120 degrees requires multiple segments - if (Math.abs(f2 - f1) > _120) { - var f2old = f2 - var x2old = x2 - var y2old = y2 - f2 = f1 + _120 * (sweep_flag && f2 > f1 ? 1 : -1) - x2 = cx + rx * Math.cos(f2) - y2 = cy + ry * Math.sin(f2) - var res = arc(x2, y2, rx, ry, angle, 0, sweep_flag, x2old, y2old, [f2, f2old, cx, cy]) - } - var t = Math.tan((f2 - f1) / 4) - var hx = 4 / 3 * rx * t - var hy = 4 / 3 * ry * t - var curve = [ - 2 * x1 - (x1 + hx * Math.sin(f1)), - 2 * y1 - (y1 - hy * Math.cos(f1)), - x2 + hx * Math.sin(f2), - y2 - hy * Math.cos(f2), - x2, - y2 - ] - if (recursive) return curve - if (res) curve = curve.concat(res) - for (var i = 0; i < curve.length;) { - var rot = rotate(curve[i], curve[i+1], angle) - curve[i++] = rot.x - curve[i++] = rot.y - } - return curve -} + return { + width: readUInt16LE(data, 6), + height: readUInt16LE(data, 8), + type: 'gif', + mime: 'image/gif', + wUnits: 'px', + hUnits: 'px' + }; +}; -function rotate(x, y, rad){ - return { - x: x * Math.cos(rad) - y * Math.sin(rad), - y: x * Math.sin(rad) + y * Math.cos(rad) - } -} +},{"../common":510}],513:[function(_dereq_,module,exports){ +'use strict'; -function radians(degress){ - return degress * (π / 180) -} +/* eslint-disable consistent-return */ -},{}],498:[function(_dereq_,module,exports){ -var DEFAULT_NORMALS_EPSILON = 1e-6; -var DEFAULT_FACE_EPSILON = 1e-6; +var readUInt16LE = _dereq_('../common').readUInt16LE; -//Estimate the vertex normals of a mesh -exports.vertexNormals = function(faces, positions, specifiedEpsilon) { +var HEADER = 0; +var TYPE_ICO = 1; +var INDEX_SIZE = 16; - var N = positions.length; - var normals = new Array(N); - var epsilon = specifiedEpsilon === void(0) ? DEFAULT_NORMALS_EPSILON : specifiedEpsilon; +// Format specification: +// https://en.wikipedia.org/wiki/ICO_(file_format)#Icon_resource_structure +module.exports = function (data) { + var header = readUInt16LE(data, 0); + var type = readUInt16LE(data, 2); + var numImages = readUInt16LE(data, 4); - //Initialize normal array - for(var i=0; i epsilon) { - var norm = normals[c]; - var w = 1.0 / Math.sqrt(m01 * m21); - for(var k=0; k<3; ++k) { - var u = (k+1)%3; - var v = (k+2)%3; - norm[k] += w * (d21[u] * d01[v] - d21[v] * d01[u]); - } - } + if (width > maxSize.width || height > maxSize.height) { + maxSize = size; } } - //Scale all normals to unit length - for(var i=0; i epsilon) { - var w = 1.0 / Math.sqrt(m); - for(var k=0; k<3; ++k) { - norm[k] *= w; - } - } else { - for(var k=0; k<3; ++k) { - norm[k] = 0.0; - } - } - } + return { + width: maxSize.width, + height: maxSize.height, + variants: variants, + type: 'ico', + mime: 'image/x-icon', + wUnits: 'px', + hUnits: 'px' + }; +}; - //Return the resulting set of patches - return normals; -} +},{"../common":510}],514:[function(_dereq_,module,exports){ +'use strict'; -//Compute face normals of a mesh -exports.faceNormals = function(faces, positions, specifiedEpsilon) { +/* eslint-disable consistent-return */ - var N = faces.length; - var normals = new Array(N); - var epsilon = specifiedEpsilon === void(0) ? DEFAULT_FACE_EPSILON : specifiedEpsilon; +var readUInt16BE = _dereq_('../common').readUInt16BE; - for(var i=0; i epsilon) { - l = 1.0 / Math.sqrt(l); - } else { - l = 0.0; - } - for(var j=0; j<3; ++j) { - n[j] *= l; - } - normals[i] = n; - } - return normals; -} + // first marker of the file MUST be 0xFFD8 + if (data[0] !== 0xFF || data[1] !== 0xD8) return; + var offset = 2; + for (;;) { + if (data.length - offset < 2) return; + // not a JPEG marker + if (data[offset++] !== 0xFF) return; -},{}],499:[function(_dereq_,module,exports){ -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/ + var code = data[offset++]; + var length; -'use strict'; -/* eslint-disable no-unused-vars */ -var getOwnPropertySymbols = Object.getOwnPropertySymbols; -var hasOwnProperty = Object.prototype.hasOwnProperty; -var propIsEnumerable = Object.prototype.propertyIsEnumerable; + // skip padding bytes + while (code === 0xFF) code = data[offset++]; -function toObject(val) { - if (val === null || val === undefined) { - throw new TypeError('Object.assign cannot be called with null or undefined'); - } + // standalone markers, according to JPEG 1992, + // http://www.w3.org/Graphics/JPEG/itu-t81.pdf, see Table B.1 + if ((0xD0 <= code && code <= 0xD9) || code === 0x01) { + length = 0; + } else if (0xC0 <= code && code <= 0xFE) { + // the rest of the unreserved markers + if (data.length - offset < 2) return; - return Object(val); -} + length = readUInt16BE(data, offset) - 2; + offset += 2; + } else { + // unknown markers + return; + } -function shouldUseNative() { - try { - if (!Object.assign) { - return false; - } + if (code === 0xD9 /* EOI */ || code === 0xDA /* SOS */) { + // end of the datastream + return; + } - // Detect buggy property enumeration order in older V8 versions. + if (length >= 5 && + (0xC0 <= code && code <= 0xCF) && + code !== 0xC4 && code !== 0xC8 && code !== 0xCC) { - // https://bugs.chromium.org/p/v8/issues/detail?id=4118 - var test1 = new String('abc'); // eslint-disable-line no-new-wrappers - test1[5] = 'de'; - if (Object.getOwnPropertyNames(test1)[0] === '5') { - return false; - } + if (data.length - offset < length) return; - // https://bugs.chromium.org/p/v8/issues/detail?id=3056 - var test2 = {}; - for (var i = 0; i < 10; i++) { - test2['_' + String.fromCharCode(i)] = i; - } - var order2 = Object.getOwnPropertyNames(test2).map(function (n) { - return test2[n]; - }); - if (order2.join('') !== '0123456789') { - return false; - } + return { + width: readUInt16BE(data, offset + 3), + height: readUInt16BE(data, offset + 1), + type: 'jpg', + mime: 'image/jpeg', + wUnits: 'px', + hUnits: 'px' + }; + } - // https://bugs.chromium.org/p/v8/issues/detail?id=3056 - var test3 = {}; - 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { - test3[letter] = letter; - }); - if (Object.keys(Object.assign({}, test3)).join('') !== - 'abcdefghijklmnopqrst') { - return false; - } + offset += length; + } +}; - return true; - } catch (err) { - // We don't expect any of the above to throw, but better to be safe. - return false; - } -} +},{"../common":510}],515:[function(_dereq_,module,exports){ +'use strict'; + +/* eslint-disable consistent-return */ + +var str2arr = _dereq_('../common').str2arr; +var sliceEq = _dereq_('../common').sliceEq; +var readUInt32BE = _dereq_('../common').readUInt32BE; -module.exports = shouldUseNative() ? Object.assign : function (target, source) { - var from; - var to = toObject(target); - var symbols; - for (var s = 1; s < arguments.length; s++) { - from = Object(arguments[s]); +var SIG_PNG = str2arr('\x89PNG\r\n\x1a\n'); +var SIG_IHDR = str2arr('IHDR'); - for (var key in from) { - if (hasOwnProperty.call(from, key)) { - to[key] = from[key]; - } - } - if (getOwnPropertySymbols) { - symbols = getOwnPropertySymbols(from); - for (var i = 0; i < symbols.length; i++) { - if (propIsEnumerable.call(from, symbols[i])) { - to[symbols[i]] = from[symbols[i]]; - } - } - } - } +module.exports = function (data) { + if (data.length < 24) return; - return to; + // check PNG signature + if (!sliceEq(data, 0, SIG_PNG)) return; + + // check that first chunk is IHDR + if (!sliceEq(data, 12, SIG_IHDR)) return; + + return { + width: readUInt32BE(data, 16), + height: readUInt32BE(data, 20), + type: 'png', + mime: 'image/png', + wUnits: 'px', + hUnits: 'px' + }; }; -},{}],500:[function(_dereq_,module,exports){ -'use strict' +},{"../common":510}],516:[function(_dereq_,module,exports){ +'use strict'; -module.exports = quatFromFrame +/* eslint-disable consistent-return */ -function quatFromFrame( - out, - rx, ry, rz, - ux, uy, uz, - fx, fy, fz) { - var tr = rx + uy + fz - if(l > 0) { - var l = Math.sqrt(tr + 1.0) - out[0] = 0.5 * (uz - fy) / l - out[1] = 0.5 * (fx - rz) / l - out[2] = 0.5 * (ry - uy) / l - out[3] = 0.5 * l - } else { - var tf = Math.max(rx, uy, fz) - var l = Math.sqrt(2 * tf - tr + 1.0) - if(rx >= tf) { - //x y z order - out[0] = 0.5 * l - out[1] = 0.5 * (ux + ry) / l - out[2] = 0.5 * (fx + rz) / l - out[3] = 0.5 * (uz - fy) / l - } else if(uy >= tf) { - //y z x order - out[0] = 0.5 * (ry + ux) / l - out[1] = 0.5 * l - out[2] = 0.5 * (fy + uz) / l - out[3] = 0.5 * (fx - rz) / l - } else { - //z x y order - out[0] = 0.5 * (rz + fx) / l - out[1] = 0.5 * (uz + fy) / l - out[2] = 0.5 * l - out[3] = 0.5 * (ry - ux) / l - } - } - return out -} -},{}],501:[function(_dereq_,module,exports){ -'use strict' +var str2arr = _dereq_('../common').str2arr; +var sliceEq = _dereq_('../common').sliceEq; +var readUInt32BE = _dereq_('../common').readUInt32BE; -module.exports = createOrbitController -var filterVector = _dereq_('filtered-vector') -var lookAt = _dereq_('gl-mat4/lookAt') -var mat4FromQuat = _dereq_('gl-mat4/fromQuat') -var invert44 = _dereq_('gl-mat4/invert') -var quatFromFrame = _dereq_('./lib/quatFromFrame') +var SIG_8BPS = str2arr('8BPS\x00\x01'); -function len3(x,y,z) { - return Math.sqrt(Math.pow(x,2) + Math.pow(y,2) + Math.pow(z,2)) + +module.exports = function (data) { + if (data.length < 6 + 16) return; + + // signature + version + if (!sliceEq(data, 0, SIG_8BPS)) return; + + return { + width: readUInt32BE(data, 6 + 12), + height: readUInt32BE(data, 6 + 8), + type: 'psd', + mime: 'image/vnd.adobe.photoshop', + wUnits: 'px', + hUnits: 'px' + }; +}; + +},{"../common":510}],517:[function(_dereq_,module,exports){ +'use strict'; + +/* eslint-disable consistent-return */ + +function isWhiteSpace(chr) { + return chr === 0x20 || chr === 0x09 || chr === 0x0D || chr === 0x0A; } -function len4(w,x,y,z) { - return Math.sqrt(Math.pow(w,2) + Math.pow(x,2) + Math.pow(y,2) + Math.pow(z,2)) +// Filter NaN, Infinity, < 0 +function isFinitePositive(val) { + return typeof val === 'number' && isFinite(val) && val > 0; } -function normalize4(out, a) { - var ax = a[0] - var ay = a[1] - var az = a[2] - var aw = a[3] - var al = len4(ax, ay, az, aw) - if(al > 1e-6) { - out[0] = ax/al - out[1] = ay/al - out[2] = az/al - out[3] = aw/al - } else { - out[0] = out[1] = out[2] = 0.0 - out[3] = 1.0 - } +function canBeSvg(buf) { + var i = 0, max = buf.length; + + while (i < max && isWhiteSpace(buf[i])) i++; + + if (i === max) return false; + return buf[i] === 0x3c; /* < */ } -function OrbitCameraController(initQuat, initCenter, initRadius) { - this.radius = filterVector([initRadius]) - this.center = filterVector(initCenter) - this.rotation = filterVector(initQuat) - this.computedRadius = this.radius.curve(0) - this.computedCenter = this.center.curve(0) - this.computedRotation = this.rotation.curve(0) - this.computedUp = [0.1,0,0] - this.computedEye = [0.1,0,0] - this.computedMatrix = [0.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] +var SVG_HEADER_RE = /]+>/; +var SVG_WIDTH_RE = /[^-]\bwidth="([^%]+?)"|[^-]\bwidth='([^%]+?)'/; +var SVG_HEIGHT_RE = /\bheight="([^%]+?)"|\bheight='([^%]+?)'/; +var SVG_VIEWBOX_RE = /\bview[bB]ox="(.+?)"|\bview[bB]ox='(.+?)'/; +var SVG_UNITS_RE = /in$|mm$|cm$|pt$|pc$|px$|em$|ex$/; - this.recalcMatrix(0) +function svgAttrs(str) { + var width = str.match(SVG_WIDTH_RE); + var height = str.match(SVG_HEIGHT_RE); + var viewbox = str.match(SVG_VIEWBOX_RE); + + return { + width: width && (width[1] || width[2]), + height: height && (height[1] || height[2]), + viewbox: viewbox && (viewbox[1] || viewbox[2]) + }; } -var proto = OrbitCameraController.prototype -proto.lastT = function() { - return Math.max( - this.radius.lastT(), - this.center.lastT(), - this.rotation.lastT()) +function units(str) { + if (!SVG_UNITS_RE.test(str)) return 'px'; + + return str.match(SVG_UNITS_RE)[0]; } -proto.recalcMatrix = function(t) { - this.radius.curve(t) - this.center.curve(t) - this.rotation.curve(t) - var quat = this.computedRotation - normalize4(quat, quat) +module.exports = function (data) { + if (!canBeSvg(data)) return; - var mat = this.computedMatrix - mat4FromQuat(mat, quat) + var str = ''; - var center = this.computedCenter - var eye = this.computedEye - var up = this.computedUp - var radius = Math.exp(this.computedRadius[0]) + for (var i = 0; i < data.length; i++) { + // 1. We can't rely on buffer features + // 2. Don't care about UTF16 because ascii is enougth for our goals + str += String.fromCharCode(data[i]); + } - eye[0] = center[0] + radius * mat[2] - eye[1] = center[1] + radius * mat[6] - eye[2] = center[2] + radius * mat[10] - up[0] = mat[1] - up[1] = mat[5] - up[2] = mat[9] + if (!SVG_HEADER_RE.test(str)) return; - for(var i=0; i<3; ++i) { - var rr = 0.0 - for(var j=0; j<3; ++j) { - rr += mat[i+4*j] * eye[j] - } - mat[12+i] = -rr + var attrs = svgAttrs(str.match(SVG_HEADER_RE)[0]); + var width = parseFloat(attrs.width); + var height = parseFloat(attrs.height); + + // Extract from direct values + + if (attrs.width && attrs.height) { + if (!isFinitePositive(width) || !isFinitePositive(height)) return; + + return { + width: width, + height: height, + type: 'svg', + mime: 'image/svg+xml', + wUnits: units(attrs.width), + hUnits: units(attrs.height) + }; } -} -proto.getMatrix = function(t, result) { - this.recalcMatrix(t) - var m = this.computedMatrix - if(result) { - for(var i=0; i<16; ++i) { - result[i] = m[i] - } - return result + // Extract from viewbox + + var parts = (attrs.viewbox || '').split(' '); + var viewbox = { + width: parts[2], + height: parts[3] + }; + var vbWidth = parseFloat(viewbox.width); + var vbHeight = parseFloat(viewbox.height); + + if (!isFinitePositive(vbWidth) || !isFinitePositive(vbHeight)) return; + if (units(viewbox.width) !== units(viewbox.height)) return; + + var ratio = vbWidth / vbHeight; + + if (attrs.width) { + if (!isFinitePositive(width)) return; + + return { + width: width, + height: width / ratio, + type: 'svg', + mime: 'image/svg+xml', + wUnits: units(attrs.width), + hUnits: units(attrs.width) + }; } - return m -} -proto.idle = function(t) { - this.center.idle(t) - this.radius.idle(t) - this.rotation.idle(t) -} + if (attrs.height) { + if (!isFinitePositive(height)) return; -proto.flush = function(t) { - this.center.flush(t) - this.radius.flush(t) - this.rotation.flush(t) -} + return { + width: height * ratio, + height: height, + type: 'svg', + mime: 'image/svg+xml', + wUnits: units(attrs.height), + hUnits: units(attrs.height) + }; + } -proto.pan = function(t, dx, dy, dz) { - dx = dx || 0.0 - dy = dy || 0.0 - dz = dz || 0.0 + return { + width: vbWidth, + height: vbHeight, + type: 'svg', + mime: 'image/svg+xml', + wUnits: units(viewbox.width), + hUnits: units(viewbox.height) + }; +}; - this.recalcMatrix(t) - var mat = this.computedMatrix +},{}],518:[function(_dereq_,module,exports){ +'use strict'; - var ux = mat[1] - var uy = mat[5] - var uz = mat[9] - var ul = len3(ux, uy, uz) - ux /= ul - uy /= ul - uz /= ul +/* eslint-disable consistent-return */ - var rx = mat[0] - var ry = mat[4] - var rz = mat[8] - var ru = rx * ux + ry * uy + rz * uz - rx -= ux * ru - ry -= uy * ru - rz -= uz * ru - var rl = len3(rx, ry, rz) - rx /= rl - ry /= rl - rz /= rl +var str2arr = _dereq_('../common').str2arr; +var sliceEq = _dereq_('../common').sliceEq; +var readUInt16LE = _dereq_('../common').readUInt16LE; +var readUInt16BE = _dereq_('../common').readUInt16BE; +var readUInt32LE = _dereq_('../common').readUInt32LE; +var readUInt32BE = _dereq_('../common').readUInt32BE; - var fx = mat[2] - var fy = mat[6] - var fz = mat[10] - var fu = fx * ux + fy * uy + fz * uz - var fr = fx * rx + fy * ry + fz * rz - fx -= fu * ux + fr * rx - fy -= fu * uy + fr * ry - fz -= fu * uz + fr * rz - var fl = len3(fx, fy, fz) - fx /= fl - fy /= fl - fz /= fl - var vx = rx * dx + ux * dy - var vy = ry * dx + uy * dy - var vz = rz * dx + uz * dy +var SIG_1 = str2arr('II\x2A\0'); +var SIG_2 = str2arr('MM\0\x2A'); - this.center.move(t, vx, vy, vz) - //Update z-component of radius - var radius = Math.exp(this.computedRadius[0]) - radius = Math.max(1e-4, radius + dz) - this.radius.set(t, Math.log(radius)) +function readUInt16(buffer, offset, is_big_endian) { + return is_big_endian ? readUInt16BE(buffer, offset) : readUInt16LE(buffer, offset); } -proto.rotate = function(t, dx, dy, dz) { - this.recalcMatrix(t) +function readUInt32(buffer, offset, is_big_endian) { + return is_big_endian ? readUInt32BE(buffer, offset) : readUInt32LE(buffer, offset); +} - dx = dx||0.0 - dy = dy||0.0 +function readIFDValue(data, data_offset, is_big_endian) { + var type = readUInt16(data, data_offset + 2, is_big_endian); + var values = readUInt32(data, data_offset + 4, is_big_endian); - var mat = this.computedMatrix + if (values !== 1 || (type !== 3 && type !== 4)) return null; - var rx = mat[0] - var ry = mat[4] - var rz = mat[8] + if (type === 3) { + return readUInt16(data, data_offset + 8, is_big_endian); + } - var ux = mat[1] - var uy = mat[5] - var uz = mat[9] + return readUInt32(data, data_offset + 8, is_big_endian); +} - var fx = mat[2] - var fy = mat[6] - var fz = mat[10] +module.exports = function (data) { + if (data.length < 8) return; - var qx = dx * rx + dy * ux - var qy = dx * ry + dy * uy - var qz = dx * rz + dy * uz + // check TIFF signature + if (!sliceEq(data, 0, SIG_1) && !sliceEq(data, 0, SIG_2)) return; - var bx = -(fy * qz - fz * qy) - var by = -(fz * qx - fx * qz) - var bz = -(fx * qy - fy * qx) - var bw = Math.sqrt(Math.max(0.0, 1.0 - Math.pow(bx,2) - Math.pow(by,2) - Math.pow(bz,2))) - var bl = len4(bx, by, bz, bw) - if(bl > 1e-6) { - bx /= bl - by /= bl - bz /= bl - bw /= bl - } else { - bx = by = bz = 0.0 - bw = 1.0 - } + var is_big_endian = (data[0] === 77 /* 'MM' */); + var count = readUInt32(data, 4, is_big_endian) - 8; - var rotation = this.computedRotation - var ax = rotation[0] - var ay = rotation[1] - var az = rotation[2] - var aw = rotation[3] + if (count < 0) return; - var cx = ax*bw + aw*bx + ay*bz - az*by - var cy = ay*bw + aw*by + az*bx - ax*bz - var cz = az*bw + aw*bz + ax*by - ay*bx - var cw = aw*bw - ax*bx - ay*by - az*bz - - //Apply roll - if(dz) { - bx = fx - by = fy - bz = fz - var s = Math.sin(dz) / len3(bx, by, bz) - bx *= s - by *= s - bz *= s - bw = Math.cos(dx) - cx = cx*bw + cw*bx + cy*bz - cz*by - cy = cy*bw + cw*by + cz*bx - cx*bz - cz = cz*bw + cw*bz + cx*by - cy*bx - cw = cw*bw - cx*bx - cy*by - cz*bz + // skip until IFD + var offset = count + 8; + + if (data.length - offset < 2) return; + + // read number of IFD entries + var ifd_size = readUInt16(data, offset + 0, is_big_endian) * 12; + + if (ifd_size <= 0) return; + + offset += 2; + + // read all IFD entries + if (data.length - offset < ifd_size) return; + + var i, width, height, tag; + + for (i = 0; i < ifd_size; i += 12) { + tag = readUInt16(data, offset + i, is_big_endian); + + if (tag === 256) { + width = readIFDValue(data, offset + i, is_big_endian); + } else if (tag === 257) { + height = readIFDValue(data, offset + i, is_big_endian); + } } - var cl = len4(cx, cy, cz, cw) - if(cl > 1e-6) { - cx /= cl - cy /= cl - cz /= cl - cw /= cl - } else { - cx = cy = cz = 0.0 - cw = 1.0 + if (width && height) { + return { + width: width, + height: height, + type: 'tiff', + mime: 'image/tiff', + wUnits: 'px', + hUnits: 'px' + }; } +}; - this.rotation.set(t, cx, cy, cz, cw) -} +},{"../common":510}],519:[function(_dereq_,module,exports){ +'use strict'; -proto.lookAt = function(t, eye, center, up) { - this.recalcMatrix(t) +/* eslint-disable no-bitwise */ +/* eslint-disable consistent-return */ - center = center || this.computedCenter - eye = eye || this.computedEye - up = up || this.computedUp +var str2arr = _dereq_('../common').str2arr; +var sliceEq = _dereq_('../common').sliceEq; +var readUInt16LE = _dereq_('../common').readUInt16LE; +var readUInt32LE = _dereq_('../common').readUInt32LE; - var mat = this.computedMatrix - lookAt(mat, eye, center, up) - var rotation = this.computedRotation - quatFromFrame(rotation, - mat[0], mat[1], mat[2], - mat[4], mat[5], mat[6], - mat[8], mat[9], mat[10]) - normalize4(rotation, rotation) - this.rotation.set(t, rotation[0], rotation[1], rotation[2], rotation[3]) +var SIG_RIFF = str2arr('RIFF'); +var SIG_WEBPVP8 = str2arr('WEBPVP8'); - var fl = 0.0 - for(var i=0; i<3; ++i) { - fl += Math.pow(center[i] - eye[i], 2) + +function parseVP8(data) { + if (data.length < 16 + 14) return; + + if (data[16 + 7] !== 0x9D || data[16 + 8] !== 0x01 || data[16 + 9] !== 0x2A) { + // bad code block signature + return; } - this.radius.set(t, 0.5 * Math.log(Math.max(fl, 1e-6))) - this.center.set(t, center[0], center[1], center[2]) + return { + width: readUInt16LE(data, 16 + 10) & 0x3FFF, + height: readUInt16LE(data, 16 + 12) & 0x3FFF, + type: 'webp', + mime: 'image/webp', + wUnits: 'px', + hUnits: 'px' + }; } -proto.translate = function(t, dx, dy, dz) { - this.center.move(t, - dx||0.0, - dy||0.0, - dz||0.0) -} -proto.setMatrix = function(t, matrix) { +function parseVP8L(data) { + if (data.length < 16 + 9) return; - var rotation = this.computedRotation - quatFromFrame(rotation, - matrix[0], matrix[1], matrix[2], - matrix[4], matrix[5], matrix[6], - matrix[8], matrix[9], matrix[10]) - normalize4(rotation, rotation) - this.rotation.set(t, rotation[0], rotation[1], rotation[2], rotation[3]) + if (data[16 + 4] !== 0x2F) return; - var mat = this.computedMatrix - invert44(mat, matrix) - var w = mat[15] - if(Math.abs(w) > 1e-6) { - var cx = mat[12]/w - var cy = mat[13]/w - var cz = mat[14]/w + var bits = readUInt32LE(data, 16 + 5); - this.recalcMatrix(t) - var r = Math.exp(this.computedRadius[0]) - this.center.set(t, cx-mat[2]*r, cy-mat[6]*r, cz-mat[10]*r) - this.radius.idle(t) - } else { - this.center.idle(t) - this.radius.idle(t) - } + return { + width: (bits & 0x3FFF) + 1, + height: ((bits >> 14) & 0x3FFF) + 1, + type: 'webp', + mime: 'image/webp', + wUnits: 'px', + hUnits: 'px' + }; } -proto.setDistance = function(t, d) { - if(d > 0) { - this.radius.set(t, Math.log(d)) - } -} -proto.setDistanceLimits = function(lo, hi) { - if(lo > 0) { - lo = Math.log(lo) - } else { - lo = -Infinity - } - if(hi > 0) { - hi = Math.log(hi) - } else { - hi = Infinity - } - hi = Math.max(hi, lo) - this.radius.bounds[0][0] = lo - this.radius.bounds[1][0] = hi -} +function parseVP8X(data) { + if (data.length < 16 + 14) return; -proto.getDistanceLimits = function(out) { - var bounds = this.radius.bounds - if(out) { - out[0] = Math.exp(bounds[0][0]) - out[1] = Math.exp(bounds[1][0]) - return out - } - return [ Math.exp(bounds[0][0]), Math.exp(bounds[1][0]) ] + return { + // TODO: replace with `data.readUIntLE(8, 3) + 1` + // when 0.10 support is dropped + width: ((data[16 + 10] << 16) | (data[16 + 9] << 8) | data[16 + 8]) + 1, + height: ((data[16 + 13] << 16) | (data[16 + 12] << 8) | data[16 + 11]) + 1, + type: 'webp', + mime: 'image/webp', + wUnits: 'px', + hUnits: 'px' + }; } -proto.toJSON = function() { - this.recalcMatrix(this.lastT()) - return { - 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] - } -} -proto.fromJSON = function(options) { - var t = this.lastT() - var c = options.center - if(c) { - this.center.set(t, c[0], c[1], c[2]) - } - var r = options.rotation - if(r) { - this.rotation.set(t, r[0], r[1], r[2], r[3]) - } - var d = options.distance - if(d && d > 0) { - this.radius.set(t, Math.log(d)) +module.exports = function (data) { + if (data.length < 16) return; + + // check /^RIFF....WEBPVP8([ LX])$/ signature + if (sliceEq(data, 0, SIG_RIFF) && sliceEq(data, 8, SIG_WEBPVP8)) { + switch (data[15]) { + case 32/*' '*/: return parseVP8(data); + case 76/* L */: return parseVP8L(data); + case 88/* X */: return parseVP8X(data); + } } - this.setDistanceLimits(options.zoomMin, options.zoomMax) -} +}; -function createOrbitController(options) { - options = options || {} - var center = options.center || [0,0,0] - var rotation = options.rotation || [0,0,0,1] - var radius = options.radius || 1.0 +},{"../common":510}],520:[function(_dereq_,module,exports){ +'use strict'; - center = [].slice.call(center, 0, 3) - rotation = [].slice.call(rotation, 0, 4) - normalize4(rotation, rotation) - var result = new OrbitCameraController( - rotation, - center, - Math.log(radius)) +module.exports = { + bmp: _dereq_('./parse_sync/bmp'), + gif: _dereq_('./parse_sync/gif'), + jpeg: _dereq_('./parse_sync/jpeg'), + ico: _dereq_('./parse_sync/ico'), + png: _dereq_('./parse_sync/png'), + psd: _dereq_('./parse_sync/psd'), + svg: _dereq_('./parse_sync/svg'), + tiff: _dereq_('./parse_sync/tiff'), + webp: _dereq_('./parse_sync/webp') +}; - result.setDistanceLimits(options.zoomMin, options.zoomMax) +},{"./parse_sync/bmp":511,"./parse_sync/gif":512,"./parse_sync/ico":513,"./parse_sync/jpeg":514,"./parse_sync/png":515,"./parse_sync/psd":516,"./parse_sync/svg":517,"./parse_sync/tiff":518,"./parse_sync/webp":519}],521:[function(_dereq_,module,exports){ +'use strict'; - if('eye' in options || 'up' in options) { - result.lookAt(0, options.eye, options.center, options.up) + +var parsers = _dereq_('./lib/parsers_sync'); + + +function probeBuffer(buffer) { + var parser_names = Object.keys(parsers); + + for (var i = 0; i < parser_names.length; i++) { + var result = parsers[parser_names[i]](buffer); + + if (result) return result; } - return result + return null; } -},{"./lib/quatFromFrame":500,"filtered-vector":242,"gl-mat4/fromQuat":282,"gl-mat4/invert":293,"gl-mat4/lookAt":294}],502:[function(_dereq_,module,exports){ -/*! - * pad-left - * - * Copyright (c) 2014-2015, Jon Schlinkert. - * Licensed under the MIT license. - */ -'use strict'; -var repeat = _dereq_('repeat-string'); +/////////////////////////////////////////////////////////////////////// +// Exports +// -module.exports = function padLeft(str, num, ch) { - ch = typeof ch !== 'undefined' ? (ch + '') : ' '; - return repeat(ch, num) + str; +module.exports = function get_image_size(src) { + return probeBuffer(src); }; -},{"repeat-string":541}],503:[function(_dereq_,module,exports){ -'use strict' -/** - * @module parenthesis - */ +module.exports.parsers = parsers; -function parse (str, opts) { - // pretend non-string parsed per-se - if (typeof str !== 'string') return [str] +},{"./lib/parsers_sync":520}],522:[function(_dereq_,module,exports){ +// shim for using process in browser +var process = module.exports = {}; - var res = [str] +// cached from whatever global is present so that test runners that stub it +// don't break things. But we need to wrap it in a try catch in case it is +// wrapped in strict mode code which doesn't define any globals. It's inside a +// function because try/catches deoptimize in certain engines. - if (typeof opts === 'string' || Array.isArray(opts)) { - opts = {brackets: opts} - } - else if (!opts) opts = {} +var cachedSetTimeout; +var cachedClearTimeout; - var brackets = opts.brackets ? (Array.isArray(opts.brackets) ? opts.brackets : [opts.brackets]) : ['{}', '[]', '()'] +function defaultSetTimout() { + throw new Error('setTimeout has not been defined'); +} +function defaultClearTimeout () { + throw new Error('clearTimeout has not been defined'); +} +(function () { + try { + if (typeof setTimeout === 'function') { + cachedSetTimeout = setTimeout; + } else { + cachedSetTimeout = defaultSetTimout; + } + } catch (e) { + cachedSetTimeout = defaultSetTimout; + } + try { + if (typeof clearTimeout === 'function') { + cachedClearTimeout = clearTimeout; + } else { + cachedClearTimeout = defaultClearTimeout; + } + } catch (e) { + cachedClearTimeout = defaultClearTimeout; + } +} ()) +function runTimeout(fun) { + if (cachedSetTimeout === setTimeout) { + //normal enviroments in sane situations + return setTimeout(fun, 0); + } + // if setTimeout wasn't available but was latter defined + if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { + cachedSetTimeout = setTimeout; + return setTimeout(fun, 0); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedSetTimeout(fun, 0); + } catch(e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedSetTimeout.call(null, fun, 0); + } catch(e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error + return cachedSetTimeout.call(this, fun, 0); + } + } - var escape = opts.escape || '___' - var flat = !!opts.flat +} +function runClearTimeout(marker) { + if (cachedClearTimeout === clearTimeout) { + //normal enviroments in sane situations + return clearTimeout(marker); + } + // if clearTimeout wasn't available but was latter defined + if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { + cachedClearTimeout = clearTimeout; + return clearTimeout(marker); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedClearTimeout(marker); + } catch (e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedClearTimeout.call(null, marker); + } catch (e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. + // Some versions of I.E. have different rules for clearTimeout vs setTimeout + return cachedClearTimeout.call(this, marker); + } + } - brackets.forEach(function (bracket) { - // create parenthesis regex - var pRE = new RegExp(['\\', bracket[0], '[^\\', bracket[0], '\\', bracket[1], ']*\\', bracket[1]].join('')) - var ids = [] - function replaceToken(token, idx, str){ - // save token to res - var refId = res.push(token.slice(bracket[0].length, -bracket[1].length)) - 1 +} +var queue = []; +var draining = false; +var currentQueue; +var queueIndex = -1; - ids.push(refId) +function cleanUpNextTick() { + if (!draining || !currentQueue) { + return; + } + draining = false; + if (currentQueue.length) { + queue = currentQueue.concat(queue); + } else { + queueIndex = -1; + } + if (queue.length) { + drainQueue(); + } +} - return escape + refId + escape - } +function drainQueue() { + if (draining) { + return; + } + var timeout = runTimeout(cleanUpNextTick); + draining = true; - res.forEach(function (str, i) { - var prevStr + var len = queue.length; + while(len) { + currentQueue = queue; + queue = []; + while (++queueIndex < len) { + if (currentQueue) { + currentQueue[queueIndex].run(); + } + } + queueIndex = -1; + len = queue.length; + } + currentQueue = null; + draining = false; + runClearTimeout(timeout); +} - // replace paren tokens till there’s none - var a = 0 - while (str != prevStr) { - prevStr = str - str = str.replace(pRE, replaceToken) - if (a++ > 10e3) throw Error('References have circular dependency. Please, check them.') - } +process.nextTick = function (fun) { + var args = new Array(arguments.length - 1); + if (arguments.length > 1) { + for (var i = 1; i < arguments.length; i++) { + args[i - 1] = arguments[i]; + } + } + queue.push(new Item(fun, args)); + if (queue.length === 1 && !draining) { + runTimeout(drainQueue); + } +}; - res[i] = str - }) +// v8 likes predictible objects +function Item(fun, array) { + this.fun = fun; + this.array = array; +} +Item.prototype.run = function () { + this.fun.apply(null, this.array); +}; +process.title = 'browser'; +process.browser = true; +process.env = {}; +process.argv = []; +process.version = ''; // empty string to avoid regexp issues +process.versions = {}; - // wrap found refs to brackets - ids = ids.reverse() - res = res.map(function (str) { - ids.forEach(function (id) { - str = str.replace(new RegExp('(\\' + escape + id + '\\' + escape + ')', 'g'), bracket[0] + '$1' + bracket[1]) - }) - return str - }) - }) +function noop() {} - var re = new RegExp('\\' + escape + '([0-9]+)' + '\\' + escape) +process.on = noop; +process.addListener = noop; +process.once = noop; +process.off = noop; +process.removeListener = noop; +process.removeAllListeners = noop; +process.emit = noop; +process.prependListener = noop; +process.prependOnceListener = noop; - // transform references to tree - function nest (str, refs, escape) { - var res = [], match +process.listeners = function (name) { return [] } - var a = 0 - while (match = re.exec(str)) { - if (a++ > 10e3) throw Error('Circular references in parenthesis') +process.binding = function (name) { + throw new Error('process.binding is not supported'); +}; - res.push(str.slice(0, match.index)) +process.cwd = function () { return '/' }; +process.chdir = function (dir) { + throw new Error('process.chdir is not supported'); +}; +process.umask = function() { return 0; }; - res.push(nest(refs[match[1]], refs)) +},{}],523:[function(_dereq_,module,exports){ +module.exports = _dereq_('gl-quat/slerp') +},{"gl-quat/slerp":324}],524:[function(_dereq_,module,exports){ +(function (global){(function (){ +var now = _dereq_('performance-now') + , root = typeof window === 'undefined' ? global : window + , vendors = ['moz', 'webkit'] + , suffix = 'AnimationFrame' + , raf = root['request' + suffix] + , caf = root['cancel' + suffix] || root['cancelRequest' + suffix] - str = str.slice(match.index + match[0].length) - } +for(var i = 0; !raf && i < vendors.length; i++) { + raf = root[vendors[i] + 'Request' + suffix] + caf = root[vendors[i] + 'Cancel' + suffix] + || root[vendors[i] + 'CancelRequest' + suffix] +} - res.push(str) +// Some versions of FF have rAF but not cAF +if(!raf || !caf) { + var last = 0 + , id = 0 + , queue = [] + , frameDuration = 1000 / 60 - return res - } + raf = function(callback) { + if(queue.length === 0) { + var _now = now() + , next = Math.max(0, frameDuration - (_now - last)) + last = next + _now + setTimeout(function() { + var cp = queue.slice(0) + // Clear queue here to prevent + // callbacks from appending listeners + // to the current frame's queue + queue.length = 0 + for(var i = 0; i < cp.length; i++) { + if(!cp[i].cancelled) { + try{ + cp[i].callback(last) + } catch(e) { + setTimeout(function() { throw e }, 0) + } + } + } + }, Math.round(next)) + } + queue.push({ + handle: ++id, + callback: callback, + cancelled: false + }) + return id + } - return flat ? res : nest(res[0], res) + caf = function(handle) { + for(var i = 0; i < queue.length; i++) { + if(queue[i].handle === handle) { + queue[i].cancelled = true + } + } + } } -function stringify (arg, opts) { - if (opts && opts.flat) { - var escape = opts && opts.escape || '___' +module.exports = function(fn) { + // Wrap in a new function to prevent + // `cancel` potentially being assigned + // to the native rAF function + return raf.call(root, fn) +} +module.exports.cancel = function() { + caf.apply(root, arguments) +} +module.exports.polyfill = function(object) { + if (!object) { + object = root; + } + object.requestAnimationFrame = raf + object.cancelAnimationFrame = caf +} - var str = arg[0], prevStr +}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{"performance-now":492}],525:[function(_dereq_,module,exports){ +'use strict' - // pretend bad string stringified with no parentheses - if (!str) return '' +var bnadd = _dereq_('big-rat/add') +module.exports = add - var re = new RegExp('\\' + escape + '([0-9]+)' + '\\' + escape) +function add (a, b) { + var n = a.length + var r = new Array(n) + for (var i=0; i 10e3) throw Error('Circular references in ' + arg) - prevStr = str - str = str.replace(re, replaceRef) - } +},{"big-rat/add":83}],526:[function(_dereq_,module,exports){ +'use strict' - return str - } +module.exports = float2rat - return arg.reduce(function f (prev, curr) { - if (Array.isArray(curr)) { - curr = curr.reduce(f, '') - } - return prev + curr - }, '') +var rat = _dereq_('big-rat') - function replaceRef(match, idx){ - if (arg[idx] == null) throw Error('Reference ' + idx + 'is undefined') - return arg[idx] - } +function float2rat(v) { + var result = new Array(v.length) + for(var i=0; i 1) { - arg = arguments - } - - // svg viewbox - if (typeof arg === 'string') { - arg = arg.split(/\s/).map(parseFloat) - } - else if (typeof arg === 'number') { - arg = [arg] - } - - // 0, 0, 100, 100 - array-like - if (arg.length && typeof arg[0] === 'number') { - // [w, w] - if (arg.length === 1) { - rect = { - width: arg[0], - height: arg[0], - x: 0, y: 0 - } - } - // [w, h] - else if (arg.length === 2) { - rect = { - width: arg[0], - height: arg[1], - x: 0, y: 0 - } - } - // [l, t, r, b] - else { - rect = { - x: arg[0], - y: arg[1], - width: (arg[2] - arg[0]) || 0, - height: (arg[3] - arg[1]) || 0 - } - } - } - // {x, y, w, h} or {l, t, b, r} - else if (arg) { - arg = pick(arg, { - 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' - }) - - rect = { - x: arg.left || 0, - y: arg.top || 0 - } - - if (arg.width == null) { - if (arg.right) rect.width = arg.right - rect.x - else rect.width = 0 - } - else { - rect.width = arg.width - } - - if (arg.height == null) { - if (arg.bottom) rect.height = arg.bottom - rect.y - else rect.height = 0 - } - else { - rect.height = arg.height - } - } - - return rect -} +module.exports = sub -},{"pick-by-alias":511}],505:[function(_dereq_,module,exports){ +function sub(a, b) { + var n = a.length + var r = new Array(n) + for(var i=0; i 0) { + var f = cells[ptr-1] + if(compareCell(c, f) === 0 && + orientation(f) !== o) { + ptr -= 1 + continue + } + } + cells[ptr++] = c + } + cells.length = ptr + return cells +} + +},{"cell-orientation":119,"compare-cell":135,"compare-oriented-cell":136}],530:[function(_dereq_,module,exports){ +'use strict' + +var getBounds = _dereq_('array-bounds') +var rgba = _dereq_('color-normalize') +var updateDiff = _dereq_('update-diff') +var pick = _dereq_('pick-by-alias') +var extend = _dereq_('object-assign') +var flatten = _dereq_('flatten-vertex-data') +var ref = _dereq_('to-float32'); +var float32 = ref.float32; +var fract32 = ref.fract32; + +module.exports = Error2D + +var WEIGHTS = [ + //direction, lineWidth shift, capSize shift + + // x-error bar + [1, 0, 0, 1, 0, 0], + [1, 0, 0, -1, 0, 0], + [-1, 0, 0, -1, 0, 0], + + [-1, 0, 0, -1, 0, 0], + [-1, 0, 0, 1, 0, 0], + [1, 0, 0, 1, 0, 0], + + // x-error right cap + [1, 0, -1, 0, 0, 1], + [1, 0, -1, 0, 0, -1], + [1, 0, 1, 0, 0, -1], + + [1, 0, 1, 0, 0, -1], + [1, 0, 1, 0, 0, 1], + [1, 0, -1, 0, 0, 1], + + // x-error left cap + [-1, 0, -1, 0, 0, 1], + [-1, 0, -1, 0, 0, -1], + [-1, 0, 1, 0, 0, -1], + + [-1, 0, 1, 0, 0, -1], + [-1, 0, 1, 0, 0, 1], + [-1, 0, -1, 0, 0, 1], + + // y-error bar + [0, 1, 1, 0, 0, 0], + [0, 1, -1, 0, 0, 0], + [0, -1, -1, 0, 0, 0], + + [0, -1, -1, 0, 0, 0], + [0, 1, 1, 0, 0, 0], + [0, -1, 1, 0, 0, 0], -var segment = /([astvzqmhlc])([^astvzqmhlc]*)/ig + // y-error top cap + [0, 1, 0, -1, 1, 0], + [0, 1, 0, -1, -1, 0], + [0, 1, 0, 1, -1, 0], -/** - * parse an svg path data string. Generates an Array - * of commands where each command is an Array of the - * form `[command, arg1, arg2, ...]` - * - * @param {String} path - * @return {Array} - */ + [0, 1, 0, 1, 1, 0], + [0, 1, 0, -1, 1, 0], + [0, 1, 0, 1, -1, 0], -function parse(path) { - var data = [] - path.replace(segment, function(_, command, args){ - var type = command.toLowerCase() - args = parseValues(args) + // y-error bottom cap + [0, -1, 0, -1, 1, 0], + [0, -1, 0, -1, -1, 0], + [0, -1, 0, 1, -1, 0], - // overloaded moveTo - if (type == 'm' && args.length > 2) { - data.push([command].concat(args.splice(0, 2))) - type = 'l' - command = command == 'm' ? 'l' : 'L' - } + [0, -1, 0, 1, 1, 0], + [0, -1, 0, -1, 1, 0], + [0, -1, 0, 1, -1, 0] +] - while (true) { - if (args.length == length[type]) { - args.unshift(command) - return data.push(args) - } - if (args.length < length[type]) throw new Error('malformed path data') - data.push([command].concat(args.splice(0, length[type]))) - } - }) - return data -} -var number = /-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/ig +function Error2D (regl, options) { + if (typeof regl === 'function') { + if (!options) { options = {} } + options.regl = regl + } + else { + options = regl + } + if (options.length) { options.positions = options } + regl = options.regl -function parseValues(args) { - var numbers = args.match(number) - return numbers ? numbers.map(Number) : [] -} + if (!regl.hasExtension('ANGLE_instanced_arrays')) { + throw Error('regl-error2d: `ANGLE_instanced_arrays` extension should be enabled'); + } -},{}],506:[function(_dereq_,module,exports){ -module.exports = function parseUnit(str, out) { - if (!out) - out = [ 0, '' ] + // persistent variables + var gl = regl._gl, drawErrors, positionBuffer, positionFractBuffer, colorBuffer, errorBuffer, meshBuffer, + defaults = { + color: 'black', + capSize: 5, + lineWidth: 1, + opacity: 1, + viewport: null, + range: null, + offset: 0, + count: 0, + bounds: null, + positions: [], + errors: [] + }, groups = [] - str = String(str) - var num = parseFloat(str, 10) - out[0] = num - out[1] = str.match(/[\d.\-\+]*\s*(.*)/)[1] || '' - return out -} -},{}],507:[function(_dereq_,module,exports){ -(function (process){(function (){ -// 'path' module extracted from Node.js v8.11.1 (only the posix part) -// transplited with Babel + //color per-point + colorBuffer = regl.buffer({ + usage: 'dynamic', + type: 'uint8', + data: new Uint8Array(0) + }) + //xy-position per-point + positionBuffer = regl.buffer({ + usage: 'dynamic', + type: 'float', + data: new Uint8Array(0) + }) + //xy-position float32-fraction + positionFractBuffer = regl.buffer({ + usage: 'dynamic', + type: 'float', + data: new Uint8Array(0) + }) + //4 errors per-point + errorBuffer = regl.buffer({ + usage: 'dynamic', + type: 'float', + data: new Uint8Array(0) + }) + //error bar mesh + meshBuffer = regl.buffer({ + usage: 'static', + type: 'float', + data: WEIGHTS + }) -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. + update(options) -'use strict'; + //drawing method + drawErrors = regl({ + 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", -function assertPath(path) { - if (typeof path !== 'string') { - throw new TypeError('Path must be a string. Received ' + JSON.stringify(path)); - } -} + 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", -// Resolves . and .. elements in a path with directory names -function normalizeStringPosix(path, allowAboveRoot) { - var res = ''; - var lastSegmentLength = 0; - var lastSlash = -1; - var dots = 0; - var code; - for (var i = 0; i <= path.length; ++i) { - if (i < path.length) - code = path.charCodeAt(i); - else if (code === 47 /*/*/) - break; - else - code = 47 /*/*/; - if (code === 47 /*/*/) { - if (lastSlash === i - 1 || dots === 1) { - // NOOP - } else if (lastSlash !== i - 1 && dots === 2) { - if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 /*.*/ || res.charCodeAt(res.length - 2) !== 46 /*.*/) { - if (res.length > 2) { - var lastSlashIndex = res.lastIndexOf('/'); - if (lastSlashIndex !== res.length - 1) { - if (lastSlashIndex === -1) { - res = ''; - lastSegmentLength = 0; - } else { - res = res.slice(0, lastSlashIndex); - lastSegmentLength = res.length - 1 - res.lastIndexOf('/'); - } - lastSlash = i; - dots = 0; - continue; - } - } else if (res.length === 2 || res.length === 1) { - res = ''; - lastSegmentLength = 0; - lastSlash = i; - dots = 0; - continue; - } - } - if (allowAboveRoot) { - if (res.length > 0) - res += '/..'; - else - res = '..'; - lastSegmentLength = 2; - } - } else { - if (res.length > 0) - res += '/' + path.slice(lastSlash + 1, i); - else - res = path.slice(lastSlash + 1, i); - lastSegmentLength = i - lastSlash - 1; - } - lastSlash = i; - dots = 0; - } else if (code === 46 /*.*/ && dots !== -1) { - ++dots; - } else { - dots = -1; - } - } - return res; -} + uniforms: { + range: regl.prop('range'), + lineWidth: regl.prop('lineWidth'), + capSize: regl.prop('capSize'), + opacity: regl.prop('opacity'), + scale: regl.prop('scale'), + translate: regl.prop('translate'), + scaleFract: regl.prop('scaleFract'), + translateFract: regl.prop('translateFract'), + viewport: function (ctx, prop) { return [prop.viewport.x, prop.viewport.y, ctx.viewportWidth, ctx.viewportHeight]; } + }, -function _format(sep, pathObject) { - var dir = pathObject.dir || pathObject.root; - var base = pathObject.base || (pathObject.name || '') + (pathObject.ext || ''); - if (!dir) { - return base; - } - if (dir === pathObject.root) { - return dir + base; - } - return dir + sep + base; -} + attributes: { + //dynamic attributes + color: { + buffer: colorBuffer, + offset: function (ctx, prop) { return prop.offset * 4; }, + divisor: 1, + }, + position: { + buffer: positionBuffer, + offset: function (ctx, prop) { return prop.offset * 8; }, + divisor: 1 + }, + positionFract: { + buffer: positionFractBuffer, + offset: function (ctx, prop) { return prop.offset * 8; }, + divisor: 1 + }, + error: { + buffer: errorBuffer, + offset: function (ctx, prop) { return prop.offset * 16; }, + divisor: 1 + }, -var posix = { - // path.resolve([from ...], to) - resolve: function resolve() { - var resolvedPath = ''; - var resolvedAbsolute = false; - var cwd; + //static attributes + direction: { + buffer: meshBuffer, + stride: 24, + offset: 0 + }, + lineOffset: { + buffer: meshBuffer, + stride: 24, + offset: 8 + }, + capOffset: { + buffer: meshBuffer, + stride: 24, + offset: 16 + } + }, - for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { - var path; - if (i >= 0) - path = arguments[i]; - else { - if (cwd === undefined) - cwd = process.cwd(); - path = cwd; - } + primitive: 'triangles', - assertPath(path); + blend: { + enable: true, + 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' + } + }, - // Skip empty entries - if (path.length === 0) { - continue; - } + depth: { + enable: false + }, - resolvedPath = path + '/' + resolvedPath; - resolvedAbsolute = path.charCodeAt(0) === 47 /*/*/; - } + scissor: { + enable: true, + box: regl.prop('viewport') + }, + viewport: regl.prop('viewport'), + stencil: false, - // At this point the path should be resolved to a full absolute path, but - // handle relative paths to be safe (might happen when process.cwd() fails) + instances: regl.prop('count'), + count: WEIGHTS.length + }) - // Normalize the path - resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute); + //expose API + extend(error2d, { + update: update, + draw: draw, + destroy: destroy, + regl: regl, + gl: gl, + canvas: gl.canvas, + groups: groups + }) - if (resolvedAbsolute) { - if (resolvedPath.length > 0) - return '/' + resolvedPath; - else - return '/'; - } else if (resolvedPath.length > 0) { - return resolvedPath; - } else { - return '.'; - } - }, + return error2d - normalize: function normalize(path) { - assertPath(path); + function error2d (opts) { + //update + if (opts) { + update(opts) + } - if (path.length === 0) return '.'; + //destroy + else if (opts === null) { + destroy() + } - var isAbsolute = path.charCodeAt(0) === 47 /*/*/; - var trailingSeparator = path.charCodeAt(path.length - 1) === 47 /*/*/; + draw() + } - // Normalize the path - path = normalizeStringPosix(path, !isAbsolute); - if (path.length === 0 && !isAbsolute) path = '.'; - if (path.length > 0 && trailingSeparator) path += '/'; + //main draw method + function draw (options) { + if (typeof options === 'number') { return drawGroup(options) } - if (isAbsolute) return '/' + path; - return path; - }, + //make options a batch + if (options && !Array.isArray(options)) { options = [options] } - isAbsolute: function isAbsolute(path) { - assertPath(path); - return path.length > 0 && path.charCodeAt(0) === 47 /*/*/; - }, - join: function join() { - if (arguments.length === 0) - return '.'; - var joined; - for (var i = 0; i < arguments.length; ++i) { - var arg = arguments[i]; - assertPath(arg); - if (arg.length > 0) { - if (joined === undefined) - joined = arg; - else - joined += '/' + arg; - } - } - if (joined === undefined) - return '.'; - return posix.normalize(joined); - }, + regl._refresh() - relative: function relative(from, to) { - assertPath(from); - assertPath(to); + //render multiple polylines via regl batch + groups.forEach(function (s, i) { + if (!s) { return } - if (from === to) return ''; + if (options) { + if (!options[i]) { s.draw = false } + else { s.draw = true } + } - from = posix.resolve(from); - to = posix.resolve(to); + //ignore draw flag for one pass + if (!s.draw) { + s.draw = true; + return + } - if (from === to) return ''; + drawGroup(i) + }) + } - // Trim any leading backslashes - var fromStart = 1; - for (; fromStart < from.length; ++fromStart) { - if (from.charCodeAt(fromStart) !== 47 /*/*/) - break; - } - var fromEnd = from.length; - var fromLen = fromEnd - fromStart; + //draw single error group by id + function drawGroup (s) { + if (typeof s === 'number') { s = groups[s] } + if (s == null) { return } - // Trim any leading backslashes - var toStart = 1; - for (; toStart < to.length; ++toStart) { - if (to.charCodeAt(toStart) !== 47 /*/*/) - break; - } - var toEnd = to.length; - var toLen = toEnd - toStart; + if (!(s && s.count && s.color && s.opacity && s.positions && s.positions.length > 1)) { return } - // Compare paths to find the longest common path from root - var length = fromLen < toLen ? fromLen : toLen; - var lastCommonSep = -1; - var i = 0; - for (; i <= length; ++i) { - if (i === length) { - if (toLen > length) { - if (to.charCodeAt(toStart + i) === 47 /*/*/) { - // We get here if `from` is the exact base path for `to`. - // For example: from='/foo/bar'; to='/foo/bar/baz' - return to.slice(toStart + i + 1); - } else if (i === 0) { - // We get here if `from` is the root - // For example: from='/'; to='/foo' - return to.slice(toStart + i); - } - } else if (fromLen > length) { - if (from.charCodeAt(fromStart + i) === 47 /*/*/) { - // We get here if `to` is the exact base path for `from`. - // For example: from='/foo/bar/baz'; to='/foo/bar' - lastCommonSep = i; - } else if (i === 0) { - // We get here if `to` is the root. - // For example: from='/foo'; to='/' - lastCommonSep = 0; - } - } - break; - } - var fromCode = from.charCodeAt(fromStart + i); - var toCode = to.charCodeAt(toStart + i); - if (fromCode !== toCode) - break; - else if (fromCode === 47 /*/*/) - lastCommonSep = i; - } + s.scaleRatio = [ + s.scale[0] * s.viewport.width, + s.scale[1] * s.viewport.height + ] - var out = ''; - // Generate the relative path based on the path difference between `to` - // and `from` - for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) { - if (i === fromEnd || from.charCodeAt(i) === 47 /*/*/) { - if (out.length === 0) - out += '..'; - else - out += '/..'; - } - } + drawErrors(s) - // Lastly, append the rest of the destination (`to`) path that comes after - // the common path parts - if (out.length > 0) - return out + to.slice(toStart + lastCommonSep); - else { - toStart += lastCommonSep; - if (to.charCodeAt(toStart) === 47 /*/*/) - ++toStart; - return to.slice(toStart); - } - }, + if (s.after) { s.after(s) } + } - _makeLong: function _makeLong(path) { - return path; - }, + function update (options) { + if (!options) { return } - dirname: function dirname(path) { - assertPath(path); - if (path.length === 0) return '.'; - var code = path.charCodeAt(0); - var hasRoot = code === 47 /*/*/; - var end = -1; - var matchedSlash = true; - for (var i = path.length - 1; i >= 1; --i) { - code = path.charCodeAt(i); - if (code === 47 /*/*/) { - if (!matchedSlash) { - end = i; - break; - } - } else { - // We saw the first non-path separator - matchedSlash = false; - } - } + //direct points argument + if (options.length != null) { + if (typeof options[0] === 'number') { options = [{positions: options}] } + } - if (end === -1) return hasRoot ? '/' : '.'; - if (hasRoot && end === 1) return '//'; - return path.slice(0, end); - }, + //make options a batch + else if (!Array.isArray(options)) { options = [options] } - basename: function basename(path, ext) { - if (ext !== undefined && typeof ext !== 'string') throw new TypeError('"ext" argument must be a string'); - assertPath(path); + //global count of points + var pointCount = 0, errorCount = 0 - var start = 0; - var end = -1; - var matchedSlash = true; - var i; + error2d.groups = groups = options.map(function (options, i) { + var group = groups[i] - if (ext !== undefined && ext.length > 0 && ext.length <= path.length) { - if (ext.length === path.length && ext === path) return ''; - var extIdx = ext.length - 1; - var firstNonSlashEnd = -1; - for (i = path.length - 1; i >= 0; --i) { - var code = path.charCodeAt(i); - if (code === 47 /*/*/) { - // If we reached a path separator that was not part of a set of path - // separators at the end of the string, stop now - if (!matchedSlash) { - start = i + 1; - break; - } - } else { - if (firstNonSlashEnd === -1) { - // We saw the first non-path separator, remember this index in case - // we need it if the extension ends up not matching - matchedSlash = false; - firstNonSlashEnd = i + 1; - } - if (extIdx >= 0) { - // Try to match the explicit extension - if (code === ext.charCodeAt(extIdx)) { - if (--extIdx === -1) { - // We matched the extension, so mark this as the end of our path - // component - end = i; - } - } else { - // Extension does not match, so our result is the entire path - // component - extIdx = -1; - end = firstNonSlashEnd; - } - } - } - } + if (!options) { return group } + else if (typeof options === 'function') { options = {after: options} } + else if (typeof options[0] === 'number') { options = {positions: options} } - if (start === end) end = firstNonSlashEnd;else if (end === -1) end = path.length; - return path.slice(start, end); - } else { - for (i = path.length - 1; i >= 0; --i) { - if (path.charCodeAt(i) === 47 /*/*/) { - // If we reached a path separator that was not part of a set of path - // separators at the end of the string, stop now - if (!matchedSlash) { - start = i + 1; - break; - } - } else if (end === -1) { - // We saw the first non-path separator, mark this as the end of our - // path component - matchedSlash = false; - end = i + 1; - } - } + //copy options to avoid mutation & handle aliases + options = pick(options, { + 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' + }) - if (end === -1) return ''; - return path.slice(start, end); - } - }, + if (!group) { + groups[i] = group = { + id: i, + scale: null, + translate: null, + scaleFract: null, + translateFract: null, + draw: true + } + options = extend({}, defaults, options) + } - extname: function extname(path) { - assertPath(path); - var startDot = -1; - var startPart = 0; - var end = -1; - var matchedSlash = true; - // Track the state of characters (if any) we see before our first dot and - // after any path separator we find - var preDotState = 0; - for (var i = path.length - 1; i >= 0; --i) { - var code = path.charCodeAt(i); - if (code === 47 /*/*/) { - // If we reached a path separator that was not part of a set of path - // separators at the end of the string, stop now - if (!matchedSlash) { - startPart = i + 1; - break; - } - continue; - } - if (end === -1) { - // We saw the first non-path separator, mark this as the end of our - // extension - matchedSlash = false; - end = i + 1; - } - if (code === 46 /*.*/) { - // If this is our first dot, mark it as the start of our extension - if (startDot === -1) - startDot = i; - else if (preDotState !== 1) - preDotState = 1; - } else if (startDot !== -1) { - // We saw a non-dot and non-path separator before our dot, so we should - // have a good chance at having a non-empty extension - preDotState = -1; - } - } - - if (startDot === -1 || end === -1 || - // We saw a non-dot character immediately before the dot - preDotState === 0 || - // The (right-most) trimmed path component is exactly '..' - preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) { - return ''; - } - return path.slice(startDot, end); - }, + updateDiff(group, options, [{ + lineWidth: function (v) { return +v * .5; }, + capSize: function (v) { return +v * .5; }, + opacity: parseFloat, + errors: function (errors) { + errors = flatten(errors) - format: function format(pathObject) { - if (pathObject === null || typeof pathObject !== 'object') { - throw new TypeError('The "pathObject" argument must be of type Object. Received type ' + typeof pathObject); - } - return _format('/', pathObject); - }, + errorCount += errors.length + return errors + }, + positions: function (positions, state) { + positions = flatten(positions, 'float64') + state.count = Math.floor(positions.length / 2) + state.bounds = getBounds(positions, 2) + state.offset = pointCount - parse: function parse(path) { - assertPath(path); - - var ret = { root: '', dir: '', base: '', ext: '', name: '' }; - if (path.length === 0) return ret; - var code = path.charCodeAt(0); - var isAbsolute = code === 47 /*/*/; - var start; - if (isAbsolute) { - ret.root = '/'; - start = 1; - } else { - start = 0; - } - var startDot = -1; - var startPart = 0; - var end = -1; - var matchedSlash = true; - var i = path.length - 1; - - // Track the state of characters (if any) we see before our first dot and - // after any path separator we find - var preDotState = 0; - - // Get non-dir info - for (; i >= start; --i) { - code = path.charCodeAt(i); - if (code === 47 /*/*/) { - // If we reached a path separator that was not part of a set of path - // separators at the end of the string, stop now - if (!matchedSlash) { - startPart = i + 1; - break; - } - continue; - } - if (end === -1) { - // We saw the first non-path separator, mark this as the end of our - // extension - matchedSlash = false; - end = i + 1; - } - if (code === 46 /*.*/) { - // If this is our first dot, mark it as the start of our extension - if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1; - } else if (startDot !== -1) { - // We saw a non-dot and non-path separator before our dot, so we should - // have a good chance at having a non-empty extension - preDotState = -1; - } - } + pointCount += state.count - if (startDot === -1 || end === -1 || - // We saw a non-dot character immediately before the dot - preDotState === 0 || - // The (right-most) trimmed path component is exactly '..' - preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) { - if (end !== -1) { - if (startPart === 0 && isAbsolute) ret.base = ret.name = path.slice(1, end);else ret.base = ret.name = path.slice(startPart, end); - } - } else { - if (startPart === 0 && isAbsolute) { - ret.name = path.slice(1, startDot); - ret.base = path.slice(1, end); - } else { - ret.name = path.slice(startPart, startDot); - ret.base = path.slice(startPart, end); - } - ret.ext = path.slice(startDot, end); - } + return positions + } + }, { + color: function (colors, state) { + var count = state.count - if (startPart > 0) ret.dir = path.slice(0, startPart - 1);else if (isAbsolute) ret.dir = '/'; + if (!colors) { colors = 'transparent' } - return ret; - }, + // 'black' or [0,0,0,0] case + if (!Array.isArray(colors) || typeof colors[0] === 'number') { + var color = colors + colors = Array(count) + for (var i = 0; i < count; i++) { + colors[i] = color + } + } - sep: '/', - delimiter: ':', - win32: null, - posix: null -}; + if (colors.length < count) { throw Error('Not enough colors') } -posix.posix = posix; + var colorData = new Uint8Array(count * 4) -module.exports = posix; + //convert colors to float arrays + for (var i$1 = 0; i$1 < count; i$1++) { + var c = rgba(colors[i$1], 'uint8') + colorData.set(c, i$1 * 4) + } -}).call(this)}).call(this,_dereq_('_process')) -},{"_process":526}],508:[function(_dereq_,module,exports){ -(function (process){(function (){ -// Generated by CoffeeScript 1.12.2 -(function() { - var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime; + return colorData + }, - if ((typeof performance !== "undefined" && performance !== null) && performance.now) { - module.exports = function() { - return performance.now(); - }; - } else if ((typeof process !== "undefined" && process !== null) && process.hrtime) { - module.exports = function() { - return (getNanoSeconds() - nodeLoadTime) / 1e6; - }; - hrtime = process.hrtime; - getNanoSeconds = function() { - var hr; - hr = hrtime(); - return hr[0] * 1e9 + hr[1]; - }; - moduleLoadTime = getNanoSeconds(); - upTime = process.uptime() * 1e9; - nodeLoadTime = moduleLoadTime - upTime; - } else if (Date.now) { - module.exports = function() { - return Date.now() - loadTime; - }; - loadTime = Date.now(); - } else { - module.exports = function() { - return new Date().getTime() - loadTime; - }; - loadTime = new Date().getTime(); - } + range: function (range, state, options) { + var bounds = state.bounds + if (!range) { range = bounds } -}).call(this); + state.scale = [1 / (range[2] - range[0]), 1 / (range[3] - range[1])] + state.translate = [-range[0], -range[1]] + state.scaleFract = fract32(state.scale) + state.translateFract = fract32(state.translate) + return range + }, -}).call(this)}).call(this,_dereq_('_process')) -},{"_process":526}],509:[function(_dereq_,module,exports){ -"use strict" + viewport: function (vp) { + var viewport -module.exports = permutationSign + if (Array.isArray(vp)) { + viewport = { + x: vp[0], + y: vp[1], + width: vp[2] - vp[0], + height: vp[3] - vp[1] + } + } + else if (vp) { + viewport = { + x: vp.x || vp.left || 0, + y: vp.y || vp.top || 0 + } -var BRUTE_FORCE_CUTOFF = 32 + if (vp.right) { viewport.width = vp.right - viewport.x } + else { viewport.width = vp.w || vp.width || 0 } -var pool = _dereq_("typedarray-pool") + if (vp.bottom) { viewport.height = vp.bottom - viewport.y } + else { viewport.height = vp.h || vp.height || 0 } + } + else { + viewport = { + x: 0, y: 0, + width: gl.drawingBufferWidth, + height: gl.drawingBufferHeight + } + } -function permutationSign(p) { - var n = p.length - if(n < BRUTE_FORCE_CUTOFF) { - //Use quadratic algorithm for small n - var sgn = 1 - for(var i=0; i0; --i) { - t = pinv[i] - s = p[i] - p[i] = p[t] - p[t] = s - pinv[i] = pinv[s] - pinv[s] = t - r = (r + s) * i - } - pool.freeUint32(pinv) - pool.freeUint32(p) - return r -} + if (pointCount || errorCount) { + var len = groups.reduce(function (acc, group, i) { + return acc + (group ? group.count : 0) + }, 0) -function unrank(n, r, p) { - switch(n) { - case 0: - if(p) { return p } - return [] - case 1: - if(p) { - p[0] = 0 - return p - } else { - return [0] - } - case 2: - if(p) { - if(r) { - p[0] = 0 - p[1] = 1 - } else { - p[0] = 1 - p[1] = 0 - } - return p - } else { - return r ? [0,1] : [1,0] - } - default: - break - } - p = p || new Array(n) - var s, t, i, nf=1 - p[0] = 0 - for(i=1; i0; --i) { - s = (r / nf)|0 - r = (r - s * nf)|0 - nf = (nf / i)|0 - t = p[i]|0 - p[i] = p[s]|0 - p[s] = t|0 - } - return p -} + var positionData = new Float64Array(len * 2) + var colorData = new Uint8Array(len * 4) + var errorData = new Float32Array(len * 4) -exports.rank = rank -exports.unrank = unrank + groups.forEach(function (group, i) { + if (!group) { return } + var positions = group.positions; + var count = group.count; + var offset = group.offset; + var color = group.color; + var errors = group.errors; + if (!count) { return } -},{"invert-permutation":462,"typedarray-pool":595}],511:[function(_dereq_,module,exports){ -'use strict' - - -module.exports = function pick (src, props, keepRest) { - var result = {}, prop, i - - if (typeof props === 'string') props = toList(props) - if (Array.isArray(props)) { - var res = {} - for (i = 0; i < props.length; i++) { - res[props[i]] = true - } - props = res - } - - // convert strings to lists - for (prop in props) { - props[prop] = toList(props[prop]) - } - - // keep-rest strategy requires unmatched props to be preserved - var occupied = {} - - for (prop in props) { - var aliases = props[prop] - - if (Array.isArray(aliases)) { - for (i = 0; i < aliases.length; i++) { - var alias = aliases[i] - - if (keepRest) { - occupied[alias] = true - } - - if (alias in src) { - result[prop] = src[alias] - - if (keepRest) { - for (var j = i; j < aliases.length; j++) { - occupied[aliases[j]] = true - } - } - - break - } - } - } - else if (prop in src) { - if (props[prop]) { - result[prop] = src[prop] - } - - if (keepRest) { - occupied[prop] = true - } - } - } - - if (keepRest) { - for (prop in src) { - if (occupied[prop]) continue - result[prop] = src[prop] - } - } - - return result -} - -var CACHE = {} - -function toList(arg) { - if (CACHE[arg]) return CACHE[arg] - if (typeof arg === 'string') { - arg = CACHE[arg] = arg.split(/\s*,\s*|\s+/) - } - return arg -} + colorData.set(color, offset * 4) + errorData.set(errors, offset * 4) + positionData.set(positions, offset * 2) + }) -},{}],512:[function(_dereq_,module,exports){ -"use strict" + positionBuffer(float32(positionData)) + positionFractBuffer(fract32(positionData)) + colorBuffer(colorData) + errorBuffer(errorData) + } -module.exports = planarDual + } -var compareAngle = _dereq_("compare-angle") + function destroy () { + positionBuffer.destroy() + positionFractBuffer.destroy() + colorBuffer.destroy() + errorBuffer.destroy() + meshBuffer.destroy() + } +} -function planarDual(cells, positions) { +},{"array-bounds":72,"color-normalize":127,"flatten-vertex-data":244,"object-assign":484,"pick-by-alias":495,"to-float32":593,"update-diff":615}],531:[function(_dereq_,module,exports){ +'use strict' - var numVertices = positions.length|0 - var numEdges = cells.length - var adj = [new Array(numVertices), new Array(numVertices)] - for(var i=0; i 0) { - nextCell = adj[i][b][0] - nextDir = i - break - } - } - nextVertex = nextCell[nextDir^1] - for(var dir=0; dir<2; ++dir) { - var nbhd = adj[dir][b] - for(var k=0; k 0) { - nextCell = e - nextVertex = p - nextDir = dir - } - } - } - if(noCut) { - return nextVertex - } - if(nextCell) { - cut(nextCell, nextDir) - } - return nextVertex - } +/** @constructor */ +function Line2D (regl, options) { + if (!(this instanceof Line2D)) { return new Line2D(regl, options) } - function extractCycle(v, dir) { - var e0 = adj[dir][v][0] - var cycle = [v] - cut(e0, dir) - var u = e0[dir^1] - var d0 = dir - while(true) { - while(u !== v) { - cycle.push(u) - u = next(cycle[cycle.length-2], u, false) - } - if(adj[0][v].length + adj[1][v].length === 0) { - break - } - var a = cycle[cycle.length-1] - var b = v - var c = cycle[1] - var d = next(a, b, true) - if(compareAngle(positions[a], positions[b], positions[c], positions[d]) < 0) { - break - } - cycle.push(v) - u = next(a, b) - } - return cycle - } + if (typeof regl === 'function') { + if (!options) { options = {} } + options.regl = regl + } + else { + options = regl + } + if (options.length) { options.positions = options } + regl = options.regl - function shouldGlue(pcycle, ncycle) { - return (ncycle[1] === ncycle[ncycle.length-1]) - } + if (!regl.hasExtension('ANGLE_instanced_arrays')) { + throw Error('regl-error2d: `ANGLE_instanced_arrays` extension should be enabled'); + } - for(var i=0; i 0) { - var ni = adj[0][i].length - var ncycle = extractCycle(i,j) - if(shouldGlue(pcycle, ncycle)) { - //Glue together trivial cycles - pcycle.push.apply(pcycle, ncycle) - } else { - if(pcycle.length > 0) { - cycles.push(pcycle) - } - pcycle = ncycle - } - } - if(pcycle.length > 0) { - cycles.push(pcycle) - } - } - } + // persistent variables + this.gl = regl._gl + this.regl = regl - //Combine paths and loops together - return cycles -} -},{"compare-angle":132}],513:[function(_dereq_,module,exports){ -'use strict' + // list of options for lines + this.passes = [] -module.exports = trimLeaves + // cached shaders instance + this.shaders = Line2D.shaders.has(regl) ? Line2D.shaders.get(regl) : Line2D.shaders.set(regl, Line2D.createShaders(regl)).get(regl) -var e2a = _dereq_('edges-to-adjacency-list') -function trimLeaves(edges, positions) { - var adj = e2a(edges, positions.length) - var live = new Array(positions.length) - var nbhd = new Array(positions.length) + // init defaults + this.update(options) +} - var dead = [] - for(var i=0; i 0) { - var v = dead.pop() - live[v] = false - var n = adj[v] - for(var i=0; i 0 - } + vert: glslify(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec2 aCoord, bCoord, nextCoord, prevCoord;\nattribute vec4 aColor, bColor;\nattribute float lineEnd, lineTop;\n\nuniform vec2 scale, translate;\nuniform float thickness, pixelRatio, id, depth;\nuniform vec4 viewport;\nuniform float miterLimit, miterMode;\n\nvarying vec4 fragColor;\nvarying vec4 startCutoff, endCutoff;\nvarying vec2 tangent;\nvarying vec2 startCoord, endCoord;\nvarying float enableStartMiter, enableEndMiter;\n\nconst float REVERSE_THRESHOLD = -.875;\nconst float MIN_DIFF = 1e-6;\n\n// TODO: possible optimizations: avoid overcalculating all for vertices and calc just one instead\n// TODO: precalculate dot products, normalize things beforehead etc.\n// TODO: refactor to rectangular algorithm\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\nbool isNaN( float val ){\n return ( val < 0.0 || 0.0 < val || val == 0.0 ) ? false : true;\n}\n\nvoid main() {\n\tvec2 aCoord = aCoord, bCoord = bCoord, prevCoord = prevCoord, nextCoord = nextCoord;\n\n vec2 adjustedScale;\n adjustedScale.x = (abs(scale.x) < MIN_DIFF) ? MIN_DIFF : scale.x;\n adjustedScale.y = (abs(scale.y) < MIN_DIFF) ? MIN_DIFF : scale.y;\n\n vec2 scaleRatio = adjustedScale * viewport.zw;\n\tvec2 normalWidth = thickness / scaleRatio;\n\n\tfloat lineStart = 1. - lineEnd;\n\tfloat lineBot = 1. - lineTop;\n\n\tfragColor = (lineStart * aColor + lineEnd * bColor) / 255.;\n\n\tif (isNaN(aCoord.x) || isNaN(aCoord.y) || isNaN(bCoord.x) || isNaN(bCoord.y)) return;\n\n\tif (aCoord == prevCoord) prevCoord = aCoord + normalize(bCoord - aCoord);\n\tif (bCoord == nextCoord) nextCoord = bCoord - normalize(bCoord - aCoord);\n\n\tvec2 prevDiff = aCoord - prevCoord;\n\tvec2 currDiff = bCoord - aCoord;\n\tvec2 nextDiff = nextCoord - bCoord;\n\n\tvec2 prevTangent = normalize(prevDiff * scaleRatio);\n\tvec2 currTangent = normalize(currDiff * scaleRatio);\n\tvec2 nextTangent = normalize(nextDiff * scaleRatio);\n\n\tvec2 prevNormal = vec2(-prevTangent.y, prevTangent.x);\n\tvec2 currNormal = vec2(-currTangent.y, currTangent.x);\n\tvec2 nextNormal = vec2(-nextTangent.y, nextTangent.x);\n\n\tvec2 startJoinDirection = normalize(prevTangent - currTangent);\n\tvec2 endJoinDirection = normalize(currTangent - nextTangent);\n\n\t// collapsed/unidirectional segment cases\n\t// FIXME: there should be more elegant solution\n\tvec2 prevTanDiff = abs(prevTangent - currTangent);\n\tvec2 nextTanDiff = abs(nextTangent - currTangent);\n\tif (max(prevTanDiff.x, prevTanDiff.y) < MIN_DIFF) {\n\t\tstartJoinDirection = currNormal;\n\t}\n\tif (max(nextTanDiff.x, nextTanDiff.y) < MIN_DIFF) {\n\t\tendJoinDirection = currNormal;\n\t}\n\tif (aCoord == bCoord) {\n\t\tendJoinDirection = startJoinDirection;\n\t\tcurrNormal = prevNormal;\n\t\tcurrTangent = prevTangent;\n\t}\n\n\ttangent = currTangent;\n\n\t//calculate join shifts relative to normals\n\tfloat startJoinShift = dot(currNormal, startJoinDirection);\n\tfloat endJoinShift = dot(currNormal, endJoinDirection);\n\n\tfloat startMiterRatio = abs(1. / startJoinShift);\n\tfloat endMiterRatio = abs(1. / endJoinShift);\n\n\tvec2 startJoin = startJoinDirection * startMiterRatio;\n\tvec2 endJoin = endJoinDirection * endMiterRatio;\n\n\tvec2 startTopJoin, startBotJoin, endTopJoin, endBotJoin;\n\tstartTopJoin = sign(startJoinShift) * startJoin * .5;\n\tstartBotJoin = -startTopJoin;\n\n\tendTopJoin = sign(endJoinShift) * endJoin * .5;\n\tendBotJoin = -endTopJoin;\n\n\tvec2 aTopCoord = aCoord + normalWidth * startTopJoin;\n\tvec2 bTopCoord = bCoord + normalWidth * endTopJoin;\n\tvec2 aBotCoord = aCoord + normalWidth * startBotJoin;\n\tvec2 bBotCoord = bCoord + normalWidth * endBotJoin;\n\n\t//miter anti-clipping\n\tfloat baClipping = distToLine(bCoord, aCoord, aBotCoord) / dot(normalize(normalWidth * endBotJoin), normalize(normalWidth.yx * vec2(-startBotJoin.y, startBotJoin.x)));\n\tfloat abClipping = distToLine(aCoord, bCoord, bTopCoord) / dot(normalize(normalWidth * startBotJoin), normalize(normalWidth.yx * vec2(-endBotJoin.y, endBotJoin.x)));\n\n\t//prevent close to reverse direction switch\n\tbool prevReverse = dot(currTangent, prevTangent) <= REVERSE_THRESHOLD && abs(dot(currTangent, prevNormal)) * min(length(prevDiff), length(currDiff)) < length(normalWidth * currNormal);\n\tbool nextReverse = dot(currTangent, nextTangent) <= REVERSE_THRESHOLD && abs(dot(currTangent, nextNormal)) * min(length(nextDiff), length(currDiff)) < length(normalWidth * currNormal);\n\n\tif (prevReverse) {\n\t\t//make join rectangular\n\t\tvec2 miterShift = normalWidth * startJoinDirection * miterLimit * .5;\n\t\tfloat normalAdjust = 1. - min(miterLimit / startMiterRatio, 1.);\n\t\taBotCoord = aCoord + miterShift - normalAdjust * normalWidth * currNormal * .5;\n\t\taTopCoord = aCoord + miterShift + normalAdjust * normalWidth * currNormal * .5;\n\t}\n\telse if (!nextReverse && baClipping > 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: glslify(["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"]), - //Extract all clockwise faces - faces = faces.filter(ccw) + attributes: { + // is line end + lineEnd: { + buffer: offsetBuffer, + divisor: 0, + stride: 8, + offset: 0 + }, + // is line top + lineTop: { + buffer: offsetBuffer, + divisor: 0, + stride: 8, + offset: 4 + }, + // left color + aColor: { + buffer: regl.prop('colorBuffer'), + stride: 4, + offset: 0, + divisor: 1 + }, + // right color + bColor: { + buffer: regl.prop('colorBuffer'), + stride: 4, + offset: 4, + divisor: 1 + }, + prevCoord: { + buffer: regl.prop('positionBuffer'), + stride: 8, + offset: 0, + divisor: 1 + }, + aCoord: { + buffer: regl.prop('positionBuffer'), + stride: 8, + offset: 8, + divisor: 1 + }, + bCoord: { + buffer: regl.prop('positionBuffer'), + stride: 8, + offset: 16, + divisor: 1 + }, + nextCoord: { + buffer: regl.prop('positionBuffer'), + stride: 8, + offset: 24, + divisor: 1 + } + } + }, shaderOptions)) + } catch (e) { + // IE/bad Webkit fallback + drawMiterLine = drawRectLine + } - //Detect which loops are contained in one another to handle parent-of relation - var numFaces = faces.length - var parent = new Array(numFaces) - var containment = new Array(numFaces) - for(var i=0; i 0) { - var top = toVisit.pop() - var nbhd = fadj[top] - uniq(nbhd, function(a,b) { - return a-b - }) - var nnbhr = nbhd.length - var p = parity[top] - var polyline - if(p === 0) { - var c = faces[top] - polyline = [c] - } - for(var i=0; i= 0) { - continue - } - parity[f] = p^1 - toVisit.push(f) - if(p === 0) { - var c = faces[f] - if(!sharedBoundary(c)) { - c.reverse() - polyline.push(c) - } - } - } - if(p === 0) { - result.push(polyline) - } - } + depth: { enable: false }, + scissor: shaderOptions.scissor, + stencil: shaderOptions.stencil, + viewport: shaderOptions.viewport + }) - return result + return { + fill: drawFill, rect: drawRectLine, miter: drawMiterLine + } } -},{"./lib/trim-leaves":513,"edges-to-adjacency-list":178,"planar-dual":512,"point-in-big-polygon":516,"robust-sum":553,"two-product":582,"uniq":597}],515:[function(_dereq_,module,exports){ -arguments[4][243][0].apply(exports,arguments) -},{"dup":243}],516:[function(_dereq_,module,exports){ -module.exports = preprocessPolygon - -var orient = _dereq_('robust-orientation')[3] -var makeSlabs = _dereq_('slab-decomposition') -var makeIntervalTree = _dereq_('interval-tree-1d') -var bsearch = _dereq_('binary-search-bounds') -function visitInterval() { - return true -} -function intervalSearch(table) { - return function(x, y) { - var tree = table[x] - if(tree) { - return !!tree.queryPoint(y, visitInterval) - } - return false - } +// used to for new lines instances +Line2D.defaults = { + dashes: null, + join: 'miter', + miterLimit: 1, + thickness: 10, + cap: 'square', + color: 'black', + opacity: 1, + overlay: false, + viewport: null, + range: null, + close: false, + fill: null } -function buildVerticalIndex(segments) { - var table = {} - for(var i=0; i 0 && coordinates[bucket] === p[0]) { - root = slabs[bucket-1] - } else { - return 1 - } - } - var lastOrientation = 1 - while(root) { - var s = root.key - var o = orient(p, s[0], s[1]) - if(s[0][0] < s[1][0]) { - if(o < 0) { - root = root.left - } else if(o > 0) { - lastOrientation = -1 - root = root.right - } else { - return 0 - } - } else { - if(o > 0) { - root = root.left - } else if(o < 0) { - lastOrientation = 1 - root = root.right - } else { - return 0 - } - } - } - return lastOrientation - } -} +Line2D.prototype.render = function () { + var ref; -function classifyEmpty(p) { - return 1 -} + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + if (args.length) { + (ref = this).update.apply(ref, args) + } -function createClassifyVertical(testVertical) { - return function classify(p) { - if(testVertical(p[0], p[1])) { - return 0 - } - return 1 - } + this.draw() } -function createClassifyPointDegen(testVertical, testNormal) { - return function classify(p) { - if(testVertical(p[0], p[1])) { - return 0 - } - return testNormal(p) - } -} -function preprocessPolygon(loops) { - //Compute number of loops - var numLoops = loops.length +Line2D.prototype.draw = function () { + var this$1 = this; + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; - //Unpack segments - var segments = [] - var vsegments = [] - var ptr = 0 - for(var i=0; i 1 && s.opacity)) { return } -var BuildLog = _dereq_('./lib/build-log'); -var Epsilon = _dereq_('./lib/epsilon'); -var Intersecter = _dereq_('./lib/intersecter'); -var SegmentChainer = _dereq_('./lib/segment-chainer'); -var SegmentSelector = _dereq_('./lib/segment-selector'); -var GeoJSON = _dereq_('./lib/geojson'); + this$1.regl._refresh() -var buildLog = false; -var epsilon = Epsilon(); + if (s.fill && s.triangles && s.triangles.length > 2) { + this$1.shaders.fill(s) + } -var PolyBool; -PolyBool = { - // getter/setter for buildLog - buildLog: function(bl){ - if (bl === true) - buildLog = BuildLog(); - else if (bl === false) - buildLog = false; - return buildLog === false ? false : buildLog.list; - }, - // getter/setter for epsilon - epsilon: function(v){ - return epsilon.epsilon(v); - }, + if (!s.thickness) { return } - // core API - segments: function(poly){ - var i = Intersecter(true, epsilon, buildLog); - poly.regions.forEach(i.addRegion); - return { - segments: i.calculate(poly.inverted), - inverted: poly.inverted - }; - }, - combine: function(segments1, segments2){ - var i3 = Intersecter(false, epsilon, buildLog); - return { - combined: i3.calculate( - segments1.segments, segments1.inverted, - segments2.segments, segments2.inverted - ), - inverted1: segments1.inverted, - inverted2: segments2.inverted - }; - }, - selectUnion: function(combined){ - return { - segments: SegmentSelector.union(combined.combined, buildLog), - inverted: combined.inverted1 || combined.inverted2 - } - }, - selectIntersect: function(combined){ - return { - segments: SegmentSelector.intersect(combined.combined, buildLog), - inverted: combined.inverted1 && combined.inverted2 - } - }, - selectDifference: function(combined){ - return { - segments: SegmentSelector.difference(combined.combined, buildLog), - inverted: combined.inverted1 && !combined.inverted2 + // high scale is only available for rect mode with precision + if (s.scale[0] * s.viewport.width > Line2D.precisionThreshold || s.scale[1] * s.viewport.height > Line2D.precisionThreshold) { + this$1.shaders.rect(s) } - }, - selectDifferenceRev: function(combined){ - return { - segments: SegmentSelector.differenceRev(combined.combined, buildLog), - inverted: !combined.inverted1 && combined.inverted2 + + // thin this.passes or too many points are rendered as simplified rect shader + else if (s.join === 'rect' || (!s.join && (s.thickness <= 2 || s.count >= Line2D.maxPoints))) { + this$1.shaders.rect(s) } - }, - selectXor: function(combined){ - return { - segments: SegmentSelector.xor(combined.combined, buildLog), - inverted: combined.inverted1 !== combined.inverted2 + else { + this$1.shaders.miter(s) } - }, - polygon: function(segments){ - return { - regions: SegmentChainer(segments.segments, epsilon, buildLog), - inverted: segments.inverted - }; - }, - - // GeoJSON converters - polygonFromGeoJSON: function(geojson){ - return GeoJSON.toPolygon(PolyBool, geojson); - }, - polygonToGeoJSON: function(poly){ - return GeoJSON.fromPolygon(PolyBool, epsilon, poly); - }, - - // helper functions for common operations - union: function(poly1, poly2){ - return operate(poly1, poly2, PolyBool.selectUnion); - }, - intersect: function(poly1, poly2){ - return operate(poly1, poly2, PolyBool.selectIntersect); - }, - difference: function(poly1, poly2){ - return operate(poly1, poly2, PolyBool.selectDifference); - }, - differenceRev: function(poly1, poly2){ - return operate(poly1, poly2, PolyBool.selectDifferenceRev); - }, - xor: function(poly1, poly2){ - return operate(poly1, poly2, PolyBool.selectXor); - } -}; + }) -function operate(poly1, poly2, selector){ - var seg1 = PolyBool.segments(poly1); - var seg2 = PolyBool.segments(poly2); - var comb = PolyBool.combine(seg1, seg2); - var seg3 = selector(comb); - return PolyBool.polygon(seg3); + return this } -if (typeof window === 'object') - window.PolyBool = PolyBool; - -module.exports = PolyBool; - -},{"./lib/build-log":518,"./lib/epsilon":519,"./lib/geojson":520,"./lib/intersecter":521,"./lib/segment-chainer":523,"./lib/segment-selector":524}],518:[function(_dereq_,module,exports){ -// (c) Copyright 2016, Sean Connelly (@voidqk), http://syntheti.cc -// MIT License -// Project Home: https://github.com/voidqk/polybooljs - -// -// used strictly for logging the processing of the algorithm... only useful if you intend on -// looking under the covers (for pretty UI's or debugging) -// +Line2D.prototype.update = function (options) { + var this$1 = this; -function BuildLog(){ - var my; - var nextSegmentId = 0; - var curVert = false; + if (!options) { return } - function push(type, data){ - my.list.push({ - type: type, - data: data ? JSON.parse(JSON.stringify(data)) : void 0 - }); - return my; + if (options.length != null) { + if (typeof options[0] === 'number') { options = [{positions: options}] } } - my = { - list: [], - segmentId: function(){ - return nextSegmentId++; - }, - checkIntersection: function(seg1, seg2){ - return push('check', { seg1: seg1, seg2: seg2 }); - }, - segmentChop: function(seg, end){ - push('div_seg', { seg: seg, pt: end }); - return push('chop', { seg: seg, pt: end }); - }, - statusRemove: function(seg){ - return push('pop_seg', { seg: seg }); - }, - segmentUpdate: function(seg){ - return push('seg_update', { seg: seg }); - }, - segmentNew: function(seg, primary){ - return push('new_seg', { seg: seg, primary: primary }); - }, - segmentRemove: function(seg){ - return push('rem_seg', { seg: seg }); - }, - tempStatus: function(seg, above, below){ - return push('temp_status', { seg: seg, above: above, below: below }); - }, - rewind: function(seg){ - return push('rewind', { seg: seg }); - }, - status: function(seg, above, below){ - return push('status', { seg: seg, above: above, below: below }); - }, - vert: function(x){ - if (x === curVert) - return my; - curVert = x; - return push('vert', { x: x }); - }, - log: function(data){ - if (typeof data !== 'string') - data = JSON.stringify(data, false, ' '); - return push('log', { txt: data }); - }, - reset: function(){ - return push('reset'); - }, - selected: function(segs){ - return push('selected', { segs: segs }); - }, - chainStart: function(seg){ - return push('chain_start', { seg: seg }); - }, - chainRemoveHead: function(index, pt){ - return push('chain_rem_head', { index: index, pt: pt }); - }, - chainRemoveTail: function(index, pt){ - return push('chain_rem_tail', { index: index, pt: pt }); - }, - chainNew: function(pt1, pt2){ - return push('chain_new', { pt1: pt1, pt2: pt2 }); - }, - chainMatch: function(index){ - return push('chain_match', { index: index }); - }, - chainClose: function(index){ - return push('chain_close', { index: index }); - }, - chainAddHead: function(index, pt){ - return push('chain_add_head', { index: index, pt: pt }); - }, - chainAddTail: function(index, pt){ - return push('chain_add_tail', { index: index, pt: pt, }); - }, - chainConnect: function(index1, index2){ - return push('chain_con', { index1: index1, index2: index2 }); - }, - chainReverse: function(index){ - return push('chain_rev', { index: index }); - }, - chainJoin: function(index1, index2){ - return push('chain_join', { index1: index1, index2: index2 }); - }, - done: function(){ - return push('done'); - } - }; - return my; -} - -module.exports = BuildLog; - -},{}],519:[function(_dereq_,module,exports){ -// (c) Copyright 2016, Sean Connelly (@voidqk), http://syntheti.cc -// MIT License -// Project Home: https://github.com/voidqk/polybooljs - -// -// provides the raw computation functions that takes epsilon into account -// -// zero is defined to be between (-epsilon, epsilon) exclusive -// + // make options a batch + else if (!Array.isArray(options)) { options = [options] } -function Epsilon(eps){ - if (typeof eps !== 'number') - eps = 0.0000000001; // sane default? sure why not - var my = { - epsilon: function(v){ - if (typeof v === 'number') - eps = v; - return eps; - }, - pointAboveOrOnLine: function(pt, left, right){ - var Ax = left[0]; - var Ay = left[1]; - var Bx = right[0]; - var By = right[1]; - var Cx = pt[0]; - var Cy = pt[1]; - return (Bx - Ax) * (Cy - Ay) - (By - Ay) * (Cx - Ax) >= -eps; - }, - pointBetween: function(p, left, right){ - // p must be collinear with left->right - // returns false if p == left, p == right, or left == right - var d_py_ly = p[1] - left[1]; - var d_rx_lx = right[0] - left[0]; - var d_px_lx = p[0] - left[0]; - var d_ry_ly = right[1] - left[1]; + var ref = this; + var regl = ref.regl; + var gl = ref.gl; - var dot = d_px_lx * d_rx_lx + d_py_ly * d_ry_ly; - // if `dot` is 0, then `p` == `left` or `left` == `right` (reject) - // if `dot` is less than 0, then `p` is to the left of `left` (reject) - if (dot < eps) - return false; + // process per-line settings + options.forEach(function (o, i) { + var state = this$1.passes[i] - var sqlen = d_rx_lx * d_rx_lx + d_ry_ly * d_ry_ly; - // if `dot` > `sqlen`, then `p` is to the right of `right` (reject) - // therefore, if `dot - sqlen` is greater than 0, then `p` is to the right of `right` (reject) - if (dot - sqlen > -eps) - return false; + if (o === undefined) { return } - return true; - }, - pointsSameX: function(p1, p2){ - return Math.abs(p1[0] - p2[0]) < eps; - }, - pointsSameY: function(p1, p2){ - return Math.abs(p1[1] - p2[1]) < eps; - }, - pointsSame: function(p1, p2){ - return my.pointsSameX(p1, p2) && my.pointsSameY(p1, p2); - }, - pointsCompare: function(p1, p2){ - // returns -1 if p1 is smaller, 1 if p2 is smaller, 0 if equal - if (my.pointsSameX(p1, p2)) - return my.pointsSameY(p1, p2) ? 0 : (p1[1] < p2[1] ? -1 : 1); - return p1[0] < p2[0] ? -1 : 1; - }, - pointsCollinear: function(pt1, pt2, pt3){ - // does pt1->pt2->pt3 make a straight line? - // essentially this is just checking to see if the slope(pt1->pt2) === slope(pt2->pt3) - // if slopes are equal, then they must be collinear, because they share pt2 - var dx1 = pt1[0] - pt2[0]; - var dy1 = pt1[1] - pt2[1]; - var dx2 = pt2[0] - pt3[0]; - var dy2 = pt2[1] - pt3[1]; - return Math.abs(dx1 * dy2 - dx2 * dy1) < eps; - }, - linesIntersect: function(a0, a1, b0, b1){ - // returns false if the lines are coincident (e.g., parallel or on top of each other) - // - // returns an object if the lines intersect: - // { - // pt: [x, y], where the intersection point is at - // alongA: where intersection point is along A, - // alongB: where intersection point is along B - // } - // - // alongA and alongB will each be one of: -2, -1, 0, 1, 2 - // - // with the following meaning: - // - // -2 intersection point is before segment's first point - // -1 intersection point is directly on segment's first point - // 0 intersection point is between segment's first and second points (exclusive) - // 1 intersection point is directly on segment's second point - // 2 intersection point is after segment's second point - var adx = a1[0] - a0[0]; - var ady = a1[1] - a0[1]; - var bdx = b1[0] - b0[0]; - var bdy = b1[1] - b0[1]; + // null-argument removes pass + if (o === null) { + this$1.passes[i] = null + return + } - var axb = adx * bdy - ady * bdx; - if (Math.abs(axb) < eps) - return false; // lines are coincident + if (typeof o[0] === 'number') { o = {positions: o} } - var dx = a0[0] - b0[0]; - var dy = a0[1] - b0[1]; + // handle aliases + o = pick(o, { + 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' + }) - var A = (bdx * dy - bdy * dx) / axb; - var B = (adx * dy - ady * dx) / axb; + // init state + if (!state) { + this$1.passes[i] = state = { + id: i, + scale: null, + scaleFract: null, + translate: null, + translateFract: null, + count: 0, + hole: [], + depth: 0, - var ret = { - alongA: 0, - alongB: 0, - pt: [ - a0[0] + A * adx, - a0[1] + A * ady - ] - }; + dashLength: 1, + dashTexture: regl.texture({ + channels: 1, + data: new Uint8Array([255]), + width: 1, + height: 1, + mag: 'linear', + min: 'linear' + }), - // categorize where intersection point is along A and B + colorBuffer: regl.buffer({ + usage: 'dynamic', + type: 'uint8', + data: new Uint8Array() + }), + positionBuffer: regl.buffer({ + usage: 'dynamic', + type: 'float', + data: new Uint8Array() + }), + positionFractBuffer: regl.buffer({ + usage: 'dynamic', + type: 'float', + data: new Uint8Array() + }) + } - if (A <= -eps) - ret.alongA = -2; - else if (A < eps) - ret.alongA = -1; - else if (A - 1 <= -eps) - ret.alongA = 0; - else if (A - 1 < eps) - ret.alongA = 1; - else - ret.alongA = 2; + o = extend({}, Line2D.defaults, o) + } + if (o.thickness != null) { state.thickness = parseFloat(o.thickness) } + if (o.opacity != null) { state.opacity = parseFloat(o.opacity) } + if (o.miterLimit != null) { state.miterLimit = parseFloat(o.miterLimit) } + if (o.overlay != null) { + state.overlay = !!o.overlay + if (i < Line2D.maxLines) { + state.depth = 2 * (Line2D.maxLines - 1 - i % Line2D.maxLines) / Line2D.maxLines - 1.; + } + } + if (o.join != null) { state.join = o.join } + if (o.hole != null) { state.hole = o.hole } + if (o.fill != null) { state.fill = !o.fill ? null : rgba(o.fill, 'uint8') } + if (o.viewport != null) { state.viewport = parseRect(o.viewport) } - if (B <= -eps) - ret.alongB = -2; - else if (B < eps) - ret.alongB = -1; - else if (B - 1 <= -eps) - ret.alongB = 0; - else if (B - 1 < eps) - ret.alongB = 1; - else - ret.alongB = 2; + if (!state.viewport) { + state.viewport = parseRect([ + gl.drawingBufferWidth, + gl.drawingBufferHeight + ]) + } - return ret; - }, - pointInsideRegion: function(pt, region){ - var x = pt[0]; - var y = pt[1]; - var last_x = region[region.length - 1][0]; - var last_y = region[region.length - 1][1]; - var inside = false; - for (var i = 0; i < region.length; i++){ - var curr_x = region[i][0]; - var curr_y = region[i][1]; + if (o.close != null) { state.close = o.close } - // if y is between curr_y and last_y, and - // x is to the right of the boundary created by the line - if ((curr_y - y > eps) != (last_y - y > eps) && - (last_x - curr_x) * (y - curr_y) / (last_y - curr_y) + curr_x - x > eps) - inside = !inside + // reset positions + if (o.positions === null) { o.positions = [] } + if (o.positions) { + var positions, count - last_x = curr_x; - last_y = curr_y; + // if positions are an object with x/y + if (o.positions.x && o.positions.y) { + var xPos = o.positions.x + var yPos = o.positions.y + count = state.count = Math.max( + xPos.length, + yPos.length + ) + positions = new Float64Array(count * 2) + for (var i$1 = 0; i$1 < count; i$1++) { + positions[i$1 * 2] = xPos[i$1] + positions[i$1 * 2 + 1] = yPos[i$1] + } + } + else { + positions = flatten(o.positions, 'float64') + count = state.count = Math.floor(positions.length / 2) } - return inside; - } - }; - return my; -} -module.exports = Epsilon; + var bounds = state.bounds = getBounds(positions, 2) -},{}],520:[function(_dereq_,module,exports){ -// (c) Copyright 2017, Sean Connelly (@voidqk), http://syntheti.cc -// MIT License -// Project Home: https://github.com/voidqk/polybooljs + // create fill positions + // FIXME: fill positions can be set only along with positions + if (state.fill) { + var pos = [] -// -// convert between PolyBool polygon format and GeoJSON formats (Polygon and MultiPolygon) -// + // filter bad vertices and remap triangles to ensure shape + var ids = {} + var lastId = 0 -var GeoJSON = { - // convert a GeoJSON object to a PolyBool polygon - toPolygon: function(PolyBool, geojson){ + for (var i$2 = 0, ptr = 0, l = state.count; i$2 < l; i$2++) { + var x = positions[i$2*2] + var y = positions[i$2*2 + 1] + if (isNaN(x) || isNaN(y) || x == null || y == null) { + x = positions[lastId*2] + y = positions[lastId*2 + 1] + ids[i$2] = lastId + } + else { + lastId = i$2 + } + pos[ptr++] = x + pos[ptr++] = y + } - // converts list of LineString's to segments - function GeoPoly(coords){ - // check for empty coords - if (coords.length <= 0) - return PolyBool.segments({ inverted: false, regions: [] }); + // split the input into multiple polygon at Null/NaN + if(o.splitNull){ + // use "ids" to track the boundary of segment + // the keys in "ids" is the end boundary of a segment, or split point - // convert LineString to segments - function LineString(ls){ - // remove tail which should be the same as head - var reg = ls.slice(0, ls.length - 1); - return PolyBool.segments({ inverted: false, regions: [reg] }); - } + // make sure there is at least one segment + if(!(state.count-1 in ids)) { ids[state.count] = state.count-1 } - // the first LineString is considered the outside - var out = LineString(coords[0]); + var splits = Object.keys(ids).map(Number).sort(function (a, b) { return a - b; }) - // the rest of the LineStrings are considered interior holes, so subtract them from the - // current result - for (var i = 1; i < coords.length; i++) - out = PolyBool.selectDifference(PolyBool.combine(out, LineString(coords[i]))); + var split_triangles = [] + var base = 0 - return out; - } + // do not split holes + var hole_base = state.hole != null ? state.hole[0] : null + if(hole_base != null){ + var last_id = findIndex(splits, function (e){ return e>=hole_base; }) + splits = splits.slice(0,last_id) + splits.push(hole_base) + } - if (geojson.type === 'Polygon'){ - // single polygon, so just convert it and we're done - return PolyBool.polygon(GeoPoly(geojson.coordinates)); - } - else if (geojson.type === 'MultiPolygon'){ - // multiple polygons, so union all the polygons together - var out = PolyBool.segments({ inverted: false, regions: [] }); - for (var i = 0; i < geojson.coordinates.length; i++) - out = PolyBool.selectUnion(PolyBool.combine(out, GeoPoly(geojson.coordinates[i]))); - return PolyBool.polygon(out); - } - throw new Error('PolyBool: Cannot convert GeoJSON object to PolyBool polygon'); - }, + var loop = function ( i ) { + // create temporary pos array with only one segment and all the holes + var seg_pos = pos.slice(base*2, splits[i]*2).concat( + hole_base ? pos.slice(hole_base*2) : [] + ) + var hole = (state.hole || []).map(function (e) { return e-hole_base+(splits[i]-base); } ) + var triangles = triangulate(seg_pos, hole) + // map triangle index back to the original pos buffer + triangles = triangles.map( + function (e){ return e + base + ((e + base < splits[i]) ? 0 : hole_base - splits[i]); } + ) + split_triangles.push.apply(split_triangles, triangles) + + // skip split point + base = splits[i] + 1 + }; + + for (var i$3 = 0; i$3 < splits.length; i$3++) + loop( i$3 ); + for (var i$4 = 0, l$1 = split_triangles.length; i$4 < l$1; i$4++) { + if (ids[split_triangles[i$4]] != null) { split_triangles[i$4] = ids[split_triangles[i$4]] } + } - // convert a PolyBool polygon to a GeoJSON object - fromPolygon: function(PolyBool, eps, poly){ - // make sure out polygon is clean - poly = PolyBool.polygon(PolyBool.segments(poly)); + state.triangles = split_triangles + } + else { + // treat the wholw input as a single polygon + var triangles$1 = triangulate(pos, state.hole || []) - // test if r1 is inside r2 - function regionInsideRegion(r1, r2){ - // we're guaranteed no lines intersect (because the polygon is clean), but a vertex - // could be on the edge -- so we just average pt[0] and pt[1] to produce a point on the - // edge of the first line, which cannot be on an edge - return eps.pointInsideRegion([ - (r1[0][0] + r1[1][0]) * 0.5, - (r1[0][1] + r1[1][1]) * 0.5 - ], r2); - } + for (var i$5 = 0, l$2 = triangles$1.length; i$5 < l$2; i$5++) { + if (ids[triangles$1[i$5]] != null) { triangles$1[i$5] = ids[triangles$1[i$5]] } + } - // calculate inside heirarchy - // - // _____________________ _______ roots -> A -> F - // | A | | F | | | - // | _______ _______ | | ___ | +-- B +-- G - // | | B | | C | | | | | | | | - // | | ___ | | ___ | | | | | | | +-- D - // | | | D | | | | E | | | | | G | | | - // | | |___| | | |___| | | | | | | +-- C - // | |_______| |_______| | | |___| | | - // |_____________________| |_______| +-- E + state.triangles = triangles$1 + } + } - function newNode(region){ - return { - region: region, - children: [] - }; - } + // update position buffers + var npos = new Float64Array(positions) + normalize(npos, 2, bounds) - var roots = newNode(null); + var positionData = new Float64Array(count * 2 + 6) - function addChild(root, region){ - // first check if we're inside any children - for (var i = 0; i < root.children.length; i++){ - var child = root.children[i]; - if (regionInsideRegion(region, child.region)){ - // we are, so insert inside them instead - addChild(child, region); - return; + // rotate first segment join + if (state.close) { + if (positions[0] === positions[count*2 - 2] && + positions[1] === positions[count*2 - 1]) { + positionData[0] = npos[count*2 - 4] + positionData[1] = npos[count*2 - 3] + } + else { + positionData[0] = npos[count*2 - 2] + positionData[1] = npos[count*2 - 1] } } + else { + positionData[0] = npos[0] + positionData[1] = npos[1] + } - // not inside any children, so check to see if any children are inside us - var node = newNode(region); - for (var i = 0; i < root.children.length; i++){ - var child = root.children[i]; - if (regionInsideRegion(child.region, region)){ - // oops... move the child beneath us, and remove them from root - node.children.push(child); - root.children.splice(i, 1); - i--; + positionData.set(npos, 2) + + // add last segment + if (state.close) { + // ignore coinciding start/end + if (positions[0] === positions[count*2 - 2] && + positions[1] === positions[count*2 - 1]) { + positionData[count*2 + 2] = npos[2] + positionData[count*2 + 3] = npos[3] + state.count -= 1 } + else { + positionData[count*2 + 2] = npos[0] + positionData[count*2 + 3] = npos[1] + positionData[count*2 + 4] = npos[2] + positionData[count*2 + 5] = npos[3] + } + } + // add stub + else { + positionData[count*2 + 2] = npos[count*2 - 2] + positionData[count*2 + 3] = npos[count*2 - 1] + positionData[count*2 + 4] = npos[count*2 - 2] + positionData[count*2 + 5] = npos[count*2 - 1] } - // now we can add ourselves - root.children.push(node); + state.positionBuffer(float32(positionData)) + state.positionFractBuffer(fract32(positionData)) } - // add all regions to the root - for (var i = 0; i < poly.regions.length; i++){ - var region = poly.regions[i]; - if (region.length < 3) // regions must have at least 3 points (sanity check) - continue; - addChild(roots, region); + if (o.range) { + state.range = o.range + } else if (!state.range) { + state.range = state.bounds } - // with our heirarchy, we can distinguish between exterior borders, and interior holes - // the root nodes are exterior, children are interior, children's children are exterior, - // children's children's children are interior, etc + if ((o.range || o.positions) && state.count) { + var bounds$1 = state.bounds - // while we're at it, exteriors are counter-clockwise, and interiors are clockwise + var boundsW = bounds$1[2] - bounds$1[0], + boundsH = bounds$1[3] - bounds$1[1] - function forceWinding(region, clockwise){ - // first, see if we're clockwise or counter-clockwise - // https://en.wikipedia.org/wiki/Shoelace_formula - var winding = 0; - var last_x = region[region.length - 1][0]; - var last_y = region[region.length - 1][1]; - var copy = []; - for (var i = 0; i < region.length; i++){ - var curr_x = region[i][0]; - var curr_y = region[i][1]; - copy.push([curr_x, curr_y]); // create a copy while we're at it - winding += curr_y * last_x - curr_x * last_y; - last_x = curr_x; - last_y = curr_y; - } - // this assumes Cartesian coordinates (Y is positive going up) - var isclockwise = winding < 0; - if (isclockwise !== clockwise) - copy.reverse(); - // while we're here, the last point must be the first point... - copy.push([copy[0][0], copy[0][1]]); - return copy; - } + var rangeW = state.range[2] - state.range[0], + rangeH = state.range[3] - state.range[1] - var geopolys = []; + state.scale = [ + boundsW / rangeW, + boundsH / rangeH + ] + state.translate = [ + -state.range[0] / rangeW + bounds$1[0] / rangeW || 0, + -state.range[1] / rangeH + bounds$1[1] / rangeH || 0 + ] - function addExterior(node){ - var poly = [forceWinding(node.region, false)]; - geopolys.push(poly); - // children of exteriors are interior - for (var i = 0; i < node.children.length; i++) - poly.push(getInterior(node.children[i])); + state.scaleFract = fract32(state.scale) + state.translateFract = fract32(state.translate) } - function getInterior(node){ - // children of interiors are exterior - for (var i = 0; i < node.children.length; i++) - addExterior(node.children[i]); - // return the clockwise interior - return forceWinding(node.region, true); - } + if (o.dashes) { + var dashLength = 0., dashData - // root nodes are exterior - for (var i = 0; i < roots.children.length; i++) - addExterior(roots.children[i]); + if (!o.dashes || o.dashes.length < 2) { + dashLength = 1. + dashData = new Uint8Array([255, 255, 255, 255, 255, 255, 255, 255]) + } - // lastly, construct the approrpriate GeoJSON object + else { + dashLength = 0.; + for(var i$6 = 0; i$6 < o.dashes.length; ++i$6) { + dashLength += o.dashes[i$6] + } + dashData = new Uint8Array(dashLength * Line2D.dashMult) + var ptr$1 = 0 + var fillColor = 255 - if (geopolys.length <= 0) // empty GeoJSON Polygon - return { type: 'Polygon', coordinates: [] }; - if (geopolys.length == 1) // use a GeoJSON Polygon - return { type: 'Polygon', coordinates: geopolys[0] }; - return { // otherwise, use a GeoJSON MultiPolygon - type: 'MultiPolygon', - coordinates: geopolys - }; - } -}; + // repeat texture two times to provide smooth 0-step + for (var k = 0; k < 2; k++) { + for(var i$7 = 0; i$7 < o.dashes.length; ++i$7) { + for(var j = 0, l$3 = o.dashes[i$7] * Line2D.dashMult * .5; j < l$3; ++j) { + dashData[ptr$1++] = fillColor + } + fillColor ^= 255 + } + } + } -module.exports = GeoJSON; + state.dashLength = dashLength + state.dashTexture({ + channels: 1, + data: dashData, + width: dashData.length, + height: 1, + mag: 'linear', + min: 'linear' + }, 0, 0) + } -},{}],521:[function(_dereq_,module,exports){ -// (c) Copyright 2016, Sean Connelly (@voidqk), http://syntheti.cc -// MIT License -// Project Home: https://github.com/voidqk/polybooljs + if (o.color) { + var count$1 = state.count + var colors = o.color -// -// this is the core work-horse -// + if (!colors) { colors = 'transparent' } -var LinkedList = _dereq_('./linked-list'); + var colorData = new Uint8Array(count$1 * 4 + 4) -function Intersecter(selfIntersection, eps, buildLog){ - // selfIntersection is true/false depending on the phase of the overall algorithm + // convert colors to typed arrays + if (!Array.isArray(colors) || typeof colors[0] === 'number') { + var c = rgba(colors, 'uint8') - // - // segment creation - // + for (var i$8 = 0; i$8 < count$1 + 1; i$8++) { + colorData.set(c, i$8 * 4) + } + } else { + for (var i$9 = 0; i$9 < count$1; i$9++) { + var c$1 = rgba(colors[i$9], 'uint8') + colorData.set(c$1, i$9 * 4) + } + colorData.set(rgba(colors[0], 'uint8'), count$1 * 4) + } - function segmentNew(start, end){ - return { - id: buildLog ? buildLog.segmentId() : -1, - start: start, - end: end, - myFill: { - above: null, // is there fill above us? - below: null // is there fill below us? - }, - otherFill: null - }; + state.colorBuffer({ + usage: 'dynamic', + type: 'uint8', + data: colorData + }) + } + }) + + // remove unmentioned passes + if (options.length < this.passes.length) { + for (var i = options.length; i < this.passes.length; i++) { + var pass = this.passes[i] + if (!pass) { continue } + pass.colorBuffer.destroy() + pass.positionBuffer.destroy() + pass.dashTexture.destroy() + } + this.passes.length = options.length } - function segmentCopy(start, end, seg){ - return { - id: buildLog ? buildLog.segmentId() : -1, - start: start, - end: end, - myFill: { - above: seg.myFill.above, - below: seg.myFill.below - }, - otherFill: null - }; + // remove null items + var passes = [] + for (var i$1 = 0; i$1 < this.passes.length; i$1++) { + if (this.passes[i$1] !== null) { passes.push(this.passes[i$1]) } } + this.passes = passes - // - // event logic - // + return this +} - var event_root = LinkedList.create(); +Line2D.prototype.destroy = function () { + this.passes.forEach(function (pass) { + pass.colorBuffer.destroy() + pass.positionBuffer.destroy() + pass.dashTexture.destroy() + }) - function eventCompare(p1_isStart, p1_1, p1_2, p2_isStart, p2_1, p2_2){ - // compare the selected points first - var comp = eps.pointsCompare(p1_1, p2_1); - if (comp !== 0) - return comp; - // the selected points are the same + this.passes.length = 0 - if (eps.pointsSame(p1_2, p2_2)) // if the non-selected points are the same too... - return 0; // then the segments are equal + return this +} - if (p1_isStart !== p2_isStart) // if one is a start and the other isn't... - return p1_isStart ? 1 : -1; // favor the one that isn't the start +},{"array-bounds":72,"array-find-index":73,"array-normalize":74,"color-normalize":127,"earcut":178,"es6-weak-map":233,"flatten-vertex-data":244,"glslify":438,"object-assign":484,"parse-rect":489,"pick-by-alias":495,"to-float32":593}],532:[function(_dereq_,module,exports){ +'use strict'; - // otherwise, we'll have to calculate which one is below the other manually - return eps.pointAboveOrOnLine(p1_2, - p2_isStart ? p2_1 : p2_2, // order matters - p2_isStart ? p2_2 : p2_1 - ) ? 1 : -1; - } +function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); +} - function eventAdd(ev, other_pt){ - event_root.insertBefore(ev, function(here){ - // should ev be inserted before here? - var comp = eventCompare( - ev .isStart, ev .pt, other_pt, - here.isStart, here.pt, here.other.pt - ); - return comp < 0; - }); - } +function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); +} - function eventAddSegmentStart(seg, primary){ - var ev_start = LinkedList.node({ - isStart: true, - pt: seg.start, - seg: seg, - primary: primary, - other: null, - status: null - }); - eventAdd(ev_start, seg.end); - return ev_start; - } +function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return _arrayLikeToArray(arr); +} - function eventAddSegmentEnd(ev_start, seg, primary){ - var ev_end = LinkedList.node({ - isStart: false, - pt: seg.end, - seg: seg, - primary: primary, - other: ev_start, - status: null - }); - ev_start.other = ev_end; - eventAdd(ev_end, ev_start.pt); - } +function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; +} - function eventAddSegment(seg, primary){ - var ev_start = eventAddSegmentStart(seg, primary); - eventAddSegmentEnd(ev_start, seg, primary); - return ev_start; - } +function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); +} - function eventUpdateEnd(ev, end){ - // slides an end backwards - // (start)------------(end) to: - // (start)---(end) +function _iterableToArrayLimit(arr, i) { + if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; + var _arr = []; + var _n = true; + var _d = false; + var _e = undefined; - if (buildLog) - buildLog.segmentChop(ev.seg, end); + try { + for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); - ev.other.remove(); - ev.seg.end = end; - ev.other.pt = end; - eventAdd(ev.other, ev.pt); - } + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } - function eventDivide(ev, pt){ - var ns = segmentCopy(pt, ev.seg.end, ev.seg); - eventUpdateEnd(ev, pt); - return eventAddSegment(ns, ev.primary); - } + return _arr; +} - function calculate(primaryPolyInverted, secondaryPolyInverted){ - // if selfIntersection is true then there is no secondary polygon, so that isn't used +function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); +} - // - // status logic - // +function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; - var status_root = LinkedList.create(); + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; - function statusCompare(ev1, ev2){ - var a1 = ev1.seg.start; - var a2 = ev1.seg.end; - var b1 = ev2.seg.start; - var b2 = ev2.seg.end; + return arr2; +} - if (eps.pointsCollinear(a1, b1, b2)){ - if (eps.pointsCollinear(a2, b1, b2)) - return 1;//eventCompare(true, a1, a2, true, b1, b2); - return eps.pointAboveOrOnLine(a2, b1, b2) ? 1 : -1; - } - return eps.pointAboveOrOnLine(a1, b1, b2) ? 1 : -1; - } +function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} - function statusFindSurrounding(ev){ - return status_root.findTransition(function(here){ - var comp = statusCompare(ev, here.ev); - return comp > 0; - }); - } +function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} - function checkIntersection(ev1, ev2){ - // returns the segment equal to ev1, or false if nothing equal +var rgba = _dereq_('color-normalize'); - var seg1 = ev1.seg; - var seg2 = ev2.seg; - var a1 = seg1.start; - var a2 = seg1.end; - var b1 = seg2.start; - var b2 = seg2.end; +var getBounds = _dereq_('array-bounds'); - if (buildLog) - buildLog.checkIntersection(seg1, seg2); +var colorId = _dereq_('color-id'); - var i = eps.linesIntersect(a1, a2, b1, b2); +var cluster = _dereq_('@plotly/point-cluster'); - if (i === false){ - // segments are parallel or coincident +var extend = _dereq_('object-assign'); - // if points aren't collinear, then the segments are parallel, so no intersections - if (!eps.pointsCollinear(a1, a2, b1)) - return false; - // otherwise, segments are on top of each other somehow (aka coincident) +var glslify = _dereq_('glslify'); - if (eps.pointsSame(a1, b2) || eps.pointsSame(a2, b1)) - return false; // segments touch at endpoints... no intersection +var pick = _dereq_('pick-by-alias'); - var a1_equ_b1 = eps.pointsSame(a1, b1); - var a2_equ_b2 = eps.pointsSame(a2, b2); +var updateDiff = _dereq_('update-diff'); - if (a1_equ_b1 && a2_equ_b2) - return ev2; // segments are exactly equal +var flatten = _dereq_('flatten-vertex-data'); - var a1_between = !a1_equ_b1 && eps.pointBetween(a1, b1, b2); - var a2_between = !a2_equ_b2 && eps.pointBetween(a2, b1, b2); +var ie = _dereq_('is-iexplorer'); - // handy for debugging: - // buildLog.log({ - // a1_equ_b1: a1_equ_b1, - // a2_equ_b2: a2_equ_b2, - // a1_between: a1_between, - // a2_between: a2_between - // }); +var f32 = _dereq_('to-float32'); - if (a1_equ_b1){ - if (a2_between){ - // (a1)---(a2) - // (b1)----------(b2) - eventDivide(ev2, a2); - } - else{ - // (a1)----------(a2) - // (b1)---(b2) - eventDivide(ev1, b2); - } - return ev2; - } - else if (a1_between){ - if (!a2_equ_b2){ - // make a2 equal to b2 - if (a2_between){ - // (a1)---(a2) - // (b1)-----------------(b2) - eventDivide(ev2, a2); - } - else{ - // (a1)----------(a2) - // (b1)----------(b2) - eventDivide(ev1, b2); - } - } +var parseRect = _dereq_('parse-rect'); - // (a1)---(a2) - // (b1)----------(b2) - eventDivide(ev2, a1); - } - } - else{ - // otherwise, lines intersect at i.pt, which may or may not be between the endpoints +var scatter = Scatter; - // is A divided between its endpoints? (exclusive) - if (i.alongA === 0){ - if (i.alongB === -1) // yes, at exactly b1 - eventDivide(ev1, b1); - else if (i.alongB === 0) // yes, somewhere between B's endpoints - eventDivide(ev1, i.pt); - else if (i.alongB === 1) // yes, at exactly b2 - eventDivide(ev1, b2); - } +function Scatter(regl, options) { + var _this = this; - // is B divided between its endpoints? (exclusive) - if (i.alongB === 0){ - if (i.alongA === -1) // yes, at exactly a1 - eventDivide(ev2, a1); - else if (i.alongA === 0) // yes, somewhere between A's endpoints (exclusive) - eventDivide(ev2, i.pt); - else if (i.alongA === 1) // yes, at exactly a2 - eventDivide(ev2, a2); - } - } - return false; - } + if (!(this instanceof Scatter)) return new Scatter(regl, options); - // - // main event loop - // - var segments = []; - while (!event_root.isEmpty()){ - var ev = event_root.getHead(); + if (typeof regl === 'function') { + if (!options) options = {}; + options.regl = regl; + } else { + options = regl; + regl = null; + } - if (buildLog) - buildLog.vert(ev.pt[0]); + if (options && options.length) options.positions = options; + regl = options.regl; // persistent variables - if (ev.isStart){ + var gl = regl._gl, + paletteTexture, + palette = [], + paletteIds = {}, + // state + groups = [], + // textures for marker keys + markerTextures = [null], + markerCache = [null]; + var maxColors = 255, + maxSize = 100; // direct color buffer mode + // IE does not support palette anyways - if (buildLog) - buildLog.segmentNew(ev.seg, ev.primary); + this.tooManyColors = ie; // texture with color palette - var surrounding = statusFindSurrounding(ev); - var above = surrounding.before ? surrounding.before.ev : null; - var below = surrounding.after ? surrounding.after.ev : null; + paletteTexture = regl.texture({ + data: new Uint8Array(maxColors * 4), + width: maxColors, + height: 1, + type: 'uint8', + format: 'rgba', + wrapS: 'clamp', + wrapT: 'clamp', + mag: 'nearest', + min: 'nearest' + }); + extend(this, { + regl: regl, + gl: gl, + groups: groups, + markerCache: markerCache, + markerTextures: markerTextures, + palette: palette, + paletteIds: paletteIds, + paletteTexture: paletteTexture, + maxColors: maxColors, + maxSize: maxSize, + canvas: gl.canvas + }); + this.update(options); // common shader options - if (buildLog){ - buildLog.tempStatus( - ev.seg, - above ? above.seg : false, - below ? below.seg : false - ); - } + var shaderOptions = { + uniforms: { + constPointSize: !!options.constPointSize, + pixelRatio: regl.context('pixelRatio'), + palette: paletteTexture, + paletteSize: function paletteSize(ctx, prop) { + return [_this.tooManyColors ? 0 : maxColors, paletteTexture.height]; + }, + scale: regl.prop('scale'), + scaleFract: regl.prop('scaleFract'), + translate: regl.prop('translate'), + translateFract: regl.prop('translateFract'), + opacity: regl.prop('opacity'), + marker: regl.prop('markerTexture') + }, + attributes: { + // FIXME: optimize these parts + x: function x(ctx, prop) { + return prop.xAttr || { + buffer: prop.positionBuffer, + stride: 8, + offset: 0 + }; + }, + y: function y(ctx, prop) { + return prop.yAttr || { + buffer: prop.positionBuffer, + stride: 8, + offset: 4 + }; + }, + xFract: function xFract(ctx, prop) { + return prop.xAttr ? { + constant: [0, 0] + } : { + buffer: prop.positionFractBuffer, + stride: 8, + offset: 0 + }; + }, + yFract: function yFract(ctx, prop) { + return prop.yAttr ? { + constant: [0, 0] + } : { + buffer: prop.positionFractBuffer, + stride: 8, + offset: 4 + }; + }, + size: function size(ctx, prop) { + return prop.size.length ? { + buffer: prop.sizeBuffer, + stride: 2, + offset: 0 + } : { + constant: [Math.round(prop.size * 255 / _this.maxSize)] + }; + }, + borderSize: function borderSize(ctx, prop) { + return prop.borderSize.length ? { + buffer: prop.sizeBuffer, + stride: 2, + offset: 1 + } : { + constant: [Math.round(prop.borderSize * 255 / _this.maxSize)] + }; + }, + colorId: function colorId(ctx, prop) { + return prop.color.length ? { + buffer: prop.colorBuffer, + stride: _this.tooManyColors ? 8 : 4, + offset: 0 + } : { + constant: _this.tooManyColors ? palette.slice(prop.color * 4, prop.color * 4 + 4) : [prop.color] + }; + }, + borderColorId: function borderColorId(ctx, prop) { + return prop.borderColor.length ? { + buffer: prop.colorBuffer, + stride: _this.tooManyColors ? 8 : 4, + offset: _this.tooManyColors ? 4 : 2 + } : { + constant: _this.tooManyColors ? palette.slice(prop.borderColor * 4, prop.borderColor * 4 + 4) : [prop.borderColor] + }; + }, + isActive: function isActive(ctx, prop) { + return prop.activation === true ? { + constant: [1] + } : prop.activation ? prop.activation : { + constant: [0] + }; + } + }, + blend: { + enable: true, + color: [0, 0, 0, 1], + // photoshop blending + func: { + srcRGB: 'src alpha', + dstRGB: 'one minus src alpha', + srcAlpha: 'one minus dst alpha', + dstAlpha: 'one' + } + }, + scissor: { + enable: true, + box: regl.prop('viewport') + }, + viewport: regl.prop('viewport'), + stencil: { + enable: false + }, + depth: { + enable: false + }, + elements: regl.prop('elements'), + count: regl.prop('count'), + offset: regl.prop('offset'), + primitive: 'points' + }; // draw sdf-marker - function checkBothIntersections(){ - if (above){ - var eve = checkIntersection(ev, above); - if (eve) - return eve; - } - if (below) - return checkIntersection(ev, below); - return false; - } + var markerOptions = extend({}, shaderOptions); + markerOptions.frag = glslify(["precision highp float;\n#define GLSLIFY 1\n\nvarying vec4 fragColor, fragBorderColor;\nvarying float fragWidth, fragBorderColorLevel, fragColorLevel;\n\nuniform sampler2D marker;\nuniform float opacity;\n\nfloat smoothStep(float x, float y) {\n return 1.0 / (1.0 + exp(50.0*(x - y)));\n}\n\nvoid main() {\n float dist = texture2D(marker, gl_PointCoord).r, delta = fragWidth;\n\n // max-distance alpha\n if (dist < 0.003) discard;\n\n // null-border case\n if (fragBorderColorLevel == fragColorLevel || fragBorderColor.a == 0.) {\n float colorAmt = smoothstep(.5 - delta, .5 + delta, dist);\n gl_FragColor = vec4(fragColor.rgb, colorAmt * fragColor.a * opacity);\n }\n else {\n float borderColorAmt = smoothstep(fragBorderColorLevel - delta, fragBorderColorLevel + delta, dist);\n float colorAmt = smoothstep(fragColorLevel - delta, fragColorLevel + delta, dist);\n\n vec4 color = fragBorderColor;\n color.a *= borderColorAmt;\n color = mix(color, fragColor, colorAmt);\n color.a *= opacity;\n\n gl_FragColor = color;\n }\n\n}\n"]); + markerOptions.vert = glslify(["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, paletteSize;\nuniform float pixelRatio;\nuniform bool constPointSize;\nuniform sampler2D palette;\n\nconst float maxSize = 100.;\nconst float borderLevel = .5;\n\nvarying vec4 fragColor, fragBorderColor;\nvarying float fragPointSize, fragBorderRadius, fragWidth, fragBorderColorLevel, fragColorLevel;\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 = 2. * size * pointSizeScale;\n fragPointSize = size * pixelRatio;\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 fragColor = color;\n fragBorderColor = borderColor;\n fragWidth = 1. / gl_PointSize;\n\n fragBorderColorLevel = clamp(borderLevel - borderLevel * borderSize / size, 0., 1.);\n fragColorLevel = clamp(borderLevel + (1. - borderLevel) * borderSize / size, 0., 1.);\n}"]); + this.drawMarker = regl(markerOptions); // draw circle - var eve = checkBothIntersections(); - if (eve){ - // ev and eve are equal - // we'll keep eve and throw away ev + var circleOptions = extend({}, shaderOptions); + circleOptions.frag = glslify(["precision highp float;\n#define GLSLIFY 1\n\nvarying vec4 fragColor, fragBorderColor;\n\nuniform float opacity;\nvarying float fragBorderRadius, fragWidth;\n\nfloat smoothStep(float edge0, float edge1, float x) {\n\tfloat t;\n\tt = clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0);\n\treturn t * t * (3.0 - 2.0 * t);\n}\n\nvoid main() {\n\tfloat radius, alpha = 1.0, delta = fragWidth;\n\n\tradius = length(2.0 * gl_PointCoord.xy - 1.0);\n\n\tif (radius > 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"]); + circleOptions.vert = glslify(["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"]); // polyfill IE - // merge ev.seg's fill information into eve.seg + if (ie) { + circleOptions.frag = circleOptions.frag.replace('smoothstep', 'smoothStep'); + markerOptions.frag = markerOptions.frag.replace('smoothstep', 'smoothStep'); + } - if (selfIntersection){ - var toggle; // are we a toggling edge? - if (ev.seg.myFill.below === null) - toggle = true; - else - toggle = ev.seg.myFill.above !== ev.seg.myFill.below; + this.drawCircle = regl(circleOptions); +} // single pass defaults - // merge two segments that belong to the same polygon - // think of this as sandwiching two segments together, where `eve.seg` is - // the bottom -- this will cause the above fill flag to toggle - if (toggle) - eve.seg.myFill.above = !eve.seg.myFill.above; - } - else{ - // merge two segments that belong to different polygons - // each segment has distinct knowledge, so no special logic is needed - // note that this can only happen once per segment in this phase, because we - // are guaranteed that all self-intersections are gone - eve.seg.otherFill = ev.seg.myFill; - } - if (buildLog) - buildLog.segmentUpdate(eve.seg); +Scatter.defaults = { + color: 'black', + borderColor: 'transparent', + borderSize: 0, + size: 12, + opacity: 1, + marker: undefined, + viewport: null, + range: null, + pixelSize: null, + count: 0, + offset: 0, + bounds: null, + positions: [], + snap: 1e4 +}; // update & redraw - ev.other.remove(); - ev.remove(); - } +Scatter.prototype.render = function () { + if (arguments.length) { + this.update.apply(this, arguments); + } - if (event_root.getHead() !== ev){ - // something was inserted before us in the event queue, so loop back around and - // process it before continuing - if (buildLog) - buildLog.rewind(ev.seg); - continue; - } + this.draw(); + return this; +}; // draw all groups or only indicated ones - // - // calculate fill flags - // - if (selfIntersection){ - var toggle; // are we a toggling edge? - if (ev.seg.myFill.below === null) // if we are a new segment... - toggle = true; // then we toggle - else // we are a segment that has previous knowledge from a division - toggle = ev.seg.myFill.above !== ev.seg.myFill.below; // calculate toggle - // next, calculate whether we are filled below us - if (!below){ // if nothing is below us... - // we are filled below us if the polygon is inverted - ev.seg.myFill.below = primaryPolyInverted; - } - else{ - // otherwise, we know the answer -- it's the same if whatever is below - // us is filled above it - ev.seg.myFill.below = below.seg.myFill.above; - } +Scatter.prototype.draw = function () { + var _this2 = this; - // since now we know if we're filled below us, we can calculate whether - // we're filled above us by applying toggle to whatever is below us - if (toggle) - ev.seg.myFill.above = !ev.seg.myFill.below; - else - ev.seg.myFill.above = ev.seg.myFill.below; - } - else{ - // now we fill in any missing transition information, since we are all-knowing - // at this point + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } - if (ev.seg.otherFill === null){ - // if we don't have other information, then we need to figure out if we're - // inside the other polygon - var inside; - if (!below){ - // if nothing is below us, then we're inside if the other polygon is - // inverted - inside = - ev.primary ? secondaryPolyInverted : primaryPolyInverted; - } - else{ // otherwise, something is below us - // so copy the below segment's other polygon's above - if (ev.primary === below.primary) - inside = below.seg.otherFill.above; - else - inside = below.seg.myFill.above; - } - ev.seg.otherFill = { - above: inside, - below: inside - }; - } - } + var groups = this.groups; // if directly array passed - treat as passes - if (buildLog){ - buildLog.status( - ev.seg, - above ? above.seg : false, - below ? below.seg : false - ); - } + if (args.length === 1 && Array.isArray(args[0]) && (args[0][0] === null || Array.isArray(args[0][0]))) { + args = args[0]; + } // FIXME: remove once https://github.com/regl-project/regl/issues/474 resolved - // insert the status and remember it for later removal - ev.other.status = surrounding.insert(LinkedList.node({ ev: ev })); - } - else{ - var st = ev.status; - if (st === null){ - throw new Error('PolyBool: Zero-length segment detected; your epsilon is ' + - 'probably too small or too large'); - } + this.regl._refresh(); - // removing the status will create two new adjacent edges, so we'll need to check - // for those - if (status_root.exists(st.prev) && status_root.exists(st.next)) - checkIntersection(st.prev.ev, st.next.ev); + if (args.length) { + for (var i = 0; i < args.length; i++) { + this.drawItem(i, args[i]); + } + } // draw all passes + else { + groups.forEach(function (group, i) { + _this2.drawItem(i); + }); + } - if (buildLog) - buildLog.statusRemove(st.ev.seg); + return this; +}; // draw specific scatter group - // remove the status - st.remove(); - // if we've reached this point, we've calculated everything there is to know, so - // save the segment for reporting - if (!ev.primary){ - // make sure `seg.myFill` actually points to the primary polygon though - var s = ev.seg.myFill; - ev.seg.myFill = ev.seg.otherFill; - ev.seg.otherFill = s; - } - segments.push(ev.seg); - } +Scatter.prototype.drawItem = function (id, els) { + var groups = this.groups; + var group = groups[id]; // debug viewport + // let { viewport } = group + // gl.enable(gl.SCISSOR_TEST); + // gl.scissor(viewport.x, viewport.y, viewport.width, viewport.height); + // gl.clearColor(0, 0, 0, .5); + // gl.clear(gl.COLOR_BUFFER_BIT); + + if (typeof els === 'number') { + id = els; + group = groups[els]; + els = null; + } + + if (!(group && group.count && group.opacity)) return; // draw circles - // remove the event and continue - event_root.getHead().remove(); - } + if (group.activation[0]) { + // TODO: optimize this performance by making groups and regl.this props + this.drawCircle(this.getMarkerDrawOptions(0, group, els)); + } // draw all other available markers - if (buildLog) - buildLog.done(); - return segments; - } + var batch = []; - // return the appropriate API depending on what we're doing - if (!selfIntersection){ - // performing combination of polygons, so only deal with already-processed segments - return { - calculate: function(segments1, inverted1, segments2, inverted2){ - // segmentsX come from the self-intersection API, or this API - // invertedX is whether we treat that list of segments as an inverted polygon or not - // returns segments that can be used for further operations - segments1.forEach(function(seg){ - eventAddSegment(segmentCopy(seg.start, seg.end, seg), true); - }); - segments2.forEach(function(seg){ - eventAddSegment(segmentCopy(seg.start, seg.end, seg), false); - }); - return calculate(inverted1, inverted2); - } - }; - } + for (var i = 1; i < group.activation.length; i++) { + if (!group.activation[i] || group.activation[i] !== true && !group.activation[i].data.length) continue; + batch.push.apply(batch, _toConsumableArray(this.getMarkerDrawOptions(i, group, els))); + } - // otherwise, performing self-intersection, so deal with regions - return { - addRegion: function(region){ - // regions are a list of points: - // [ [0, 0], [100, 0], [50, 100] ] - // you can add multiple regions before running calculate - var pt1; - var pt2 = region[region.length - 1]; - for (var i = 0; i < region.length; i++){ - pt1 = pt2; - pt2 = region[i]; + if (batch.length) { + this.drawMarker(batch); + } +}; // get options for the marker ids - var forward = eps.pointsCompare(pt1, pt2); - if (forward === 0) // points are equal, so we have a zero-length segment - continue; // just skip it - eventAddSegment( - segmentNew( - forward < 0 ? pt1 : pt2, - forward < 0 ? pt2 : pt1 - ), - true - ); - } - }, - calculate: function(inverted){ - // is the polygon inverted? - // returns segments - return calculate(inverted, false); - } - }; -} +Scatter.prototype.getMarkerDrawOptions = function (markerId, group, elements) { + var range = group.range, + tree = group.tree, + viewport = group.viewport, + activation = group.activation, + selectionBuffer = group.selectionBuffer, + count = group.count; + var regl = this.regl; // direct points -module.exports = Intersecter; + if (!tree) { + // if elements array - draw unclustered points + if (elements) { + return [extend({}, group, { + markerTexture: this.markerTextures[markerId], + activation: activation[markerId], + count: elements.length, + elements: elements, + offset: 0 + })]; + } -},{"./linked-list":522}],522:[function(_dereq_,module,exports){ -// (c) Copyright 2016, Sean Connelly (@voidqk), http://syntheti.cc -// MIT License -// Project Home: https://github.com/voidqk/polybooljs + return [extend({}, group, { + markerTexture: this.markerTextures[markerId], + activation: activation[markerId], + offset: 0 + })]; + } // clustered points -// -// simple linked list implementation that allows you to traverse down nodes and save positions -// -var LinkedList = { - create: function(){ - var my = { - root: { root: true, next: null }, - exists: function(node){ - if (node === null || node === my.root) - return false; - return true; - }, - isEmpty: function(){ - return my.root.next === null; - }, - getHead: function(){ - return my.root.next; - }, - insertBefore: function(node, check){ - var last = my.root; - var here = my.root.next; - while (here !== null){ - if (check(here)){ - node.prev = here.prev; - node.next = here; - here.prev.next = node; - here.prev = node; - return; - } - last = here; - here = here.next; - } - last.next = node; - node.prev = last; - node.next = null; - }, - findTransition: function(check){ - var prev = my.root; - var here = my.root.next; - while (here !== null){ - if (check(here)) - break; - prev = here; - here = here.next; - } - return { - before: prev === my.root ? null : prev, - after: here, - insert: function(node){ - node.prev = prev; - node.next = here; - prev.next = node; - if (here !== null) - here.prev = node; - return node; - } - }; - } - }; - return my; - }, - node: function(data){ - data.prev = null; - data.next = null; - data.remove = function(){ - data.prev.next = data.next; - if (data.next) - data.next.prev = data.prev; - data.prev = null; - data.next = null; - }; - return data; - } -}; + var batch = []; + var lod = tree.range(range, { + lod: true, + px: [(range[2] - range[0]) / viewport.width, (range[3] - range[1]) / viewport.height] + }); // enable elements by using selection buffer -module.exports = LinkedList; + if (elements) { + var markerActivation = activation[markerId]; + var mask = markerActivation.data; + var data = new Uint8Array(count); -},{}],523:[function(_dereq_,module,exports){ -// (c) Copyright 2016, Sean Connelly (@voidqk), http://syntheti.cc -// MIT License -// Project Home: https://github.com/voidqk/polybooljs + for (var i = 0; i < elements.length; i++) { + var id = elements[i]; + data[id] = mask ? mask[id] : 1; + } -// -// converts a list of segments into a list of regions, while also removing unnecessary verticies -// + selectionBuffer.subdata(data); + } -function SegmentChainer(segments, eps, buildLog){ - var chains = []; - var regions = []; + for (var l = lod.length; l--;) { + var _lod$l = _slicedToArray(lod[l], 2), + from = _lod$l[0], + to = _lod$l[1]; - segments.forEach(function(seg){ - var pt1 = seg.start; - var pt2 = seg.end; - if (eps.pointsSame(pt1, pt2)){ - console.warn('PolyBool: Warning: Zero-length segment detected; your epsilon is ' + - 'probably too small or too large'); - return; - } + batch.push(extend({}, group, { + markerTexture: this.markerTextures[markerId], + activation: elements ? selectionBuffer : activation[markerId], + offset: from, + count: to - from + })); + } - if (buildLog) - buildLog.chainStart(seg); + return batch; +}; // update groups options - // search for two chains that this segment matches - var first_match = { - index: 0, - matches_head: false, - matches_pt1: false - }; - var second_match = { - index: 0, - matches_head: false, - matches_pt1: false - }; - var next_match = first_match; - function setMatch(index, matches_head, matches_pt1){ - // return true if we've matched twice - next_match.index = index; - next_match.matches_head = matches_head; - next_match.matches_pt1 = matches_pt1; - if (next_match === first_match){ - next_match = second_match; - return false; - } - next_match = null; - return true; // we've matched twice, we're done here - } - for (var i = 0; i < chains.length; i++){ - var chain = chains[i]; - var head = chain[0]; - var head2 = chain[1]; - var tail = chain[chain.length - 1]; - var tail2 = chain[chain.length - 2]; - if (eps.pointsSame(head, pt1)){ - if (setMatch(i, true, true)) - break; - } - else if (eps.pointsSame(head, pt2)){ - if (setMatch(i, true, false)) - break; - } - else if (eps.pointsSame(tail, pt1)){ - if (setMatch(i, false, true)) - break; - } - else if (eps.pointsSame(tail, pt2)){ - if (setMatch(i, false, false)) - break; - } - } - if (next_match === first_match){ - // we didn't match anything, so create a new chain - chains.push([ pt1, pt2 ]); - if (buildLog) - buildLog.chainNew(pt1, pt2); - return; - } +Scatter.prototype.update = function () { + var _this3 = this; - if (next_match === second_match){ - // we matched a single chain + for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + args[_key2] = arguments[_key2]; + } - if (buildLog) - buildLog.chainMatch(first_match.index); + if (!args.length) return; // passes are as single array - // add the other point to the apporpriate end, and check to see if we've closed the - // chain into a loop + if (args.length === 1 && Array.isArray(args[0])) args = args[0]; + var groups = this.groups, + gl = this.gl, + regl = this.regl, + maxSize = this.maxSize, + maxColors = this.maxColors, + palette = this.palette; + this.groups = groups = args.map(function (options, i) { + var group = groups[i]; + if (options === undefined) return group; + if (options === null) options = { + positions: null + };else if (typeof options === 'function') options = { + ondraw: options + };else if (typeof options[0] === 'number') options = { + positions: options + }; // copy options to avoid mutation & handle aliases - var index = first_match.index; - var pt = first_match.matches_pt1 ? pt2 : pt1; // if we matched pt1, then we add pt2, etc - var addToHead = first_match.matches_head; // if we matched at head, then add to the head + options = pick(options, { + positions: 'positions data points', + snap: 'snap cluster lod tree', + size: 'sizes size radius', + borderSize: 'borderSizes borderSize border-size bordersize borderWidth borderWidths border-width borderwidth stroke-width strokeWidth strokewidth outline', + color: 'colors color fill fill-color fillColor', + borderColor: 'borderColors borderColor stroke stroke-color strokeColor', + marker: 'markers marker shape', + range: 'range dataBox databox', + viewport: 'viewport viewPort viewBox viewbox', + opacity: 'opacity alpha transparency', + bounds: 'bound bounds boundaries limits', + tooManyColors: 'tooManyColors palette paletteMode optimizePalette enablePalette' + }); + if (options.positions === null) options.positions = []; + if (options.tooManyColors != null) _this3.tooManyColors = options.tooManyColors; - var chain = chains[index]; - var grow = addToHead ? chain[0] : chain[chain.length - 1]; - var grow2 = addToHead ? chain[1] : chain[chain.length - 2]; - var oppo = addToHead ? chain[chain.length - 1] : chain[0]; - var oppo2 = addToHead ? chain[chain.length - 2] : chain[1]; + if (!group) { + groups[i] = group = { + id: i, + scale: null, + translate: null, + scaleFract: null, + translateFract: null, + // buffers for active markers + activation: [], + // buffer for filtered markers + selectionBuffer: regl.buffer({ + data: new Uint8Array(0), + usage: 'stream', + type: 'uint8' + }), + // buffers with data: it is faster to switch them per-pass + // than provide one congregate buffer + sizeBuffer: regl.buffer({ + data: new Uint8Array(0), + usage: 'dynamic', + type: 'uint8' + }), + colorBuffer: regl.buffer({ + data: new Uint8Array(0), + usage: 'dynamic', + type: 'uint8' + }), + positionBuffer: regl.buffer({ + data: new Uint8Array(0), + usage: 'dynamic', + type: 'float' + }), + positionFractBuffer: regl.buffer({ + data: new Uint8Array(0), + usage: 'dynamic', + type: 'float' + }) + }; + options = extend({}, Scatter.defaults, options); + } // force update triggers - if (eps.pointsCollinear(grow2, grow, pt)){ - // grow isn't needed because it's directly between grow2 and pt: - // grow2 ---grow---> pt - if (addToHead){ - if (buildLog) - buildLog.chainRemoveHead(first_match.index, pt); - chain.shift(); - } - else{ - if (buildLog) - buildLog.chainRemoveTail(first_match.index, pt); - chain.pop(); - } - grow = grow2; // old grow is gone... new grow is what grow2 was - } - if (eps.pointsSame(oppo, pt)){ - // we're closing the loop, so remove chain from chains - chains.splice(index, 1); + if (options.positions && !('marker' in options)) { + options.marker = group.marker; + delete group.marker; + } // updating markers cause recalculating snapping - if (eps.pointsCollinear(oppo2, oppo, grow)){ - // oppo isn't needed because it's directly between oppo2 and grow: - // oppo2 ---oppo--->grow - if (addToHead){ - if (buildLog) - buildLog.chainRemoveTail(first_match.index, grow); - chain.pop(); - } - else{ - if (buildLog) - buildLog.chainRemoveHead(first_match.index, grow); - chain.shift(); - } - } - if (buildLog) - buildLog.chainClose(first_match.index); + if (options.marker && !('positions' in options)) { + options.positions = group.positions; + delete group.positions; + } // global count of points - // we have a closed chain! - regions.push(chain); - return; - } - // not closing a loop, so just add it to the apporpriate side - if (addToHead){ - if (buildLog) - buildLog.chainAddHead(first_match.index, pt); - chain.unshift(pt); - } - else{ - if (buildLog) - buildLog.chainAddTail(first_match.index, pt); - chain.push(pt); - } - return; - } + var hasSize = 0, + hasColor = 0; + updateDiff(group, options, [{ + snap: true, + size: function size(s, group) { + if (s == null) s = Scatter.defaults.size; + hasSize += s && s.length ? 1 : 0; + return s; + }, + borderSize: function borderSize(s, group) { + if (s == null) s = Scatter.defaults.borderSize; + hasSize += s && s.length ? 1 : 0; + return s; + }, + opacity: parseFloat, + // add colors to palette, save references + color: function color(c, group) { + if (c == null) c = Scatter.defaults.color; + c = _this3.updateColor(c); + hasColor++; + return c; + }, + borderColor: function borderColor(c, group) { + if (c == null) c = Scatter.defaults.borderColor; + c = _this3.updateColor(c); + hasColor++; + return c; + }, + bounds: function bounds(_bounds, group, options) { + if (!('range' in options)) options.range = null; + return _bounds; + }, + positions: function positions(_positions, group, options) { + var snap = group.snap; + var positionBuffer = group.positionBuffer, + positionFractBuffer = group.positionFractBuffer, + selectionBuffer = group.selectionBuffer; // separate buffers for x/y coordinates - // otherwise, we matched two chains, so we need to combine those chains together + if (_positions.x || _positions.y) { + if (_positions.x.length) { + group.xAttr = { + buffer: regl.buffer(_positions.x), + offset: 0, + stride: 4, + count: _positions.x.length + }; + } else { + group.xAttr = { + buffer: _positions.x.buffer, + offset: _positions.x.offset * 4 || 0, + stride: (_positions.x.stride || 1) * 4, + count: _positions.x.count + }; + } - function reverseChain(index){ - if (buildLog) - buildLog.chainReverse(index); - chains[index].reverse(); // gee, that's easy - } + if (_positions.y.length) { + group.yAttr = { + buffer: regl.buffer(_positions.y), + offset: 0, + stride: 4, + count: _positions.y.length + }; + } else { + group.yAttr = { + buffer: _positions.y.buffer, + offset: _positions.y.offset * 4 || 0, + stride: (_positions.y.stride || 1) * 4, + count: _positions.y.count + }; + } - function appendChain(index1, index2){ - // index1 gets index2 appended to it, and index2 is removed - var chain1 = chains[index1]; - var chain2 = chains[index2]; - var tail = chain1[chain1.length - 1]; - var tail2 = chain1[chain1.length - 2]; - var head = chain2[0]; - var head2 = chain2[1]; + group.count = Math.max(group.xAttr.count, group.yAttr.count); + return _positions; + } - if (eps.pointsCollinear(tail2, tail, head)){ - // tail isn't needed because it's directly between tail2 and head - // tail2 ---tail---> head - if (buildLog) - buildLog.chainRemoveTail(index1, tail); - chain1.pop(); - tail = tail2; // old tail is gone... new tail is what tail2 was - } + _positions = flatten(_positions, 'float64'); + var count = group.count = Math.floor(_positions.length / 2); + var bounds = group.bounds = count ? getBounds(_positions, 2) : null; // if range is not provided updated - recalc it - if (eps.pointsCollinear(tail, head, head2)){ - // head isn't needed because it's directly between tail and head2 - // tail ---head---> head2 - if (buildLog) - buildLog.chainRemoveHead(index2, head); - chain2.shift(); - } + if (!options.range && !group.range) { + delete group.range; + options.range = bounds; + } // reset marker - if (buildLog) - buildLog.chainJoin(index1, index2); - chains[index1] = chain1.concat(chain2); - chains.splice(index2, 1); - } - var F = first_match.index; - var S = second_match.index; + if (!options.marker && !group.marker) { + delete group.marker; + options.marker = null; + } // build cluster tree if required - if (buildLog) - buildLog.chainConnect(F, S); - var reverseF = chains[F].length < chains[S].length; // reverse the shorter chain, if needed - if (first_match.matches_head){ - if (second_match.matches_head){ - if (reverseF){ - // <<<< F <<<< --- >>>> S >>>> - reverseChain(F); - // >>>> F >>>> --- >>>> S >>>> - appendChain(F, S); - } - else{ - // <<<< F <<<< --- >>>> S >>>> - reverseChain(S); - // <<<< F <<<< --- <<<< S <<<< logically same as: - // >>>> S >>>> --- >>>> F >>>> - appendChain(S, F); - } - } - else{ - // <<<< F <<<< --- <<<< S <<<< logically same as: - // >>>> S >>>> --- >>>> F >>>> - appendChain(S, F); - } - } - else{ - if (second_match.matches_head){ - // >>>> F >>>> --- >>>> S >>>> - appendChain(F, S); - } - else{ - if (reverseF){ - // >>>> F >>>> --- <<<< S <<<< - reverseChain(F); - // <<<< F <<<< --- <<<< S <<<< logically same as: - // >>>> S >>>> --- >>>> F >>>> - appendChain(S, F); - } - else{ - // >>>> F >>>> --- <<<< S <<<< - reverseChain(S); - // >>>> F >>>> --- >>>> S >>>> - appendChain(F, S); - } - } - } - }); + if (snap && (snap === true || count > snap)) { + group.tree = cluster(_positions, { + bounds: bounds + }); + } // existing tree instance + else if (snap && snap.length) { + group.tree = snap; + } - return regions; -} + if (group.tree) { + var opts = { + primitive: 'points', + usage: 'static', + data: group.tree, + type: 'uint32' + }; + if (group.elements) group.elements(opts);else group.elements = regl.elements(opts); + } // update position buffers -module.exports = SegmentChainer; -},{}],524:[function(_dereq_,module,exports){ -// (c) Copyright 2016, Sean Connelly (@voidqk), http://syntheti.cc -// MIT License -// Project Home: https://github.com/voidqk/polybooljs + positionBuffer({ + data: f32.float(_positions), + usage: 'dynamic' + }); + positionFractBuffer({ + data: f32.fract(_positions), + usage: 'dynamic' + }); // expand selectionBuffer -// -// filter a list of segments based on boolean operations -// + selectionBuffer({ + data: new Uint8Array(count), + type: 'uint8', + usage: 'stream' + }); + return _positions; + } + }, { + // create marker ids corresponding to known marker textures + marker: function marker(markers, group, options) { + var activation = group.activation; // reset marker elements -function select(segments, selection, buildLog){ - var result = []; - segments.forEach(function(seg){ - var index = - (seg.myFill.above ? 8 : 0) + - (seg.myFill.below ? 4 : 0) + - ((seg.otherFill && seg.otherFill.above) ? 2 : 0) + - ((seg.otherFill && seg.otherFill.below) ? 1 : 0); - if (selection[index] !== 0){ - // copy the segment to the results, while also calculating the fill status - result.push({ - id: buildLog ? buildLog.segmentId() : -1, - start: seg.start, - end: seg.end, - myFill: { - above: selection[index] === 1, // 1 if filled above - below: selection[index] === 2 // 2 if filled below - }, - otherFill: null - }); - } - }); + activation.forEach(function (buffer) { + return buffer && buffer.destroy && buffer.destroy(); + }); + activation.length = 0; // single sdf marker - if (buildLog) - buildLog.selected(result); + if (!markers || typeof markers[0] === 'number') { + var id = _this3.addMarker(markers); - return result; -} + activation[id] = true; + } // per-point markers use mask buffers to enable markers in vert shader + else { + var markerMasks = []; -var SegmentSelector = { - union: function(segments, buildLog){ // primary | secondary - // above1 below1 above2 below2 Keep? Value - // 0 0 0 0 => no 0 - // 0 0 0 1 => yes filled below 2 - // 0 0 1 0 => yes filled above 1 - // 0 0 1 1 => no 0 - // 0 1 0 0 => yes filled below 2 - // 0 1 0 1 => yes filled below 2 - // 0 1 1 0 => no 0 - // 0 1 1 1 => no 0 - // 1 0 0 0 => yes filled above 1 - // 1 0 0 1 => no 0 - // 1 0 1 0 => yes filled above 1 - // 1 0 1 1 => no 0 - // 1 1 0 0 => no 0 - // 1 1 0 1 => no 0 - // 1 1 1 0 => no 0 - // 1 1 1 1 => no 0 - return select(segments, [ - 0, 2, 1, 0, - 2, 2, 0, 0, - 1, 0, 1, 0, - 0, 0, 0, 0 - ], buildLog); - }, - intersect: function(segments, buildLog){ // primary & secondary - // above1 below1 above2 below2 Keep? Value - // 0 0 0 0 => no 0 - // 0 0 0 1 => no 0 - // 0 0 1 0 => no 0 - // 0 0 1 1 => no 0 - // 0 1 0 0 => no 0 - // 0 1 0 1 => yes filled below 2 - // 0 1 1 0 => no 0 - // 0 1 1 1 => yes filled below 2 - // 1 0 0 0 => no 0 - // 1 0 0 1 => no 0 - // 1 0 1 0 => yes filled above 1 - // 1 0 1 1 => yes filled above 1 - // 1 1 0 0 => no 0 - // 1 1 0 1 => yes filled below 2 - // 1 1 1 0 => yes filled above 1 - // 1 1 1 1 => no 0 - return select(segments, [ - 0, 0, 0, 0, - 0, 2, 0, 2, - 0, 0, 1, 1, - 0, 2, 1, 0 - ], buildLog); - }, - difference: function(segments, buildLog){ // primary - secondary - // above1 below1 above2 below2 Keep? Value - // 0 0 0 0 => no 0 - // 0 0 0 1 => no 0 - // 0 0 1 0 => no 0 - // 0 0 1 1 => no 0 - // 0 1 0 0 => yes filled below 2 - // 0 1 0 1 => no 0 - // 0 1 1 0 => yes filled below 2 - // 0 1 1 1 => no 0 - // 1 0 0 0 => yes filled above 1 - // 1 0 0 1 => yes filled above 1 - // 1 0 1 0 => no 0 - // 1 0 1 1 => no 0 - // 1 1 0 0 => no 0 - // 1 1 0 1 => yes filled above 1 - // 1 1 1 0 => yes filled below 2 - // 1 1 1 1 => no 0 - return select(segments, [ - 0, 0, 0, 0, - 2, 0, 2, 0, - 1, 1, 0, 0, - 0, 1, 2, 0 - ], buildLog); - }, - differenceRev: function(segments, buildLog){ // secondary - primary - // above1 below1 above2 below2 Keep? Value - // 0 0 0 0 => no 0 - // 0 0 0 1 => yes filled below 2 - // 0 0 1 0 => yes filled above 1 - // 0 0 1 1 => no 0 - // 0 1 0 0 => no 0 - // 0 1 0 1 => no 0 - // 0 1 1 0 => yes filled above 1 - // 0 1 1 1 => yes filled above 1 - // 1 0 0 0 => no 0 - // 1 0 0 1 => yes filled below 2 - // 1 0 1 0 => no 0 - // 1 0 1 1 => yes filled below 2 - // 1 1 0 0 => no 0 - // 1 1 0 1 => no 0 - // 1 1 1 0 => no 0 - // 1 1 1 1 => no 0 - return select(segments, [ - 0, 2, 1, 0, - 0, 0, 1, 1, - 0, 2, 0, 2, - 0, 0, 0, 0 - ], buildLog); - }, - xor: function(segments, buildLog){ // primary ^ secondary - // above1 below1 above2 below2 Keep? Value - // 0 0 0 0 => no 0 - // 0 0 0 1 => yes filled below 2 - // 0 0 1 0 => yes filled above 1 - // 0 0 1 1 => no 0 - // 0 1 0 0 => yes filled below 2 - // 0 1 0 1 => no 0 - // 0 1 1 0 => no 0 - // 0 1 1 1 => yes filled above 1 - // 1 0 0 0 => yes filled above 1 - // 1 0 0 1 => no 0 - // 1 0 1 0 => no 0 - // 1 0 1 1 => yes filled below 2 - // 1 1 0 0 => no 0 - // 1 1 0 1 => yes filled above 1 - // 1 1 1 0 => yes filled below 2 - // 1 1 1 1 => no 0 - return select(segments, [ - 0, 2, 1, 0, - 2, 0, 0, 1, - 1, 0, 0, 2, - 0, 1, 2, 0 - ], buildLog); - } -}; + for (var _i = 0, l = Math.min(markers.length, group.count); _i < l; _i++) { + var _id = _this3.addMarker(markers[_i]); -module.exports = SegmentSelector; + if (!markerMasks[_id]) markerMasks[_id] = new Uint8Array(group.count); // enable marker by default -},{}],525:[function(_dereq_,module,exports){ -//Optimized version for triangle closest point -// Based on Eberly's WildMagick codes -// http://www.geometrictools.com/LibMathematics/Distance/Distance.html -"use strict"; + markerMasks[_id][_i] = 1; + } -var diff = new Float64Array(4); -var edge0 = new Float64Array(4); -var edge1 = new Float64Array(4); + for (var _id2 = 0; _id2 < markerMasks.length; _id2++) { + if (!markerMasks[_id2]) continue; + var opts = { + data: markerMasks[_id2], + type: 'uint8', + usage: 'static' + }; -function closestPoint2d(V0, V1, V2, point, result) { - //Reallocate buffers if necessary - if(diff.length < point.length) { - diff = new Float64Array(point.length); - edge0 = new Float64Array(point.length); - edge1 = new Float64Array(point.length); - } - //Compute edges - for(var i=0; i= a00) { - s = 1.0; - sqrDistance = a00 + 2.0*b0 + c; - } else { - s = -b0/a00; - sqrDistance = b0*s + c; - } - } else { - s = 0; - if (b1 >= 0) { - t = 0; - sqrDistance = c; - } else if (-b1 >= a11) { - t = 1; - sqrDistance = a11 + 2.0*b1 + c; - } else { - t = -b1/a11; - sqrDistance = b1*t + c; + if (!activation[_id2]) { + activation[_id2] = regl.buffer(opts); + } else { + activation[_id2](opts); + } + + activation[_id2].data = markerMasks[_id2]; + } } - } - } else { // region 3 - s = 0; - if (b1 >= 0) { - t = 0; - sqrDistance = c; - } else if (-b1 >= a11) { - t = 1; - sqrDistance = a11 + 2.0*b1 + c; - } else { - t = -b1/a11; - sqrDistance = b1*t + c; - } - } - } else if (t < 0) { // region 5 - t = 0; - if (b0 >= 0) { - s = 0; - sqrDistance = c; - } else if (-b0 >= a00) { - s = 1; - sqrDistance = a00 + 2.0*b0 + c; - } else { - s = -b0/a00; - sqrDistance = b0*s + c; - } - } else { // region 0 - // minimum at interior point - var invDet = 1.0 / det; - s *= invDet; - t *= invDet; - sqrDistance = s*(a00*s + a01*t + 2.0*b0) + t*(a01*s + a11*t + 2.0*b1) + c; - } - } else { - var tmp0, tmp1, numer, denom; - - if (s < 0) { // region 2 - tmp0 = a01 + b0; - tmp1 = a11 + b1; - if (tmp1 > tmp0) { - numer = tmp1 - tmp0; - denom = a00 - 2.0*a01 + a11; - if (numer >= denom) { - s = 1; - t = 0; - sqrDistance = a00 + 2.0*b0 + c; - } else { - s = numer/denom; - t = 1 - s; - sqrDistance = s*(a00*s + a01*t + 2.0*b0) + - t*(a01*s + a11*t + 2.0*b1) + c; - } - } else { - s = 0; - if (tmp1 <= 0) { - t = 1; - sqrDistance = a11 + 2.0*b1 + c; - } else if (b1 >= 0) { - t = 0; - sqrDistance = c; - } else { - t = -b1/a11; - sqrDistance = b1*t + c; - } - } - } else if (t < 0) { // region 6 - tmp0 = a01 + b1; - tmp1 = a00 + b0; - if (tmp1 > tmp0) { - numer = tmp1 - tmp0; - denom = a00 - 2.0*a01 + a11; - if (numer >= denom) { - t = 1; - s = 0; - sqrDistance = a11 + 2.0*b1 + c; - } else { - t = numer/denom; - s = 1 - t; - sqrDistance = s*(a00*s + a01*t + 2.0*b0) + - t*(a01*s + a11*t + 2.0*b1) + c; - } - } else { - t = 0; - if (tmp1 <= 0) { - s = 1; - sqrDistance = a00 + 2.0*b0 + c; - } else if (b0 >= 0) { - s = 0; - sqrDistance = c; - } else { - s = -b0/a00; - sqrDistance = b0*s + c; - } - } - } else { // region 1 - numer = a11 + b1 - a01 - b0; - if (numer <= 0) { - s = 0; - t = 1; - sqrDistance = a11 + 2.0*b1 + c; - } else { - denom = a00 - 2.0*a01 + a11; - if (numer >= denom) { - s = 1; - t = 0; - sqrDistance = a00 + 2.0*b0 + c; - } else { - s = numer/denom; - t = 1 - s; - sqrDistance = s*(a00*s + a01*t + 2.0*b0) + - t*(a01*s + a11*t + 2.0*b1) + c; - } - } - } - } - var u = 1.0 - s - t; - for(var i=0; i 1) { - for (var i = 1; i < arguments.length; i++) { - args[i - 1] = arguments[i]; - } - } - queue.push(new Item(fun, args)); - if (queue.length === 1 && !draining) { - runTimeout(drainQueue); + colorBuffer({ + data: colors || new Uint8Array(0), + type: 'uint8', + usage: 'dynamic' + }); } -}; -// v8 likes predictible objects -function Item(fun, array) { - this.fun = fun; - this.array = array; -} -Item.prototype.run = function () { - this.fun.apply(null, this.array); -}; -process.title = 'browser'; -process.browser = true; -process.env = {}; -process.argv = []; -process.version = ''; // empty string to avoid regexp issues -process.versions = {}; + return group; + }); +}; // get (and create) marker texture id -function noop() {} -process.on = noop; -process.addListener = noop; -process.once = noop; -process.off = noop; -process.removeListener = noop; -process.removeAllListeners = noop; -process.emit = noop; -process.prependListener = noop; -process.prependOnceListener = noop; +Scatter.prototype.addMarker = function (sdf) { + var markerTextures = this.markerTextures, + regl = this.regl, + markerCache = this.markerCache; + var pos = sdf == null ? 0 : markerCache.indexOf(sdf); + if (pos >= 0) return pos; // convert sdf to 0..255 range -process.listeners = function (name) { return [] } + var distArr; -process.binding = function (name) { - throw new Error('process.binding is not supported'); -}; + if (sdf instanceof Uint8Array || sdf instanceof Uint8ClampedArray) { + distArr = sdf; + } else { + distArr = new Uint8Array(sdf.length); -process.cwd = function () { return '/' }; -process.chdir = function (dir) { - throw new Error('process.chdir is not supported'); -}; -process.umask = function() { return 0; }; + for (var i = 0, l = sdf.length; i < l; i++) { + distArr[i] = sdf[i] * 255; + } + } -},{}],527:[function(_dereq_,module,exports){ -module.exports = _dereq_('gl-quat/slerp') -},{"gl-quat/slerp":325}],528:[function(_dereq_,module,exports){ -(function (global){(function (){ -var now = _dereq_('performance-now') - , root = typeof window === 'undefined' ? global : window - , vendors = ['moz', 'webkit'] - , suffix = 'AnimationFrame' - , raf = root['request' + suffix] - , caf = root['cancel' + suffix] || root['cancelRequest' + suffix] + var radius = Math.floor(Math.sqrt(distArr.length)); + pos = markerTextures.length; + markerCache.push(sdf); + markerTextures.push(regl.texture({ + channels: 1, + data: distArr, + radius: radius, + mag: 'linear', + min: 'linear' + })); + return pos; +}; // register color to palette, return it's index or list of indexes -for(var i = 0; !raf && i < vendors.length; i++) { - raf = root[vendors[i] + 'Request' + suffix] - caf = root[vendors[i] + 'Cancel' + suffix] - || root[vendors[i] + 'CancelRequest' + suffix] -} -// Some versions of FF have rAF but not cAF -if(!raf || !caf) { - var last = 0 - , id = 0 - , queue = [] - , frameDuration = 1000 / 60 +Scatter.prototype.updateColor = function (colors) { + var paletteIds = this.paletteIds, + palette = this.palette, + maxColors = this.maxColors; - raf = function(callback) { - if(queue.length === 0) { - var _now = now() - , next = Math.max(0, frameDuration - (_now - last)) - last = next + _now - setTimeout(function() { - var cp = queue.slice(0) - // Clear queue here to prevent - // callbacks from appending listeners - // to the current frame's queue - queue.length = 0 - for(var i = 0; i < cp.length; i++) { - if(!cp[i].cancelled) { - try{ - cp[i].callback(last) - } catch(e) { - setTimeout(function() { throw e }, 0) - } - } - } - }, Math.round(next)) - } - queue.push({ - handle: ++id, - callback: callback, - cancelled: false - }) - return id + if (!Array.isArray(colors)) { + colors = [colors]; } - caf = function(handle) { - for(var i = 0; i < queue.length; i++) { - if(queue[i].handle === handle) { - queue[i].cancelled = true + var idx = []; // if color groups - flatten them + + if (typeof colors[0] === 'number') { + var grouped = []; + + if (Array.isArray(colors)) { + for (var i = 0; i < colors.length; i += 4) { + grouped.push(colors.slice(i, i + 4)); + } + } else { + for (var _i5 = 0; _i5 < colors.length; _i5 += 4) { + grouped.push(colors.subarray(_i5, _i5 + 4)); } } - } -} -module.exports = function(fn) { - // Wrap in a new function to prevent - // `cancel` potentially being assigned - // to the native rAF function - return raf.call(root, fn) -} -module.exports.cancel = function() { - caf.apply(root, arguments) -} -module.exports.polyfill = function(object) { - if (!object) { - object = root; + colors = grouped; } - object.requestAnimationFrame = raf - object.cancelAnimationFrame = caf -} -}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"performance-now":508}],529:[function(_dereq_,module,exports){ -'use strict' + for (var _i6 = 0; _i6 < colors.length; _i6++) { + var color = colors[_i6]; + color = rgba(color, 'uint8'); + var id = colorId(color, false); // if new color - save it -var bnadd = _dereq_('big-rat/add') + if (paletteIds[id] == null) { + var pos = palette.length; + paletteIds[id] = Math.floor(pos / 4); + palette[pos] = color[0]; + palette[pos + 1] = color[1]; + palette[pos + 2] = color[2]; + palette[pos + 3] = color[3]; + } -module.exports = add + idx[_i6] = paletteIds[id]; + } // detect if too many colors in palette -function add (a, b) { - var n = a.length - var r = new Array(n) - for (var i=0; i maxColors * 4) this.tooManyColors = true; // limit max color -module.exports = float2rat + this.updatePalette(palette); // keep static index for single-color property -var rat = _dereq_('big-rat') + return idx.length === 1 ? idx[0] : idx; +}; -function float2rat(v) { - var result = new Array(v.length) - for(var i=0; i 1) { + palette = palette.slice(); -var rat = _dereq_('big-rat') -var mul = _dereq_('big-rat/mul') + for (var i = palette.length * .25 % maxColors; i < requiredHeight * maxColors; i++) { + palette.push(0, 0, 0, 0); + } + } // ensure height -module.exports = muls -function muls(a, x) { - var s = rat(x) - var n = a.length - var r = new Array(n) - for(var i=0; i 0) { - var f = cells[ptr-1] - if(compareCell(c, f) === 0 && - orientation(f) !== o) { - ptr -= 1 - continue - } - } - cells[ptr++] = c - } - cells.length = ptr - return cells -} +module.exports = reglScatter2d; -},{"cell-orientation":117,"compare-cell":133,"compare-oriented-cell":134}],534:[function(_dereq_,module,exports){ +},{"@plotly/point-cluster":59,"array-bounds":72,"color-id":125,"color-normalize":127,"flatten-vertex-data":244,"glslify":438,"is-iexplorer":450,"object-assign":484,"parse-rect":489,"pick-by-alias":495,"to-float32":593,"update-diff":615}],533:[function(_dereq_,module,exports){ 'use strict' -var getBounds = _dereq_('array-bounds') -var rgba = _dereq_('color-normalize') -var updateDiff = _dereq_('update-diff') + +var createScatter = _dereq_('regl-scatter2d') var pick = _dereq_('pick-by-alias') -var extend = _dereq_('object-assign') +var getBounds = _dereq_('array-bounds') +var raf = _dereq_('raf') +var arrRange = _dereq_('array-range') +var rect = _dereq_('parse-rect') var flatten = _dereq_('flatten-vertex-data') -var ref = _dereq_('to-float32'); -var float32 = ref.float32; -var fract32 = ref.fract32; -module.exports = Error2D - -var WEIGHTS = [ - //direction, lineWidth shift, capSize shift - - // x-error bar - [1, 0, 0, 1, 0, 0], - [1, 0, 0, -1, 0, 0], - [-1, 0, 0, -1, 0, 0], - [-1, 0, 0, -1, 0, 0], - [-1, 0, 0, 1, 0, 0], - [1, 0, 0, 1, 0, 0], +module.exports = SPLOM - // x-error right cap - [1, 0, -1, 0, 0, 1], - [1, 0, -1, 0, 0, -1], - [1, 0, 1, 0, 0, -1], - [1, 0, 1, 0, 0, -1], - [1, 0, 1, 0, 0, 1], - [1, 0, -1, 0, 0, 1], +// @constructor +function SPLOM (regl, options) { + if (!(this instanceof SPLOM)) { return new SPLOM(regl, options) } - // x-error left cap - [-1, 0, -1, 0, 0, 1], - [-1, 0, -1, 0, 0, -1], - [-1, 0, 1, 0, 0, -1], + // render passes + this.traces = [] - [-1, 0, 1, 0, 0, -1], - [-1, 0, 1, 0, 0, 1], - [-1, 0, -1, 0, 0, 1], + // passes for scatter, combined across traces + this.passes = {} - // y-error bar - [0, 1, 1, 0, 0, 0], - [0, 1, -1, 0, 0, 0], - [0, -1, -1, 0, 0, 0], + this.regl = regl - [0, -1, -1, 0, 0, 0], - [0, 1, 1, 0, 0, 0], - [0, -1, 1, 0, 0, 0], + // main scatter drawing instance + this.scatter = createScatter(regl) - // y-error top cap - [0, 1, 0, -1, 1, 0], - [0, 1, 0, -1, -1, 0], - [0, 1, 0, 1, -1, 0], + this.canvas = this.scatter.canvas +} - [0, 1, 0, 1, 1, 0], - [0, 1, 0, -1, 1, 0], - [0, 1, 0, 1, -1, 0], - // y-error bottom cap - [0, -1, 0, -1, 1, 0], - [0, -1, 0, -1, -1, 0], - [0, -1, 0, 1, -1, 0], +// update & draw passes once per frame +SPLOM.prototype.render = function () { + var this$1 = this; + var ref; - [0, -1, 0, 1, 1, 0], - [0, -1, 0, -1, 1, 0], - [0, -1, 0, 1, -1, 0] -] + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + if (args.length) { + (ref = this).update.apply(ref, args) + } + if (this.regl.attributes.preserveDrawingBuffer) { return this.draw() } -function Error2D (regl, options) { - if (typeof regl === 'function') { - if (!options) { options = {} } - options.regl = regl + // make sure draw is not called more often than once a frame + if (this.dirty) { + if (this.planned == null) { + this.planned = raf(function () { + this$1.draw() + this$1.dirty = true + this$1.planned = null + }) + } } else { - options = regl + this.draw() + this.dirty = true + raf(function () { + this$1.dirty = false + }) } - if (options.length) { options.positions = options } - regl = options.regl - if (!regl.hasExtension('ANGLE_instanced_arrays')) { - throw Error('regl-error2d: `ANGLE_instanced_arrays` extension should be enabled'); - } + return this +} - // persistent variables - var gl = regl._gl, drawErrors, positionBuffer, positionFractBuffer, colorBuffer, errorBuffer, meshBuffer, - defaults = { - color: 'black', - capSize: 5, - lineWidth: 1, - opacity: 1, - viewport: null, - range: null, - offset: 0, - count: 0, - bounds: null, - positions: [], - errors: [] - }, groups = [] - //color per-point - colorBuffer = regl.buffer({ - usage: 'dynamic', - type: 'uint8', - data: new Uint8Array(0) - }) - //xy-position per-point - positionBuffer = regl.buffer({ - usage: 'dynamic', - type: 'float', - data: new Uint8Array(0) - }) - //xy-position float32-fraction - positionFractBuffer = regl.buffer({ - usage: 'dynamic', - type: 'float', - data: new Uint8Array(0) - }) - //4 errors per-point - errorBuffer = regl.buffer({ - usage: 'dynamic', - type: 'float', - data: new Uint8Array(0) - }) - //error bar mesh - meshBuffer = regl.buffer({ - usage: 'static', - type: 'float', - data: WEIGHTS - }) +// update passes +SPLOM.prototype.update = function () { + var ref; - update(options) + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + if (!args.length) { return } - //drawing method - drawErrors = regl({ - 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", + for (var i = 0; i < args.length; i++) { + this.updateItem(i, args[i]) + } - 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", + // remove nulled passes + this.traces = this.traces.filter(Boolean) - uniforms: { - range: regl.prop('range'), - lineWidth: regl.prop('lineWidth'), - capSize: regl.prop('capSize'), - opacity: regl.prop('opacity'), - scale: regl.prop('scale'), - translate: regl.prop('translate'), - scaleFract: regl.prop('scaleFract'), - translateFract: regl.prop('translateFract'), - viewport: function (ctx, prop) { return [prop.viewport.x, prop.viewport.y, ctx.viewportWidth, ctx.viewportHeight]; } - }, + // FIXME: update passes independently + var passes = [] + var offset = 0 + for (var i$1 = 0; i$1 < this.traces.length; i$1++) { + var trace = this.traces[i$1] + var tracePasses = this.traces[i$1].passes + for (var j = 0; j < tracePasses.length; j++) { + passes.push(this.passes[tracePasses[j]]) + } + // save offset of passes + trace.passOffset = offset + offset += trace.passes.length + } - attributes: { - //dynamic attributes - color: { - buffer: colorBuffer, - offset: function (ctx, prop) { return prop.offset * 4; }, - divisor: 1, - }, - position: { - buffer: positionBuffer, - offset: function (ctx, prop) { return prop.offset * 8; }, - divisor: 1 - }, - positionFract: { - buffer: positionFractBuffer, - offset: function (ctx, prop) { return prop.offset * 8; }, - divisor: 1 - }, - error: { - buffer: errorBuffer, - offset: function (ctx, prop) { return prop.offset * 16; }, - divisor: 1 - }, + (ref = this.scatter).update.apply(ref, passes) - //static attributes - direction: { - buffer: meshBuffer, - stride: 24, - offset: 0 - }, - lineOffset: { - buffer: meshBuffer, - stride: 24, - offset: 8 - }, - capOffset: { - buffer: meshBuffer, - stride: 24, - offset: 16 - } - }, + return this +} - primitive: 'triangles', - blend: { - enable: true, - 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' - } - }, +// update trace by index, not supposed to be called directly +SPLOM.prototype.updateItem = function (i, options) { + var ref = this; + var regl = ref.regl; - depth: { - enable: false - }, + // remove pass if null + if (options === null) { + this.traces[i] = null + return this + } - scissor: { - enable: true, - box: regl.prop('viewport') - }, - viewport: regl.prop('viewport'), - stencil: false, + if (!options) { return this } - instances: regl.prop('count'), - count: WEIGHTS.length + var o = pick(options, { + data: 'data items columns rows values dimensions samples x', + snap: 'snap cluster', + size: 'sizes size radius', + color: 'colors color fill fill-color fillColor', + opacity: 'opacity alpha transparency opaque', + borderSize: 'borderSizes borderSize border-size bordersize borderWidth borderWidths border-width borderwidth stroke-width strokeWidth strokewidth outline', + borderColor: 'borderColors borderColor bordercolor stroke stroke-color strokeColor', + marker: 'markers marker shape', + range: 'range ranges databox dataBox', + viewport: 'viewport viewBox viewbox', + domain: 'domain domains area areas', + padding: 'pad padding paddings pads margin margins', + transpose: 'transpose transposed', + diagonal: 'diagonal diag showDiagonal', + upper: 'upper up top upperhalf upperHalf showupperhalf showUpper showUpperHalf', + lower: 'lower low bottom lowerhalf lowerHalf showlowerhalf showLowerHalf showLower' }) - //expose API - extend(error2d, { - update: update, - draw: draw, - destroy: destroy, - regl: regl, - gl: gl, - canvas: gl.canvas, - groups: groups - }) + // we provide regl buffer per-trace, since trace data can be changed + var trace = (this.traces[i] || (this.traces[i] = { + id: i, + buffer: regl.buffer({ + usage: 'dynamic', + type: 'float', + data: new Uint8Array() + }), + color: 'black', + marker: null, + size: 12, + borderColor: 'transparent', + borderSize: 1, + viewport: rect([regl._gl.drawingBufferWidth, regl._gl.drawingBufferHeight]), + padding: [0, 0, 0, 0], + opacity: 1, + diagonal: true, + upper: true, + lower: true + })) - return error2d - function error2d (opts) { - //update - if (opts) { - update(opts) - } + // save styles + if (o.color != null) { + trace.color = o.color + } + if (o.size != null) { + trace.size = o.size + } + if (o.marker != null) { + trace.marker = o.marker + } + if (o.borderColor != null) { + trace.borderColor = o.borderColor + } + if (o.borderSize != null) { + trace.borderSize = o.borderSize + } + if (o.opacity != null) { + trace.opacity = o.opacity + } + if (o.viewport) { + trace.viewport = rect(o.viewport) + } + if (o.diagonal != null) { trace.diagonal = o.diagonal } + if (o.upper != null) { trace.upper = o.upper } + if (o.lower != null) { trace.lower = o.lower } - //destroy - else if (opts === null) { - destroy() + // put flattened data into buffer + if (o.data) { + trace.buffer(flatten(o.data)) + trace.columns = o.data.length + trace.count = o.data[0].length + + // detect bounds per-column + trace.bounds = [] + + for (var i$1 = 0; i$1 < trace.columns; i$1++) { + trace.bounds[i$1] = getBounds(o.data[i$1], 1) } + } - draw() + // add proper range updating markers + var multirange + if (o.range) { + trace.range = o.range + multirange = trace.range && typeof trace.range[0] !== 'number' } + if (o.domain) { + trace.domain = o.domain + } + var multipadding = false + if (o.padding != null) { + // multiple paddings + if (Array.isArray(o.padding) && o.padding.length === trace.columns && typeof o.padding[o.padding.length - 1] === 'number') { + trace.padding = o.padding.map(getPad) + multipadding = true + } + // single padding + else { + trace.padding = getPad(o.padding) + } + } - //main draw method - function draw (options) { - if (typeof options === 'number') { return drawGroup(options) } + // create passes + var m = trace.columns + var n = trace.count - //make options a batch - if (options && !Array.isArray(options)) { options = [options] } + var w = trace.viewport.width + var h = trace.viewport.height + var left = trace.viewport.x + var top = trace.viewport.y + var iw = w / m + var ih = h / m + trace.passes = [] - regl._refresh() + for (var i$2 = 0; i$2 < m; i$2++) { + for (var j = 0; j < m; j++) { + if (!trace.diagonal && j === i$2) { continue } + if (!trace.upper && i$2 > j) { continue } + if (!trace.lower && i$2 < j) { continue } - //render multiple polylines via regl batch - groups.forEach(function (s, i) { - if (!s) { return } + var key = passId(trace.id, i$2, j) - if (options) { - if (!options[i]) { s.draw = false } - else { s.draw = true } + var pass = this.passes[key] || (this.passes[key] = {}) + + if (o.data) { + if (o.transpose) { + pass.positions = { + x: {buffer: trace.buffer, offset: j, count: n, stride: m}, + y: {buffer: trace.buffer, offset: i$2, count: n, stride: m} + } + } + else { + pass.positions = { + x: {buffer: trace.buffer, offset: j * n, count: n}, + y: {buffer: trace.buffer, offset: i$2 * n, count: n} + } + } + + pass.bounds = getBox(trace.bounds, i$2, j) } - //ignore draw flag for one pass - if (!s.draw) { - s.draw = true; - return + if (o.domain || o.viewport || o.data) { + var pad = multipadding ? getBox(trace.padding, i$2, j) : trace.padding + if (trace.domain) { + var ref$1 = getBox(trace.domain, i$2, j); + var lox = ref$1[0]; + var loy = ref$1[1]; + var hix = ref$1[2]; + var hiy = ref$1[3]; + + pass.viewport = [ + left + lox * w + pad[0], + top + loy * h + pad[1], + left + hix * w - pad[2], + top + hiy * h - pad[3] + ] + } + // consider auto-domain equipartial + else { + pass.viewport = [ + left + j * iw + iw * pad[0], + top + i$2 * ih + ih * pad[1], + left + (j + 1) * iw - iw * pad[2], + top + (i$2 + 1) * ih - ih * pad[3] + ] + } } - drawGroup(i) - }) + if (o.color) { pass.color = trace.color } + if (o.size) { pass.size = trace.size } + if (o.marker) { pass.marker = trace.marker } + if (o.borderSize) { pass.borderSize = trace.borderSize } + if (o.borderColor) { pass.borderColor = trace.borderColor } + if (o.opacity) { pass.opacity = trace.opacity } + + if (o.range) { + pass.range = multirange ? getBox(trace.range, i$2, j) : trace.range || pass.bounds + } + + trace.passes.push(key) + } + } + + return this +} + + +// draw all or passed passes +SPLOM.prototype.draw = function () { + var ref$2; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + if (!args.length) { + this.scatter.draw() + } + else { + var idx = [] + for (var i = 0; i < args.length; i++) { + // draw(0, 2, 5) - draw traces + if (typeof args[i] === 'number' ) { + var ref = this.traces[args[i]]; + var passes = ref.passes; + var passOffset = ref.passOffset; + idx.push.apply(idx, arrRange(passOffset, passOffset + passes.length)) + } + // draw([0, 1, 2 ...], [3, 4, 5]) - draw points + else if (args[i].length) { + var els = args[i] + var ref$1 = this.traces[i]; + var passes$1 = ref$1.passes; + var passOffset$1 = ref$1.passOffset; + passes$1 = passes$1.map(function (passId, i) { + idx[passOffset$1 + i] = els + }) + } + } + (ref$2 = this.scatter).draw.apply(ref$2, idx) } - //draw single error group by id - function drawGroup (s) { - if (typeof s === 'number') { s = groups[s] } - if (s == null) { return } + return this +} + + +// dispose resources +SPLOM.prototype.destroy = function () { + this.traces.forEach(function (trace) { + if (trace.buffer && trace.buffer.destroy) { trace.buffer.destroy() } + }) + this.traces = null + this.passes = null + + this.scatter.destroy() - if (!(s && s.count && s.color && s.opacity && s.positions && s.positions.length > 1)) { return } + return this +} - s.scaleRatio = [ - s.scale[0] * s.viewport.width, - s.scale[1] * s.viewport.height - ] - drawErrors(s) +// return pass corresponding to trace i- j- square +function passId (trace, i, j) { + var id = (trace.id != null ? trace.id : trace) + var n = i + var m = j + var key = id << 16 | (n & 0xff) << 8 | m & 0xff - if (s.after) { s.after(s) } - } + return key +} - function update (options) { - if (!options) { return } - //direct points argument - if (options.length != null) { - if (typeof options[0] === 'number') { options = [{positions: options}] } - } +// return bounding box corresponding to a pass +function getBox (items, i, j) { + var ilox, iloy, ihix, ihiy, jlox, jloy, jhix, jhiy + var iitem = items[i], jitem = items[j] - //make options a batch - else if (!Array.isArray(options)) { options = [options] } + if (iitem.length > 2) { + ilox = iitem[0] + ihix = iitem[2] + iloy = iitem[1] + ihiy = iitem[3] + } + else if (iitem.length) { + ilox = iloy = iitem[0] + ihix = ihiy = iitem[1] + } + else { + ilox = iitem.x + iloy = iitem.y + ihix = iitem.x + iitem.width + ihiy = iitem.y + iitem.height + } - //global count of points - var pointCount = 0, errorCount = 0 + if (jitem.length > 2) { + jlox = jitem[0] + jhix = jitem[2] + jloy = jitem[1] + jhiy = jitem[3] + } + else if (jitem.length) { + jlox = jloy = jitem[0] + jhix = jhiy = jitem[1] + } + else { + jlox = jitem.x + jloy = jitem.y + jhix = jitem.x + jitem.width + jhiy = jitem.y + jitem.height + } - error2d.groups = groups = options.map(function (options, i) { - var group = groups[i] + return [ jlox, iloy, jhix, ihiy ] +} - if (!options) { return group } - else if (typeof options === 'function') { options = {after: options} } - else if (typeof options[0] === 'number') { options = {positions: options} } - //copy options to avoid mutation & handle aliases - options = pick(options, { - 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' - }) +function getPad (arg) { + if (typeof arg === 'number') { return [arg, arg, arg, arg] } + else if (arg.length === 2) { return [arg[0], arg[1], arg[0], arg[1]] } + else { + var box = rect(arg) + return [box.x, box.y, box.x + box.width, box.y + box.height] + } +} - if (!group) { - groups[i] = group = { - id: i, - scale: null, - translate: null, - scaleFract: null, - translateFract: null, - draw: true - } - options = extend({}, defaults, options) - } +},{"array-bounds":72,"array-range":75,"flatten-vertex-data":244,"parse-rect":489,"pick-by-alias":495,"raf":524,"regl-scatter2d":532}],534:[function(_dereq_,module,exports){ +(function(ja,N){"object"===typeof exports&&"undefined"!==typeof module?module.exports=N():"function"===typeof define&&define.amd?define(N):ja.createREGL=N()})(this,function(){function ja(a,b){this.id=Bb++;this.type=a;this.data=b}function N(a){if(0===a.length)return[];var b=a.charAt(0),c=a.charAt(a.length-1);if(1>>=b;c=(255>>=c;b|=c;c=(15>>=c;b|=c;c=(3>>c>>1}function fb(){function a(a){a:{for(var b=16;268435456>=b;b*=16)if(a<=b){a=b;break a}a=0}b=c[eb(a)>>2];return 0>2].push(a)}var c=A(8,function(){return[]});return{alloc:a,free:b,allocType:function(b,c){var d=null;switch(b){case 5120:d= +new Int8Array(a(c),0,c);break;case 5121:d=new Uint8Array(a(c),0,c);break;case 5122:d=new Int16Array(a(2*c),0,c);break;case 5123:d=new Uint16Array(a(2*c),0,c);break;case 5124:d=new Int32Array(a(4*c),0,c);break;case 5125:d=new Uint32Array(a(4*c),0,c);break;case 5126:d=new Float32Array(a(4*c),0,c);break;default:return null}return d.length!==c?d.subarray(0,c):d},freeType:function(a){b(a.buffer)}}}function X(a){return!!a&&"object"===typeof a&&Array.isArray(a.shape)&&Array.isArray(a.stride)&&"number"=== +typeof a.offset&&a.shape.length===a.stride.length&&(Array.isArray(a.data)||G(a.data))}function gb(a,b,c,e,g,d){for(var r=0;re&&(e=d.buffer.byteLength,5123===v?e>>=1:5125===v&&(e>>=2));d.vertCount=e;e= +h;0>h&&(e=4,h=d.buffer.dimension,1===h&&(e=0),2===h&&(e=1),3===h&&(e=4));d.primType=e}function r(a){e.elementsCount--;delete n[a.id];a.buffer.destroy();a.buffer=null}var n={},u=0,q={uint8:5121,uint16:5123};b.oes_element_index_uint&&(q.uint32=5125);g.prototype.bind=function(){this.buffer.bind()};var t=[];return{create:function(a,b){function k(a){if(a)if("number"===typeof a)h(a),f.primType=4,f.vertCount=a|0,f.type=5121;else{var b=null,c=35044,e=-1,g=-1,m=0,n=0;if(Array.isArray(a)||G(a)||X(a))b=a;else if("data"in +a&&(b=a.data),"usage"in a&&(c=lb[a.usage]),"primitive"in a&&(e=Sa[a.primitive]),"count"in a&&(g=a.count|0),"type"in a&&(n=q[a.type]),"length"in a)m=a.length|0;else if(m=g,5123===n||5122===n)m*=2;else if(5125===n||5124===n)m*=4;d(f,b,c,e,g,m,n)}else h(),f.primType=4,f.vertCount=0,f.type=5121;return k}var h=c.create(null,34963,!0),f=new g(h._buffer);e.elementsCount++;k(a);k._reglType="elements";k._elements=f;k.subdata=function(a,b){h.subdata(a,b);return k};k.destroy=function(){r(f)};return k},createStream:function(a){var b= +t.pop();b||(b=new g(c.create(null,34963,!0,!1)._buffer));d(b,a,35040,-1,-1,0,0);return b},destroyStream:function(a){t.push(a)},getElements:function(a){return"function"===typeof a&&a._elements instanceof g?a._elements:null},clear:function(){J(n).forEach(r)}}}function nb(a){for(var b=z.allocType(5123,a.length),c=0;c>>31<<15,d=(e<<1>>>24)-127,e=e>>13&1023;b[c]= +-24>d?g:-14>d?g+(e+1024>>-14-d):15>=d,c.height>>=d,F(c,f[d]),a.mipmask|=1<b;++b)a.images[b]=null;return a}function va(a){for(var b=a.images,c=0;cb){for(var c=0;c=--this.refCount&&D(this)}});r.profile&&(d.getTotalTextureSize= +function(){var a=0;Object.keys(E).forEach(function(b){a+=E[b].stats.size});return a});return{create2D:function(b,c){function e(a,b){var c=g.texInfo;ea.call(c);var f=C();"number"===typeof a?"number"===typeof b?l(f,a|0,b|0):l(f,a|0,a|0):a?(mb(c,a),v(f,a)):l(f,1,1);c.genMipmaps&&(f.mipmask=(f.width<<1)-1);g.mipmask=f.mipmask;u(g,f);g.internalformat=f.internalformat;e.width=f.width;e.height=f.height;sa(g);Q(f,3553);Ra(c,3553);za();va(f);r.profile&&(g.stats.size=Ia(g.internalformat,g.type,f.width,f.height, +c.genMipmaps,!1));e.format=aa[g.internalformat];e.type=xa[g.type];e.mag=ba[c.magFilter];e.min=Da[c.minFilter];e.wrapS=fa[c.wrapS];e.wrapT=fa[c.wrapT];return e}var g=new R(3553);E[g.id]=g;d.textureCount++;e(b,c);e.subimage=function(a,b,c,d){b|=0;c|=0;d|=0;var l=h();u(l,g);l.width=0;l.height=0;F(l,a);l.width=l.width||(g.width>>d)-b;l.height=l.height||(g.height>>d)-c;sa(g);k(l,3553,b,c,d);za();f(l);return e};e.resize=function(b,c){var f=b|0,d=c|0||f;if(f===g.width&&d===g.height)return e;e.width=g.width= +f;e.height=g.height=d;sa(g);for(var h=0;g.mipmask>>h;++h){var l=f>>h,y=d>>h;if(!l||!y)break;a.texImage2D(3553,h,g.format,l,y,0,g.format,g.type,null)}za();r.profile&&(g.stats.size=Ia(g.internalformat,g.type,f,d,!1,!1));return e};e._reglType="texture2d";e._texture=g;r.profile&&(e.stats=g.stats);e.destroy=function(){g.decRef()};return e},createCube:function(b,c,e,g,p,n){function m(a,b,c,f,d,e){var h,ma=x.texInfo;ea.call(ma);for(h=0;6>h;++h)D[h]=C();if("number"===typeof a||!a)for(a=a|0||1,h=0;6>h;++h)l(D[h], +a,a);else if("object"===typeof a)if(b)v(D[0],a),v(D[1],b),v(D[2],c),v(D[3],f),v(D[4],d),v(D[5],e);else if(mb(ma,a),q(x,a),"faces"in a)for(a=a.faces,h=0;6>h;++h)u(D[h],x),v(D[h],a[h]);else for(h=0;6>h;++h)v(D[h],a);u(x,D[0]);x.mipmask=ma.genMipmaps?(D[0].width<<1)-1:D[0].mipmask;x.internalformat=D[0].internalformat;m.width=D[0].width;m.height=D[0].height;sa(x);for(h=0;6>h;++h)Q(D[h],34069+h);Ra(ma,34067);za();r.profile&&(x.stats.size=Ia(x.internalformat,x.type,m.width,m.height,ma.genMipmaps,!0));m.format= +aa[x.internalformat];m.type=xa[x.type];m.mag=ba[ma.magFilter];m.min=Da[ma.minFilter];m.wrapS=fa[ma.wrapS];m.wrapT=fa[ma.wrapT];for(h=0;6>h;++h)va(D[h]);return m}var x=new R(34067);E[x.id]=x;d.cubeCount++;var D=Array(6);m(b,c,e,g,p,n);m.subimage=function(a,b,c,d,e){c|=0;d|=0;e|=0;var g=h();u(g,x);g.width=0;g.height=0;F(g,b);g.width=g.width||(x.width>>e)-c;g.height=g.height||(x.height>>e)-d;sa(x);k(g,34069+a,c,d,e);za();f(g);return m};m.resize=function(b){b|=0;if(b!==x.width){m.width=x.width=b;m.height= +x.height=b;sa(x);for(var c=0;6>c;++c)for(var f=0;x.mipmask>>f;++f)a.texImage2D(34069+c,f,x.format,b>>f,b>>f,0,x.format,x.type,null);za();r.profile&&(x.stats.size=Ia(x.internalformat,x.type,m.width,m.height,!1,!0));return m}};m._reglType="textureCube";m._texture=x;r.profile&&(m.stats=x.stats);m.destroy=function(){x.decRef()};return m},clear:function(){for(var b=0;bc;++c)if(0!==(b.mipmask&1<>c,b.height>>c,0,b.internalformat,b.type,null);else for(var f=0;6>f;++f)a.texImage2D(34069+f,c,b.internalformat,b.width>>c,b.height>>c,0,b.internalformat,b.type,null);Ra(b.texInfo,b.target)})}}}function Ob(a,b,c,e, +g,d){function r(a,b,c){this.target=a;this.texture=b;this.renderbuffer=c;var f=a=0;b?(a=b.width,f=b.height):c&&(a=c.width,f=c.height);this.width=a;this.height=f}function n(a){a&&(a.texture&&a.texture._texture.decRef(),a.renderbuffer&&a.renderbuffer._renderbuffer.decRef())}function u(a,b,c){a&&(a.texture?a.texture._texture.refCount+=1:a.renderbuffer._renderbuffer.refCount+=1)}function q(b,c){c&&(c.texture?a.framebufferTexture2D(36160,b,c.target,c.texture._texture.texture,0):a.framebufferRenderbuffer(36160, +b,36161,c.renderbuffer._renderbuffer.renderbuffer))}function t(a){var b=3553,c=null,f=null,d=a;"object"===typeof a&&(d=a.data,"target"in a&&(b=a.target|0));a=d._reglType;"texture2d"===a?c=d:"textureCube"===a?c=d:"renderbuffer"===a&&(f=d,b=36161);return new r(b,c,f)}function m(a,b,c,f,d){if(c)return a=e.create2D({width:a,height:b,format:f,type:d}),a._texture.refCount=0,new r(3553,a,null);a=g.create({width:a,height:b,format:f});a._renderbuffer.refCount=0;return new r(36161,null,a)}function F(a){return a&& +(a.texture||a.renderbuffer)}function k(a,b,c){a&&(a.texture?a.texture.resize(b,c):a.renderbuffer&&a.renderbuffer.resize(b,c),a.width=b,a.height=c)}function h(){this.id=z++;w[this.id]=this;this.framebuffer=a.createFramebuffer();this.height=this.width=0;this.colorAttachments=[];this.depthStencilAttachment=this.stencilAttachment=this.depthAttachment=null}function f(a){a.colorAttachments.forEach(n);n(a.depthAttachment);n(a.stencilAttachment);n(a.depthStencilAttachment)}function p(b){a.deleteFramebuffer(b.framebuffer); +b.framebuffer=null;d.framebufferCount--;delete w[b.id]}function l(b){var f;a.bindFramebuffer(36160,b.framebuffer);var d=b.colorAttachments;for(f=0;ff;++f){for(l=0;la;++a)c[a].resize(f);b.width=b.height=f;return b},_reglType:"framebufferCube",destroy:function(){c.forEach(function(a){a.destroy()})}})},clear:function(){J(w).forEach(p)},restore:function(){Q.cur=null;Q.next=null;Q.dirty=!0;J(w).forEach(function(b){b.framebuffer=a.createFramebuffer();l(b)})}})}function Ya(){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 Pb(a,b,c,e,g){function d(a){if(a!==h.currentVAO){var c= +b.oes_vertex_array_object;a?c.bindVertexArrayOES(a.vao):c.bindVertexArrayOES(null);h.currentVAO=a}}function r(c){if(c!==h.currentVAO){if(c)c.bindAttrs();else for(var d=b.angle_instanced_arrays,e=0;ea&&(a=b.stats.uniformsCount)});return a},c.getMaxAttributesCount=function(){var a=0;F.forEach(function(b){b.stats.attributesCount>a&&(a=b.stats.attributesCount)});return a}); +return{clear:function(){var b=a.deleteShader.bind(a);J(q).forEach(b);q={};J(t).forEach(b);t={};F.forEach(function(b){a.deleteProgram(b.program)});F.length=0;m={};c.shaderCount=0},program:function(a,b,d,e){var g=m[b];g||(g=m[b]={});var k=g[a];if(k&&!e)return k;b=new n(b,a);c.shaderCount++;u(b,d,e);k||(g[a]=b);F.push(b);return b},restore:function(){q={};t={};for(var a=0;a"+b+"?"+e+".constant["+b+"]:0;"}).join(""),"}}else{","if(",h,"(",e,".buffer)){",k,"=",f,".createStream(",34962,",",e,".buffer);","}else{",k,"=",f,".getBuffer(",e,".buffer);","}",U,'="type" in ',e,"?",g.glTypes,"[",e,".type]:",k,".dtype;", +y.normalized,"=!!",e,".normalized;");d("size");d("offset");d("stride");d("divisor");c("}}");c.exit("if(",y.isStream,"){",f,".destroyStream(",k,");","}");return y})});return f}function D(a,b){var c=a["static"],d=a.dynamic;if("vao"in c){var e=c.vao;null!==e&&null===q.getVAO(e)&&(e=q.createVAO(e));return C(function(a){return a.link(q.getVAO(e))})}if("vao"in d){var f=d.vao;return L(f,function(a,b){var c=a.invoke(b,f);return b.def(a.shared.vao+".getVAO("+c+")")})}return null}function x(a){var b=a["static"], +c=a.dynamic,d={};Object.keys(b).forEach(function(a){var c=b[a];d[a]=C(function(a,b){return"number"===typeof c||"boolean"===typeof c?""+c:a.link(c)})});Object.keys(c).forEach(function(a){var b=c[a];d[a]=L(b,function(a,c){return a.invoke(c,b)})});return d}function la(a,b,d,e,g){function h(a){var b=n[a];b&&(Za[a]=b)}var k=H(a,b),m=z(a,g),n=w(a,m,g),l=G(a,g),Za=R(a,g),p=E(a,g,k);h("viewport");h(f("scissor.box"));var r=0>1)",t],");")}function b(){c(v,".drawArraysInstancedANGLE(",[p,q,r,t],");")}n?ba?a():(c("if(",n,"){"),a(),c("}else{"),b(),c("}")):b()}function g(){function a(){c(k+".drawElements("+[p,r,u,q+"<<(("+u+"-5121)>>1)"]+");")}function b(){c(k+".drawArrays("+[p,q,r]+");")}n?ba?a():(c("if(",n,"){"),a(),c("}else{"),b(),c("}")):b()}var h=a.shared,k=h.gl,m=h.draw,l=d.draw, +n=function(){var e=l.elements,f=b;if(e){if(e.contextDep&&d.contextDynamic||e.propDep)f=c;e=e.append(a,f)}else e=f.def(m,".","elements");e&&f("if("+e+")"+k+".bindBuffer(34963,"+e+".buffer.buffer);");return e}(),p=e("primitive"),q=e("offset"),r=function(){var e=l.count,f=b;if(e){if(e.contextDep&&d.contextDynamic||e.propDep)f=c;e=e.append(a,f)}else e=f.def(m,".","count");return e}();if("number"===typeof r){if(0===r)return}else c("if(",r,"){"),c.exit("}");var t,v;oa&&(t=e("instances"),v=a.instancing); +var u=n+".type",ba=l.elements&&ua(l.elements);oa&&("number"!==typeof t||0<=t)?"string"===typeof t?(c("if(",t,">0){"),f(),c("}else if(",t,"<0){"),g(),c("}")):f():g()}function xa(a,b,c,d,e){b=v();e=b.proc("body",e);oa&&(b.instancing=e.def(b.shared.extensions,".angle_instanced_arrays"));a(b,e,c,d);return b.compile().body}function ba(a,b,c,d){B(a,b);c.useVAO?c.drawVAO?b(a.shared.vao,".setVAO(",c.drawVAO.append(a,b),");"):b(a.shared.vao,".setVAO(",a.shared.vao,".targetVAO);"):(b(a.shared.vao,".setVAO(null);"), +N(a,b,c,d.attributes,function(){return!0}));wa(a,b,c,d.uniforms,function(){return!0});aa(a,b,b,c)}function Da(a,b){var c=a.proc("draw",1);B(a,c);T(a,c,b.context);O(a,c,b.framebuffer);S(a,c,b);K(a,c,b.state);V(a,c,b,!1,!0);var d=b.shader.progVar.append(a,c);c(a.shared.gl,".useProgram(",d,".program);");if(b.shader.program)ba(a,c,b,b.shader.program);else{c(a.shared.vao,".setVAO(null);");var e=a.global.def("{}"),f=c.def(d,".id"),g=c.def(e,"[",f,"]");c(a.cond(g).then(g,".call(this,a0);")["else"](g,"=", +e,"[",f,"]=",a.link(function(c){return xa(ba,a,b,c,1)}),"(",d,");",g,".call(this,a0);"))}0=--this.refCount&&r(this)};g.profile&&(e.getTotalRenderbufferSize=function(){var a=0;Object.keys(t).forEach(function(b){a+= +t[b].stats.size});return a});return{create:function(b,c){function k(b,c){var d=0,e=0,m=32854;"object"===typeof b&&b?("shape"in b?(e=b.shape,d=e[0]|0,e=e[1]|0):("radius"in b&&(d=e=b.radius|0),"width"in b&&(d=b.width|0),"height"in b&&(e=b.height|0)),"format"in b&&(m=n[b.format])):"number"===typeof b?(d=b|0,e="number"===typeof c?c|0:d):b||(d=e=1);if(d!==h.width||e!==h.height||m!==h.format)return k.width=h.width=d,k.height=h.height=e,h.format=m,a.bindRenderbuffer(36161,h.renderbuffer),a.renderbufferStorage(36161, +m,d,e),g.profile&&(h.stats.size=E[h.format]*h.width*h.height),k.format=u[h.format],k}var h=new d(a.createRenderbuffer());t[h.id]=h;e.renderbufferCount++;k(b,c);k.resize=function(b,c){var d=b|0,e=c|0||d;if(d===h.width&&e===h.height)return k;k.width=h.width=d;k.height=h.height=e;a.bindRenderbuffer(36161,h.renderbuffer);a.renderbufferStorage(36161,h.format,d,e);g.profile&&(h.stats.size=E[h.format]*h.width*h.height);return k};k._reglType="renderbuffer";k._renderbuffer=h;g.profile&&(k.stats=h.stats);k.destroy= +function(){h.decRef()};return k},clear:function(){J(t).forEach(r)},restore:function(){J(t).forEach(function(b){b.renderbuffer=a.createRenderbuffer();a.bindRenderbuffer(36161,b.renderbuffer);a.renderbufferStorage(36161,b.format,b.width,b.height)});a.bindRenderbuffer(36161,null)}}},Xa=[];Xa[6408]=4;Xa[6407]=3;var Na=[];Na[5121]=1;Na[5126]=4;Na[36193]=2;var Ba=["x","y","z","w"],Ub="blend.func blend.equation stencil.func stencil.opFront stencil.opBack sample.coverage viewport scissor.box polygonOffset.offset".split(" "), +Ea={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},$a={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}, +Pa={0:0,zero:0,keep:7680,replace:7681,increment:7682,decrement:7683,"increment wrap":34055,"decrement wrap":34056,invert:5386},xb={cw:2304,ccw:2305},yb=new P(!1,!1,!1,function(){}),Xb=function(a,b){function c(){this.endQueryIndex=this.startQueryIndex=-1;this.sum=0;this.stats=null}function e(a,b,d){var e=r.pop()||new c;e.startQueryIndex=a;e.endQueryIndex=b;e.sum=0;e.stats=d;n.push(e)}if(!b.ext_disjoint_timer_query)return null;var g=[],d=[],r=[],n=[],u=[],q=[];return{beginQuery:function(a){var c=g.pop()|| +b.ext_disjoint_timer_query.createQueryEXT();b.ext_disjoint_timer_query.beginQueryEXT(35007,c);d.push(c);e(d.length-1,d.length,a)},endQuery:function(){b.ext_disjoint_timer_query.endQueryEXT(35007)},pushScopeStats:e,update:function(){var a,c;a=d.length;if(0!==a){q.length=Math.max(q.length,a+1);u.length=Math.max(u.length,a+1);u[0]=0;var e=q[0]=0;for(c=a=0;c=B.length&&e()}var c=zb(B,a);B[c]=b}}}function q(){var a=S.viewport,b=S.scissor_box;a[0]=a[1]=b[0]=b[1]=0;A.viewportWidth=A.framebufferWidth=A.drawingBufferWidth=a[2]=b[2]=k.drawingBufferWidth;A.viewportHeight=A.framebufferHeight=A.drawingBufferHeight=a[3]=b[3]=k.drawingBufferHeight}function t(){A.tick+=1;A.time=z();q();O.procs.poll()}function m(){q();O.procs.refresh();w&&w.update()}function z(){return(Ab()-C)/1E3}a=Fb(a);if(!a)return null;var k=a.gl,h=k.getContextAttributes();k.isContextLost(); +var f=Gb(k,a);if(!f)return null;var p=Cb(),l={vaoCount:0,bufferCount:0,elementsCount:0,framebufferCount:0,shaderCount:0,textureCount:0,cubeCount:0,renderbufferCount:0,maxTextureUnits:0},v=f.extensions,w=Xb(k,v),C=Ab(),E=k.drawingBufferWidth,L=k.drawingBufferHeight,A={tick:0,time:0,viewportWidth:E,viewportHeight:L,framebufferWidth:E,framebufferHeight:L,drawingBufferWidth:E,drawingBufferHeight:L,pixelRatio:a.pixelRatio},G=Vb(k,v),R=Hb(k,l,a,function(a){return J.destroyBuffer(a)}),J=Pb(k,v,G,l,R),P= +Ib(k,v,R,l),D=Qb(k,p,l,a),x=Lb(k,v,G,function(){O.procs.poll()},A,l,a),N=Wb(k,v,G,l,a),T=Ob(k,v,G,x,N,l),O=Tb(k,p,v,G,R,P,x,T,{},J,D,{elements:null,primitive:4,count:-1,offset:0,instances:-1},A,w,a),p=Rb(k,T,O.procs.poll,A,h,v,G),S=O.next,K=k.canvas,B=[],V=[],X=[],Y=[a.onDestroy],aa=null;K&&(K.addEventListener("webglcontextlost",g,!1),K.addEventListener("webglcontextrestored",d,!1));var Z=T.setFBO=r({framebuffer:ga.define.call(null,1,"framebuffer")});m();h=H(r,{clear:function(a){if("framebuffer"in +a)if(a.framebuffer&&"framebufferCube"===a.framebuffer_reglType)for(var b=0;6>b;++b)Z(H({framebuffer:a.framebuffer.faces[b]},a),n);else Z(a,n);else n(null,a)},prop:ga.define.bind(null,1),context:ga.define.bind(null,2),"this":ga.define.bind(null,3),draw:r({}),buffer:function(a){return R.create(a,34962,!1,!1)},elements:function(a){return P.create(a,!1)},texture:x.create2D,cube:x.createCube,renderbuffer:N.create,framebuffer:T.create,framebufferCube:T.createCube,vao:J.createVAO,attributes:h,frame:u,on:function(a, +b){var c;switch(a){case "frame":return u(b);case "lost":c=V;break;case "restore":c=X;break;case "destroy":c=Y}c.push(b);return{cancel:function(){for(var a=0;a + * + * Copyright (c) 2014-2015, Jon Schlinkert. + * Licensed under the MIT License. + */ - errorCount += errors.length - return errors - }, - positions: function (positions, state) { - positions = flatten(positions, 'float64') - state.count = Math.floor(positions.length / 2) - state.bounds = getBounds(positions, 2) - state.offset = pointCount +'use strict'; - pointCount += state.count +/** + * Results cache + */ - return positions - } - }, { - color: function (colors, state) { - var count = state.count +var res = ''; +var cache; - if (!colors) { colors = 'transparent' } +/** + * Expose `repeat` + */ - // 'black' or [0,0,0,0] case - if (!Array.isArray(colors) || typeof colors[0] === 'number') { - var color = colors - colors = Array(count) - for (var i = 0; i < count; i++) { - colors[i] = color - } - } +module.exports = repeat; - if (colors.length < count) { throw Error('Not enough colors') } +/** + * Repeat the given `string` the specified `number` + * of times. + * + * **Example:** + * + * ```js + * var repeat = require('repeat-string'); + * repeat('A', 5); + * //=> AAAAA + * ``` + * + * @param {String} `string` The string to repeat + * @param {Number} `number` The number of times to repeat the string + * @return {String} Repeated string + * @api public + */ - var colorData = new Uint8Array(count * 4) +function repeat(str, num) { + if (typeof str !== 'string') { + throw new TypeError('expected a string'); + } - //convert colors to float arrays - for (var i$1 = 0; i$1 < count; i$1++) { - var c = rgba(colors[i$1], 'uint8') - colorData.set(c, i$1 * 4) - } + // cover common, quick use cases + if (num === 1) return str; + if (num === 2) return str + str; - return colorData - }, + var max = str.length * num; + if (cache !== str || typeof cache === 'undefined') { + cache = str; + res = ''; + } else if (res.length >= max) { + return res.substr(0, max); + } - range: function (range, state, options) { - var bounds = state.bounds - if (!range) { range = bounds } + while (max > res.length && num > 1) { + if (num & 1) { + res += str; + } - state.scale = [1 / (range[2] - range[0]), 1 / (range[3] - range[1])] - state.translate = [-range[0], -range[1]] + num >>= 1; + str += str; + } - state.scaleFract = fract32(state.scale) - state.translateFract = fract32(state.translate) + res += str; + res = res.substr(0, max); + return res; +} - return range - }, +},{}],536:[function(_dereq_,module,exports){ +(function (global){(function (){ +module.exports = + global.performance && + global.performance.now ? function now() { + return performance.now() + } : Date.now || function now() { + return +new Date + } - viewport: function (vp) { - var viewport +}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{}],537:[function(_dereq_,module,exports){ +"use strict" - if (Array.isArray(vp)) { - viewport = { - x: vp[0], - y: vp[1], - width: vp[2] - vp[0], - height: vp[3] - vp[1] - } - } - else if (vp) { - viewport = { - x: vp.x || vp.left || 0, - y: vp.y || vp.top || 0 - } +module.exports = compressExpansion - if (vp.right) { viewport.width = vp.right - viewport.x } - else { viewport.width = vp.w || vp.width || 0 } +function compressExpansion(e) { + var m = e.length + var Q = e[e.length-1] + var bottom = m + for(var i=m-2; i>=0; --i) { + var a = Q + var b = e[i] + Q = a + b + var bv = Q - a + var q = b - bv + if(q) { + e[--bottom] = Q + Q = q + } + } + var top = 0 + for(var i=bottom; i>1 + return ["sum(", generateSum(expr.slice(0, m)), ",", generateSum(expr.slice(m)), ")"].join("") + } +} - colorData.set(color, offset * 4) - errorData.set(errors, offset * 4) - positionData.set(positions, offset * 2) - }) +function determinant(m) { + if(m.length === 2) { + return ["sum(prod(", m[0][0], ",", m[1][1], "),prod(-", m[0][1], ",", m[1][0], "))"].join("") + } else { + var expr = [] + for(var i=0; i>1 + return ["sum(", generateSum(expr.slice(0, m)), ",", generateSum(expr.slice(m)), ")"].join("") + } +} - // list of options for lines - this.passes = [] +function makeProduct(a, b) { + if(a.charAt(0) === "m") { + if(b.charAt(0) === "w") { + var toks = a.split("[") + return ["w", b.substr(1), "m", toks[0].substr(1)].join("") + } else { + return ["prod(", a, ",", b, ")"].join("") + } + } else { + return makeProduct(b, a) + } +} - // cached shaders instance - this.shaders = Line2D.shaders.has(regl) ? Line2D.shaders.get(regl) : Line2D.shaders.set(regl, Line2D.createShaders(regl)).get(regl) +function sign(s) { + if(s & 1 !== 0) { + return "-" + } + return "" +} +function determinant(m) { + if(m.length === 2) { + return [["diff(", makeProduct(m[0][0], m[1][1]), ",", makeProduct(m[1][0], m[0][1]), ")"].join("")] + } else { + var expr = [] + for(var i=0; i 0) { + code.push(",") + } + code.push("[") + for(var k=0; k 0) { + code.push(",") + } + if(k === i) { + code.push("+b[", j, "]") + } else { + code.push("+A[", j, "][", k, "]") + } + } + code.push("]") + } + code.push("]),") + } + code.push("det(A)]}return ", funcName) + var proc = new Function("det", code.join("")) + if(n < 6) { + return proc(determinant[n]) + } + return proc(determinant) +} - attributes: { - // if point is at the end of segment - lineEnd: { - buffer: offsetBuffer, - divisor: 0, - stride: 8, - offset: 0 - }, - // if point is at the top of segment - lineTop: { - buffer: offsetBuffer, - divisor: 0, - stride: 8, - offset: 4 - }, - // beginning of line coordinate - aCoord: { - buffer: regl.prop('positionBuffer'), - stride: 8, - offset: 8, - divisor: 1 - }, - // end of line coordinate - bCoord: { - buffer: regl.prop('positionBuffer'), - stride: 8, - offset: 16, - divisor: 1 - }, - aCoordFract: { - buffer: regl.prop('positionFractBuffer'), - stride: 8, - offset: 8, - divisor: 1 - }, - bCoordFract: { - buffer: regl.prop('positionFractBuffer'), - stride: 8, - offset: 16, - divisor: 1 - }, - color: { - buffer: regl.prop('colorBuffer'), - stride: 4, - offset: 0, - divisor: 1 - } - } - }, shaderOptions)) +function robustLinearSolve0d() { + return [ 0 ] +} - // create regl draw - var drawMiterLine +function robustLinearSolve1d(A, b) { + return [ [ b[0] ], [ A[0][0] ] ] +} - try { - drawMiterLine = regl(extend({ - // culling removes polygon creasing - cull: { - enable: true, - face: 'back' - }, +var CACHE = [ + robustLinearSolve0d, + robustLinearSolve1d +] - vert: glslify(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec2 aCoord, bCoord, nextCoord, prevCoord;\nattribute vec4 aColor, bColor;\nattribute float lineEnd, lineTop;\n\nuniform vec2 scale, translate;\nuniform float thickness, pixelRatio, id, depth;\nuniform vec4 viewport;\nuniform float miterLimit, miterMode;\n\nvarying vec4 fragColor;\nvarying vec4 startCutoff, endCutoff;\nvarying vec2 tangent;\nvarying vec2 startCoord, endCoord;\nvarying float enableStartMiter, enableEndMiter;\n\nconst float REVERSE_THRESHOLD = -.875;\nconst float MIN_DIFF = 1e-6;\n\n// TODO: possible optimizations: avoid overcalculating all for vertices and calc just one instead\n// TODO: precalculate dot products, normalize things beforehead etc.\n// TODO: refactor to rectangular algorithm\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\nbool isNaN( float val ){\n return ( val < 0.0 || 0.0 < val || val == 0.0 ) ? false : true;\n}\n\nvoid main() {\n\tvec2 aCoord = aCoord, bCoord = bCoord, prevCoord = prevCoord, nextCoord = nextCoord;\n\n vec2 adjustedScale;\n adjustedScale.x = (abs(scale.x) < MIN_DIFF) ? MIN_DIFF : scale.x;\n adjustedScale.y = (abs(scale.y) < MIN_DIFF) ? MIN_DIFF : scale.y;\n\n vec2 scaleRatio = adjustedScale * viewport.zw;\n\tvec2 normalWidth = thickness / scaleRatio;\n\n\tfloat lineStart = 1. - lineEnd;\n\tfloat lineBot = 1. - lineTop;\n\n\tfragColor = (lineStart * aColor + lineEnd * bColor) / 255.;\n\n\tif (isNaN(aCoord.x) || isNaN(aCoord.y) || isNaN(bCoord.x) || isNaN(bCoord.y)) return;\n\n\tif (aCoord == prevCoord) prevCoord = aCoord + normalize(bCoord - aCoord);\n\tif (bCoord == nextCoord) nextCoord = bCoord - normalize(bCoord - aCoord);\n\n\tvec2 prevDiff = aCoord - prevCoord;\n\tvec2 currDiff = bCoord - aCoord;\n\tvec2 nextDiff = nextCoord - bCoord;\n\n\tvec2 prevTangent = normalize(prevDiff * scaleRatio);\n\tvec2 currTangent = normalize(currDiff * scaleRatio);\n\tvec2 nextTangent = normalize(nextDiff * scaleRatio);\n\n\tvec2 prevNormal = vec2(-prevTangent.y, prevTangent.x);\n\tvec2 currNormal = vec2(-currTangent.y, currTangent.x);\n\tvec2 nextNormal = vec2(-nextTangent.y, nextTangent.x);\n\n\tvec2 startJoinDirection = normalize(prevTangent - currTangent);\n\tvec2 endJoinDirection = normalize(currTangent - nextTangent);\n\n\t// collapsed/unidirectional segment cases\n\t// FIXME: there should be more elegant solution\n\tvec2 prevTanDiff = abs(prevTangent - currTangent);\n\tvec2 nextTanDiff = abs(nextTangent - currTangent);\n\tif (max(prevTanDiff.x, prevTanDiff.y) < MIN_DIFF) {\n\t\tstartJoinDirection = currNormal;\n\t}\n\tif (max(nextTanDiff.x, nextTanDiff.y) < MIN_DIFF) {\n\t\tendJoinDirection = currNormal;\n\t}\n\tif (aCoord == bCoord) {\n\t\tendJoinDirection = startJoinDirection;\n\t\tcurrNormal = prevNormal;\n\t\tcurrTangent = prevTangent;\n\t}\n\n\ttangent = currTangent;\n\n\t//calculate join shifts relative to normals\n\tfloat startJoinShift = dot(currNormal, startJoinDirection);\n\tfloat endJoinShift = dot(currNormal, endJoinDirection);\n\n\tfloat startMiterRatio = abs(1. / startJoinShift);\n\tfloat endMiterRatio = abs(1. / endJoinShift);\n\n\tvec2 startJoin = startJoinDirection * startMiterRatio;\n\tvec2 endJoin = endJoinDirection * endMiterRatio;\n\n\tvec2 startTopJoin, startBotJoin, endTopJoin, endBotJoin;\n\tstartTopJoin = sign(startJoinShift) * startJoin * .5;\n\tstartBotJoin = -startTopJoin;\n\n\tendTopJoin = sign(endJoinShift) * endJoin * .5;\n\tendBotJoin = -endTopJoin;\n\n\tvec2 aTopCoord = aCoord + normalWidth * startTopJoin;\n\tvec2 bTopCoord = bCoord + normalWidth * endTopJoin;\n\tvec2 aBotCoord = aCoord + normalWidth * startBotJoin;\n\tvec2 bBotCoord = bCoord + normalWidth * endBotJoin;\n\n\t//miter anti-clipping\n\tfloat baClipping = distToLine(bCoord, aCoord, aBotCoord) / dot(normalize(normalWidth * endBotJoin), normalize(normalWidth.yx * vec2(-startBotJoin.y, startBotJoin.x)));\n\tfloat abClipping = distToLine(aCoord, bCoord, bTopCoord) / dot(normalize(normalWidth * startBotJoin), normalize(normalWidth.yx * vec2(-endBotJoin.y, endBotJoin.x)));\n\n\t//prevent close to reverse direction switch\n\tbool prevReverse = dot(currTangent, prevTangent) <= REVERSE_THRESHOLD && abs(dot(currTangent, prevNormal)) * min(length(prevDiff), length(currDiff)) < length(normalWidth * currNormal);\n\tbool nextReverse = dot(currTangent, nextTangent) <= REVERSE_THRESHOLD && abs(dot(currTangent, nextNormal)) * min(length(nextDiff), length(currDiff)) < length(normalWidth * currNormal);\n\n\tif (prevReverse) {\n\t\t//make join rectangular\n\t\tvec2 miterShift = normalWidth * startJoinDirection * miterLimit * .5;\n\t\tfloat normalAdjust = 1. - min(miterLimit / startMiterRatio, 1.);\n\t\taBotCoord = aCoord + miterShift - normalAdjust * normalWidth * currNormal * .5;\n\t\taTopCoord = aCoord + miterShift + normalAdjust * normalWidth * currNormal * .5;\n\t}\n\telse if (!nextReverse && baClipping > 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: glslify(["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"]), +function generateDispatch() { + while(CACHE.length < NUM_EXPAND) { + CACHE.push(generateSolver(CACHE.length)) + } + var procArgs = [] + var code = ["function dispatchLinearSolve(A,b){switch(A.length){"] + for(var i=0; i>1 + return ["sum(", generateSum(expr.slice(0, m)), ",", generateSum(expr.slice(m)), ")"].join("") + } } +function determinant(m) { + if(m.length === 2) { + return [["sum(prod(", m[0][0], ",", m[1][1], "),prod(-", m[0][1], ",", m[1][0], "))"].join("")] + } else { + var expr = [] + for(var i=0; i 0) { + if(r <= 0) { + return det + } else { + s = l + r + } + } else if(l < 0) { + if(r >= 0) { + return det + } else { + s = -(l + r) + } + } else { + return det + } + var tol = ERRBOUND3 * s + if(det >= tol || det <= -tol) { + return det + } + return orientation3Exact(a, b, c) + }, + function orientation4(a,b,c,d) { + var adx = a[0] - d[0] + var bdx = b[0] - d[0] + var cdx = c[0] - d[0] + var ady = a[1] - d[1] + var bdy = b[1] - d[1] + var cdy = c[1] - d[1] + var adz = a[2] - d[2] + var bdz = b[2] - d[2] + var cdz = c[2] - d[2] + var bdxcdy = bdx * cdy + var cdxbdy = cdx * bdy + var cdxady = cdx * ady + var adxcdy = adx * cdy + var adxbdy = adx * bdy + var bdxady = bdx * ady + var det = adz * (bdxcdy - cdxbdy) + + bdz * (cdxady - adxcdy) + + cdz * (adxbdy - bdxady) + var permanent = (Math.abs(bdxcdy) + Math.abs(cdxbdy)) * Math.abs(adz) + + (Math.abs(cdxady) + Math.abs(adxcdy)) * Math.abs(bdz) + + (Math.abs(adxbdy) + Math.abs(bdxady)) * Math.abs(cdz) + var tol = ERRBOUND4 * permanent + if ((det > tol) || (-det > tol)) { + return det + } + return orientation4Exact(a,b,c,d) + } +] - var args = [], len = arguments.length; - while ( len-- ) args[ len ] = arguments[ len ]; - if (args.length) { - (ref = this).update.apply(ref, args) - } +function slowOrient(args) { + var proc = CACHED[args.length] + if(!proc) { + proc = CACHED[args.length] = orientation(args.length) + } + return proc.apply(undefined, args) +} - this.draw() +function generateOrientationProc() { + while(CACHED.length <= NUM_EXPAND) { + CACHED.push(orientation(CACHED.length)) + } + var args = [] + var procArgs = ["slow"] + for(var i=0; i<=NUM_EXPAND; ++i) { + args.push("a" + i) + procArgs.push("o" + i) + } + var code = [ + "function getOrientation(", args.join(), "){switch(arguments.length){case 0:case 1:return 0;" + ] + for(var i=2; i<=NUM_EXPAND; ++i) { + code.push("case ", i, ":return o", i, "(", args.slice(0, i).join(), ");") + } + code.push("}var s=new Array(arguments.length);for(var i=0;i 1 && s.opacity)) { return } +module.exports = scaleLinearExpansion - this$1.regl._refresh() +function scaleLinearExpansion(e, scale) { + var n = e.length + if(n === 1) { + var ts = twoProduct(e[0], scale) + if(ts[0]) { + return ts + } + return [ ts[1] ] + } + var g = new Array(2 * n) + var q = [0.1, 0.1] + var t = [0.1, 0.1] + var count = 0 + twoProduct(e[0], scale, q) + if(q[0]) { + g[count++] = q[0] + } + for(var i=1; i 2) { - this$1.shaders.fill(s) - } +module.exports = segmentsIntersect - if (!s.thickness) { return } +var orient = _dereq_("robust-orientation")[3] - // high scale is only available for rect mode with precision - if (s.scale[0] * s.viewport.width > Line2D.precisionThreshold || s.scale[1] * s.viewport.height > Line2D.precisionThreshold) { - this$1.shaders.rect(s) - } +function checkCollinear(a0, a1, b0, b1) { - // thin this.passes or too many points are rendered as simplified rect shader - else if (s.join === 'rect' || (!s.join && (s.thickness <= 2 || s.count >= Line2D.maxPoints))) { - this$1.shaders.rect(s) - } - else { - this$1.shaders.miter(s) - } - }) + for(var d=0; d<2; ++d) { + var x0 = a0[d] + var y0 = a1[d] + var l0 = Math.min(x0, y0) + var h0 = Math.max(x0, y0) - return this + var x1 = b0[d] + var y1 = b1[d] + var l1 = Math.min(x1, y1) + var h1 = Math.max(x1, y1) + + if(h1 < l0 || h0 < l1) { + return false + } + } + + return true } -Line2D.prototype.update = function (options) { - var this$1 = this; +function segmentsIntersect(a0, a1, b0, b1) { + var x0 = orient(a0, b0, b1) + var y0 = orient(a1, b0, b1) + if((x0 > 0 && y0 > 0) || (x0 < 0 && y0 < 0)) { + return false + } - if (!options) { return } + var x1 = orient(b0, a0, a1) + var y1 = orient(b1, a0, a1) + if((x1 > 0 && y1 > 0) || (x1 < 0 && y1 < 0)) { + return false + } - if (options.length != null) { - if (typeof options[0] === 'number') { options = [{positions: options}] } - } + //Check for degenerate collinear case + if(x0 === 0 && y0 === 0 && x1 === 0 && y1 === 0) { + return checkCollinear(a0, a1, b0, b1) + } - // make options a batch - else if (!Array.isArray(options)) { options = [options] } + return true +} +},{"robust-orientation":542}],546:[function(_dereq_,module,exports){ +"use strict" - var ref = this; - var regl = ref.regl; - var gl = ref.gl; +module.exports = robustSubtract - // process per-line settings - options.forEach(function (o, i) { - var state = this$1.passes[i] +//Easy case: Add two scalars +function scalarScalar(a, b) { + var x = a + b + var bv = x - a + var av = x - bv + var br = b - bv + var ar = a - av + var y = ar + br + if(y) { + return [y, x] + } + return [x] +} - if (o === undefined) { return } +function robustSubtract(e, f) { + var ne = e.length|0 + var nf = f.length|0 + if(ne === 1 && nf === 1) { + return scalarScalar(e[0], -f[0]) + } + var n = ne + nf + var g = new Array(n) + var count = 0 + var eptr = 0 + var fptr = 0 + var abs = Math.abs + var ei = e[eptr] + var ea = abs(ei) + var fi = -f[fptr] + var fa = abs(fi) + var a, b + if(ea < fa) { + b = ei + eptr += 1 + if(eptr < ne) { + ei = e[eptr] + ea = abs(ei) + } + } else { + b = fi + fptr += 1 + if(fptr < nf) { + fi = -f[fptr] + fa = abs(fi) + } + } + if((eptr < ne && ea < fa) || (fptr >= nf)) { + a = ei + eptr += 1 + if(eptr < ne) { + ei = e[eptr] + ea = abs(ei) + } + } else { + a = fi + fptr += 1 + if(fptr < nf) { + fi = -f[fptr] + fa = abs(fi) + } + } + var x = a + b + var bv = x - a + var y = b - bv + var q0 = y + var q1 = x + var _x, _bv, _av, _br, _ar + while(eptr < ne && fptr < nf) { + if(ea < fa) { + a = ei + eptr += 1 + if(eptr < ne) { + ei = e[eptr] + ea = abs(ei) + } + } else { + a = fi + fptr += 1 + if(fptr < nf) { + fi = -f[fptr] + fa = abs(fi) + } + } + b = q0 + x = a + b + bv = x - a + y = b - bv + if(y) { + g[count++] = y + } + _x = q1 + x + _bv = _x - q1 + _av = _x - _bv + _br = x - _bv + _ar = q1 - _av + q0 = _ar + _br + q1 = _x + } + while(eptr < ne) { + a = ei + b = q0 + x = a + b + bv = x - a + y = b - bv + if(y) { + g[count++] = y + } + _x = q1 + x + _bv = _x - q1 + _av = _x - _bv + _br = x - _bv + _ar = q1 - _av + q0 = _ar + _br + q1 = _x + eptr += 1 + if(eptr < ne) { + ei = e[eptr] + } + } + while(fptr < nf) { + a = fi + b = q0 + x = a + b + bv = x - a + y = b - bv + if(y) { + g[count++] = y + } + _x = q1 + x + _bv = _x - q1 + _av = _x - _bv + _br = x - _bv + _ar = q1 - _av + q0 = _ar + _br + q1 = _x + fptr += 1 + if(fptr < nf) { + fi = -f[fptr] + } + } + if(q0) { + g[count++] = q0 + } + if(q1) { + g[count++] = q1 + } + if(!count) { + g[count++] = 0.0 + } + g.length = count + return g +} +},{}],547:[function(_dereq_,module,exports){ +"use strict" - // null-argument removes pass - if (o === null) { - this$1.passes[i] = null - return - } +module.exports = linearExpansionSum - if (typeof o[0] === 'number') { o = {positions: o} } +//Easy case: Add two scalars +function scalarScalar(a, b) { + var x = a + b + var bv = x - a + var av = x - bv + var br = b - bv + var ar = a - av + var y = ar + br + if(y) { + return [y, x] + } + return [x] +} - // handle aliases - o = pick(o, { - 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' - }) +function linearExpansionSum(e, f) { + var ne = e.length|0 + var nf = f.length|0 + if(ne === 1 && nf === 1) { + return scalarScalar(e[0], f[0]) + } + var n = ne + nf + var g = new Array(n) + var count = 0 + var eptr = 0 + var fptr = 0 + var abs = Math.abs + var ei = e[eptr] + var ea = abs(ei) + var fi = f[fptr] + var fa = abs(fi) + var a, b + if(ea < fa) { + b = ei + eptr += 1 + if(eptr < ne) { + ei = e[eptr] + ea = abs(ei) + } + } else { + b = fi + fptr += 1 + if(fptr < nf) { + fi = f[fptr] + fa = abs(fi) + } + } + if((eptr < ne && ea < fa) || (fptr >= nf)) { + a = ei + eptr += 1 + if(eptr < ne) { + ei = e[eptr] + ea = abs(ei) + } + } else { + a = fi + fptr += 1 + if(fptr < nf) { + fi = f[fptr] + fa = abs(fi) + } + } + var x = a + b + var bv = x - a + var y = b - bv + var q0 = y + var q1 = x + var _x, _bv, _av, _br, _ar + while(eptr < ne && fptr < nf) { + if(ea < fa) { + a = ei + eptr += 1 + if(eptr < ne) { + ei = e[eptr] + ea = abs(ei) + } + } else { + a = fi + fptr += 1 + if(fptr < nf) { + fi = f[fptr] + fa = abs(fi) + } + } + b = q0 + x = a + b + bv = x - a + y = b - bv + if(y) { + g[count++] = y + } + _x = q1 + x + _bv = _x - q1 + _av = _x - _bv + _br = x - _bv + _ar = q1 - _av + q0 = _ar + _br + q1 = _x + } + while(eptr < ne) { + a = ei + b = q0 + x = a + b + bv = x - a + y = b - bv + if(y) { + g[count++] = y + } + _x = q1 + x + _bv = _x - q1 + _av = _x - _bv + _br = x - _bv + _ar = q1 - _av + q0 = _ar + _br + q1 = _x + eptr += 1 + if(eptr < ne) { + ei = e[eptr] + } + } + while(fptr < nf) { + a = fi + b = q0 + x = a + b + bv = x - a + y = b - bv + if(y) { + g[count++] = y + } + _x = q1 + x + _bv = _x - q1 + _av = _x - _bv + _br = x - _bv + _ar = q1 - _av + q0 = _ar + _br + q1 = _x + fptr += 1 + if(fptr < nf) { + fi = f[fptr] + } + } + if(q0) { + g[count++] = q0 + } + if(q1) { + g[count++] = q1 + } + if(!count) { + g[count++] = 0.0 + } + g.length = count + return g +} +},{}],548:[function(_dereq_,module,exports){ +/* eslint-disable node/no-deprecated-api */ +var buffer = _dereq_('buffer') +var Buffer = buffer.Buffer - // init state - if (!state) { - this$1.passes[i] = state = { - id: i, - scale: null, - scaleFract: null, - translate: null, - translateFract: null, - count: 0, - hole: [], - depth: 0, +// alternative to using Object.keys for old browsers +function copyProps (src, dst) { + for (var key in src) { + dst[key] = src[key] + } +} +if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) { + module.exports = buffer +} else { + // Copy properties from require('buffer') + copyProps(buffer, exports) + exports.Buffer = SafeBuffer +} - dashLength: 1, - dashTexture: regl.texture({ - channels: 1, - data: new Uint8Array([255]), - width: 1, - height: 1, - mag: 'linear', - min: 'linear' - }), +function SafeBuffer (arg, encodingOrOffset, length) { + return Buffer(arg, encodingOrOffset, length) +} - colorBuffer: regl.buffer({ - usage: 'dynamic', - type: 'uint8', - data: new Uint8Array() - }), - positionBuffer: regl.buffer({ - usage: 'dynamic', - type: 'float', - data: new Uint8Array() - }), - positionFractBuffer: regl.buffer({ - usage: 'dynamic', - type: 'float', - data: new Uint8Array() - }) - } +SafeBuffer.prototype = Object.create(Buffer.prototype) - o = extend({}, Line2D.defaults, o) - } - if (o.thickness != null) { state.thickness = parseFloat(o.thickness) } - if (o.opacity != null) { state.opacity = parseFloat(o.opacity) } - if (o.miterLimit != null) { state.miterLimit = parseFloat(o.miterLimit) } - if (o.overlay != null) { - state.overlay = !!o.overlay - if (i < Line2D.maxLines) { - state.depth = 2 * (Line2D.maxLines - 1 - i % Line2D.maxLines) / Line2D.maxLines - 1.; - } - } - if (o.join != null) { state.join = o.join } - if (o.hole != null) { state.hole = o.hole } - if (o.fill != null) { state.fill = !o.fill ? null : rgba(o.fill, 'uint8') } - if (o.viewport != null) { state.viewport = parseRect(o.viewport) } +// Copy static methods from Buffer +copyProps(Buffer, SafeBuffer) - if (!state.viewport) { - state.viewport = parseRect([ - gl.drawingBufferWidth, - gl.drawingBufferHeight - ]) - } +SafeBuffer.from = function (arg, encodingOrOffset, length) { + if (typeof arg === 'number') { + throw new TypeError('Argument must not be a number') + } + return Buffer(arg, encodingOrOffset, length) +} - if (o.close != null) { state.close = o.close } +SafeBuffer.alloc = function (size, fill, encoding) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + var buf = Buffer(size) + if (fill !== undefined) { + if (typeof encoding === 'string') { + buf.fill(fill, encoding) + } else { + buf.fill(fill) + } + } else { + buf.fill(0) + } + return buf +} - // reset positions - if (o.positions === null) { o.positions = [] } - if (o.positions) { - var positions, count +SafeBuffer.allocUnsafe = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return Buffer(size) +} - // if positions are an object with x/y - if (o.positions.x && o.positions.y) { - var xPos = o.positions.x - var yPos = o.positions.y - count = state.count = Math.max( - xPos.length, - yPos.length - ) - positions = new Float64Array(count * 2) - for (var i$1 = 0; i$1 < count; i$1++) { - positions[i$1 * 2] = xPos[i$1] - positions[i$1 * 2 + 1] = yPos[i$1] - } - } - else { - positions = flatten(o.positions, 'float64') - count = state.count = Math.floor(positions.length / 2) - } +SafeBuffer.allocUnsafeSlow = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return buffer.SlowBuffer(size) +} - var bounds = state.bounds = getBounds(positions, 2) +},{"buffer":113}],549:[function(_dereq_,module,exports){ +"use strict" - // create fill positions - // FIXME: fill positions can be set only along with positions - if (state.fill) { - var pos = [] +module.exports = function signum(x) { + if(x < 0) { return -1 } + if(x > 0) { return 1 } + return 0.0 +} +},{}],550:[function(_dereq_,module,exports){ +'use strict' - // filter bad vertices and remap triangles to ensure shape - var ids = {} - var lastId = 0 +module.exports = boundary - for (var i$2 = 0, ptr = 0, l = state.count; i$2 < l; i$2++) { - var x = positions[i$2*2] - var y = positions[i$2*2 + 1] - if (isNaN(x) || isNaN(y) || x == null || y == null) { - x = positions[lastId*2] - y = positions[lastId*2 + 1] - ids[i$2] = lastId - } - else { - lastId = i$2 - } - pos[ptr++] = x - pos[ptr++] = y - } +var bnd = _dereq_('boundary-cells') +var reduce = _dereq_('reduce-simplicial-complex') - var triangles = triangulate(pos, state.hole || []) +function boundary(cells) { + return reduce(bnd(cells)) +} - for (var i$3 = 0, l$1 = triangles.length; i$3 < l$1; i$3++) { - if (ids[triangles[i$3]] != null) { triangles[i$3] = ids[triangles[i$3]] } - } +},{"boundary-cells":103,"reduce-simplicial-complex":529}],551:[function(_dereq_,module,exports){ +'use strict' - state.triangles = triangles - } +module.exports = extractContour - // update position buffers - var npos = new Float64Array(positions) - normalize(npos, 2, bounds) +var ndarray = _dereq_('ndarray') +var pool = _dereq_('typedarray-pool') +var ndsort = _dereq_('ndarray-sort') - var positionData = new Float64Array(count * 2 + 6) +var contourAlgorithm = _dereq_('./lib/codegen') - // rotate first segment join - if (state.close) { - if (positions[0] === positions[count*2 - 2] && - positions[1] === positions[count*2 - 1]) { - positionData[0] = npos[count*2 - 4] - positionData[1] = npos[count*2 - 3] - } - else { - positionData[0] = npos[count*2 - 2] - positionData[1] = npos[count*2 - 1] - } - } - else { - positionData[0] = npos[0] - positionData[1] = npos[1] - } +function getDimension(cells) { + var numCells = cells.length + var d = 0 + for(var i=0; i>1,v=E[2*m+1];', + 'if(v===b){return m}', + 'if(b 0) { + code.push(',') + } + code.push('[') + for(var j=0; j 0) { + code.push(',') + } + code.push('B(C,E,c[', f[0], '],c[', f[1], '])') + } + code.push(']') + } + code.push(');') + } - // remove unmentioned passes - if (options.length < this.passes.length) { - for (var i = options.length; i < this.passes.length; i++) { - var pass = this.passes[i] - if (!pass) { continue } - pass.colorBuffer.destroy() - pass.positionBuffer.destroy() - pass.dashTexture.destroy() - } - this.passes.length = options.length - } + for(var i=d+1; i>1; --i) { + if(i < d+1) { + code.push('else ') + } + code.push('if(l===', i, '){') - // remove null items - var passes = [] - for (var i$1 = 0; i$1 < this.passes.length; i$1++) { - if (this.passes[i$1] !== null) { passes.push(this.passes[i$1]) } - } - this.passes = passes + //Generate mask + var maskStr = [] + for(var j=0; j arr.length) len = arr.length; - - for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; - - return arr2; +//Finds a cell in a normalized cell complex +function findCell(cells, c) { + var lo = 0 + , hi = cells.length-1 + , r = -1 + while (lo <= hi) { + var mid = (lo + hi) >> 1 + , s = compareCells(cells[mid], c) + if(s <= 0) { + if(s === 0) { + r = mid + } + lo = mid + 1 + } else if(s > 0) { + hi = mid - 1 + } + } + return r } +exports.findCell = findCell; -function _nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +//Builds an index for an n-cell. This is more general than dual, but less efficient +function incidence(from_cells, to_cells) { + var index = new Array(from_cells.length) + for(var i=0, il=index.length; i= from_cells.length || compareCells(from_cells[idx], b) !== 0) { + break + } + } + } + } + return index } +exports.incidence = incidence -function _nonIterableRest() { - throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +//Computes the dual of the mesh. This is basically an optimized version of buildIndex for the situation where from_cells is just the list of vertices +function dual(cells, vertex_count) { + if(!vertex_count) { + return incidence(unique(skeleton(cells, 0)), cells, 0) + } + var res = new Array(vertex_count) + for(var i=0; i>> k) & 1) { + b.push(c[k]) + } + } + result.push(b) + } + } + return normalize(result) +} +exports.explode = explode -var extend = _dereq_('object-assign'); +//Enumerates all of the n-cells of a cell complex +function skeleton(cells, n) { + if(n < 0) { + return [] + } + var result = [] + , k0 = (1<<(n+1))-1 + for(var i=0; i 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"]); - circleOptions.vert = glslify(["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"]); // polyfill IE +function simplifyPolygon(cells, positions, minArea) { - if (ie) { - circleOptions.frag = circleOptions.frag.replace('smoothstep', 'smoothStep'); - markerOptions.frag = markerOptions.frag.replace('smoothstep', 'smoothStep'); + var n = positions.length + var nc = cells.length + var inv = new Array(n) + var outv = new Array(n) + var weights = new Array(n) + var dead = new Array(n) + + //Initialize tables + for(var i=0; i> 1 } + return (i >> 1) - 1 + } - return this; -}; // draw specific scatter group - - -Scatter.prototype.drawItem = function (id, els) { - var groups = this.groups; - var group = groups[id]; // debug viewport - // let { viewport } = group - // gl.enable(gl.SCISSOR_TEST); - // gl.scissor(viewport.x, viewport.y, viewport.width, viewport.height); - // gl.clearColor(0, 0, 0, .5); - // gl.clear(gl.COLOR_BUFFER_BIT); + //Bubble element i down the heap + function heapDown(i) { + var w = heapWeight(i) + while(true) { + var tw = w + var left = 2*i + 1 + var right = 2*(i + 1) + var next = i + if(left < heapCount) { + var lw = heapWeight(left) + if(lw < tw) { + next = left + tw = lw + } + } + if(right < heapCount) { + var rw = heapWeight(right) + if(rw < tw) { + next = right + } + } + if(next === i) { + return i + } + heapSwap(i, next) + i = next + } + } - if (typeof els === 'number') { - id = els; - group = groups[els]; - els = null; + //Bubbles element i up the heap + function heapUp(i) { + var w = heapWeight(i) + while(i > 0) { + var parent = heapParent(i) + if(parent >= 0) { + var pw = heapWeight(parent) + if(w < pw) { + heapSwap(i, parent) + i = parent + continue + } + } + return i + } } - if (!(group && group.count && group.opacity)) return; // draw circles + //Pop minimum element + function heapPop() { + if(heapCount > 0) { + var head = heap[0] + heapSwap(0, heapCount-1) + heapCount -= 1 + heapDown(0) + return head + } + return -1 + } - if (group.activation[0]) { - // TODO: optimize this performance by making groups and regl.this props - this.drawCircle(this.getMarkerDrawOptions(0, group, els)); - } // draw all other available markers + //Update heap item i + function heapUpdate(i, w) { + var a = heap[i] + if(weights[a] === w) { + return i + } + weights[a] = -Infinity + heapUp(i) + heapPop() + weights[a] = w + heapCount += 1 + return heapUp(heapCount-1) + } + //Kills a vertex (assume vertex already removed from heap) + function kill(i) { + if(dead[i]) { + return + } + //Kill vertex + dead[i] = true + //Fixup topology + var s = inv[i] + var t = outv[i] + if(inv[t] >= 0) { + inv[t] = s + } + if(outv[s] >= 0) { + outv[s] = t + } - var batch = []; + //Update weights on s and t + if(index[s] >= 0) { + heapUpdate(index[s], computeWeight(s)) + } + if(index[t] >= 0) { + heapUpdate(index[t], computeWeight(t)) + } + } - for (var i = 1; i < group.activation.length; i++) { - if (!group.activation[i] || group.activation[i] !== true && !group.activation[i].data.length) continue; - batch.push.apply(batch, _toConsumableArray(this.getMarkerDrawOptions(i, group, els))); + //Initialize weights and heap + var heap = [] + var index = new Array(n) + for(var i=0; i>1; i>=0; --i) { + heapDown(i) + } + + //Kill vertices + while(true) { + var hmin = heapPop() + if((hmin < 0) || (weights[hmin] > minArea)) { + break + } + kill(hmin) } - if (batch.length) { - this.drawMarker(batch); + //Build collapsed vertex table + var npositions = [] + for(var i=0; i= 0 && tout >= 0 && tin !== tout) { + var cin = index[tin] + var cout = index[tout] + if(cin !== cout) { + ncells.push([ cin, cout ]) + } } + }) - return [extend({}, group, { - markerTexture: this.markerTextures[markerId], - activation: activation[markerId], - offset: 0 - })]; - } // clustered points + //Normalize result + sc.unique(sc.normalize(ncells)) + //Return final list of cells + return { + positions: npositions, + edges: ncells + } +} +},{"robust-orientation":542,"simplicial-complex":555}],558:[function(_dereq_,module,exports){ +"use strict" - var batch = []; - var lod = tree.range(range, { - lod: true, - px: [(range[2] - range[0]) / viewport.width, (range[3] - range[1]) / viewport.height] - }); // enable elements by using selection buffer +module.exports = orderSegments - if (elements) { - var markerActivation = activation[markerId]; - var mask = markerActivation.data; - var data = new Uint8Array(count); +var orient = _dereq_("robust-orientation") - for (var i = 0; i < elements.length; i++) { - var id = elements[i]; - data[id] = mask ? mask[id] : 1; +function horizontalOrder(a, b) { + var bl, br + if(b[0][0] < b[1][0]) { + bl = b[0] + br = b[1] + } else if(b[0][0] > b[1][0]) { + bl = b[1] + br = b[0] + } else { + var alo = Math.min(a[0][1], a[1][1]) + var ahi = Math.max(a[0][1], a[1][1]) + var blo = Math.min(b[0][1], b[1][1]) + var bhi = Math.max(b[0][1], b[1][1]) + if(ahi < blo) { + return ahi - blo } - - selectionBuffer.subdata(data); + if(alo > bhi) { + return alo - bhi + } + return ahi - bhi } - - for (var l = lod.length; l--;) { - var _lod$l = _slicedToArray(lod[l], 2), - from = _lod$l[0], - to = _lod$l[1]; - - batch.push(extend({}, group, { - markerTexture: this.markerTextures[markerId], - activation: elements ? selectionBuffer : activation[markerId], - offset: from, - count: to - from - })); + var al, ar + if(a[0][1] < a[1][1]) { + al = a[0] + ar = a[1] + } else { + al = a[1] + ar = a[0] } - - return batch; -}; // update groups options - - -Scatter.prototype.update = function () { - var _this3 = this; - - for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - args[_key2] = arguments[_key2]; + var d = orient(br, bl, al) + if(d) { + return d + } + d = orient(br, bl, ar) + if(d) { + return d } + return ar - br +} - if (!args.length) return; // passes are as single array +function orderSegments(b, a) { + var al, ar + if(a[0][0] < a[1][0]) { + al = a[0] + ar = a[1] + } else if(a[0][0] > a[1][0]) { + al = a[1] + ar = a[0] + } else { + return horizontalOrder(a, b) + } + var bl, br + if(b[0][0] < b[1][0]) { + bl = b[0] + br = b[1] + } else if(b[0][0] > b[1][0]) { + bl = b[1] + br = b[0] + } else { + return -horizontalOrder(b, a) + } + var d1 = orient(al, ar, br) + var d2 = orient(al, ar, bl) + if(d1 < 0) { + if(d2 <= 0) { + return d1 + } + } else if(d1 > 0) { + if(d2 >= 0) { + return d1 + } + } else if(d2) { + return d2 + } + d1 = orient(br, bl, ar) + d2 = orient(br, bl, al) + if(d1 < 0) { + if(d2 <= 0) { + return d1 + } + } else if(d1 > 0) { + if(d2 >= 0) { + return d1 + } + } else if(d2) { + return d2 + } + return ar[0] - br[0] +} +},{"robust-orientation":542}],559:[function(_dereq_,module,exports){ +arguments[4][243][0].apply(exports,arguments) +},{"dup":243}],560:[function(_dereq_,module,exports){ +"use strict" - if (args.length === 1 && Array.isArray(args[0])) args = args[0]; - var groups = this.groups, - gl = this.gl, - regl = this.regl, - maxSize = this.maxSize, - maxColors = this.maxColors, - palette = this.palette; - this.groups = groups = args.map(function (options, i) { - var group = groups[i]; - if (options === undefined) return group; - if (options === null) options = { - positions: null - };else if (typeof options === 'function') options = { - ondraw: options - };else if (typeof options[0] === 'number') options = { - positions: options - }; // copy options to avoid mutation & handle aliases +module.exports = createSlabDecomposition - options = pick(options, { - positions: 'positions data points', - snap: 'snap cluster lod tree', - size: 'sizes size radius', - borderSize: 'borderSizes borderSize border-size bordersize borderWidth borderWidths border-width borderwidth stroke-width strokeWidth strokewidth outline', - color: 'colors color fill fill-color fillColor', - borderColor: 'borderColors borderColor stroke stroke-color strokeColor', - marker: 'markers marker shape', - range: 'range dataBox databox', - viewport: 'viewport viewPort viewBox viewbox', - opacity: 'opacity alpha transparency', - bounds: 'bound bounds boundaries limits', - tooManyColors: 'tooManyColors palette paletteMode optimizePalette enablePalette' - }); - if (options.positions === null) options.positions = []; - if (options.tooManyColors != null) _this3.tooManyColors = options.tooManyColors; +var bounds = _dereq_("binary-search-bounds") +var createRBTree = _dereq_("functional-red-black-tree") +var orient = _dereq_("robust-orientation") +var orderSegments = _dereq_("./lib/order-segments") - if (!group) { - groups[i] = group = { - id: i, - scale: null, - translate: null, - scaleFract: null, - translateFract: null, - // buffers for active markers - activation: [], - // buffer for filtered markers - selectionBuffer: regl.buffer({ - data: new Uint8Array(0), - usage: 'stream', - type: 'uint8' - }), - // buffers with data: it is faster to switch them per-pass - // than provide one congregate buffer - sizeBuffer: regl.buffer({ - data: new Uint8Array(0), - usage: 'dynamic', - type: 'uint8' - }), - colorBuffer: regl.buffer({ - data: new Uint8Array(0), - usage: 'dynamic', - type: 'uint8' - }), - positionBuffer: regl.buffer({ - data: new Uint8Array(0), - usage: 'dynamic', - type: 'float' - }), - positionFractBuffer: regl.buffer({ - data: new Uint8Array(0), - usage: 'dynamic', - type: 'float' - }) - }; - options = extend({}, Scatter.defaults, options); - } // force update triggers +function SlabDecomposition(slabs, coordinates, horizontal) { + this.slabs = slabs + this.coordinates = coordinates + this.horizontal = horizontal +} +var proto = SlabDecomposition.prototype - if (options.positions && !('marker' in options)) { - options.marker = group.marker; - delete group.marker; - } // updating markers cause recalculating snapping +function compareHorizontal(e, y) { + return e.y - y +} +function searchBucket(root, p) { + var lastNode = null + while(root) { + var seg = root.key + var l, r + if(seg[0][0] < seg[1][0]) { + l = seg[0] + r = seg[1] + } else { + l = seg[1] + r = seg[0] + } + var o = orient(l, r, p) + if(o < 0) { + root = root.left + } else if(o > 0) { + if(p[0] !== seg[1][0]) { + lastNode = root + root = root.right + } else { + var val = searchBucket(root.right, p) + if(val) { + return val + } + root = root.left + } + } else { + if(p[0] !== seg[1][0]) { + return root + } else { + var val = searchBucket(root.right, p) + if(val) { + return val + } + root = root.left + } + } + } + return lastNode +} - if (options.marker && !('positions' in options)) { - options.positions = group.positions; - delete group.positions; - } // global count of points +proto.castUp = function(p) { + var bucket = bounds.le(this.coordinates, p[0]) + if(bucket < 0) { + return -1 + } + var root = this.slabs[bucket] + var hitNode = searchBucket(this.slabs[bucket], p) + var lastHit = -1 + if(hitNode) { + lastHit = hitNode.value + } + //Edge case: need to handle horizontal segments (sucks) + if(this.coordinates[bucket] === p[0]) { + var lastSegment = null + if(hitNode) { + lastSegment = hitNode.key + } + if(bucket > 0) { + var otherHitNode = searchBucket(this.slabs[bucket-1], p) + if(otherHitNode) { + if(lastSegment) { + if(orderSegments(otherHitNode.key, lastSegment) > 0) { + lastSegment = otherHitNode.key + lastHit = otherHitNode.value + } + } else { + lastHit = otherHitNode.value + lastSegment = otherHitNode.key + } + } + } + var horiz = this.horizontal[bucket] + if(horiz.length > 0) { + var hbucket = bounds.ge(horiz, p[1], compareHorizontal) + if(hbucket < horiz.length) { + var e = horiz[hbucket] + if(p[1] === e.y) { + if(e.closed) { + return e.index + } else { + while(hbucket < horiz.length-1 && horiz[hbucket+1].y === p[1]) { + hbucket = hbucket+1 + e = horiz[hbucket] + if(e.closed) { + return e.index + } + } + if(e.y === p[1] && !e.start) { + hbucket = hbucket+1 + if(hbucket >= horiz.length) { + return lastHit + } + e = horiz[hbucket] + } + } + } + //Check if e is above/below last segment + if(e.start) { + if(lastSegment) { + var o = orient(lastSegment[0], lastSegment[1], [p[0], e.y]) + if(lastSegment[0][0] > lastSegment[1][0]) { + o = -o + } + if(o > 0) { + lastHit = e.index + } + } else { + lastHit = e.index + } + } else if(e.y !== p[1]) { + lastHit = e.index + } + } + } + } + return lastHit +} +function IntervalSegment(y, index, start, closed) { + this.y = y + this.index = index + this.start = start + this.closed = closed +} - var hasSize = 0, - hasColor = 0; - updateDiff(group, options, [{ - snap: true, - size: function size(s, group) { - if (s == null) s = Scatter.defaults.size; - hasSize += s && s.length ? 1 : 0; - return s; - }, - borderSize: function borderSize(s, group) { - if (s == null) s = Scatter.defaults.borderSize; - hasSize += s && s.length ? 1 : 0; - return s; - }, - opacity: parseFloat, - // add colors to palette, save references - color: function color(c, group) { - if (c == null) c = Scatter.defaults.color; - c = _this3.updateColor(c); - hasColor++; - return c; - }, - borderColor: function borderColor(c, group) { - if (c == null) c = Scatter.defaults.borderColor; - c = _this3.updateColor(c); - hasColor++; - return c; - }, - bounds: function bounds(_bounds, group, options) { - if (!('range' in options)) options.range = null; - return _bounds; - }, - positions: function positions(_positions, group, options) { - var snap = group.snap; - var positionBuffer = group.positionBuffer, - positionFractBuffer = group.positionFractBuffer, - selectionBuffer = group.selectionBuffer; // separate buffers for x/y coordinates +function Event(x, segment, create, index) { + this.x = x + this.segment = segment + this.create = create + this.index = index +} - if (_positions.x || _positions.y) { - if (_positions.x.length) { - group.xAttr = { - buffer: regl.buffer(_positions.x), - offset: 0, - stride: 4, - count: _positions.x.length - }; - } else { - group.xAttr = { - buffer: _positions.x.buffer, - offset: _positions.x.offset * 4 || 0, - stride: (_positions.x.stride || 1) * 4, - count: _positions.x.count - }; - } - if (_positions.y.length) { - group.yAttr = { - buffer: regl.buffer(_positions.y), - offset: 0, - stride: 4, - count: _positions.y.length - }; +function createSlabDecomposition(segments) { + var numSegments = segments.length + var numEvents = 2 * numSegments + var events = new Array(numEvents) + for(var i=0; i 1.0) { + t = 1.0 + } + var ti = 1.0 - t + var n = a.length + var r = new Array(n) + for(var i=0; i snap)) { - group.tree = cluster(_positions, { - bounds: bounds - }); - } // existing tree instance - else if (snap && snap.length) { - group.tree = snap; - } +function splitPolygon(points, plane) { + var pos = [] + var neg = [] + var a = planeT(points[points.length-1], plane) + for(var s=points[points.length-1], t=points[0], i=0; i 0) || (a > 0 && b < 0)) { + var p = lerpW(s, b, t, a) + pos.push(p) + neg.push(p.slice()) + } + if(b < 0) { + neg.push(t.slice()) + } else if(b > 0) { + pos.push(t.slice()) + } else { + pos.push(t.slice()) + neg.push(t.slice()) + } + a = b + } + return { positive: pos, negative: neg } +} - if (group.tree) { - var opts = { - primitive: 'points', - usage: 'static', - data: group.tree, - type: 'uint32' - }; - if (group.elements) group.elements(opts);else group.elements = regl.elements(opts); - } // update position buffers +function positive(points, plane) { + var pos = [] + var a = planeT(points[points.length-1], plane) + for(var s=points[points.length-1], t=points[0], i=0; i 0) || (a > 0 && b < 0)) { + pos.push(lerpW(s, b, t, a)) + } + if(b >= 0) { + pos.push(t.slice()) + } + a = b + } + return pos +} +function negative(points, plane) { + var neg = [] + var a = planeT(points[points.length-1], plane) + for(var s=points[points.length-1], t=points[0], i=0; i 0) || (a > 0 && b < 0)) { + neg.push(lerpW(s, b, t, a)) + } + if(b <= 0) { + neg.push(t.slice()) + } + a = b + } + return neg +} +},{"robust-dot-product":539,"robust-sum":547}],562:[function(_dereq_,module,exports){ +/* global window, exports, define */ - positionBuffer({ - data: f32.float(_positions), - usage: 'dynamic' - }); - positionFractBuffer({ - data: f32.fract(_positions), - usage: 'dynamic' - }); // expand selectionBuffer +!function() { + 'use strict' - selectionBuffer({ - data: new Uint8Array(count), - type: 'uint8', - usage: 'stream' - }); - return _positions; - } - }, { - // create marker ids corresponding to known marker textures - marker: function marker(markers, group, options) { - var activation = group.activation; // reset marker elements + var re = { + 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: /^[+-]/ + } - activation.forEach(function (buffer) { - return buffer && buffer.destroy && buffer.destroy(); - }); - activation.length = 0; // single sdf marker + function sprintf(key) { + // `arguments` is not an array, but should be fine for this call + return sprintf_format(sprintf_parse(key), arguments) + } - if (!markers || typeof markers[0] === 'number') { - var id = _this3.addMarker(markers); + function vsprintf(fmt, argv) { + return sprintf.apply(null, [fmt].concat(argv || [])) + } - activation[id] = true; - } // per-point markers use mask buffers to enable markers in vert shader - else { - var markerMasks = []; + function sprintf_format(parse_tree, argv) { + var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, ph, pad, pad_character, pad_length, is_positive, sign + for (i = 0; i < tree_length; i++) { + if (typeof parse_tree[i] === 'string') { + output += parse_tree[i] + } + else if (typeof parse_tree[i] === 'object') { + ph = parse_tree[i] // convenience purposes only + if (ph.keys) { // keyword argument + arg = argv[cursor] + for (k = 0; k < ph.keys.length; k++) { + if (arg == undefined) { + throw new Error(sprintf('[sprintf] Cannot access property "%s" of undefined value "%s"', ph.keys[k], ph.keys[k-1])) + } + arg = arg[ph.keys[k]] + } + } + else if (ph.param_no) { // positional argument (explicit) + arg = argv[ph.param_no] + } + else { // positional argument (implicit) + arg = argv[cursor++] + } - for (var _i = 0, l = Math.min(markers.length, group.count); _i < l; _i++) { - var _id = _this3.addMarker(markers[_i]); + if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) { + arg = arg() + } - if (!markerMasks[_id]) markerMasks[_id] = new Uint8Array(group.count); // enable marker by default + if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) { + throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg)) + } - markerMasks[_id][_i] = 1; + if (re.number.test(ph.type)) { + is_positive = arg >= 0 + } + + switch (ph.type) { + case 'b': + arg = parseInt(arg, 10).toString(2) + break + case 'c': + arg = String.fromCharCode(parseInt(arg, 10)) + break + case 'd': + case 'i': + arg = parseInt(arg, 10) + break + case 'j': + arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0) + break + case 'e': + arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential() + break + case 'f': + arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg) + break + case 'g': + arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg) + break + case 'o': + arg = (parseInt(arg, 10) >>> 0).toString(8) + break + case 's': + arg = String(arg) + arg = (ph.precision ? arg.substring(0, ph.precision) : arg) + break + case 't': + arg = String(!!arg) + arg = (ph.precision ? arg.substring(0, ph.precision) : arg) + break + case 'T': + arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase() + arg = (ph.precision ? arg.substring(0, ph.precision) : arg) + break + case 'u': + arg = parseInt(arg, 10) >>> 0 + break + case 'v': + arg = arg.valueOf() + arg = (ph.precision ? arg.substring(0, ph.precision) : arg) + break + case 'x': + arg = (parseInt(arg, 10) >>> 0).toString(16) + break + case 'X': + arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase() + break + } + if (re.json.test(ph.type)) { + output += arg + } + else { + if (re.number.test(ph.type) && (!is_positive || ph.sign)) { + sign = is_positive ? '+' : '-' + arg = arg.toString().replace(re.sign, '') + } + else { + sign = '' + } + pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' ' + pad_length = ph.width - (sign + arg).length + pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : '' + output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg) + } } + } + return output + } - for (var _id2 = 0; _id2 < markerMasks.length; _id2++) { - if (!markerMasks[_id2]) continue; - var opts = { - data: markerMasks[_id2], - type: 'uint8', - usage: 'static' - }; + var sprintf_cache = Object.create(null) - if (!activation[_id2]) { - activation[_id2] = regl.buffer(opts); - } else { - activation[_id2](opts); - } + function sprintf_parse(fmt) { + if (sprintf_cache[fmt]) { + return sprintf_cache[fmt] + } - activation[_id2].data = markerMasks[_id2]; + var _fmt = fmt, match, parse_tree = [], arg_names = 0 + while (_fmt) { + if ((match = re.text.exec(_fmt)) !== null) { + parse_tree.push(match[0]) } - } + else if ((match = re.modulo.exec(_fmt)) !== null) { + parse_tree.push('%') + } + else if ((match = re.placeholder.exec(_fmt)) !== null) { + if (match[2]) { + arg_names |= 1 + var field_list = [], replacement_field = match[2], field_match = [] + if ((field_match = re.key.exec(replacement_field)) !== null) { + field_list.push(field_match[1]) + while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') { + if ((field_match = re.key_access.exec(replacement_field)) !== null) { + field_list.push(field_match[1]) + } + else if ((field_match = re.index_access.exec(replacement_field)) !== null) { + field_list.push(field_match[1]) + } + else { + throw new SyntaxError('[sprintf] failed to parse named argument key') + } + } + } + else { + throw new SyntaxError('[sprintf] failed to parse named argument key') + } + match[2] = field_list + } + else { + arg_names |= 2 + } + if (arg_names === 3) { + throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported') + } - return markers; - }, - range: function range(_range, group, options) { - var bounds = group.bounds; // FIXME: why do we need this? + parse_tree.push( + { + placeholder: match[0], + param_no: match[1], + keys: match[2], + sign: match[3], + pad_char: match[4], + align: match[5], + width: match[6], + precision: match[7], + type: match[8] + } + ) + } + else { + throw new SyntaxError('[sprintf] unexpected placeholder') + } + _fmt = _fmt.substring(match[0].length) + } + return sprintf_cache[fmt] = parse_tree + } - if (!bounds) return; - if (!_range) _range = bounds; - group.scale = [1 / (_range[2] - _range[0]), 1 / (_range[3] - _range[1])]; - group.translate = [-_range[0], -_range[1]]; - group.scaleFract = f32.fract(group.scale); - group.translateFract = f32.fract(group.translate); - return _range; - }, - viewport: function viewport(vp) { - var rect = parseRect(vp || [gl.drawingBufferWidth, gl.drawingBufferHeight]); // normalize viewport to the canvas coordinates - // rect.y = gl.drawingBufferHeight - rect.height - rect.y + /** + * export to either browser or node.js + */ + /* eslint-disable quote-props */ + if (typeof exports !== 'undefined') { + exports['sprintf'] = sprintf + exports['vsprintf'] = vsprintf + } + if (typeof window !== 'undefined') { + window['sprintf'] = sprintf + window['vsprintf'] = vsprintf - return rect; - } - }]); // update size buffer, if needed + if (typeof define === 'function' && define['amd']) { + define(function() { + return { + 'sprintf': sprintf, + 'vsprintf': vsprintf + } + }) + } + } + /* eslint-enable quote-props */ +}(); // eslint-disable-line - if (hasSize) { - var _group = group, - count = _group.count, - size = _group.size, - borderSize = _group.borderSize, - sizeBuffer = _group.sizeBuffer; - var sizes = new Uint8Array(count * 2); +},{}],563:[function(_dereq_,module,exports){ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. - if (size.length || borderSize.length) { - for (var _i2 = 0; _i2 < count; _i2++) { - // we downscale size to allow for fractions - sizes[_i2 * 2] = Math.round((size[_i2] == null ? size : size[_i2]) * 255 / maxSize); - sizes[_i2 * 2 + 1] = Math.round((borderSize[_i2] == null ? borderSize : borderSize[_i2]) * 255 / maxSize); - } - } +module.exports = Stream; - sizeBuffer({ - data: sizes, - usage: 'dynamic' - }); - } // update color buffer if needed +var EE = _dereq_('events').EventEmitter; +var inherits = _dereq_('inherits'); +inherits(Stream, EE); +Stream.Readable = _dereq_('readable-stream/lib/_stream_readable.js'); +Stream.Writable = _dereq_('readable-stream/lib/_stream_writable.js'); +Stream.Duplex = _dereq_('readable-stream/lib/_stream_duplex.js'); +Stream.Transform = _dereq_('readable-stream/lib/_stream_transform.js'); +Stream.PassThrough = _dereq_('readable-stream/lib/_stream_passthrough.js'); +Stream.finished = _dereq_('readable-stream/lib/internal/streams/end-of-stream.js') +Stream.pipeline = _dereq_('readable-stream/lib/internal/streams/pipeline.js') - if (hasColor) { - var _group2 = group, - _count = _group2.count, - color = _group2.color, - borderColor = _group2.borderColor, - colorBuffer = _group2.colorBuffer; - var colors; // if too many colors - put colors to buffer directly +// Backwards-compat with node 0.4.x +Stream.Stream = Stream; - if (_this3.tooManyColors) { - if (color.length || borderColor.length) { - colors = new Uint8Array(_count * 8); - for (var _i3 = 0; _i3 < _count; _i3++) { - var _colorId = color[_i3]; - colors[_i3 * 8] = palette[_colorId * 4]; - colors[_i3 * 8 + 1] = palette[_colorId * 4 + 1]; - colors[_i3 * 8 + 2] = palette[_colorId * 4 + 2]; - colors[_i3 * 8 + 3] = palette[_colorId * 4 + 3]; - var borderColorId = borderColor[_i3]; - colors[_i3 * 8 + 4] = palette[borderColorId * 4]; - colors[_i3 * 8 + 5] = palette[borderColorId * 4 + 1]; - colors[_i3 * 8 + 6] = palette[borderColorId * 4 + 2]; - colors[_i3 * 8 + 7] = palette[borderColorId * 4 + 3]; - } - } - } // if limited amount of colors - keep palette color picking - // that saves significant memory - else { - if (color.length || borderColor.length) { - // we need slight data increase by 2 due to vec4 borderId in shader - colors = new Uint8Array(_count * 4 + 2); - for (var _i4 = 0; _i4 < _count; _i4++) { - // put color coords in palette texture - if (color[_i4] != null) { - colors[_i4 * 4] = color[_i4] % maxColors; - colors[_i4 * 4 + 1] = Math.floor(color[_i4] / maxColors); - } +// old-style streams. Note that the pipe method (the only relevant +// part of this class) is overridden in the Readable class. - if (borderColor[_i4] != null) { - colors[_i4 * 4 + 2] = borderColor[_i4] % maxColors; - colors[_i4 * 4 + 3] = Math.floor(borderColor[_i4] / maxColors); - } - } - } - } +function Stream() { + EE.call(this); +} - colorBuffer({ - data: colors || new Uint8Array(0), - type: 'uint8', - usage: 'dynamic' - }); +Stream.prototype.pipe = function(dest, options) { + var source = this; + + function ondata(chunk) { + if (dest.writable) { + if (false === dest.write(chunk) && source.pause) { + source.pause(); + } } + } - return group; - }); -}; // get (and create) marker texture id + source.on('data', ondata); + function ondrain() { + if (source.readable && source.resume) { + source.resume(); + } + } -Scatter.prototype.addMarker = function (sdf) { - var markerTextures = this.markerTextures, - regl = this.regl, - markerCache = this.markerCache; - var pos = sdf == null ? 0 : markerCache.indexOf(sdf); - if (pos >= 0) return pos; // convert sdf to 0..255 range + dest.on('drain', ondrain); - var distArr; + // If the 'end' option is not supplied, dest.end() will be called when + // source gets the 'end' or 'close' events. Only dest.end() once. + if (!dest._isStdio && (!options || options.end !== false)) { + source.on('end', onend); + source.on('close', onclose); + } - if (sdf instanceof Uint8Array || sdf instanceof Uint8ClampedArray) { - distArr = sdf; - } else { - distArr = new Uint8Array(sdf.length); + var didOnEnd = false; + function onend() { + if (didOnEnd) return; + didOnEnd = true; - for (var i = 0, l = sdf.length; i < l; i++) { - distArr[i] = sdf[i] * 255; - } + dest.end(); } - var radius = Math.floor(Math.sqrt(distArr.length)); - pos = markerTextures.length; - markerCache.push(sdf); - markerTextures.push(regl.texture({ - channels: 1, - data: distArr, - radius: radius, - mag: 'linear', - min: 'linear' - })); - return pos; -}; // register color to palette, return it's index or list of indexes - -Scatter.prototype.updateColor = function (colors) { - var paletteIds = this.paletteIds, - palette = this.palette, - maxColors = this.maxColors; + function onclose() { + if (didOnEnd) return; + didOnEnd = true; - if (!Array.isArray(colors)) { - colors = [colors]; + if (typeof dest.destroy === 'function') dest.destroy(); } - var idx = []; // if color groups - flatten them + // don't leave dangling pipes when there are errors. + function onerror(er) { + cleanup(); + if (EE.listenerCount(this, 'error') === 0) { + throw er; // Unhandled stream error in pipe. + } + } - if (typeof colors[0] === 'number') { - var grouped = []; + source.on('error', onerror); + dest.on('error', onerror); - if (Array.isArray(colors)) { - for (var i = 0; i < colors.length; i += 4) { - grouped.push(colors.slice(i, i + 4)); - } - } else { - for (var _i5 = 0; _i5 < colors.length; _i5 += 4) { - grouped.push(colors.subarray(_i5, _i5 + 4)); - } - } + // remove all the event listeners that were added. + function cleanup() { + source.removeListener('data', ondata); + dest.removeListener('drain', ondrain); - colors = grouped; - } + source.removeListener('end', onend); + source.removeListener('close', onclose); - for (var _i6 = 0; _i6 < colors.length; _i6++) { - var color = colors[_i6]; - color = rgba(color, 'uint8'); - var id = colorId(color, false); // if new color - save it + source.removeListener('error', onerror); + dest.removeListener('error', onerror); - if (paletteIds[id] == null) { - var pos = palette.length; - paletteIds[id] = Math.floor(pos / 4); - palette[pos] = color[0]; - palette[pos + 1] = color[1]; - palette[pos + 2] = color[2]; - palette[pos + 3] = color[3]; - } + source.removeListener('end', cleanup); + source.removeListener('close', cleanup); - idx[_i6] = paletteIds[id]; - } // detect if too many colors in palette + dest.removeListener('close', cleanup); + } + source.on('end', cleanup); + source.on('close', cleanup); - if (!this.tooManyColors && palette.length > maxColors * 4) this.tooManyColors = true; // limit max color + dest.on('close', cleanup); - this.updatePalette(palette); // keep static index for single-color property + dest.emit('pipe', source); - return idx.length === 1 ? idx[0] : idx; + // Allow for unix-like usage: A.pipe(B).pipe(C) + return dest; }; -Scatter.prototype.updatePalette = function (palette) { - if (this.tooManyColors) return; - var maxColors = this.maxColors, - paletteTexture = this.paletteTexture; - var requiredHeight = Math.ceil(palette.length * .25 / maxColors); // pad data +},{"events":112,"inherits":443,"readable-stream/lib/_stream_duplex.js":565,"readable-stream/lib/_stream_passthrough.js":566,"readable-stream/lib/_stream_readable.js":567,"readable-stream/lib/_stream_transform.js":568,"readable-stream/lib/_stream_writable.js":569,"readable-stream/lib/internal/streams/end-of-stream.js":573,"readable-stream/lib/internal/streams/pipeline.js":575}],564:[function(_dereq_,module,exports){ +'use strict'; - if (requiredHeight > 1) { - palette = palette.slice(); +function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } - for (var i = palette.length * .25 % maxColors; i < requiredHeight * maxColors; i++) { - palette.push(0, 0, 0, 0); +var codes = {}; + +function createErrorType(code, message, Base) { + if (!Base) { + Base = Error; + } + + function getMessage(arg1, arg2, arg3) { + if (typeof message === 'string') { + return message; + } else { + return message(arg1, arg2, arg3); } - } // ensure height + } + var NodeError = + /*#__PURE__*/ + function (_Base) { + _inheritsLoose(NodeError, _Base); - if (paletteTexture.height < requiredHeight) { - paletteTexture.resize(maxColors, requiredHeight); - } // update full data + function NodeError(arg1, arg2, arg3) { + return _Base.call(this, getMessage(arg1, arg2, arg3)) || this; + } + return NodeError; + }(Base); - paletteTexture.subimage({ - width: Math.min(palette.length * .25, maxColors), - height: requiredHeight, - data: palette - }, 0, 0); -}; // remove unused stuff + NodeError.prototype.name = Base.name; + NodeError.prototype.code = code; + codes[code] = NodeError; +} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js -Scatter.prototype.destroy = function () { - this.groups.forEach(function (group) { - group.sizeBuffer.destroy(); - group.positionBuffer.destroy(); - group.positionFractBuffer.destroy(); - group.colorBuffer.destroy(); - group.activation.forEach(function (b) { - return b && b.destroy && b.destroy(); +function oneOf(expected, thing) { + if (Array.isArray(expected)) { + var len = expected.length; + expected = expected.map(function (i) { + return String(i); }); - group.selectionBuffer.destroy(); - if (group.elements) group.elements.destroy(); - }); - this.groups.length = 0; - this.paletteTexture.destroy(); - this.markerTextures.forEach(function (txt) { - return txt && txt.destroy && txt.destroy(); - }); - return this; -}; -var extend$1 = _dereq_('object-assign'); + if (len > 2) { + return "one of ".concat(thing, " ").concat(expected.slice(0, len - 1).join(', '), ", or ") + expected[len - 1]; + } else if (len === 2) { + return "one of ".concat(thing, " ").concat(expected[0], " or ").concat(expected[1]); + } else { + return "of ".concat(thing, " ").concat(expected[0]); + } + } else { + return "of ".concat(thing, " ").concat(String(expected)); + } +} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith -var reglScatter2d = function reglScatter2d(regl, options) { - var scatter$1 = new scatter(regl, options); - var render = scatter$1.render.bind(scatter$1); // expose API - extend$1(render, { - render: render, - update: scatter$1.update.bind(scatter$1), - draw: scatter$1.draw.bind(scatter$1), - destroy: scatter$1.destroy.bind(scatter$1), - regl: scatter$1.regl, - gl: scatter$1.gl, - canvas: scatter$1.gl.canvas, - groups: scatter$1.groups, - markers: scatter$1.markerCache, - palette: scatter$1.palette - }); - return render; -}; +function startsWith(str, search, pos) { + return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search; +} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith -module.exports = reglScatter2d; -},{"@plotly/point-cluster":57,"array-bounds":70,"color-id":123,"color-normalize":125,"flatten-vertex-data":244,"glslify":538,"is-iexplorer":466,"object-assign":499,"parse-rect":504,"pick-by-alias":511,"to-float32":577,"update-diff":599}],538:[function(_dereq_,module,exports){ -arguments[4][257][0].apply(exports,arguments) -},{"dup":257}],539:[function(_dereq_,module,exports){ -'use strict' +function endsWith(str, search, this_len) { + if (this_len === undefined || this_len > str.length) { + this_len = str.length; + } + return str.substring(this_len - search.length, this_len) === search; +} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes -var createScatter = _dereq_('regl-scatter2d') -var pick = _dereq_('pick-by-alias') -var getBounds = _dereq_('array-bounds') -var raf = _dereq_('raf') -var arrRange = _dereq_('array-range') -var rect = _dereq_('parse-rect') -var flatten = _dereq_('flatten-vertex-data') +function includes(str, search, start) { + if (typeof start !== 'number') { + start = 0; + } -module.exports = SPLOM + if (start + search.length > str.length) { + return false; + } else { + return str.indexOf(search, start) !== -1; + } +} +createErrorType('ERR_INVALID_OPT_VALUE', function (name, value) { + return 'The value "' + value + '" is invalid for option "' + name + '"'; +}, TypeError); +createErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) { + // determiner: 'must be' or 'must not be' + var determiner; -// @constructor -function SPLOM (regl, options) { - if (!(this instanceof SPLOM)) { return new SPLOM(regl, options) } + if (typeof expected === 'string' && startsWith(expected, 'not ')) { + determiner = 'must not be'; + expected = expected.replace(/^not /, ''); + } else { + determiner = 'must be'; + } - // render passes - this.traces = [] + var msg; - // passes for scatter, combined across traces - this.passes = {} + if (endsWith(name, ' argument')) { + // For cases like 'first argument' + msg = "The ".concat(name, " ").concat(determiner, " ").concat(oneOf(expected, 'type')); + } else { + var type = includes(name, '.') ? 'property' : 'argument'; + msg = "The \"".concat(name, "\" ").concat(type, " ").concat(determiner, " ").concat(oneOf(expected, 'type')); + } - this.regl = regl + msg += ". Received type ".concat(typeof actual); + return msg; +}, TypeError); +createErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF'); +createErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) { + return 'The ' + name + ' method is not implemented'; +}); +createErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close'); +createErrorType('ERR_STREAM_DESTROYED', function (name) { + return 'Cannot call ' + name + ' after a stream was destroyed'; +}); +createErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times'); +createErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable'); +createErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end'); +createErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError); +createErrorType('ERR_UNKNOWN_ENCODING', function (arg) { + return 'Unknown encoding: ' + arg; +}, TypeError); +createErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event'); +module.exports.codes = codes; + +},{}],565:[function(_dereq_,module,exports){ +(function (process){(function (){ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. +// a duplex stream is just a stream that is both readable and writable. +// Since JS doesn't have multiple prototypal inheritance, this class +// prototypally inherits from Readable, and then parasitically from +// Writable. +'use strict'; +/**/ - // main scatter drawing instance - this.scatter = createScatter(regl) +var objectKeys = Object.keys || function (obj) { + var keys = []; - this.canvas = this.scatter.canvas -} + for (var key in obj) { + keys.push(key); + } + return keys; +}; +/**/ -// update & draw passes once per frame -SPLOM.prototype.render = function () { - var this$1 = this; - var ref; - var args = [], len = arguments.length; - while ( len-- ) args[ len ] = arguments[ len ]; - if (args.length) { - (ref = this).update.apply(ref, args) - } +module.exports = Duplex; - if (this.regl.attributes.preserveDrawingBuffer) { return this.draw() } +var Readable = _dereq_('./_stream_readable'); - // make sure draw is not called more often than once a frame - if (this.dirty) { - if (this.planned == null) { - this.planned = raf(function () { - this$1.draw() - this$1.dirty = true - this$1.planned = null - }) - } - } - else { - this.draw() - this.dirty = true - raf(function () { - this$1.dirty = false - }) - } +var Writable = _dereq_('./_stream_writable'); - return this -} +_dereq_('inherits')(Duplex, Readable); +{ + // Allow the keys array to be GC'ed. + var keys = objectKeys(Writable.prototype); -// update passes -SPLOM.prototype.update = function () { - var ref; + for (var v = 0; v < keys.length; v++) { + var method = keys[v]; + if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; + } +} - var args = [], len = arguments.length; - while ( len-- ) args[ len ] = arguments[ len ]; - if (!args.length) { return } +function Duplex(options) { + if (!(this instanceof Duplex)) return new Duplex(options); + Readable.call(this, options); + Writable.call(this, options); + this.allowHalfOpen = true; - for (var i = 0; i < args.length; i++) { - this.updateItem(i, args[i]) - } + if (options) { + if (options.readable === false) this.readable = false; + if (options.writable === false) this.writable = false; - // remove nulled passes - this.traces = this.traces.filter(Boolean) + if (options.allowHalfOpen === false) { + this.allowHalfOpen = false; + this.once('end', onend); + } + } +} - // FIXME: update passes independently - var passes = [] - var offset = 0 - for (var i$1 = 0; i$1 < this.traces.length; i$1++) { - var trace = this.traces[i$1] - var tracePasses = this.traces[i$1].passes - for (var j = 0; j < tracePasses.length; j++) { - passes.push(this.passes[tracePasses[j]]) - } - // save offset of passes - trace.passOffset = offset - offset += trace.passes.length - } +Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState.highWaterMark; + } +}); +Object.defineProperty(Duplex.prototype, 'writableBuffer', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState && this._writableState.getBuffer(); + } +}); +Object.defineProperty(Duplex.prototype, 'writableLength', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState.length; + } +}); // the no-half-open enforcer - (ref = this.scatter).update.apply(ref, passes) +function onend() { + // If the writable side ended, then we're ok. + if (this._writableState.ended) return; // no more data can be written. + // But allow more writes to happen in this tick. - return this + process.nextTick(onEndNT, this); } +function onEndNT(self) { + self.end(); +} -// update trace by index, not supposed to be called directly -SPLOM.prototype.updateItem = function (i, options) { - var ref = this; - var regl = ref.regl; +Object.defineProperty(Duplex.prototype, 'destroyed', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + if (this._readableState === undefined || this._writableState === undefined) { + return false; + } - // remove pass if null - if (options === null) { - this.traces[i] = null - return this - } + return this._readableState.destroyed && this._writableState.destroyed; + }, + set: function set(value) { + // we ignore the value if the stream + // has not been initialized yet + if (this._readableState === undefined || this._writableState === undefined) { + return; + } // backward compatibility, the user is explicitly + // managing destroyed - if (!options) { return this } - var o = pick(options, { - data: 'data items columns rows values dimensions samples x', - snap: 'snap cluster', - size: 'sizes size radius', - color: 'colors color fill fill-color fillColor', - opacity: 'opacity alpha transparency opaque', - borderSize: 'borderSizes borderSize border-size bordersize borderWidth borderWidths border-width borderwidth stroke-width strokeWidth strokewidth outline', - borderColor: 'borderColors borderColor bordercolor stroke stroke-color strokeColor', - marker: 'markers marker shape', - range: 'range ranges databox dataBox', - viewport: 'viewport viewBox viewbox', - domain: 'domain domains area areas', - padding: 'pad padding paddings pads margin margins', - transpose: 'transpose transposed', - diagonal: 'diagonal diag showDiagonal', - upper: 'upper up top upperhalf upperHalf showupperhalf showUpper showUpperHalf', - lower: 'lower low bottom lowerhalf lowerHalf showlowerhalf showLowerHalf showLower' - }) + this._readableState.destroyed = value; + this._writableState.destroyed = value; + } +}); +}).call(this)}).call(this,_dereq_('_process')) +},{"./_stream_readable":567,"./_stream_writable":569,"_process":522,"inherits":443}],566:[function(_dereq_,module,exports){ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. +// a passthrough stream. +// basically just the most minimal sort of Transform stream. +// Every written chunk gets output as-is. +'use strict'; - // we provide regl buffer per-trace, since trace data can be changed - var trace = (this.traces[i] || (this.traces[i] = { - id: i, - buffer: regl.buffer({ - usage: 'dynamic', - type: 'float', - data: new Uint8Array() - }), - color: 'black', - marker: null, - size: 12, - borderColor: 'transparent', - borderSize: 1, - viewport: rect([regl._gl.drawingBufferWidth, regl._gl.drawingBufferHeight]), - padding: [0, 0, 0, 0], - opacity: 1, - diagonal: true, - upper: true, - lower: true - })) +module.exports = PassThrough; +var Transform = _dereq_('./_stream_transform'); - // save styles - if (o.color != null) { - trace.color = o.color - } - if (o.size != null) { - trace.size = o.size - } - if (o.marker != null) { - trace.marker = o.marker - } - if (o.borderColor != null) { - trace.borderColor = o.borderColor - } - if (o.borderSize != null) { - trace.borderSize = o.borderSize - } - if (o.opacity != null) { - trace.opacity = o.opacity - } - if (o.viewport) { - trace.viewport = rect(o.viewport) - } - if (o.diagonal != null) { trace.diagonal = o.diagonal } - if (o.upper != null) { trace.upper = o.upper } - if (o.lower != null) { trace.lower = o.lower } +_dereq_('inherits')(PassThrough, Transform); - // put flattened data into buffer - if (o.data) { - trace.buffer(flatten(o.data)) - trace.columns = o.data.length - trace.count = o.data[0].length +function PassThrough(options) { + if (!(this instanceof PassThrough)) return new PassThrough(options); + Transform.call(this, options); +} - // detect bounds per-column - trace.bounds = [] +PassThrough.prototype._transform = function (chunk, encoding, cb) { + cb(null, chunk); +}; +},{"./_stream_transform":568,"inherits":443}],567:[function(_dereq_,module,exports){ +(function (process,global){(function (){ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. +'use strict'; - for (var i$1 = 0; i$1 < trace.columns; i$1++) { - trace.bounds[i$1] = getBounds(o.data[i$1], 1) - } - } +module.exports = Readable; +/**/ - // add proper range updating markers - var multirange - if (o.range) { - trace.range = o.range - multirange = trace.range && typeof trace.range[0] !== 'number' - } +var Duplex; +/**/ - if (o.domain) { - trace.domain = o.domain - } - var multipadding = false - if (o.padding != null) { - // multiple paddings - if (Array.isArray(o.padding) && o.padding.length === trace.columns && typeof o.padding[o.padding.length - 1] === 'number') { - trace.padding = o.padding.map(getPad) - multipadding = true - } - // single padding - else { - trace.padding = getPad(o.padding) - } - } +Readable.ReadableState = ReadableState; +/**/ - // create passes - var m = trace.columns - var n = trace.count +var EE = _dereq_('events').EventEmitter; - var w = trace.viewport.width - var h = trace.viewport.height - var left = trace.viewport.x - var top = trace.viewport.y - var iw = w / m - var ih = h / m +var EElistenerCount = function EElistenerCount(emitter, type) { + return emitter.listeners(type).length; +}; +/**/ - trace.passes = [] +/**/ - for (var i$2 = 0; i$2 < m; i$2++) { - for (var j = 0; j < m; j++) { - if (!trace.diagonal && j === i$2) { continue } - if (!trace.upper && i$2 > j) { continue } - if (!trace.lower && i$2 < j) { continue } - var key = passId(trace.id, i$2, j) +var Stream = _dereq_('./internal/streams/stream'); +/**/ - var pass = this.passes[key] || (this.passes[key] = {}) - if (o.data) { - if (o.transpose) { - pass.positions = { - x: {buffer: trace.buffer, offset: j, count: n, stride: m}, - y: {buffer: trace.buffer, offset: i$2, count: n, stride: m} - } - } - else { - pass.positions = { - x: {buffer: trace.buffer, offset: j * n, count: n}, - y: {buffer: trace.buffer, offset: i$2 * n, count: n} - } - } +var Buffer = _dereq_('buffer').Buffer; - pass.bounds = getBox(trace.bounds, i$2, j) - } +var OurUint8Array = global.Uint8Array || function () {}; - if (o.domain || o.viewport || o.data) { - var pad = multipadding ? getBox(trace.padding, i$2, j) : trace.padding - if (trace.domain) { - var ref$1 = getBox(trace.domain, i$2, j); - var lox = ref$1[0]; - var loy = ref$1[1]; - var hix = ref$1[2]; - var hiy = ref$1[3]; +function _uint8ArrayToBuffer(chunk) { + return Buffer.from(chunk); +} - pass.viewport = [ - left + lox * w + pad[0], - top + loy * h + pad[1], - left + hix * w - pad[2], - top + hiy * h - pad[3] - ] - } - // consider auto-domain equipartial - else { - pass.viewport = [ - left + j * iw + iw * pad[0], - top + i$2 * ih + ih * pad[1], - left + (j + 1) * iw - iw * pad[2], - top + (i$2 + 1) * ih - ih * pad[3] - ] - } - } +function _isUint8Array(obj) { + return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; +} +/**/ - if (o.color) { pass.color = trace.color } - if (o.size) { pass.size = trace.size } - if (o.marker) { pass.marker = trace.marker } - if (o.borderSize) { pass.borderSize = trace.borderSize } - if (o.borderColor) { pass.borderColor = trace.borderColor } - if (o.opacity) { pass.opacity = trace.opacity } - if (o.range) { - pass.range = multirange ? getBox(trace.range, i$2, j) : trace.range || pass.bounds - } +var debugUtil = _dereq_('util'); - trace.passes.push(key) - } - } +var debug; - return this +if (debugUtil && debugUtil.debuglog) { + debug = debugUtil.debuglog('stream'); +} else { + debug = function debug() {}; } +/**/ -// draw all or passed passes -SPLOM.prototype.draw = function () { - var ref$2; +var BufferList = _dereq_('./internal/streams/buffer_list'); - var args = [], len = arguments.length; - while ( len-- ) args[ len ] = arguments[ len ]; - if (!args.length) { - this.scatter.draw() - } - else { - var idx = [] - for (var i = 0; i < args.length; i++) { - // draw(0, 2, 5) - draw traces - if (typeof args[i] === 'number' ) { - var ref = this.traces[args[i]]; - var passes = ref.passes; - var passOffset = ref.passOffset; - idx.push.apply(idx, arrRange(passOffset, passOffset + passes.length)) - } - // draw([0, 1, 2 ...], [3, 4, 5]) - draw points - else if (args[i].length) { - var els = args[i] - var ref$1 = this.traces[i]; - var passes$1 = ref$1.passes; - var passOffset$1 = ref$1.passOffset; - passes$1 = passes$1.map(function (passId, i) { - idx[passOffset$1 + i] = els - }) - } - } - (ref$2 = this.scatter).draw.apply(ref$2, idx) - } +var destroyImpl = _dereq_('./internal/streams/destroy'); - return this -} +var _require = _dereq_('./internal/streams/state'), + getHighWaterMark = _require.getHighWaterMark; +var _require$codes = _dereq_('../errors').codes, + ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, + ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF, + ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, + ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance. -// dispose resources -SPLOM.prototype.destroy = function () { - this.traces.forEach(function (trace) { - if (trace.buffer && trace.buffer.destroy) { trace.buffer.destroy() } - }) - this.traces = null - this.passes = null - this.scatter.destroy() +var StringDecoder; +var createReadableStreamAsyncIterator; +var from; - return this -} +_dereq_('inherits')(Readable, Stream); +var errorOrDestroy = destroyImpl.errorOrDestroy; +var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume']; -// return pass corresponding to trace i- j- square -function passId (trace, i, j) { - var id = (trace.id != null ? trace.id : trace) - var n = i - var m = j - var key = id << 16 | (n & 0xff) << 8 | m & 0xff +function prependListener(emitter, event, fn) { + // Sadly this is not cacheable as some libraries bundle their own + // event emitter implementation with them. + if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any + // userland ones. NEVER DO THIS. This is here only because this code needs + // to continue to work with older versions of Node.js that do not include + // the prependListener() method. The goal is to eventually remove this hack. - return key + if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]]; } +function ReadableState(options, stream, isDuplex) { + Duplex = Duplex || _dereq_('./_stream_duplex'); + options = options || {}; // Duplex streams are both readable and writable, but share + // the same options object. + // However, some cases require setting options to different + // values for the readable and the writable sides of the duplex stream. + // These options can be provided separately as readableXXX and writableXXX. -// return bounding box corresponding to a pass -function getBox (items, i, j) { - var ilox, iloy, ihix, ihiy, jlox, jloy, jhix, jhiy - var iitem = items[i], jitem = items[j] + if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to + // make all the buffer merging and length checks go away - if (iitem.length > 2) { - ilox = iitem[0] - ihix = iitem[2] - iloy = iitem[1] - ihiy = iitem[3] - } - else if (iitem.length) { - ilox = iloy = iitem[0] - ihix = ihiy = iitem[1] - } - else { - ilox = iitem.x - iloy = iitem.y - ihix = iitem.x + iitem.width - ihiy = iitem.y + iitem.height - } + this.objectMode = !!options.objectMode; + if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer + // Note: 0 is a valid value, means "don't call _read preemptively ever" - if (jitem.length > 2) { - jlox = jitem[0] - jhix = jitem[2] - jloy = jitem[1] - jhiy = jitem[3] - } - else if (jitem.length) { - jlox = jloy = jitem[0] - jhix = jhiy = jitem[1] - } - else { - jlox = jitem.x - jloy = jitem.y - jhix = jitem.x + jitem.width - jhiy = jitem.y + jitem.height - } + this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the + // linked list can remove elements from the beginning faster than + // array.shift() - return [ jlox, iloy, jhix, ihiy ] -} + this.buffer = new BufferList(); + this.length = 0; + this.pipes = null; + this.pipesCount = 0; + this.flowing = null; + this.ended = false; + this.endEmitted = false; + this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted + // immediately, or on a later tick. We set this to true at first, because + // any actions that shouldn't happen until "later" should generally also + // not happen before the first read call. + this.sync = true; // whenever we return null, then we set a flag to say + // that we're awaiting a 'readable' event emission. -function getPad (arg) { - if (typeof arg === 'number') { return [arg, arg, arg, arg] } - else if (arg.length === 2) { return [arg[0], arg[1], arg[0], arg[1]] } - else { - var box = rect(arg) - return [box.x, box.y, box.x + box.width, box.y + box.height] - } -} + this.needReadable = false; + this.emittedReadable = false; + this.readableListening = false; + this.resumeScheduled = false; + this.paused = true; // Should close be emitted on destroy. Defaults to true. -},{"array-bounds":70,"array-range":72,"flatten-vertex-data":244,"parse-rect":504,"pick-by-alias":511,"raf":528,"regl-scatter2d":537}],540:[function(_dereq_,module,exports){ -(function(ja,N){"object"===typeof exports&&"undefined"!==typeof module?module.exports=N():"function"===typeof define&&define.amd?define(N):ja.createREGL=N()})(this,function(){function ja(a,b){this.id=Bb++;this.type=a;this.data=b}function N(a){if(0===a.length)return[];var b=a.charAt(0),c=a.charAt(a.length-1);if(1>>=b;c=(255>>=c;b|=c;c=(15>>=c;b|=c;c=(3>>c>>1}function fb(){function a(a){a:{for(var b=16;268435456>=b;b*=16)if(a<=b){a=b;break a}a=0}b=c[eb(a)>>2];return 0>2].push(a)}var c=A(8,function(){return[]});return{alloc:a,free:b,allocType:function(b,c){var d=null;switch(b){case 5120:d= -new Int8Array(a(c),0,c);break;case 5121:d=new Uint8Array(a(c),0,c);break;case 5122:d=new Int16Array(a(2*c),0,c);break;case 5123:d=new Uint16Array(a(2*c),0,c);break;case 5124:d=new Int32Array(a(4*c),0,c);break;case 5125:d=new Uint32Array(a(4*c),0,c);break;case 5126:d=new Float32Array(a(4*c),0,c);break;default:return null}return d.length!==c?d.subarray(0,c):d},freeType:function(a){b(a.buffer)}}}function X(a){return!!a&&"object"===typeof a&&Array.isArray(a.shape)&&Array.isArray(a.stride)&&"number"=== -typeof a.offset&&a.shape.length===a.stride.length&&(Array.isArray(a.data)||G(a.data))}function gb(a,b,c,e,g,d){for(var r=0;re&&(e=d.buffer.byteLength,5123===v?e>>=1:5125===v&&(e>>=2));d.vertCount=e;e= -h;0>h&&(e=4,h=d.buffer.dimension,1===h&&(e=0),2===h&&(e=1),3===h&&(e=4));d.primType=e}function r(a){e.elementsCount--;delete n[a.id];a.buffer.destroy();a.buffer=null}var n={},u=0,q={uint8:5121,uint16:5123};b.oes_element_index_uint&&(q.uint32=5125);g.prototype.bind=function(){this.buffer.bind()};var t=[];return{create:function(a,b){function k(a){if(a)if("number"===typeof a)h(a),f.primType=4,f.vertCount=a|0,f.type=5121;else{var b=null,c=35044,e=-1,g=-1,m=0,n=0;if(Array.isArray(a)||G(a)||X(a))b=a;else if("data"in -a&&(b=a.data),"usage"in a&&(c=lb[a.usage]),"primitive"in a&&(e=Sa[a.primitive]),"count"in a&&(g=a.count|0),"type"in a&&(n=q[a.type]),"length"in a)m=a.length|0;else if(m=g,5123===n||5122===n)m*=2;else if(5125===n||5124===n)m*=4;d(f,b,c,e,g,m,n)}else h(),f.primType=4,f.vertCount=0,f.type=5121;return k}var h=c.create(null,34963,!0),f=new g(h._buffer);e.elementsCount++;k(a);k._reglType="elements";k._elements=f;k.subdata=function(a,b){h.subdata(a,b);return k};k.destroy=function(){r(f)};return k},createStream:function(a){var b= -t.pop();b||(b=new g(c.create(null,34963,!0,!1)._buffer));d(b,a,35040,-1,-1,0,0);return b},destroyStream:function(a){t.push(a)},getElements:function(a){return"function"===typeof a&&a._elements instanceof g?a._elements:null},clear:function(){J(n).forEach(r)}}}function nb(a){for(var b=z.allocType(5123,a.length),c=0;c>>31<<15,d=(e<<1>>>24)-127,e=e>>13&1023;b[c]= --24>d?g:-14>d?g+(e+1024>>-14-d):15>=d,c.height>>=d,F(c,f[d]),a.mipmask|=1<b;++b)a.images[b]=null;return a}function va(a){for(var b=a.images,c=0;cb){for(var c=0;c=--this.refCount&&D(this)}});r.profile&&(d.getTotalTextureSize= -function(){var a=0;Object.keys(E).forEach(function(b){a+=E[b].stats.size});return a});return{create2D:function(b,c){function e(a,b){var c=g.texInfo;ea.call(c);var f=C();"number"===typeof a?"number"===typeof b?l(f,a|0,b|0):l(f,a|0,a|0):a?(mb(c,a),v(f,a)):l(f,1,1);c.genMipmaps&&(f.mipmask=(f.width<<1)-1);g.mipmask=f.mipmask;u(g,f);g.internalformat=f.internalformat;e.width=f.width;e.height=f.height;sa(g);Q(f,3553);Ra(c,3553);za();va(f);r.profile&&(g.stats.size=Ia(g.internalformat,g.type,f.width,f.height, -c.genMipmaps,!1));e.format=aa[g.internalformat];e.type=xa[g.type];e.mag=ba[c.magFilter];e.min=Da[c.minFilter];e.wrapS=fa[c.wrapS];e.wrapT=fa[c.wrapT];return e}var g=new R(3553);E[g.id]=g;d.textureCount++;e(b,c);e.subimage=function(a,b,c,d){b|=0;c|=0;d|=0;var l=h();u(l,g);l.width=0;l.height=0;F(l,a);l.width=l.width||(g.width>>d)-b;l.height=l.height||(g.height>>d)-c;sa(g);k(l,3553,b,c,d);za();f(l);return e};e.resize=function(b,c){var f=b|0,d=c|0||f;if(f===g.width&&d===g.height)return e;e.width=g.width= -f;e.height=g.height=d;sa(g);for(var h=0;g.mipmask>>h;++h){var l=f>>h,y=d>>h;if(!l||!y)break;a.texImage2D(3553,h,g.format,l,y,0,g.format,g.type,null)}za();r.profile&&(g.stats.size=Ia(g.internalformat,g.type,f,d,!1,!1));return e};e._reglType="texture2d";e._texture=g;r.profile&&(e.stats=g.stats);e.destroy=function(){g.decRef()};return e},createCube:function(b,c,e,g,p,n){function m(a,b,c,f,d,e){var h,ma=x.texInfo;ea.call(ma);for(h=0;6>h;++h)D[h]=C();if("number"===typeof a||!a)for(a=a|0||1,h=0;6>h;++h)l(D[h], -a,a);else if("object"===typeof a)if(b)v(D[0],a),v(D[1],b),v(D[2],c),v(D[3],f),v(D[4],d),v(D[5],e);else if(mb(ma,a),q(x,a),"faces"in a)for(a=a.faces,h=0;6>h;++h)u(D[h],x),v(D[h],a[h]);else for(h=0;6>h;++h)v(D[h],a);u(x,D[0]);x.mipmask=ma.genMipmaps?(D[0].width<<1)-1:D[0].mipmask;x.internalformat=D[0].internalformat;m.width=D[0].width;m.height=D[0].height;sa(x);for(h=0;6>h;++h)Q(D[h],34069+h);Ra(ma,34067);za();r.profile&&(x.stats.size=Ia(x.internalformat,x.type,m.width,m.height,ma.genMipmaps,!0));m.format= -aa[x.internalformat];m.type=xa[x.type];m.mag=ba[ma.magFilter];m.min=Da[ma.minFilter];m.wrapS=fa[ma.wrapS];m.wrapT=fa[ma.wrapT];for(h=0;6>h;++h)va(D[h]);return m}var x=new R(34067);E[x.id]=x;d.cubeCount++;var D=Array(6);m(b,c,e,g,p,n);m.subimage=function(a,b,c,d,e){c|=0;d|=0;e|=0;var g=h();u(g,x);g.width=0;g.height=0;F(g,b);g.width=g.width||(x.width>>e)-c;g.height=g.height||(x.height>>e)-d;sa(x);k(g,34069+a,c,d,e);za();f(g);return m};m.resize=function(b){b|=0;if(b!==x.width){m.width=x.width=b;m.height= -x.height=b;sa(x);for(var c=0;6>c;++c)for(var f=0;x.mipmask>>f;++f)a.texImage2D(34069+c,f,x.format,b>>f,b>>f,0,x.format,x.type,null);za();r.profile&&(x.stats.size=Ia(x.internalformat,x.type,m.width,m.height,!1,!0));return m}};m._reglType="textureCube";m._texture=x;r.profile&&(m.stats=x.stats);m.destroy=function(){x.decRef()};return m},clear:function(){for(var b=0;bc;++c)if(0!==(b.mipmask&1<>c,b.height>>c,0,b.internalformat,b.type,null);else for(var f=0;6>f;++f)a.texImage2D(34069+f,c,b.internalformat,b.width>>c,b.height>>c,0,b.internalformat,b.type,null);Ra(b.texInfo,b.target)})}}}function Ob(a,b,c,e, -g,d){function r(a,b,c){this.target=a;this.texture=b;this.renderbuffer=c;var f=a=0;b?(a=b.width,f=b.height):c&&(a=c.width,f=c.height);this.width=a;this.height=f}function n(a){a&&(a.texture&&a.texture._texture.decRef(),a.renderbuffer&&a.renderbuffer._renderbuffer.decRef())}function u(a,b,c){a&&(a.texture?a.texture._texture.refCount+=1:a.renderbuffer._renderbuffer.refCount+=1)}function q(b,c){c&&(c.texture?a.framebufferTexture2D(36160,b,c.target,c.texture._texture.texture,0):a.framebufferRenderbuffer(36160, -b,36161,c.renderbuffer._renderbuffer.renderbuffer))}function t(a){var b=3553,c=null,f=null,d=a;"object"===typeof a&&(d=a.data,"target"in a&&(b=a.target|0));a=d._reglType;"texture2d"===a?c=d:"textureCube"===a?c=d:"renderbuffer"===a&&(f=d,b=36161);return new r(b,c,f)}function m(a,b,c,f,d){if(c)return a=e.create2D({width:a,height:b,format:f,type:d}),a._texture.refCount=0,new r(3553,a,null);a=g.create({width:a,height:b,format:f});a._renderbuffer.refCount=0;return new r(36161,null,a)}function F(a){return a&& -(a.texture||a.renderbuffer)}function k(a,b,c){a&&(a.texture?a.texture.resize(b,c):a.renderbuffer&&a.renderbuffer.resize(b,c),a.width=b,a.height=c)}function h(){this.id=z++;w[this.id]=this;this.framebuffer=a.createFramebuffer();this.height=this.width=0;this.colorAttachments=[];this.depthStencilAttachment=this.stencilAttachment=this.depthAttachment=null}function f(a){a.colorAttachments.forEach(n);n(a.depthAttachment);n(a.stencilAttachment);n(a.depthStencilAttachment)}function p(b){a.deleteFramebuffer(b.framebuffer); -b.framebuffer=null;d.framebufferCount--;delete w[b.id]}function l(b){var f;a.bindFramebuffer(36160,b.framebuffer);var d=b.colorAttachments;for(f=0;ff;++f){for(l=0;la;++a)c[a].resize(f);b.width=b.height=f;return b},_reglType:"framebufferCube",destroy:function(){c.forEach(function(a){a.destroy()})}})},clear:function(){J(w).forEach(p)},restore:function(){Q.cur=null;Q.next=null;Q.dirty=!0;J(w).forEach(function(b){b.framebuffer=a.createFramebuffer();l(b)})}})}function Ya(){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 Pb(a,b,c,e,g){function d(a){if(a!==h.currentVAO){var c= -b.oes_vertex_array_object;a?c.bindVertexArrayOES(a.vao):c.bindVertexArrayOES(null);h.currentVAO=a}}function r(c){if(c!==h.currentVAO){if(c)c.bindAttrs();else for(var d=b.angle_instanced_arrays,e=0;ea&&(a=b.stats.uniformsCount)});return a},c.getMaxAttributesCount=function(){var a=0;F.forEach(function(b){b.stats.attributesCount>a&&(a=b.stats.attributesCount)});return a}); -return{clear:function(){var b=a.deleteShader.bind(a);J(q).forEach(b);q={};J(t).forEach(b);t={};F.forEach(function(b){a.deleteProgram(b.program)});F.length=0;m={};c.shaderCount=0},program:function(a,b,d,e){var g=m[b];g||(g=m[b]={});var k=g[a];if(k&&!e)return k;b=new n(b,a);c.shaderCount++;u(b,d,e);k||(g[a]=b);F.push(b);return b},restore:function(){q={};t={};for(var a=0;a"+b+"?"+e+".constant["+b+"]:0;"}).join(""),"}}else{","if(",h,"(",e,".buffer)){",k,"=",f,".createStream(",34962,",",e,".buffer);","}else{",k,"=",f,".getBuffer(",e,".buffer);","}",U,'="type" in ',e,"?",g.glTypes,"[",e,".type]:",k,".dtype;", -y.normalized,"=!!",e,".normalized;");d("size");d("offset");d("stride");d("divisor");c("}}");c.exit("if(",y.isStream,"){",f,".destroyStream(",k,");","}");return y})});return f}function D(a,b){var c=a["static"],d=a.dynamic;if("vao"in c){var e=c.vao;null!==e&&null===q.getVAO(e)&&(e=q.createVAO(e));return C(function(a){return a.link(q.getVAO(e))})}if("vao"in d){var f=d.vao;return L(f,function(a,b){var c=a.invoke(b,f);return b.def(a.shared.vao+".getVAO("+c+")")})}return null}function x(a){var b=a["static"], -c=a.dynamic,d={};Object.keys(b).forEach(function(a){var c=b[a];d[a]=C(function(a,b){return"number"===typeof c||"boolean"===typeof c?""+c:a.link(c)})});Object.keys(c).forEach(function(a){var b=c[a];d[a]=L(b,function(a,c){return a.invoke(c,b)})});return d}function la(a,b,d,e,g){function h(a){var b=n[a];b&&(Za[a]=b)}var k=H(a,b),m=z(a,g),n=w(a,m,g),l=G(a,g),Za=R(a,g),p=E(a,g,k);h("viewport");h(f("scissor.box"));var r=0>1)",t],");")}function b(){c(v,".drawArraysInstancedANGLE(",[p,q,r,t],");")}n?ba?a():(c("if(",n,"){"),a(),c("}else{"),b(),c("}")):b()}function g(){function a(){c(k+".drawElements("+[p,r,u,q+"<<(("+u+"-5121)>>1)"]+");")}function b(){c(k+".drawArrays("+[p,q,r]+");")}n?ba?a():(c("if(",n,"){"),a(),c("}else{"),b(),c("}")):b()}var h=a.shared,k=h.gl,m=h.draw,l=d.draw, -n=function(){var e=l.elements,f=b;if(e){if(e.contextDep&&d.contextDynamic||e.propDep)f=c;e=e.append(a,f)}else e=f.def(m,".","elements");e&&f("if("+e+")"+k+".bindBuffer(34963,"+e+".buffer.buffer);");return e}(),p=e("primitive"),q=e("offset"),r=function(){var e=l.count,f=b;if(e){if(e.contextDep&&d.contextDynamic||e.propDep)f=c;e=e.append(a,f)}else e=f.def(m,".","count");return e}();if("number"===typeof r){if(0===r)return}else c("if(",r,"){"),c.exit("}");var t,v;oa&&(t=e("instances"),v=a.instancing); -var u=n+".type",ba=l.elements&&ua(l.elements);oa&&("number"!==typeof t||0<=t)?"string"===typeof t?(c("if(",t,">0){"),f(),c("}else if(",t,"<0){"),g(),c("}")):f():g()}function xa(a,b,c,d,e){b=v();e=b.proc("body",e);oa&&(b.instancing=e.def(b.shared.extensions,".angle_instanced_arrays"));a(b,e,c,d);return b.compile().body}function ba(a,b,c,d){B(a,b);c.useVAO?c.drawVAO?b(a.shared.vao,".setVAO(",c.drawVAO.append(a,b),");"):b(a.shared.vao,".setVAO(",a.shared.vao,".targetVAO);"):(b(a.shared.vao,".setVAO(null);"), -N(a,b,c,d.attributes,function(){return!0}));wa(a,b,c,d.uniforms,function(){return!0});aa(a,b,b,c)}function Da(a,b){var c=a.proc("draw",1);B(a,c);T(a,c,b.context);O(a,c,b.framebuffer);S(a,c,b);K(a,c,b.state);V(a,c,b,!1,!0);var d=b.shader.progVar.append(a,c);c(a.shared.gl,".useProgram(",d,".program);");if(b.shader.program)ba(a,c,b,b.shader.program);else{c(a.shared.vao,".setVAO(null);");var e=a.global.def("{}"),f=c.def(d,".id"),g=c.def(e,"[",f,"]");c(a.cond(g).then(g,".call(this,a0);")["else"](g,"=", -e,"[",f,"]=",a.link(function(c){return xa(ba,a,b,c,1)}),"(",d,");",g,".call(this,a0);"))}0=--this.refCount&&r(this)};g.profile&&(e.getTotalRenderbufferSize=function(){var a=0;Object.keys(t).forEach(function(b){a+= -t[b].stats.size});return a});return{create:function(b,c){function k(b,c){var d=0,e=0,m=32854;"object"===typeof b&&b?("shape"in b?(e=b.shape,d=e[0]|0,e=e[1]|0):("radius"in b&&(d=e=b.radius|0),"width"in b&&(d=b.width|0),"height"in b&&(e=b.height|0)),"format"in b&&(m=n[b.format])):"number"===typeof b?(d=b|0,e="number"===typeof c?c|0:d):b||(d=e=1);if(d!==h.width||e!==h.height||m!==h.format)return k.width=h.width=d,k.height=h.height=e,h.format=m,a.bindRenderbuffer(36161,h.renderbuffer),a.renderbufferStorage(36161, -m,d,e),g.profile&&(h.stats.size=E[h.format]*h.width*h.height),k.format=u[h.format],k}var h=new d(a.createRenderbuffer());t[h.id]=h;e.renderbufferCount++;k(b,c);k.resize=function(b,c){var d=b|0,e=c|0||d;if(d===h.width&&e===h.height)return k;k.width=h.width=d;k.height=h.height=e;a.bindRenderbuffer(36161,h.renderbuffer);a.renderbufferStorage(36161,h.format,d,e);g.profile&&(h.stats.size=E[h.format]*h.width*h.height);return k};k._reglType="renderbuffer";k._renderbuffer=h;g.profile&&(k.stats=h.stats);k.destroy= -function(){h.decRef()};return k},clear:function(){J(t).forEach(r)},restore:function(){J(t).forEach(function(b){b.renderbuffer=a.createRenderbuffer();a.bindRenderbuffer(36161,b.renderbuffer);a.renderbufferStorage(36161,b.format,b.width,b.height)});a.bindRenderbuffer(36161,null)}}},Xa=[];Xa[6408]=4;Xa[6407]=3;var Na=[];Na[5121]=1;Na[5126]=4;Na[36193]=2;var Ba=["x","y","z","w"],Ub="blend.func blend.equation stencil.func stencil.opFront stencil.opBack sample.coverage viewport scissor.box polygonOffset.offset".split(" "), -Ea={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},$a={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}, -Pa={0:0,zero:0,keep:7680,replace:7681,increment:7682,decrement:7683,"increment wrap":34055,"decrement wrap":34056,invert:5386},xb={cw:2304,ccw:2305},yb=new P(!1,!1,!1,function(){}),Xb=function(a,b){function c(){this.endQueryIndex=this.startQueryIndex=-1;this.sum=0;this.stats=null}function e(a,b,d){var e=r.pop()||new c;e.startQueryIndex=a;e.endQueryIndex=b;e.sum=0;e.stats=d;n.push(e)}if(!b.ext_disjoint_timer_query)return null;var g=[],d=[],r=[],n=[],u=[],q=[];return{beginQuery:function(a){var c=g.pop()|| -b.ext_disjoint_timer_query.createQueryEXT();b.ext_disjoint_timer_query.beginQueryEXT(35007,c);d.push(c);e(d.length-1,d.length,a)},endQuery:function(){b.ext_disjoint_timer_query.endQueryEXT(35007)},pushScopeStats:e,update:function(){var a,c;a=d.length;if(0!==a){q.length=Math.max(q.length,a+1);u.length=Math.max(u.length,a+1);u[0]=0;var e=q[0]=0;for(c=a=0;c=B.length&&e()}var c=zb(B,a);B[c]=b}}}function q(){var a=S.viewport,b=S.scissor_box;a[0]=a[1]=b[0]=b[1]=0;A.viewportWidth=A.framebufferWidth=A.drawingBufferWidth=a[2]=b[2]=k.drawingBufferWidth;A.viewportHeight=A.framebufferHeight=A.drawingBufferHeight=a[3]=b[3]=k.drawingBufferHeight}function t(){A.tick+=1;A.time=z();q();O.procs.poll()}function m(){q();O.procs.refresh();w&&w.update()}function z(){return(Ab()-C)/1E3}a=Fb(a);if(!a)return null;var k=a.gl,h=k.getContextAttributes();k.isContextLost(); -var f=Gb(k,a);if(!f)return null;var p=Cb(),l={vaoCount:0,bufferCount:0,elementsCount:0,framebufferCount:0,shaderCount:0,textureCount:0,cubeCount:0,renderbufferCount:0,maxTextureUnits:0},v=f.extensions,w=Xb(k,v),C=Ab(),E=k.drawingBufferWidth,L=k.drawingBufferHeight,A={tick:0,time:0,viewportWidth:E,viewportHeight:L,framebufferWidth:E,framebufferHeight:L,drawingBufferWidth:E,drawingBufferHeight:L,pixelRatio:a.pixelRatio},G=Vb(k,v),R=Hb(k,l,a,function(a){return J.destroyBuffer(a)}),J=Pb(k,v,G,l,R),P= -Ib(k,v,R,l),D=Qb(k,p,l,a),x=Lb(k,v,G,function(){O.procs.poll()},A,l,a),N=Wb(k,v,G,l,a),T=Ob(k,v,G,x,N,l),O=Tb(k,p,v,G,R,P,x,T,{},J,D,{elements:null,primitive:4,count:-1,offset:0,instances:-1},A,w,a),p=Rb(k,T,O.procs.poll,A,h,v,G),S=O.next,K=k.canvas,B=[],V=[],X=[],Y=[a.onDestroy],aa=null;K&&(K.addEventListener("webglcontextlost",g,!1),K.addEventListener("webglcontextrestored",d,!1));var Z=T.setFBO=r({framebuffer:ga.define.call(null,1,"framebuffer")});m();h=H(r,{clear:function(a){if("framebuffer"in -a)if(a.framebuffer&&"framebufferCube"===a.framebuffer_reglType)for(var b=0;6>b;++b)Z(H({framebuffer:a.framebuffer.faces[b]},a),n);else Z(a,n);else n(null,a)},prop:ga.define.bind(null,1),context:ga.define.bind(null,2),"this":ga.define.bind(null,3),draw:r({}),buffer:function(a){return R.create(a,34962,!1,!1)},elements:function(a){return P.create(a,!1)},texture:x.create2D,cube:x.createCube,renderbuffer:N.create,framebuffer:T.create,framebufferCube:T.createCube,vao:J.createVAO,attributes:h,frame:u,on:function(a, -b){var c;switch(a){case "frame":return u(b);case "lost":c=V;break;case "restore":c=X;break;case "destroy":c=Y}c.push(b);return{cancel:function(){for(var a=0;a - * - * Copyright (c) 2014-2015, Jon Schlinkert. - * Licensed under the MIT License. - */ + this.autoDestroy = !!options.autoDestroy; // has it been destroyed -'use strict'; + this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string + // encoding is 'binary' so we have to make this configurable. + // Everything else in the universe uses 'utf8', though. -/** - * Results cache - */ + this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s -var res = ''; -var cache; + this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled -/** - * Expose `repeat` - */ + this.readingMore = false; + this.decoder = null; + this.encoding = null; -module.exports = repeat; + if (options.encoding) { + if (!StringDecoder) StringDecoder = _dereq_('string_decoder/').StringDecoder; + this.decoder = new StringDecoder(options.encoding); + this.encoding = options.encoding; + } +} -/** - * Repeat the given `string` the specified `number` - * of times. - * - * **Example:** - * - * ```js - * var repeat = require('repeat-string'); - * repeat('A', 5); - * //=> AAAAA - * ``` - * - * @param {String} `string` The string to repeat - * @param {Number} `number` The number of times to repeat the string - * @return {String} Repeated string - * @api public - */ +function Readable(options) { + Duplex = Duplex || _dereq_('./_stream_duplex'); + if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside + // the ReadableState constructor, at least with V8 6.5 -function repeat(str, num) { - if (typeof str !== 'string') { - throw new TypeError('expected a string'); - } + var isDuplex = this instanceof Duplex; + this._readableState = new ReadableState(options, this, isDuplex); // legacy - // cover common, quick use cases - if (num === 1) return str; - if (num === 2) return str + str; + this.readable = true; - var max = str.length * num; - if (cache !== str || typeof cache === 'undefined') { - cache = str; - res = ''; - } else if (res.length >= max) { - return res.substr(0, max); + if (options) { + if (typeof options.read === 'function') this._read = options.read; + if (typeof options.destroy === 'function') this._destroy = options.destroy; } - while (max > res.length && num > 1) { - if (num & 1) { - res += str; + Stream.call(this); +} + +Object.defineProperty(Readable.prototype, 'destroyed', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + if (this._readableState === undefined) { + return false; } - num >>= 1; - str += str; - } + return this._readableState.destroyed; + }, + set: function set(value) { + // we ignore the value if the stream + // has not been initialized yet + if (!this._readableState) { + return; + } // backward compatibility, the user is explicitly + // managing destroyed - res += str; - res = res.substr(0, max); - return res; -} -},{}],542:[function(_dereq_,module,exports){ -(function (global){(function (){ -module.exports = - global.performance && - global.performance.now ? function now() { - return performance.now() - } : Date.now || function now() { - return +new Date + this._readableState.destroyed = value; } +}); +Readable.prototype.destroy = destroyImpl.destroy; +Readable.prototype._undestroy = destroyImpl.undestroy; -}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{}],543:[function(_dereq_,module,exports){ -"use strict" +Readable.prototype._destroy = function (err, cb) { + cb(err); +}; // Manually shove something into the read() buffer. +// This returns true if the highWaterMark has not been hit yet, +// similar to how Writable.write() returns true if you should +// write() some more. -module.exports = compressExpansion -function compressExpansion(e) { - var m = e.length - var Q = e[e.length-1] - var bottom = m - for(var i=m-2; i>=0; --i) { - var a = Q - var b = e[i] - Q = a + b - var bv = Q - a - var q = b - bv - if(q) { - e[--bottom] = Q - Q = q - } - } - var top = 0 - for(var i=bottom; i 0) { + if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) { + chunk = _uint8ArrayToBuffer(chunk); } - r[k++] = m[i][j] - } - } - return result -} -function matrix(n) { - var result = new Array(n) - for(var i=0; i>1 - return ["sum(", generateSum(expr.slice(0, m)), ",", generateSum(expr.slice(m)), ")"].join("") - } + return !state.ended && (state.length < state.highWaterMark || state.length === 0); } -function determinant(m) { - if(m.length === 2) { - return ["sum(prod(", m[0][0], ",", m[1][1], "),prod(-", m[0][1], ",", m[1][0], "))"].join("") +function addChunk(stream, state, chunk, addToFront) { + if (state.flowing && state.length === 0 && !state.sync) { + state.awaitDrain = 0; + stream.emit('data', chunk); } else { - var expr = [] - for(var i=0; i 1GB -function cofactor(m, c) { - var result = new Array(m.length-1) - for(var i=1; i= MAX_HWM) { + // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE. + n = MAX_HWM; + } else { + // Get the next highest power of 2 to prevent increasing hwm excessively in + // tiny amounts + n--; + n |= n >>> 1; + n |= n >>> 2; + n |= n >>> 4; + n |= n >>> 8; + n |= n >>> 16; + n++; } - return result -} -function matrix(n) { - var result = new Array(n) - for(var i=0; i state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); + if (n <= state.length) return n; // Don't have enough + + if (!state.ended) { + state.needReadable = true; + return 0; } - return result -} -function generateSum(expr) { - if(expr.length === 1) { - return expr[0] - } else if(expr.length === 2) { - return ["sum(", expr[0], ",", expr[1], ")"].join("") - } else { - var m = expr.length>>1 - return ["sum(", generateSum(expr.slice(0, m)), ",", generateSum(expr.slice(m)), ")"].join("") + return state.length; +} // you can override either this method, or the async _read(n) below. + + +Readable.prototype.read = function (n) { + debug('read', n); + n = parseInt(n, 10); + var state = this._readableState; + var nOrig = n; + if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we + // already have a bunch of data in the buffer, then just trigger + // the 'readable' event and move on. + + if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) { + debug('read: emitReadable', state.length, state.ended); + if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); + return null; } -} -function makeProduct(a, b) { - if(a.charAt(0) === "m") { - if(b.charAt(0) === "w") { - var toks = a.split("[") - return ["w", b.substr(1), "m", toks[0].substr(1)].join("") - } else { - return ["prod(", a, ",", b, ")"].join("") - } + n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up. + + if (n === 0 && state.ended) { + if (state.length === 0) endReadable(this); + return null; + } // All the actual chunk generation logic needs to be + // *below* the call to _read. The reason is that in certain + // synthetic stream cases, such as passthrough streams, _read + // may be a completely synchronous operation which may change + // the state of the read buffer, providing enough data when + // before there was *not* enough. + // + // So, the steps are: + // 1. Figure out what the state of things will be after we do + // a read from the buffer. + // + // 2. If that resulting state will trigger a _read, then call _read. + // Note that this may be asynchronous, or synchronous. Yes, it is + // deeply ugly to write APIs this way, but that still doesn't mean + // that the Readable class should behave improperly, as streams are + // designed to be sync/async agnostic. + // Take note if the _read call is sync or async (ie, if the read call + // has returned yet), so that we know whether or not it's safe to emit + // 'readable' etc. + // + // 3. Actually pull the requested chunks out of the buffer and return. + // if we need a readable event, then we need to do some reading. + + + var doRead = state.needReadable; + debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some + + if (state.length === 0 || state.length - n < state.highWaterMark) { + doRead = true; + debug('length less than watermark', doRead); + } // however, if we've ended, then there's no point, and if we're already + // reading, then it's unnecessary. + + + if (state.ended || state.reading) { + doRead = false; + debug('reading or ended', doRead); + } else if (doRead) { + debug('do read'); + state.reading = true; + state.sync = true; // if the length is currently zero, then we *need* a readable event. + + if (state.length === 0) state.needReadable = true; // call internal read method + + this._read(state.highWaterMark); + + state.sync = false; // If _read pushed data synchronously, then `reading` will be false, + // and we need to re-evaluate how much data we can return to the user. + + if (!state.reading) n = howMuchToRead(nOrig, state); + } + + var ret; + if (n > 0) ret = fromList(n, state);else ret = null; + + if (ret === null) { + state.needReadable = state.length <= state.highWaterMark; + n = 0; } else { - return makeProduct(b, a) + state.length -= n; + state.awaitDrain = 0; } -} -function sign(s) { - if(s & 1 !== 0) { - return "-" + if (state.length === 0) { + // If we have nothing in the buffer, then we want to know + // as soon as we *do* get something into the buffer. + if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick. + + if (nOrig !== n && state.ended) endReadable(this); } - return "" -} -function determinant(m) { - if(m.length === 2) { - return [["diff(", makeProduct(m[0][0], m[1][1]), ",", makeProduct(m[1][0], m[0][1]), ")"].join("")] + if (ret !== null) this.emit('data', ret); + return ret; +}; + +function onEofChunk(stream, state) { + debug('onEofChunk'); + if (state.ended) return; + + if (state.decoder) { + var chunk = state.decoder.end(); + + if (chunk && chunk.length) { + state.buffer.push(chunk); + state.length += state.objectMode ? 1 : chunk.length; + } + } + + state.ended = true; + + if (state.sync) { + // if we are sync, wait until next tick to emit the data. + // Otherwise we risk emitting data in the flow() + // the readable code triggers during a read() call + emitReadable(stream); } else { - var expr = [] - for(var i=0; i stack overflow. This way, it might trigger +// a nextTick recursion warning, but that's not so bad. + + +function emitReadable(stream) { + var state = stream._readableState; + debug('emitReadable', state.needReadable, state.emittedReadable); + state.needReadable = false; + + if (!state.emittedReadable) { + debug('emitReadable', state.flowing); + state.emittedReadable = true; + process.nextTick(emitReadable_, stream); } } -function makeSquare(d, n) { - var terms = [] - for(var i=0; i Check whether `dest` is still a piping destination. + if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { + debug('false write response, pause', state.awaitDrain); + state.awaitDrain++; + } + + src.pause(); + } + } // if the dest has an error, then stop piping into it. + // however, don't suppress the throwing behavior for this. + + + function onerror(er) { + debug('onerror', er); + unpipe(); + dest.removeListener('error', onerror); + if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er); + } // Make sure our error handler is attached before userland ones. + + + prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once. + + function onclose() { + dest.removeListener('finish', onfinish); + unpipe(); } - var code = [ - "function testInSphere(", args.join(), "){switch(arguments.length){case 0:case 1:return 0;" - ] - for(var i=2; i<=NUM_EXPAND; ++i) { - code.push("case ", i, ":return o", i, "(", args.slice(0, i).join(), ");") + + dest.once('close', onclose); + + function onfinish() { + debug('onfinish'); + dest.removeListener('close', onclose); + unpipe(); } - code.push("}var s=new Array(arguments.length);for(var i=0;i 0) { - code.push(",") - } - code.push("[") - for(var k=0; k 0) { - code.push(",") - } - if(k === i) { - code.push("+b[", j, "]") - } else { - code.push("+A[", j, "][", k, "]") - } + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + if (dest) dest.emit('unpipe', this, unpipeInfo); + return this; + } // slow case. multiple pipe destinations. + + + if (!dest) { + // remove all. + var dests = state.pipes; + var len = state.pipesCount; + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + + for (var i = 0; i < len; i++) { + dests[i].emit('unpipe', this, { + hasUnpiped: false + }); + } + + return this; + } // try to find the right one. + + + var index = indexOf(state.pipes, dest); + if (index === -1) return this; + state.pipes.splice(index, 1); + state.pipesCount -= 1; + if (state.pipesCount === 1) state.pipes = state.pipes[0]; + dest.emit('unpipe', this, unpipeInfo); + return this; +}; // set up data events if they are asked for +// Ensure readable listeners eventually get something + + +Readable.prototype.on = function (ev, fn) { + var res = Stream.prototype.on.call(this, ev, fn); + var state = this._readableState; + + if (ev === 'data') { + // update readableListening so that resume() may be a no-op + // a few lines down. This is needed to support once('readable'). + state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused + + if (state.flowing !== false) this.resume(); + } else if (ev === 'readable') { + if (!state.endEmitted && !state.readableListening) { + state.readableListening = state.needReadable = true; + state.flowing = false; + state.emittedReadable = false; + debug('on readable', state.length, state.reading); + + if (state.length) { + emitReadable(this); + } else if (!state.reading) { + process.nextTick(nReadingNextTick, this); } - code.push("]") } - code.push("]),") - } - code.push("det(A)]}return ", funcName) - var proc = new Function("det", code.join("")) - if(n < 6) { - return proc(determinant[n]) } - return proc(determinant) -} -function robustLinearSolve0d() { - return [ 0 ] -} + return res; +}; -function robustLinearSolve1d(A, b) { - return [ [ b[0] ], [ A[0][0] ] ] -} +Readable.prototype.addListener = Readable.prototype.on; -var CACHE = [ - robustLinearSolve0d, - robustLinearSolve1d -] +Readable.prototype.removeListener = function (ev, fn) { + var res = Stream.prototype.removeListener.call(this, ev, fn); -function generateDispatch() { - while(CACHE.length < NUM_EXPAND) { - CACHE.push(generateSolver(CACHE.length)) + if (ev === 'readable') { + // We need to check if there is someone still listening to + // readable and reset the state. However this needs to happen + // after readable has been emitted but before I/O (nextTick) to + // support once('readable', fn) cycles. This means that calling + // resume within the same tick will have no + // effect. + process.nextTick(updateReadableListening, this); } - var procArgs = [] - var code = ["function dispatchLinearSolve(A,b){switch(A.length){"] - for(var i=0; i 0; + + if (state.resumeScheduled && !state.paused) { + // flowing needs to be set to true now, otherwise + // the upcoming resume will not flow. + state.flowing = true; // crude way to check if we should resume + } else if (self.listenerCount('data') > 0) { + self.resume(); } } -generateDispatch() -},{"robust-determinant":544}],548:[function(_dereq_,module,exports){ -"use strict" +function nReadingNextTick(self) { + debug('readable nexttick read 0'); + self.read(0); +} // pause() and resume() are remnants of the legacy readable stream API +// If the user uses them, then switch into old mode. -var twoProduct = _dereq_("two-product") -var robustSum = _dereq_("robust-sum") -var robustScale = _dereq_("robust-scale") -var robustSubtract = _dereq_("robust-subtract") -var NUM_EXPAND = 5 +Readable.prototype.resume = function () { + var state = this._readableState; -var EPSILON = 1.1102230246251565e-16 -var ERRBOUND3 = (3.0 + 16.0 * EPSILON) * EPSILON -var ERRBOUND4 = (7.0 + 56.0 * EPSILON) * EPSILON + if (!state.flowing) { + debug('resume'); // we flow only if there is no one listening + // for readable, but we still have to call + // resume() -function cofactor(m, c) { - var result = new Array(m.length-1) - for(var i=1; i>1 - return ["sum(", generateSum(expr.slice(0, m)), ",", generateSum(expr.slice(m)), ")"].join("") +Readable.prototype.pause = function () { + debug('call pause flowing=%j', this._readableState.flowing); + + if (this._readableState.flowing !== false) { + debug('pause'); + this._readableState.flowing = false; + this.emit('pause'); } -} -function determinant(m) { - if(m.length === 2) { - return [["sum(prod(", m[0][0], ",", m[1][1], "),prod(-", m[0][1], ",", m[1][0], "))"].join("")] - } else { - var expr = [] - for(var i=0; i 0) { - if(r <= 0) { - return det - } else { - s = l + r - } - } else if(l < 0) { - if(r >= 0) { - return det - } else { - s = -(l + r) - } - } else { - return det + if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; + + var ret = _this.push(chunk); + + if (!ret) { + paused = true; + stream.pause(); } - var tol = ERRBOUND3 * s - if(det >= tol || det <= -tol) { - return det + }); // proxy all the other methods. + // important when wrapping filters and duplexes. + + for (var i in stream) { + if (this[i] === undefined && typeof stream[i] === 'function') { + this[i] = function methodWrap(method) { + return function methodWrapReturnFunction() { + return stream[method].apply(stream, arguments); + }; + }(i); } - return orientation3Exact(a, b, c) - }, - function orientation4(a,b,c,d) { - var adx = a[0] - d[0] - var bdx = b[0] - d[0] - var cdx = c[0] - d[0] - var ady = a[1] - d[1] - var bdy = b[1] - d[1] - var cdy = c[1] - d[1] - var adz = a[2] - d[2] - var bdz = b[2] - d[2] - var cdz = c[2] - d[2] - var bdxcdy = bdx * cdy - var cdxbdy = cdx * bdy - var cdxady = cdx * ady - var adxcdy = adx * cdy - var adxbdy = adx * bdy - var bdxady = bdx * ady - var det = adz * (bdxcdy - cdxbdy) - + bdz * (cdxady - adxcdy) - + cdz * (adxbdy - bdxady) - var permanent = (Math.abs(bdxcdy) + Math.abs(cdxbdy)) * Math.abs(adz) - + (Math.abs(cdxady) + Math.abs(adxcdy)) * Math.abs(bdz) - + (Math.abs(adxbdy) + Math.abs(bdxady)) * Math.abs(cdz) - var tol = ERRBOUND4 * permanent - if ((det > tol) || (-det > tol)) { - return det + } // proxy certain important events. + + + for (var n = 0; n < kProxyEvents.length; n++) { + stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n])); + } // when we try to consume some more bytes, simply unpause the + // underlying stream. + + + this._read = function (n) { + debug('wrapped _read', n); + + if (paused) { + paused = false; + stream.resume(); } - return orientation4Exact(a,b,c,d) - } -] + }; -function slowOrient(args) { - var proc = CACHED[args.length] - if(!proc) { - proc = CACHED[args.length] = orientation(args.length) - } - return proc.apply(undefined, args) + return this; +}; + +if (typeof Symbol === 'function') { + Readable.prototype[Symbol.asyncIterator] = function () { + if (createReadableStreamAsyncIterator === undefined) { + createReadableStreamAsyncIterator = _dereq_('./internal/streams/async_iterator'); + } + + return createReadableStreamAsyncIterator(this); + }; } -function generateOrientationProc() { - while(CACHED.length <= NUM_EXPAND) { - CACHED.push(orientation(CACHED.length)) +Object.defineProperty(Readable.prototype, 'readableHighWaterMark', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState.highWaterMark; } - var args = [] - var procArgs = ["slow"] - for(var i=0; i<=NUM_EXPAND; ++i) { - args.push("a" + i) - procArgs.push("o" + i) +}); +Object.defineProperty(Readable.prototype, 'readableBuffer', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState && this._readableState.buffer; } - var code = [ - "function getOrientation(", args.join(), "){switch(arguments.length){case 0:case 1:return 0;" - ] - for(var i=2; i<=NUM_EXPAND; ++i) { - code.push("case ", i, ":return o", i, "(", args.slice(0, i).join(), ");") +}); +Object.defineProperty(Readable.prototype, 'readableFlowing', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState.flowing; + }, + set: function set(state) { + if (this._readableState) { + this._readableState.flowing = state; + } + } +}); // exposed for testing purposes only. + +Readable._fromList = fromList; +Object.defineProperty(Readable.prototype, 'readableLength', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState.length; + } +}); // Pluck off n bytes from an array of buffers. +// Length is the combined lengths of all the buffers in the list. +// This function is designed to be inlinable, so please take care when making +// changes to the function body. + +function fromList(n, state) { + // nothing buffered + if (state.length === 0) return null; + var ret; + if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) { + // read it all, truncate the list + if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length); + state.buffer.clear(); + } else { + // read part of list + ret = state.buffer.consume(n, state.decoder); } - code.push("}var s=new Array(arguments.length);for(var i=0;i 0 && y0 > 0) || (x0 < 0 && y0 < 0)) { - return false + if (rs.needReadable || rs.length < rs.highWaterMark) { + this._read(rs.highWaterMark); } +} - var x1 = orient(b0, a0, a1) - var y1 = orient(b1, a0, a1) - if((x1 > 0 && y1 > 0) || (x1 < 0 && y1 < 0)) { - return false - } +function Transform(options) { + if (!(this instanceof Transform)) return new Transform(options); + Duplex.call(this, options); + this._transformState = { + afterTransform: afterTransform.bind(this), + needTransform: false, + transforming: false, + writecb: null, + writechunk: null, + writeencoding: null + }; // start out asking for a readable event once data is transformed. - //Check for degenerate collinear case - if(x0 === 0 && y0 === 0 && x1 === 0 && y1 === 0) { - return checkCollinear(a0, a1, b0, b1) - } + this._readableState.needReadable = true; // we have implemented the _read method, and done the other things + // that Readable wants before the first _read call, so unset the + // sync guard flag. - return true + this._readableState.sync = false; + + if (options) { + if (typeof options.transform === 'function') this._transform = options.transform; + if (typeof options.flush === 'function') this._flush = options.flush; + } // When the writable side finishes, then flush out anything remaining. + + + this.on('prefinish', prefinish); } -},{"robust-orientation":548}],552:[function(_dereq_,module,exports){ -"use strict" -module.exports = robustSubtract +function prefinish() { + var _this = this; -//Easy case: Add two scalars -function scalarScalar(a, b) { - var x = a + b - var bv = x - a - var av = x - bv - var br = b - bv - var ar = a - av - var y = ar + br - if(y) { - return [y, x] + if (typeof this._flush === 'function' && !this._readableState.destroyed) { + this._flush(function (er, data) { + done(_this, er, data); + }); + } else { + done(this, null, null); } - return [x] } -function robustSubtract(e, f) { - var ne = e.length|0 - var nf = f.length|0 - if(ne === 1 && nf === 1) { - return scalarScalar(e[0], -f[0]) - } - var n = ne + nf - var g = new Array(n) - var count = 0 - var eptr = 0 - var fptr = 0 - var abs = Math.abs - var ei = e[eptr] - var ea = abs(ei) - var fi = -f[fptr] - var fa = abs(fi) - var a, b - if(ea < fa) { - b = ei - eptr += 1 - if(eptr < ne) { - ei = e[eptr] - ea = abs(ei) - } - } else { - b = fi - fptr += 1 - if(fptr < nf) { - fi = -f[fptr] - fa = abs(fi) - } +Transform.prototype.push = function (chunk, encoding) { + this._transformState.needTransform = false; + return Duplex.prototype.push.call(this, chunk, encoding); +}; // This is the part where you do stuff! +// override this function in implementation classes. +// 'chunk' is an input chunk. +// +// Call `push(newChunk)` to pass along transformed output +// to the readable side. You may call 'push' zero or more times. +// +// Call `cb(err)` when you are done with this chunk. If you pass +// an error, then that'll put the hurt on the whole operation. If you +// never call cb(), then you'll never get another chunk. + + +Transform.prototype._transform = function (chunk, encoding, cb) { + cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()')); +}; + +Transform.prototype._write = function (chunk, encoding, cb) { + var ts = this._transformState; + ts.writecb = cb; + ts.writechunk = chunk; + ts.writeencoding = encoding; + + if (!ts.transforming) { + var rs = this._readableState; + if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); } - if((eptr < ne && ea < fa) || (fptr >= nf)) { - a = ei - eptr += 1 - if(eptr < ne) { - ei = e[eptr] - ea = abs(ei) - } +}; // Doesn't matter what the args are here. +// _transform does all the work. +// That we got here means that the readable side wants more data. + + +Transform.prototype._read = function (n) { + var ts = this._transformState; + + if (ts.writechunk !== null && !ts.transforming) { + ts.transforming = true; + + this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); } else { - a = fi - fptr += 1 - if(fptr < nf) { - fi = -f[fptr] - fa = abs(fi) - } - } - var x = a + b - var bv = x - a - var y = b - bv - var q0 = y - var q1 = x - var _x, _bv, _av, _br, _ar - while(eptr < ne && fptr < nf) { - if(ea < fa) { - a = ei - eptr += 1 - if(eptr < ne) { - ei = e[eptr] - ea = abs(ei) - } - } else { - a = fi - fptr += 1 - if(fptr < nf) { - fi = -f[fptr] - fa = abs(fi) - } - } - b = q0 - x = a + b - bv = x - a - y = b - bv - if(y) { - g[count++] = y - } - _x = q1 + x - _bv = _x - q1 - _av = _x - _bv - _br = x - _bv - _ar = q1 - _av - q0 = _ar + _br - q1 = _x - } - while(eptr < ne) { - a = ei - b = q0 - x = a + b - bv = x - a - y = b - bv - if(y) { - g[count++] = y - } - _x = q1 + x - _bv = _x - q1 - _av = _x - _bv - _br = x - _bv - _ar = q1 - _av - q0 = _ar + _br - q1 = _x - eptr += 1 - if(eptr < ne) { - ei = e[eptr] - } - } - while(fptr < nf) { - a = fi - b = q0 - x = a + b - bv = x - a - y = b - bv - if(y) { - g[count++] = y - } - _x = q1 + x - _bv = _x - q1 - _av = _x - _bv - _br = x - _bv - _ar = q1 - _av - q0 = _ar + _br - q1 = _x - fptr += 1 - if(fptr < nf) { - fi = -f[fptr] - } - } - if(q0) { - g[count++] = q0 - } - if(q1) { - g[count++] = q1 - } - if(!count) { - g[count++] = 0.0 + // mark that we need a transform, so that any data that comes in + // will get processed, now that we've asked for it. + ts.needTransform = true; } - g.length = count - return g +}; + +Transform.prototype._destroy = function (err, cb) { + Duplex.prototype._destroy.call(this, err, function (err2) { + cb(err2); + }); +}; + +function done(stream, er, data) { + if (er) return stream.emit('error', er); + if (data != null) // single equals check for both `null` and `undefined` + stream.push(data); // TODO(BridgeAR): Write a test for these two error cases + // if there's nothing in the write buffer, then that means + // that nothing more will ever be provided + + if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0(); + if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING(); + return stream.push(null); } -},{}],553:[function(_dereq_,module,exports){ -"use strict" +},{"../errors":564,"./_stream_duplex":565,"inherits":443}],569:[function(_dereq_,module,exports){ +(function (process,global){(function (){ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. +// A bit simpler than readable streams. +// Implement an async ._write(chunk, encoding, cb), and it'll handle all +// the drain event emission and buffering. +'use strict'; -module.exports = linearExpansionSum +module.exports = Writable; +/* */ -//Easy case: Add two scalars -function scalarScalar(a, b) { - var x = a + b - var bv = x - a - var av = x - bv - var br = b - bv - var ar = a - av - var y = ar + br - if(y) { - return [y, x] - } - return [x] +function WriteReq(chunk, encoding, cb) { + this.chunk = chunk; + this.encoding = encoding; + this.callback = cb; + this.next = null; +} // It seems a linked list but it is not +// there will be only 2 of these for each stream + + +function CorkedRequest(state) { + var _this = this; + + this.next = null; + this.entry = null; + + this.finish = function () { + onCorkedFinish(_this, state); + }; } +/* */ -function linearExpansionSum(e, f) { - var ne = e.length|0 - var nf = f.length|0 - if(ne === 1 && nf === 1) { - return scalarScalar(e[0], f[0]) - } - var n = ne + nf - var g = new Array(n) - var count = 0 - var eptr = 0 - var fptr = 0 - var abs = Math.abs - var ei = e[eptr] - var ea = abs(ei) - var fi = f[fptr] - var fa = abs(fi) - var a, b - if(ea < fa) { - b = ei - eptr += 1 - if(eptr < ne) { - ei = e[eptr] - ea = abs(ei) - } - } else { - b = fi - fptr += 1 - if(fptr < nf) { - fi = f[fptr] - fa = abs(fi) - } - } - if((eptr < ne && ea < fa) || (fptr >= nf)) { - a = ei - eptr += 1 - if(eptr < ne) { - ei = e[eptr] - ea = abs(ei) - } - } else { - a = fi - fptr += 1 - if(fptr < nf) { - fi = f[fptr] - fa = abs(fi) - } - } - var x = a + b - var bv = x - a - var y = b - bv - var q0 = y - var q1 = x - var _x, _bv, _av, _br, _ar - while(eptr < ne && fptr < nf) { - if(ea < fa) { - a = ei - eptr += 1 - if(eptr < ne) { - ei = e[eptr] - ea = abs(ei) - } - } else { - a = fi - fptr += 1 - if(fptr < nf) { - fi = f[fptr] - fa = abs(fi) - } - } - b = q0 - x = a + b - bv = x - a - y = b - bv - if(y) { - g[count++] = y - } - _x = q1 + x - _bv = _x - q1 - _av = _x - _bv - _br = x - _bv - _ar = q1 - _av - q0 = _ar + _br - q1 = _x - } - while(eptr < ne) { - a = ei - b = q0 - x = a + b - bv = x - a - y = b - bv - if(y) { - g[count++] = y - } - _x = q1 + x - _bv = _x - q1 - _av = _x - _bv - _br = x - _bv - _ar = q1 - _av - q0 = _ar + _br - q1 = _x - eptr += 1 - if(eptr < ne) { - ei = e[eptr] - } - } - while(fptr < nf) { - a = fi - b = q0 - x = a + b - bv = x - a - y = b - bv - if(y) { - g[count++] = y - } - _x = q1 + x - _bv = _x - q1 - _av = _x - _bv - _br = x - _bv - _ar = q1 - _av - q0 = _ar + _br - q1 = _x - fptr += 1 - if(fptr < nf) { - fi = f[fptr] - } - } - if(q0) { - g[count++] = q0 - } - if(q1) { - g[count++] = q1 - } - if(!count) { - g[count++] = 0.0 - } - g.length = count - return g +/**/ + + +var Duplex; +/**/ + +Writable.WritableState = WritableState; +/**/ + +var internalUtil = { + deprecate: _dereq_('util-deprecate') +}; +/**/ + +/**/ + +var Stream = _dereq_('./internal/streams/stream'); +/**/ + + +var Buffer = _dereq_('buffer').Buffer; + +var OurUint8Array = global.Uint8Array || function () {}; + +function _uint8ArrayToBuffer(chunk) { + return Buffer.from(chunk); } -},{}],554:[function(_dereq_,module,exports){ -"use strict" -module.exports = function signum(x) { - if(x < 0) { return -1 } - if(x > 0) { return 1 } - return 0.0 +function _isUint8Array(obj) { + return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; +} + +var destroyImpl = _dereq_('./internal/streams/destroy'); + +var _require = _dereq_('./internal/streams/state'), + getHighWaterMark = _require.getHighWaterMark; + +var _require$codes = _dereq_('../errors').codes, + ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, + ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, + ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, + ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE, + ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED, + ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES, + ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END, + ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING; + +var errorOrDestroy = destroyImpl.errorOrDestroy; + +_dereq_('inherits')(Writable, Stream); + +function nop() {} + +function WritableState(options, stream, isDuplex) { + Duplex = Duplex || _dereq_('./_stream_duplex'); + options = options || {}; // Duplex streams are both readable and writable, but share + // the same options object. + // However, some cases require setting options to different + // values for the readable and the writable sides of the duplex stream, + // e.g. options.readableObjectMode vs. options.writableObjectMode, etc. + + if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream + // contains buffers or objects. + + this.objectMode = !!options.objectMode; + if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false + // Note: 0 is a valid value, means that we always return false if + // the entire buffer is not flushed immediately on write() + + this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called + + this.finalCalled = false; // drain event flag. + + this.needDrain = false; // at the start of calling end() + + this.ending = false; // when end() has been called, and returned + + this.ended = false; // when 'finish' is emitted + + this.finished = false; // has it been destroyed + + this.destroyed = false; // should we decode strings into buffers before passing to _write? + // this is here so that some node-core streams can optimize string + // handling at a lower level. + + var noDecode = options.decodeStrings === false; + this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string + // encoding is 'binary' so we have to make this configurable. + // Everything else in the universe uses 'utf8', though. + + this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement + // of how much we're waiting to get pushed to some underlying + // socket or file. + + this.length = 0; // a flag to see when we're in the middle of a write. + + this.writing = false; // when true all writes will be buffered until .uncork() call + + this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately, + // or on a later tick. We set this to true at first, because any + // actions that shouldn't happen until "later" should generally also + // not happen before the first write call. + + this.sync = true; // a flag to know if we're processing previously buffered items, which + // may call the _write() callback in the same tick, so that we don't + // end up in an overlapped onwrite situation. + + this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb) + + this.onwrite = function (er) { + onwrite(stream, er); + }; // the callback that the user supplies to write(chunk,encoding,cb) + + + this.writecb = null; // the amount that is being written when _write is called. + + this.writelen = 0; + this.bufferedRequest = null; + this.lastBufferedRequest = null; // number of pending user-supplied write callbacks + // this must be 0 before 'finish' can be emitted + + this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs + // This is relevant for synchronous Transform streams + + this.prefinished = false; // True if the error was already emitted and should not be thrown again + + this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true. + + this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end') + + this.autoDestroy = !!options.autoDestroy; // count buffered requests + + this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always + // one allocated and free to use, and we maintain at most two + + this.corkedRequestsFree = new CorkedRequest(this); } -},{}],555:[function(_dereq_,module,exports){ -'use strict' -module.exports = boundary +WritableState.prototype.getBuffer = function getBuffer() { + var current = this.bufferedRequest; + var out = []; -var bnd = _dereq_('boundary-cells') -var reduce = _dereq_('reduce-simplicial-complex') + while (current) { + out.push(current); + current = current.next; + } -function boundary(cells) { - return reduce(bnd(cells)) + return out; +}; + +(function () { + try { + Object.defineProperty(WritableState.prototype, 'buffer', { + get: internalUtil.deprecate(function writableStateBufferGetter() { + return this.getBuffer(); + }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003') + }); + } catch (_) {} +})(); // Test _writableState for inheritance to account for Duplex streams, +// whose prototype chain only points to Readable. + + +var realHasInstance; + +if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') { + realHasInstance = Function.prototype[Symbol.hasInstance]; + Object.defineProperty(Writable, Symbol.hasInstance, { + value: function value(object) { + if (realHasInstance.call(this, object)) return true; + if (this !== Writable) return false; + return object && object._writableState instanceof WritableState; + } + }); +} else { + realHasInstance = function realHasInstance(object) { + return object instanceof this; + }; } -},{"boundary-cells":100,"reduce-simplicial-complex":533}],556:[function(_dereq_,module,exports){ -'use strict' +function Writable(options) { + Duplex = Duplex || _dereq_('./_stream_duplex'); // Writable ctor is applied to Duplexes, too. + // `realHasInstance` is necessary because using plain `instanceof` + // would return false, as no `_writableState` property is attached. + // Trying to use the custom `instanceof` for Writable here will also break the + // Node.js LazyTransform implementation, which has a non-trivial getter for + // `_writableState` that would lead to infinite recursion. + // Checking for a Stream.Duplex instance is faster here instead of inside + // the WritableState constructor, at least with V8 6.5 -module.exports = extractContour + var isDuplex = this instanceof Duplex; + if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options); + this._writableState = new WritableState(options, this, isDuplex); // legacy. -var ndarray = _dereq_('ndarray') -var pool = _dereq_('typedarray-pool') -var ndsort = _dereq_('ndarray-sort') + this.writable = true; -var contourAlgorithm = _dereq_('./lib/codegen') + if (options) { + if (typeof options.write === 'function') this._write = options.write; + if (typeof options.writev === 'function') this._writev = options.writev; + if (typeof options.destroy === 'function') this._destroy = options.destroy; + if (typeof options.final === 'function') this._final = options.final; + } -function getDimension(cells) { - var numCells = cells.length - var d = 0 - for(var i=0; i -1)) throw new ERR_UNKNOWN_ENCODING(encoding); + this._writableState.defaultEncoding = encoding; + return this; +}; + +Object.defineProperty(Writable.prototype, 'writableBuffer', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState && this._writableState.getBuffer(); } - result[2*lastV+1] = numEdges - while(++lastV < numVerts) { - result[2*lastV] = result[2*lastV+1] = numEdges +}); + +function decodeChunk(state, chunk, encoding) { + if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { + chunk = Buffer.from(chunk, encoding); } - return result + + return chunk; } -function unpackEdges(edges) { - var ne = edges.shape[0]|0 - var edata = edges.data - var result = new Array(ne) - for(var i=0; i>1,v=E[2*m+1];', - 'if(v===b){return m}', - 'if(b 0) { - code.push(',') - } - code.push('[') - for(var j=0; j 0) { - code.push(',') - } - code.push('B(C,E,c[', f[0], '],c[', f[1], '])') - } - code.push(']') - } - code.push(');') + +function onwriteDrain(stream, state) { + if (state.length === 0 && state.needDrain) { + state.needDrain = false; + stream.emit('drain'); } +} // if there's something in the buffer waiting, then process it - for(var i=d+1; i>1; --i) { - if(i < d+1) { - code.push('else ') - } - code.push('if(l===', i, '){') - //Generate mask - var maskStr = [] - for(var j=0; j> 1 - , s = compareCells(cells[mid], c) - if(s <= 0) { - if(s === 0) { - r = mid +function onReadable(iter) { + // we wait for the next tick, because it might + // emit an error with process.nextTick + process.nextTick(readAndResolve, iter); +} + +function wrapForNext(lastPromise, iter) { + return function (resolve, reject) { + lastPromise.then(function () { + if (iter[kEnded]) { + resolve(createIterResult(undefined, true)); + return; } - lo = mid + 1 - } else if(s > 0) { - hi = mid - 1 - } - } - return r + + iter[kHandlePromise](resolve, reject); + }, reject); + }; } -exports.findCell = findCell; -//Builds an index for an n-cell. This is more general than dual, but less efficient -function incidence(from_cells, to_cells) { - var index = new Array(from_cells.length) - for(var i=0, il=index.length; i= from_cells.length || compareCells(from_cells[idx], b) !== 0) { - break - } + + resolve(createIterResult(undefined, true)); + }); + }); +}), _Object$setPrototypeO), AsyncIteratorPrototype); + +var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) { + var _Object$create; + + var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, { + value: stream, + writable: true + }), _defineProperty(_Object$create, kLastResolve, { + value: null, + writable: true + }), _defineProperty(_Object$create, kLastReject, { + value: null, + writable: true + }), _defineProperty(_Object$create, kError, { + value: null, + writable: true + }), _defineProperty(_Object$create, kEnded, { + value: stream._readableState.endEmitted, + writable: true + }), _defineProperty(_Object$create, kHandlePromise, { + value: function value(resolve, reject) { + var data = iterator[kStream].read(); + + if (data) { + iterator[kLastPromise] = null; + iterator[kLastResolve] = null; + iterator[kLastReject] = null; + resolve(createIterResult(data, false)); + } else { + iterator[kLastResolve] = resolve; + iterator[kLastReject] = reject; + } + }, + writable: true + }), _Object$create)); + iterator[kLastPromise] = null; + finished(stream, function (err) { + if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') { + var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise + // returned by next() and store the error + + if (reject !== null) { + iterator[kLastPromise] = null; + iterator[kLastResolve] = null; + iterator[kLastReject] = null; + reject(err); } + + iterator[kError] = err; + return; } - } - return index + + var resolve = iterator[kLastResolve]; + + if (resolve !== null) { + iterator[kLastPromise] = null; + iterator[kLastResolve] = null; + iterator[kLastReject] = null; + resolve(createIterResult(undefined, true)); + } + + iterator[kEnded] = true; + }); + stream.on('readable', onReadable.bind(null, iterator)); + return iterator; +}; + +module.exports = createReadableStreamAsyncIterator; +}).call(this)}).call(this,_dereq_('_process')) +},{"./end-of-stream":573,"_process":522}],571:[function(_dereq_,module,exports){ +'use strict'; + +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var _require = _dereq_('buffer'), + Buffer = _require.Buffer; + +var _require2 = _dereq_('util'), + inspect = _require2.inspect; + +var custom = inspect && inspect.custom || 'inspect'; + +function copyBuffer(src, target, offset) { + Buffer.prototype.copy.call(src, target, offset); } -exports.incidence = incidence -//Computes the dual of the mesh. This is basically an optimized version of buildIndex for the situation where from_cells is just the list of vertices -function dual(cells, vertex_count) { - if(!vertex_count) { - return incidence(unique(skeleton(cells, 0)), cells, 0) - } - var res = new Array(vertex_count) - for(var i=0; i 0) this.tail.next = entry;else this.head = entry; + this.tail = entry; + ++this.length; } - } - return res -} -exports.dual = dual + }, { + key: "unshift", + value: function unshift(v) { + var entry = { + data: v, + next: this.head + }; + if (this.length === 0) this.tail = entry; + this.head = entry; + ++this.length; + } + }, { + key: "shift", + value: function shift() { + if (this.length === 0) return; + var ret = this.head.data; + if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next; + --this.length; + return ret; + } + }, { + key: "clear", + value: function clear() { + this.head = this.tail = null; + this.length = 0; + } + }, { + key: "join", + value: function join(s) { + if (this.length === 0) return ''; + var p = this.head; + var ret = '' + p.data; -//Enumerates all cells in the complex -function explode(cells) { - var result = [] - for(var i=0, il=cells.length; i>> k) & 1) { - b.push(c[k]) - } + while (p = p.next) { + ret += s + p.data; } - result.push(b) + + return ret; } - } - return normalize(result) -} -exports.explode = explode + }, { + key: "concat", + value: function concat(n) { + if (this.length === 0) return Buffer.alloc(0); + var ret = Buffer.allocUnsafe(n >>> 0); + var p = this.head; + var i = 0; + + while (p) { + copyBuffer(p.data, ret, i); + i += p.data.length; + p = p.next; + } -//Enumerates all of the n-cells of a cell complex -function skeleton(cells, n) { - if(n < 0) { - return [] - } - var result = [] - , k0 = (1<<(n+1))-1 - for(var i=0; i str.length ? str.length : n; + if (nb === str.length) ret += str;else ret += str.slice(0, n); + n -= nb; + + if (n === 0) { + if (nb === str.length) { + ++c; + if (p.next) this.head = p.next;else this.head = this.tail = null; + } else { + this.head = p; + p.data = str.slice(nb); + } + + break; } + + ++c; } - res.push(b) - } - } - return normalize(res) -} -exports.boundary = boundary; -//Computes connected components for a dense cell complex -function connectedComponents_dense(cells, vertex_count) { - var labels = new UnionFind(vertex_count) - for(var i=0; i buf.length ? buf.length : n; + buf.copy(ret, ret.length - n, 0, nb); + n -= nb; + + if (n === 0) { + if (nb === buf.length) { + ++c; + if (p.next) this.head = p.next;else this.head = this.tail = null; + } else { + this.head = p; + p.data = buf.slice(nb); + } + + break; + } + + ++c; } + + this.length -= c; + return ret; + } // Make sure the linked list only shows the minimal necessary information. + + }, { + key: custom, + value: function value(_, options) { + return inspect(this, _objectSpread({}, options, { + // Only inspect one level. + depth: 0, + // It should not recurse. + customInspect: false + })); } - } - var components = [] - , component_labels = labels.ranks - for(var i=0; i> 1 + var error; + var destroys = streams.map(function (stream, i) { + var reading = i < streams.length - 1; + var writing = i > 0; + return destroyer(stream, reading, writing, function (err) { + if (!error) error = err; + if (err) destroys.forEach(call); + if (reading) return; + destroys.forEach(call); + callback(error); + }); + }); + return streams.reduce(pipe); +} + +module.exports = pipeline; +},{"../../../errors":564,"./end-of-stream":573}],576:[function(_dereq_,module,exports){ +'use strict'; + +var ERR_INVALID_OPT_VALUE = _dereq_('../../../errors').codes.ERR_INVALID_OPT_VALUE; + +function highWaterMarkFrom(options, isDuplex, duplexKey) { + return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null; +} + +function getHighWaterMark(state, options, duplexKey, isDuplex) { + var hwm = highWaterMarkFrom(options, isDuplex, duplexKey); + + if (hwm != null) { + if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) { + var name = isDuplex ? duplexKey : 'highWaterMark'; + throw new ERR_INVALID_OPT_VALUE(name, hwm); } - return (i >> 1) - 1 + + return Math.floor(hwm); + } // Default value + + + return state.objectMode ? 16 : 16 * 1024; +} + +module.exports = { + getHighWaterMark: getHighWaterMark +}; +},{"../../../errors":564}],577:[function(_dereq_,module,exports){ +module.exports = _dereq_('events').EventEmitter; + +},{"events":112}],578:[function(_dereq_,module,exports){ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +'use strict'; + +/**/ + +var Buffer = _dereq_('safe-buffer').Buffer; +/**/ + +var isEncoding = Buffer.isEncoding || function (encoding) { + encoding = '' + encoding; + switch (encoding && encoding.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 true; + default: + return false; } +}; - //Bubble element i down the heap - function heapDown(i) { - var w = heapWeight(i) - while(true) { - var tw = w - var left = 2*i + 1 - var right = 2*(i + 1) - var next = i - if(left < heapCount) { - var lw = heapWeight(left) - if(lw < tw) { - next = left - tw = lw - } - } - if(right < heapCount) { - var rw = heapWeight(right) - if(rw < tw) { - next = right - } - } - if(next === i) { - return i - } - heapSwap(i, next) - i = next +function _normalizeEncoding(enc) { + if (!enc) return 'utf8'; + var retried; + while (true) { + switch (enc) { + 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 enc; + default: + if (retried) return; // undefined + enc = ('' + enc).toLowerCase(); + retried = true; } } +}; - //Bubbles element i up the heap - function heapUp(i) { - var w = heapWeight(i) - while(i > 0) { - var parent = heapParent(i) - if(parent >= 0) { - var pw = heapWeight(parent) - if(w < pw) { - heapSwap(i, parent) - i = parent - continue - } - } - return i - } - } +// Do not cache `Buffer.isEncoding` when checking encoding names as some +// modules monkey-patch it to support additional encodings +function normalizeEncoding(enc) { + var nenc = _normalizeEncoding(enc); + if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc); + return nenc || enc; +} - //Pop minimum element - function heapPop() { - if(heapCount > 0) { - var head = heap[0] - heapSwap(0, heapCount-1) - heapCount -= 1 - heapDown(0) - return head - } - return -1 +// StringDecoder provides an interface for efficiently splitting a series of +// buffers into a series of JS strings without breaking apart multi-byte +// characters. +exports.StringDecoder = StringDecoder; +function StringDecoder(encoding) { + this.encoding = normalizeEncoding(encoding); + var nb; + switch (this.encoding) { + case 'utf16le': + this.text = utf16Text; + this.end = utf16End; + nb = 4; + break; + case 'utf8': + this.fillLast = utf8FillLast; + nb = 4; + break; + case 'base64': + this.text = base64Text; + this.end = base64End; + nb = 3; + break; + default: + this.write = simpleWrite; + this.end = simpleEnd; + return; } + this.lastNeed = 0; + this.lastTotal = 0; + this.lastChar = Buffer.allocUnsafe(nb); +} - //Update heap item i - function heapUpdate(i, w) { - var a = heap[i] - if(weights[a] === w) { - return i - } - weights[a] = -Infinity - heapUp(i) - heapPop() - weights[a] = w - heapCount += 1 - return heapUp(heapCount-1) +StringDecoder.prototype.write = function (buf) { + if (buf.length === 0) return ''; + var r; + var i; + if (this.lastNeed) { + r = this.fillLast(buf); + if (r === undefined) return ''; + i = this.lastNeed; + this.lastNeed = 0; + } else { + i = 0; } + if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i); + return r || ''; +}; - //Kills a vertex (assume vertex already removed from heap) - function kill(i) { - if(dead[i]) { - return - } - //Kill vertex - dead[i] = true - //Fixup topology - var s = inv[i] - var t = outv[i] - if(inv[t] >= 0) { - inv[t] = s - } - if(outv[s] >= 0) { - outv[s] = t - } +StringDecoder.prototype.end = utf8End; - //Update weights on s and t - if(index[s] >= 0) { - heapUpdate(index[s], computeWeight(s)) - } - if(index[t] >= 0) { - heapUpdate(index[t], computeWeight(t)) - } +// Returns only complete characters in a Buffer +StringDecoder.prototype.text = utf8Text; + +// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer +StringDecoder.prototype.fillLast = function (buf) { + if (this.lastNeed <= buf.length) { + buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed); + return this.lastChar.toString(this.encoding, 0, this.lastTotal); } + buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length); + this.lastNeed -= buf.length; +}; - //Initialize weights and heap - var heap = [] - var index = new Array(n) - for(var i=0; i> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4; + return byte >> 6 === 0x02 ? -1 : -2; +} + +// Checks at most 3 bytes at the end of a Buffer in order to detect an +// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4) +// needed to complete the UTF-8 character (if applicable) are returned. +function utf8CheckIncomplete(self, buf, i) { + var j = buf.length - 1; + if (j < i) return 0; + var nb = utf8CheckByte(buf[j]); + if (nb >= 0) { + if (nb > 0) self.lastNeed = nb - 1; + return nb; } - var heapCount = heap.length - for(var i=heapCount>>1; i>=0; --i) { - heapDown(i) + if (--j < i || nb === -2) return 0; + nb = utf8CheckByte(buf[j]); + if (nb >= 0) { + if (nb > 0) self.lastNeed = nb - 2; + return nb; } - - //Kill vertices - while(true) { - var hmin = heapPop() - if((hmin < 0) || (weights[hmin] > minArea)) { - break + if (--j < i || nb === -2) return 0; + nb = utf8CheckByte(buf[j]); + if (nb >= 0) { + if (nb > 0) { + if (nb === 2) nb = 0;else self.lastNeed = nb - 3; } - kill(hmin) + return nb; } + return 0; +} - //Build collapsed vertex table - var npositions = [] - for(var i=0; i 1 && buf.length > 1) { + if ((buf[1] & 0xC0) !== 0x80) { + self.lastNeed = 1; + return '\ufffd'; + } + if (self.lastNeed > 2 && buf.length > 2) { + if ((buf[2] & 0xC0) !== 0x80) { + self.lastNeed = 2; + return '\ufffd'; + } + } + } +} + +// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer. +function utf8FillLast(buf) { + var p = this.lastTotal - this.lastNeed; + var r = utf8CheckExtraBytes(this, buf, p); + if (r !== undefined) return r; + if (this.lastNeed <= buf.length) { + buf.copy(this.lastChar, p, 0, this.lastNeed); + return this.lastChar.toString(this.encoding, 0, this.lastTotal); + } + buf.copy(this.lastChar, p, 0, buf.length); + this.lastNeed -= buf.length; +} + +// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a +// partial character, the character's bytes are buffered until the required +// number of bytes are available. +function utf8Text(buf, i) { + var total = utf8CheckIncomplete(this, buf, i); + if (!this.lastNeed) return buf.toString('utf8', i); + this.lastTotal = total; + var end = buf.length - (total - this.lastNeed); + buf.copy(this.lastChar, 0, end); + return buf.toString('utf8', i, end); +} + +// For UTF-8, a replacement character is added when ending on a partial +// character. +function utf8End(buf) { + var r = buf && buf.length ? this.write(buf) : ''; + if (this.lastNeed) return r + '\ufffd'; + return r; +} + +// UTF-16LE typically needs two bytes per character, but even if we have an even +// number of bytes available, we need to check if we end on a leading/high +// surrogate. In that case, we need to wait for the next two bytes in order to +// decode the last character properly. +function utf16Text(buf, i) { + if ((buf.length - i) % 2 === 0) { + var r = buf.toString('utf16le', i); + if (r) { + var c = r.charCodeAt(r.length - 1); + if (c >= 0xD800 && c <= 0xDBFF) { + this.lastNeed = 2; + this.lastTotal = 4; + this.lastChar[0] = buf[buf.length - 2]; + this.lastChar[1] = buf[buf.length - 1]; + return r.slice(0, -1); + } } + return r; } - var nv = npositions.length + this.lastNeed = 1; + this.lastTotal = 2; + this.lastChar[0] = buf[buf.length - 1]; + return buf.toString('utf16le', i, buf.length - 1); +} - function tortoiseHare(seq, start) { - if(seq[start] < 0) { - return start - } - var t = start - var h = start - do { - //Walk two steps with h - var nh = seq[h] - if(!dead[h] || nh < 0 || nh === h) { - break - } - h = nh - nh = seq[h] - if(!dead[h] || nh < 0 || nh === h) { - break - } - h = nh +// For UTF-16LE we do not explicitly append special replacement characters if we +// end on a partial character, we simply let v8 handle that. +function utf16End(buf) { + var r = buf && buf.length ? this.write(buf) : ''; + if (this.lastNeed) { + var end = this.lastTotal - this.lastNeed; + return r + this.lastChar.toString('utf16le', 0, end); + } + return r; +} - //Walk one step with t - t = seq[t] - } while(t !== h) - //Compress cycles - for(var v=start; v!==h; v = seq[v]) { - seq[v] = h - } - return h +function base64Text(buf, i) { + var n = (buf.length - i) % 3; + if (n === 0) return buf.toString('base64', i); + this.lastNeed = 3 - n; + this.lastTotal = 3; + if (n === 1) { + this.lastChar[0] = buf[buf.length - 1]; + } else { + this.lastChar[0] = buf[buf.length - 2]; + this.lastChar[1] = buf[buf.length - 1]; } + return buf.toString('base64', i, buf.length - n); +} - var ncells = [] - cells.forEach(function(c) { - var tin = tortoiseHare(inv, c[0]) - var tout = tortoiseHare(outv, c[1]) - if(tin >= 0 && tout >= 0 && tin !== tout) { - var cin = index[tin] - var cout = index[tout] - if(cin !== cout) { - ncells.push([ cin, cout ]) - } - } - }) +function base64End(buf) { + var r = buf && buf.length ? this.write(buf) : ''; + if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed); + return r; +} - //Normalize result - sc.unique(sc.normalize(ncells)) +// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex) +function simpleWrite(buf) { + return buf.toString(this.encoding); +} - //Return final list of cells - return { - positions: npositions, - edges: ncells - } +function simpleEnd(buf) { + return buf && buf.length ? this.write(buf) : ''; } -},{"robust-orientation":548,"simplicial-complex":560}],563:[function(_dereq_,module,exports){ -"use strict" +},{"safe-buffer":548}],579:[function(_dereq_,module,exports){ +(function (process,Buffer){(function (){ -module.exports = orderSegments +/** + * Module dependencies. + */ -var orient = _dereq_("robust-orientation") +var assert = _dereq_('assert'); +var debug = _dereq_('debug')('stream-parser'); -function horizontalOrder(a, b) { - var bl, br - if(b[0][0] < b[1][0]) { - bl = b[0] - br = b[1] - } else if(b[0][0] > b[1][0]) { - bl = b[1] - br = b[0] - } else { - var alo = Math.min(a[0][1], a[1][1]) - var ahi = Math.max(a[0][1], a[1][1]) - var blo = Math.min(b[0][1], b[1][1]) - var bhi = Math.max(b[0][1], b[1][1]) - if(ahi < blo) { - return ahi - blo - } - if(alo > bhi) { - return alo - bhi - } - return ahi - bhi - } - var al, ar - if(a[0][1] < a[1][1]) { - al = a[0] - ar = a[1] +/** + * Module exports. + */ + +module.exports = Parser; + +/** + * Parser states. + */ + +var INIT = -1; +var BUFFERING = 0; +var SKIPPING = 1; +var PASSTHROUGH = 2; + +/** + * The `Parser` stream mixin works with either `Writable` or `Transform` stream + * instances/subclasses. Provides a convenient generic "parsing" API: + * + * _bytes(n, cb) - buffers "n" bytes and then calls "cb" with the "chunk" + * _skipBytes(n, cb) - skips "n" bytes and then calls "cb" when done + * + * If you extend a `Transform` stream, then the `_passthrough()` function is also + * added: + * + * _passthrough(n, cb) - passes through "n" bytes untouched and then calls "cb" + * + * @param {Stream} stream Transform or Writable stream instance to extend + * @api public + */ + +function Parser (stream) { + var isTransform = stream && 'function' == typeof stream._transform; + var isWritable = stream && 'function' == typeof stream._write; + + if (!isTransform && !isWritable) throw new Error('must pass a Writable or Transform stream in'); + debug('extending Parser into stream'); + + // Transform streams and Writable streams get `_bytes()` and `_skipBytes()` + stream._bytes = _bytes; + stream._skipBytes = _skipBytes; + + // only Transform streams get the `_passthrough()` function + if (isTransform) stream._passthrough = _passthrough; + + // take control of the streams2 callback functions for this stream + if (isTransform) { + stream._transform = transform; } else { - al = a[1] - ar = a[0] - } - var d = orient(br, bl, al) - if(d) { - return d - } - d = orient(br, bl, ar) - if(d) { - return d + stream._write = write; } - return ar - br } -function orderSegments(b, a) { - var al, ar - if(a[0][0] < a[1][0]) { - al = a[0] - ar = a[1] - } else if(a[0][0] > a[1][0]) { - al = a[1] - ar = a[0] - } else { - return horizontalOrder(a, b) - } - var bl, br - if(b[0][0] < b[1][0]) { - bl = b[0] - br = b[1] - } else if(b[0][0] > b[1][0]) { - bl = b[1] - br = b[0] - } else { - return -horizontalOrder(b, a) - } - var d1 = orient(al, ar, br) - var d2 = orient(al, ar, bl) - if(d1 < 0) { - if(d2 <= 0) { - return d1 - } - } else if(d1 > 0) { - if(d2 >= 0) { - return d1 - } - } else if(d2) { - return d2 - } - d1 = orient(br, bl, ar) - d2 = orient(br, bl, al) - if(d1 < 0) { - if(d2 <= 0) { - return d1 - } - } else if(d1 > 0) { - if(d2 >= 0) { - return d1 - } - } else if(d2) { - return d2 +function init (stream) { + debug('initializing parser stream'); + + // number of bytes left to parser for the next "chunk" + stream._parserBytesLeft = 0; + + // array of Buffer instances that make up the next "chunk" + stream._parserBuffers = []; + + // number of bytes parsed so far for the next "chunk" + stream._parserBuffered = 0; + + // flag that keeps track of if what the parser should do with bytes received + stream._parserState = INIT; + + // the callback for the next "chunk" + stream._parserCallback = null; + + // XXX: backwards compat with the old Transform API... remove at some point.. + if ('function' == typeof stream.push) { + stream._parserOutput = stream.push.bind(stream); } - return ar[0] - br[0] + + stream._parserInit = true; } -},{"robust-orientation":548}],564:[function(_dereq_,module,exports){ -arguments[4][243][0].apply(exports,arguments) -},{"dup":243}],565:[function(_dereq_,module,exports){ -"use strict" -module.exports = createSlabDecomposition +/** + * Buffers `n` bytes and then invokes `fn` once that amount has been collected. + * + * @param {Number} n the number of bytes to buffer + * @param {Function} fn callback function to invoke when `n` bytes are buffered + * @api public + */ -var bounds = _dereq_("binary-search-bounds") -var createRBTree = _dereq_("functional-red-black-tree") -var orient = _dereq_("robust-orientation") -var orderSegments = _dereq_("./lib/order-segments") +function _bytes (n, fn) { + assert(!this._parserCallback, 'there is already a "callback" set!'); + assert(isFinite(n) && n > 0, 'can only buffer a finite number of bytes > 0, got "' + n + '"'); + if (!this._parserInit) init(this); + debug('buffering %o bytes', n); + this._parserBytesLeft = n; + this._parserCallback = fn; + this._parserState = BUFFERING; +} -function SlabDecomposition(slabs, coordinates, horizontal) { - this.slabs = slabs - this.coordinates = coordinates - this.horizontal = horizontal +/** + * Skips over the next `n` bytes, then invokes `fn` once that amount has + * been discarded. + * + * @param {Number} n the number of bytes to discard + * @param {Function} fn callback function to invoke when `n` bytes have been skipped + * @api public + */ + +function _skipBytes (n, fn) { + assert(!this._parserCallback, 'there is already a "callback" set!'); + assert(n > 0, 'can only skip > 0 bytes, got "' + n + '"'); + if (!this._parserInit) init(this); + debug('skipping %o bytes', n); + this._parserBytesLeft = n; + this._parserCallback = fn; + this._parserState = SKIPPING; } -var proto = SlabDecomposition.prototype +/** + * Passes through `n` bytes to the readable side of this stream untouched, + * then invokes `fn` once that amount has been passed through. + * + * @param {Number} n the number of bytes to pass through + * @param {Function} fn callback function to invoke when `n` bytes have passed through + * @api public + */ -function compareHorizontal(e, y) { - return e.y - y +function _passthrough (n, fn) { + assert(!this._parserCallback, 'There is already a "callback" set!'); + assert(n > 0, 'can only pass through > 0 bytes, got "' + n + '"'); + if (!this._parserInit) init(this); + debug('passing through %o bytes', n); + this._parserBytesLeft = n; + this._parserCallback = fn; + this._parserState = PASSTHROUGH; } -function searchBucket(root, p) { - var lastNode = null - while(root) { - var seg = root.key - var l, r - if(seg[0][0] < seg[1][0]) { - l = seg[0] - r = seg[1] - } else { - l = seg[1] - r = seg[0] - } - var o = orient(l, r, p) - if(o < 0) { - root = root.left - } else if(o > 0) { - if(p[0] !== seg[1][0]) { - lastNode = root - root = root.right - } else { - var val = searchBucket(root.right, p) - if(val) { - return val - } - root = root.left - } - } else { - if(p[0] !== seg[1][0]) { - return root - } else { - var val = searchBucket(root.right, p) - if(val) { - return val - } - root = root.left - } - } +/** + * The `_write()` callback function implementation. + * + * @api private + */ + +function write (chunk, encoding, fn) { + if (!this._parserInit) init(this); + debug('write(%o bytes)', chunk.length); + + // XXX: old Writable stream API compat... remove at some point... + if ('function' == typeof encoding) fn = encoding; + + data(this, chunk, null, fn); +} + +/** + * The `_transform()` callback function implementation. + * + * @api private + */ + + +function transform (chunk, output, fn) { + if (!this._parserInit) init(this); + debug('transform(%o bytes)', chunk.length); + + // XXX: old Transform stream API compat... remove at some point... + if ('function' != typeof output) { + output = this._parserOutput; } - return lastNode + + data(this, chunk, output, fn); } -proto.castUp = function(p) { - var bucket = bounds.le(this.coordinates, p[0]) - if(bucket < 0) { - return -1 +/** + * The internal buffering/passthrough logic... + * + * This `_data` function get's "trampolined" to prevent stack overflows for tight + * loops. This technique requires us to return a "thunk" function for any + * synchronous action. Async stuff breaks the trampoline, but that's ok since it's + * working with a new stack at that point anyway. + * + * @api private + */ + +function _data (stream, chunk, output, fn) { + if (stream._parserBytesLeft <= 0) { + return fn(new Error('got data but not currently parsing anything')); } - var root = this.slabs[bucket] - var hitNode = searchBucket(this.slabs[bucket], p) - var lastHit = -1 - if(hitNode) { - lastHit = hitNode.value + + if (chunk.length <= stream._parserBytesLeft) { + // small buffer fits within the "_parserBytesLeft" window + return function () { + return process(stream, chunk, output, fn); + }; + } else { + // large buffer needs to be sliced on "_parserBytesLeft" and processed + return function () { + var b = chunk.slice(0, stream._parserBytesLeft); + return process(stream, b, output, function (err) { + if (err) return fn(err); + if (chunk.length > b.length) { + return function () { + return _data(stream, chunk.slice(b.length), output, fn); + }; + } + }); + }; } - //Edge case: need to handle horizontal segments (sucks) - if(this.coordinates[bucket] === p[0]) { - var lastSegment = null - if(hitNode) { - lastSegment = hitNode.key +} + +/** + * The internal `process` function gets called by the `data` function when + * something "interesting" happens. This function takes care of buffering the + * bytes when buffering, passing through the bytes when doing that, and invoking + * the user callback when the number of bytes has been reached. + * + * @api private + */ + +function process (stream, chunk, output, fn) { + stream._parserBytesLeft -= chunk.length; + debug('%o bytes left for stream piece', stream._parserBytesLeft); + + if (stream._parserState === BUFFERING) { + // buffer + stream._parserBuffers.push(chunk); + stream._parserBuffered += chunk.length; + } else if (stream._parserState === PASSTHROUGH) { + // passthrough + output(chunk); + } + // don't need to do anything for the SKIPPING case + + if (0 === stream._parserBytesLeft) { + // done with stream "piece", invoke the callback + var cb = stream._parserCallback; + if (cb && stream._parserState === BUFFERING && stream._parserBuffers.length > 1) { + chunk = Buffer.concat(stream._parserBuffers, stream._parserBuffered); } - if(bucket > 0) { - var otherHitNode = searchBucket(this.slabs[bucket-1], p) - if(otherHitNode) { - if(lastSegment) { - if(orderSegments(otherHitNode.key, lastSegment) > 0) { - lastSegment = otherHitNode.key - lastHit = otherHitNode.value - } - } else { - lastHit = otherHitNode.value - lastSegment = otherHitNode.key - } - } + if (stream._parserState !== BUFFERING) { + chunk = null; } - var horiz = this.horizontal[bucket] - if(horiz.length > 0) { - var hbucket = bounds.ge(horiz, p[1], compareHorizontal) - if(hbucket < horiz.length) { - var e = horiz[hbucket] - if(p[1] === e.y) { - if(e.closed) { - return e.index - } else { - while(hbucket < horiz.length-1 && horiz[hbucket+1].y === p[1]) { - hbucket = hbucket+1 - e = horiz[hbucket] - if(e.closed) { - return e.index - } - } - if(e.y === p[1] && !e.start) { - hbucket = hbucket+1 - if(hbucket >= horiz.length) { - return lastHit - } - e = horiz[hbucket] - } - } - } - //Check if e is above/below last segment - if(e.start) { - if(lastSegment) { - var o = orient(lastSegment[0], lastSegment[1], [p[0], e.y]) - if(lastSegment[0][0] > lastSegment[1][0]) { - o = -o - } - if(o > 0) { - lastHit = e.index - } - } else { - lastHit = e.index - } - } else if(e.y !== p[1]) { - lastHit = e.index - } + stream._parserCallback = null; + stream._parserBuffered = 0; + stream._parserState = INIT; + stream._parserBuffers.splice(0); // empty + + if (cb) { + var args = []; + if (chunk) { + // buffered + args.push(chunk); + } else { + // passthrough + } + if (output) { + // on a Transform stream, has "output" function + args.push(output); + } + var async = cb.length > args.length; + if (async) { + args.push(trampoline(fn)); } + // invoke cb + var rtn = cb.apply(stream, args); + if (!async || fn === rtn) return fn; } + } else { + // need more bytes + return fn; } - return lastHit } -function IntervalSegment(y, index, start, closed) { - this.y = y - this.index = index - this.start = start - this.closed = closed +var data = trampoline(_data); + +/** + * Generic thunk-based "trampoline" helper function. + * + * @param {Function} input function + * @return {Function} "trampolined" function + * @api private + */ + +function trampoline (fn) { + return function () { + var result = fn.apply(this, arguments); + + while ('function' == typeof result) { + result = result(); + } + + return result; + }; } -function Event(x, segment, create, index) { - this.x = x - this.segment = segment - this.create = create - this.index = index +}).call(this)}).call(this,_dereq_('_process'),_dereq_("buffer").Buffer) +},{"_process":522,"assert":76,"buffer":113,"debug":580}],580:[function(_dereq_,module,exports){ +(function (process){(function (){ +/** + * This is the web browser implementation of `debug()`. + * + * Expose `debug()` as the module. + */ + +exports = module.exports = _dereq_('./debug'); +exports.log = log; +exports.formatArgs = formatArgs; +exports.save = save; +exports.load = load; +exports.useColors = useColors; +exports.storage = 'undefined' != typeof chrome + && 'undefined' != typeof chrome.storage + ? chrome.storage.local + : localstorage(); + +/** + * Colors. + */ + +exports.colors = [ + 'lightseagreen', + 'forestgreen', + 'goldenrod', + 'dodgerblue', + 'darkorchid', + 'crimson' +]; + +/** + * Currently only WebKit-based Web Inspectors, Firefox >= v31, + * and the Firebug extension (any Firefox version) are known + * to support "%c" CSS customizations. + * + * TODO: add a `localStorage` variable to explicitly enable/disable colors + */ + +function useColors() { + // NB: In an Electron preload script, document will be defined but not fully + // initialized. Since we know we're in Chrome, we'll just detect this case + // explicitly + if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') { + return true; + } + + // is webkit? http://stackoverflow.com/a/16459606/376773 + // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 + return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || + // is firebug? http://stackoverflow.com/a/398120/376773 + (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || + // is firefox >= v31? + // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages + (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) || + // double check webkit in userAgent just in case we are in a worker + (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); } +/** + * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. + */ -function createSlabDecomposition(segments) { - var numSegments = segments.length - var numEvents = 2 * numSegments - var events = new Array(numEvents) - for(var i=0; i 1.0) { - t = 1.0 - } - var ti = 1.0 - t - var n = a.length - var r = new Array(n) - for(var i=0; i 0) || (a > 0 && b < 0)) { - var p = lerpW(s, b, t, a) - pos.push(p) - neg.push(p.slice()) +/** + * Create a debugger with the given `namespace`. + * + * @param {String} namespace + * @return {Function} + * @api public + */ + +function createDebug(namespace) { + + function debug() { + // disabled? + if (!debug.enabled) return; + + var self = debug; + + // set `diff` timestamp + var curr = +new Date(); + var ms = curr - (prevTime || curr); + self.diff = ms; + self.prev = prevTime; + self.curr = curr; + prevTime = curr; + + // turn the `arguments` into a proper Array + var args = new Array(arguments.length); + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i]; } - if(b < 0) { - neg.push(t.slice()) - } else if(b > 0) { - pos.push(t.slice()) - } else { - pos.push(t.slice()) - neg.push(t.slice()) + + args[0] = exports.coerce(args[0]); + + if ('string' !== typeof args[0]) { + // anything else let's inspect with %O + args.unshift('%O'); } - a = b + + // apply any `formatters` transformations + var index = 0; + args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) { + // if we encounter an escaped % then don't increase the array index + if (match === '%%') return match; + index++; + var formatter = exports.formatters[format]; + if ('function' === typeof formatter) { + var val = args[index]; + match = formatter.call(self, val); + + // now we need to remove `args[index]` since it's inlined in the `format` + args.splice(index, 1); + index--; + } + return match; + }); + + // apply env-specific formatting (colors, etc.) + exports.formatArgs.call(self, args); + + var logFn = debug.log || exports.log || console.log.bind(console); + logFn.apply(self, args); } - return { positive: pos, negative: neg } + + debug.namespace = namespace; + debug.enabled = exports.enabled(namespace); + debug.useColors = exports.useColors(); + debug.color = selectColor(namespace); + + // env-specific initialization logic for debug instances + if ('function' === typeof exports.init) { + exports.init(debug); + } + + return debug; } -function positive(points, plane) { - var pos = [] - var a = planeT(points[points.length-1], plane) - for(var s=points[points.length-1], t=points[0], i=0; i 0) || (a > 0 && b < 0)) { - pos.push(lerpW(s, b, t, a)) - } - if(b >= 0) { - pos.push(t.slice()) +/** + * Enables a debug mode by namespaces. This can include modes + * separated by a colon and wildcards. + * + * @param {String} namespaces + * @api public + */ + +function enable(namespaces) { + exports.save(namespaces); + + exports.names = []; + exports.skips = []; + + var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/); + var len = split.length; + + for (var i = 0; i < len; i++) { + if (!split[i]) continue; // ignore empty strings + namespaces = split[i].replace(/\*/g, '.*?'); + if (namespaces[0] === '-') { + exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$')); + } else { + exports.names.push(new RegExp('^' + namespaces + '$')); } - a = b } - return pos } -function negative(points, plane) { - var neg = [] - var a = planeT(points[points.length-1], plane) - for(var s=points[points.length-1], t=points[0], i=0; i 0) || (a > 0 && b < 0)) { - neg.push(lerpW(s, b, t, a)) +/** + * Disable debug output. + * + * @api public + */ + +function disable() { + exports.enable(''); +} + +/** + * Returns true if the given mode name is enabled, false otherwise. + * + * @param {String} name + * @return {Boolean} + * @api public + */ + +function enabled(name) { + var i, len; + for (i = 0, len = exports.skips.length; i < len; i++) { + if (exports.skips[i].test(name)) { + return false; } - if(b <= 0) { - neg.push(t.slice()) + } + for (i = 0, len = exports.names.length; i < len; i++) { + if (exports.names[i].test(name)) { + return true; } - a = b } - return neg + return false; } -},{"robust-dot-product":545,"robust-sum":553}],567:[function(_dereq_,module,exports){ -/* global window, exports, define */ - -!function() { - 'use strict' - var re = { - 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: /^[+-]/ - } +/** + * Coerce `val`. + * + * @param {Mixed} val + * @return {Mixed} + * @api private + */ - function sprintf(key) { - // `arguments` is not an array, but should be fine for this call - return sprintf_format(sprintf_parse(key), arguments) - } +function coerce(val) { + if (val instanceof Error) return val.stack || val.message; + return val; +} - function vsprintf(fmt, argv) { - return sprintf.apply(null, [fmt].concat(argv || [])) - } +},{"ms":582}],582:[function(_dereq_,module,exports){ +/** + * Helpers. + */ - function sprintf_format(parse_tree, argv) { - var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, ph, pad, pad_character, pad_length, is_positive, sign - for (i = 0; i < tree_length; i++) { - if (typeof parse_tree[i] === 'string') { - output += parse_tree[i] - } - else if (typeof parse_tree[i] === 'object') { - ph = parse_tree[i] // convenience purposes only - if (ph.keys) { // keyword argument - arg = argv[cursor] - for (k = 0; k < ph.keys.length; k++) { - if (arg == undefined) { - throw new Error(sprintf('[sprintf] Cannot access property "%s" of undefined value "%s"', ph.keys[k], ph.keys[k-1])) - } - arg = arg[ph.keys[k]] - } - } - else if (ph.param_no) { // positional argument (explicit) - arg = argv[ph.param_no] - } - else { // positional argument (implicit) - arg = argv[cursor++] - } +var s = 1000; +var m = s * 60; +var h = m * 60; +var d = h * 24; +var y = d * 365.25; - if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) { - arg = arg() - } +/** + * Parse or format the given `val`. + * + * Options: + * + * - `long` verbose formatting [false] + * + * @param {String|Number} val + * @param {Object} [options] + * @throws {Error} throw an error if val is not a non-empty string or a number + * @return {String|Number} + * @api public + */ - if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) { - throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg)) - } +module.exports = function(val, options) { + options = options || {}; + var type = typeof val; + if (type === 'string' && val.length > 0) { + return parse(val); + } else if (type === 'number' && isNaN(val) === false) { + return options.long ? fmtLong(val) : fmtShort(val); + } + throw new Error( + 'val is not a non-empty string or a valid number. val=' + + JSON.stringify(val) + ); +}; - if (re.number.test(ph.type)) { - is_positive = arg >= 0 - } +/** + * Parse the given `str` and return milliseconds. + * + * @param {String} str + * @return {Number} + * @api private + */ - switch (ph.type) { - case 'b': - arg = parseInt(arg, 10).toString(2) - break - case 'c': - arg = String.fromCharCode(parseInt(arg, 10)) - break - case 'd': - case 'i': - arg = parseInt(arg, 10) - break - case 'j': - arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0) - break - case 'e': - arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential() - break - case 'f': - arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg) - break - case 'g': - arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg) - break - case 'o': - arg = (parseInt(arg, 10) >>> 0).toString(8) - break - case 's': - arg = String(arg) - arg = (ph.precision ? arg.substring(0, ph.precision) : arg) - break - case 't': - arg = String(!!arg) - arg = (ph.precision ? arg.substring(0, ph.precision) : arg) - break - case 'T': - arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase() - arg = (ph.precision ? arg.substring(0, ph.precision) : arg) - break - case 'u': - arg = parseInt(arg, 10) >>> 0 - break - case 'v': - arg = arg.valueOf() - arg = (ph.precision ? arg.substring(0, ph.precision) : arg) - break - case 'x': - arg = (parseInt(arg, 10) >>> 0).toString(16) - break - case 'X': - arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase() - break - } - if (re.json.test(ph.type)) { - output += arg - } - else { - if (re.number.test(ph.type) && (!is_positive || ph.sign)) { - sign = is_positive ? '+' : '-' - arg = arg.toString().replace(re.sign, '') - } - else { - sign = '' - } - pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' ' - pad_length = ph.width - (sign + arg).length - pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : '' - output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg) - } - } - } - return output - } +function parse(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec( + str + ); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || 'ms').toLowerCase(); + switch (type) { + case 'years': + case 'year': + case 'yrs': + case 'yr': + case 'y': + return n * y; + case 'days': + case 'day': + case 'd': + return n * d; + case 'hours': + case 'hour': + case 'hrs': + case 'hr': + case 'h': + return n * h; + case 'minutes': + case 'minute': + case 'mins': + case 'min': + case 'm': + return n * m; + case 'seconds': + case 'second': + case 'secs': + case 'sec': + case 's': + return n * s; + case 'milliseconds': + case 'millisecond': + case 'msecs': + case 'msec': + case 'ms': + return n; + default: + return undefined; + } +} - var sprintf_cache = Object.create(null) +/** + * Short format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ - function sprintf_parse(fmt) { - if (sprintf_cache[fmt]) { - return sprintf_cache[fmt] - } +function fmtShort(ms) { + if (ms >= d) { + return Math.round(ms / d) + 'd'; + } + if (ms >= h) { + return Math.round(ms / h) + 'h'; + } + if (ms >= m) { + return Math.round(ms / m) + 'm'; + } + if (ms >= s) { + return Math.round(ms / s) + 's'; + } + return ms + 'ms'; +} - var _fmt = fmt, match, parse_tree = [], arg_names = 0 - while (_fmt) { - if ((match = re.text.exec(_fmt)) !== null) { - parse_tree.push(match[0]) - } - else if ((match = re.modulo.exec(_fmt)) !== null) { - parse_tree.push('%') - } - else if ((match = re.placeholder.exec(_fmt)) !== null) { - if (match[2]) { - arg_names |= 1 - var field_list = [], replacement_field = match[2], field_match = [] - if ((field_match = re.key.exec(replacement_field)) !== null) { - field_list.push(field_match[1]) - while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') { - if ((field_match = re.key_access.exec(replacement_field)) !== null) { - field_list.push(field_match[1]) - } - else if ((field_match = re.index_access.exec(replacement_field)) !== null) { - field_list.push(field_match[1]) - } - else { - throw new SyntaxError('[sprintf] failed to parse named argument key') - } - } - } - else { - throw new SyntaxError('[sprintf] failed to parse named argument key') - } - match[2] = field_list - } - else { - arg_names |= 2 - } - if (arg_names === 3) { - throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported') - } +/** + * Long format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ - parse_tree.push( - { - placeholder: match[0], - param_no: match[1], - keys: match[2], - sign: match[3], - pad_char: match[4], - align: match[5], - width: match[6], - precision: match[7], - type: match[8] - } - ) - } - else { - throw new SyntaxError('[sprintf] unexpected placeholder') - } - _fmt = _fmt.substring(match[0].length) - } - return sprintf_cache[fmt] = parse_tree - } +function fmtLong(ms) { + return plural(ms, d, 'day') || + plural(ms, h, 'hour') || + plural(ms, m, 'minute') || + plural(ms, s, 'second') || + ms + ' ms'; +} - /** - * export to either browser or node.js - */ - /* eslint-disable quote-props */ - if (typeof exports !== 'undefined') { - exports['sprintf'] = sprintf - exports['vsprintf'] = vsprintf - } - if (typeof window !== 'undefined') { - window['sprintf'] = sprintf - window['vsprintf'] = vsprintf +/** + * Pluralization helper. + */ - if (typeof define === 'function' && define['amd']) { - define(function() { - return { - 'sprintf': sprintf, - 'vsprintf': vsprintf - } - }) - } - } - /* eslint-enable quote-props */ -}(); // eslint-disable-line +function plural(ms, n, name) { + if (ms < n) { + return; + } + if (ms < n * 1.5) { + return Math.floor(ms / n) + ' ' + name; + } + return Math.ceil(ms / n) + ' ' + name + 's'; +} -},{}],568:[function(_dereq_,module,exports){ +},{}],583:[function(_dereq_,module,exports){ 'use strict' var paren = _dereq_('parenthesis') @@ -94662,7 +97289,7 @@ module.exports = function splitBy (string, separator, o) { return parts } -},{"parenthesis":503}],569:[function(_dereq_,module,exports){ +},{"parenthesis":488}],584:[function(_dereq_,module,exports){ "use strict" module.exports = stronglyConnectedComponents @@ -94778,7 +97405,7 @@ function stronglyConnectedComponents(adjList) { return {components: components, adjacencyList: sccAdjList} } -},{}],570:[function(_dereq_,module,exports){ +},{}],585:[function(_dereq_,module,exports){ "use strict" module.exports = surfaceNets @@ -94986,7 +97613,7 @@ function surfaceNets(array,level) { } return proc(array,level) } -},{"ndarray-extract-contour":487,"triangulate-hypercube":580,"zero-crossings":624}],571:[function(_dereq_,module,exports){ +},{"ndarray-extract-contour":472,"triangulate-hypercube":596,"zero-crossings":641}],586:[function(_dereq_,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { @@ -95177,7 +97804,7 @@ var arcToBezier = function arcToBezier(_ref2) { exports.default = arcToBezier; module.exports = exports.default; -},{}],572:[function(_dereq_,module,exports){ +},{}],587:[function(_dereq_,module,exports){ 'use strict' var parse = _dereq_('parse-svg-path') @@ -95222,7 +97849,7 @@ function pathBounds(path) { return bounds } -},{"abs-svg-path":65,"assert":73,"is-svg-path":471,"normalize-svg-path":573,"parse-svg-path":505}],573:[function(_dereq_,module,exports){ +},{"abs-svg-path":67,"assert":76,"is-svg-path":455,"normalize-svg-path":588,"parse-svg-path":490}],588:[function(_dereq_,module,exports){ 'use strict' module.exports = normalize @@ -95346,7 +97973,7 @@ function quadratic(x1, y1, cx, cy, x2, y2){ ] } -},{"svg-arc-to-cubic-bezier":571}],574:[function(_dereq_,module,exports){ +},{"svg-arc-to-cubic-bezier":586}],589:[function(_dereq_,module,exports){ 'use strict' var pathBounds = _dereq_('svg-path-bounds') @@ -95449,7 +98076,7 @@ function isPath2DSupported () { return path2DSupported = idata && idata.data && idata.data[3] === 255 } -},{"bitmap-sdf":98,"draw-svg-path":174,"is-svg-path":471,"parse-svg-path":505,"svg-path-bounds":572}],575:[function(_dereq_,module,exports){ +},{"bitmap-sdf":101,"draw-svg-path":175,"is-svg-path":455,"parse-svg-path":490,"svg-path-bounds":587}],590:[function(_dereq_,module,exports){ (function (process){(function (){ 'use strict' @@ -95546,7 +98173,86 @@ function textGet(font, text, opts) { } }).call(this)}).call(this,_dereq_('_process')) -},{"_process":526,"vectorize-text":600}],576:[function(_dereq_,module,exports){ +},{"_process":522,"vectorize-text":617}],591:[function(_dereq_,module,exports){ +(function (setImmediate,clearImmediate){(function (){ +var nextTick = _dereq_('process/browser.js').nextTick; +var apply = Function.prototype.apply; +var slice = Array.prototype.slice; +var immediateIds = {}; +var nextImmediateId = 0; + +// DOM APIs, for completeness + +exports.setTimeout = function() { + return new Timeout(apply.call(setTimeout, window, arguments), clearTimeout); +}; +exports.setInterval = function() { + return new Timeout(apply.call(setInterval, window, arguments), clearInterval); +}; +exports.clearTimeout = +exports.clearInterval = function(timeout) { timeout.close(); }; + +function Timeout(id, clearFn) { + this._id = id; + this._clearFn = clearFn; +} +Timeout.prototype.unref = Timeout.prototype.ref = function() {}; +Timeout.prototype.close = function() { + this._clearFn.call(window, this._id); +}; + +// Does not start the time, just sets up the members needed. +exports.enroll = function(item, msecs) { + clearTimeout(item._idleTimeoutId); + item._idleTimeout = msecs; +}; + +exports.unenroll = function(item) { + clearTimeout(item._idleTimeoutId); + item._idleTimeout = -1; +}; + +exports._unrefActive = exports.active = function(item) { + clearTimeout(item._idleTimeoutId); + + var msecs = item._idleTimeout; + if (msecs >= 0) { + item._idleTimeoutId = setTimeout(function onTimeout() { + if (item._onTimeout) + item._onTimeout(); + }, msecs); + } +}; + +// That's not how node.js implements it but the exposed api is the same. +exports.setImmediate = typeof setImmediate === "function" ? setImmediate : function(fn) { + var id = nextImmediateId++; + var args = arguments.length < 2 ? false : slice.call(arguments, 1); + + immediateIds[id] = true; + + nextTick(function onNextTick() { + if (immediateIds[id]) { + // fn.call() is faster so we optimize for the common use-case + // @see http://jsperf.com/call-apply-segu + if (args) { + fn.apply(null, args); + } else { + fn.call(null); + } + // Prevent ids from leaking + exports.clearImmediate(id); + } + }); + + return id; +}; + +exports.clearImmediate = typeof clearImmediate === "function" ? clearImmediate : function(id) { + delete immediateIds[id]; +}; +}).call(this)}).call(this,_dereq_("timers").setImmediate,_dereq_("timers").clearImmediate) +},{"process/browser.js":522,"timers":591}],592:[function(_dereq_,module,exports){ // TinyColor v1.4.2 // https://github.com/bgrins/TinyColor // Brian Grinstead, MIT License @@ -96743,7 +99449,7 @@ else { })(Math); -},{}],577:[function(_dereq_,module,exports){ +},{}],593:[function(_dereq_,module,exports){ /* @module to-float32 */ 'use strict' @@ -96784,7 +99490,7 @@ function float32 (arr) { return narr[0] } -},{}],578:[function(_dereq_,module,exports){ +},{}],594:[function(_dereq_,module,exports){ 'use strict' var parseUnit = _dereq_('parse-unit') @@ -96845,7 +99551,7 @@ function toPX(str, element) { } return 1 } -},{"parse-unit":506}],579:[function(_dereq_,module,exports){ +},{"parse-unit":491}],595:[function(_dereq_,module,exports){ // https://github.com/topojson/topojson-client v3.1.0 Copyright 2019 Mike Bostock (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : @@ -97355,7 +100061,7 @@ Object.defineProperty(exports, '__esModule', { value: true }); })); -},{}],580:[function(_dereq_,module,exports){ +},{}],596:[function(_dereq_,module,exports){ "use strict" module.exports = triangulateCube @@ -97389,7 +100095,7 @@ function triangulateCube(dimension) { } return result } -},{"gamma":248,"permutation-parity":509,"permutation-rank":510}],581:[function(_dereq_,module,exports){ +},{"gamma":248,"permutation-parity":493,"permutation-rank":494}],597:[function(_dereq_,module,exports){ 'use strict' module.exports = createTurntableController @@ -97962,7 +100668,7 @@ function createTurntableController(options) { theta, phi) } -},{"filtered-vector":242,"gl-mat4/invert":293,"gl-mat4/rotate":299,"gl-vec3/cross":365,"gl-vec3/dot":370,"gl-vec3/normalize":387}],582:[function(_dereq_,module,exports){ +},{"filtered-vector":242,"gl-mat4/invert":293,"gl-mat4/rotate":299,"gl-vec3/cross":364,"gl-vec3/dot":369,"gl-vec3/normalize":386}],598:[function(_dereq_,module,exports){ "use strict" module.exports = twoProduct @@ -97996,7 +100702,7 @@ function twoProduct(a, b, result) { return [ y, x ] } -},{}],583:[function(_dereq_,module,exports){ +},{}],599:[function(_dereq_,module,exports){ "use strict" module.exports = fastTwoSum @@ -98014,7 +100720,7 @@ function fastTwoSum(a, b, result) { } return [ar+br, x] } -},{}],584:[function(_dereq_,module,exports){ +},{}],600:[function(_dereq_,module,exports){ "use strict"; var isPrototype = _dereq_("../prototype/is"); @@ -98035,7 +100741,7 @@ module.exports = function (value) { return !isPrototype(value); }; -},{"../prototype/is":591}],585:[function(_dereq_,module,exports){ +},{"../prototype/is":607}],601:[function(_dereq_,module,exports){ "use strict"; var isValue = _dereq_("../value/is") @@ -98058,7 +100764,7 @@ module.exports = function (value, defaultMessage, inputOptions) { throw new TypeError(resolveMessage(errorMessage, value)); }; -},{"../object/is":588,"../string/coerce":592,"../value/is":594,"./to-short-string":587}],586:[function(_dereq_,module,exports){ +},{"../object/is":604,"../string/coerce":608,"../value/is":610,"./to-short-string":603}],602:[function(_dereq_,module,exports){ "use strict"; module.exports = function (value) { @@ -98070,7 +100776,7 @@ module.exports = function (value) { } }; -},{}],587:[function(_dereq_,module,exports){ +},{}],603:[function(_dereq_,module,exports){ "use strict"; var safeToString = _dereq_("./safe-to-string"); @@ -98101,7 +100807,7 @@ module.exports = function (value) { return string; }; -},{"./safe-to-string":586}],588:[function(_dereq_,module,exports){ +},{"./safe-to-string":602}],604:[function(_dereq_,module,exports){ "use strict"; var isValue = _dereq_("../value/is"); @@ -98114,7 +100820,7 @@ module.exports = function (value) { return hasOwnProperty.call(possibleTypes, typeof value); }; -},{"../value/is":594}],589:[function(_dereq_,module,exports){ +},{"../value/is":610}],605:[function(_dereq_,module,exports){ "use strict"; var resolveException = _dereq_("../lib/resolve-exception") @@ -98125,7 +100831,7 @@ module.exports = function (value/*, options*/) { return resolveException(value, "%v is not a plain function", arguments[1]); }; -},{"../lib/resolve-exception":585,"./is":590}],590:[function(_dereq_,module,exports){ +},{"../lib/resolve-exception":601,"./is":606}],606:[function(_dereq_,module,exports){ "use strict"; var isFunction = _dereq_("../function/is"); @@ -98138,7 +100844,7 @@ module.exports = function (value) { return true; }; -},{"../function/is":584}],591:[function(_dereq_,module,exports){ +},{"../function/is":600}],607:[function(_dereq_,module,exports){ "use strict"; var isObject = _dereq_("../object/is"); @@ -98153,7 +100859,7 @@ module.exports = function (value) { } }; -},{"../object/is":588}],592:[function(_dereq_,module,exports){ +},{"../object/is":604}],608:[function(_dereq_,module,exports){ "use strict"; var isValue = _dereq_("../value/is") @@ -98178,7 +100884,7 @@ module.exports = function (value) { } }; -},{"../object/is":588,"../value/is":594}],593:[function(_dereq_,module,exports){ +},{"../object/is":604,"../value/is":610}],609:[function(_dereq_,module,exports){ "use strict"; var resolveException = _dereq_("../lib/resolve-exception") @@ -98189,7 +100895,7 @@ module.exports = function (value/*, options*/) { return resolveException(value, "Cannot use %v", arguments[1]); }; -},{"../lib/resolve-exception":585,"./is":594}],594:[function(_dereq_,module,exports){ +},{"../lib/resolve-exception":601,"./is":610}],610:[function(_dereq_,module,exports){ "use strict"; // ES3 safe @@ -98197,7 +100903,7 @@ var _undefined = void 0; module.exports = function (value) { return value !== _undefined && value !== null; }; -},{}],595:[function(_dereq_,module,exports){ +},{}],611:[function(_dereq_,module,exports){ (function (global){(function (){ 'use strict' @@ -98452,7 +101158,7 @@ exports.clearCache = function clearCache() { } }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"bit-twiddle":97,"buffer":111,"dup":176}],596:[function(_dereq_,module,exports){ +},{"bit-twiddle":100,"buffer":113,"dup":177}],612:[function(_dereq_,module,exports){ "use strict"; "use restrict"; module.exports = UnionFind; @@ -98515,7 +101221,7 @@ proto.link = function(x, y) { ++ranks[xr]; } } -},{}],597:[function(_dereq_,module,exports){ +},{}],613:[function(_dereq_,module,exports){ "use strict" function unique_pred(list, compare) { @@ -98574,7 +101280,7 @@ function unique(list, compare, sorted) { module.exports = unique -},{}],598:[function(_dereq_,module,exports){ +},{}],614:[function(_dereq_,module,exports){ var reg = /[\'\"]/ module.exports = function unquote(str) { @@ -98590,7 +101296,7 @@ module.exports = function unquote(str) { return str } -},{}],599:[function(_dereq_,module,exports){ +},{}],615:[function(_dereq_,module,exports){ /** * @module update-diff */ @@ -98623,7 +101329,78 @@ module.exports = function updateDiff (obj, diff, mappers) { return obj } -},{}],600:[function(_dereq_,module,exports){ +},{}],616:[function(_dereq_,module,exports){ +(function (global){(function (){ + +/** + * Module exports. + */ + +module.exports = deprecate; + +/** + * Mark that a method should not be used. + * Returns a modified function which warns once by default. + * + * If `localStorage.noDeprecation = true` is set, then it is a no-op. + * + * If `localStorage.throwDeprecation = true` is set, then deprecated functions + * will throw an Error when invoked. + * + * If `localStorage.traceDeprecation = true` is set, then deprecated functions + * will invoke `console.trace()` instead of `console.error()`. + * + * @param {Function} fn - the function to deprecate + * @param {String} msg - the string to print to the console when `fn` is invoked + * @returns {Function} a new "deprecated" version of `fn` + * @api public + */ + +function deprecate (fn, msg) { + if (config('noDeprecation')) { + return fn; + } + + var warned = false; + function deprecated() { + if (!warned) { + if (config('throwDeprecation')) { + throw new Error(msg); + } else if (config('traceDeprecation')) { + console.trace(msg); + } else { + console.warn(msg); + } + warned = true; + } + return fn.apply(this, arguments); + } + + return deprecated; +} + +/** + * Checks `localStorage` for boolean values for the given `name`. + * + * @param {String} name + * @returns {Boolean} + * @api private + */ + +function config (name) { + // accessing global.localStorage can trigger a DOMException in sandboxed iframes + try { + if (!global.localStorage) return false; + } catch (_) { + return false; + } + var val = global.localStorage[name]; + if (null == val) return false; + return String(val).toLowerCase() === 'true'; +} + +}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{}],617:[function(_dereq_,module,exports){ "use strict" module.exports = createText @@ -98650,7 +101427,7 @@ function createText(str, options) { options) } -},{"./lib/vtext":601}],601:[function(_dereq_,module,exports){ +},{"./lib/vtext":618}],618:[function(_dereq_,module,exports){ module.exports = vectorizeText module.exports.processPixels = processPixels @@ -99105,7 +101882,7 @@ function vectorizeText(str, canvas, context, options) { return processPixels(pixels, options, size) } -},{"cdt2d":112,"clean-pslg":121,"ndarray":495,"planar-graph-to-polyline":514,"simplify-planar-graph":562,"surface-nets":570}],602:[function(_dereq_,module,exports){ +},{"cdt2d":114,"clean-pslg":123,"ndarray":480,"planar-graph-to-polyline":498,"simplify-planar-graph":557,"surface-nets":585}],619:[function(_dereq_,module,exports){ // Copyright (C) 2011 Google Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -99792,7 +102569,7 @@ function vectorizeText(str, canvas, context, options) { } })(); -},{}],603:[function(_dereq_,module,exports){ +},{}],620:[function(_dereq_,module,exports){ var hiddenStore = _dereq_('./hidden-store.js'); module.exports = createStore; @@ -99813,7 +102590,7 @@ function createStore() { }; } -},{"./hidden-store.js":604}],604:[function(_dereq_,module,exports){ +},{"./hidden-store.js":621}],621:[function(_dereq_,module,exports){ module.exports = hiddenStore; function hiddenStore(obj, key) { @@ -99831,7 +102608,7 @@ function hiddenStore(obj, key) { return store; } -},{}],605:[function(_dereq_,module,exports){ +},{}],622:[function(_dereq_,module,exports){ // Original - @Gozola. // https://gist.github.com/Gozala/1269991 // This is a reimplemented version (with a few bug fixes). @@ -99862,14 +102639,14 @@ function weakMap() { } } -},{"./create-store.js":603}],606:[function(_dereq_,module,exports){ +},{"./create-store.js":620}],623:[function(_dereq_,module,exports){ var getContext = _dereq_('get-canvas-context') module.exports = function getWebGLContext (opt) { return getContext('webgl', opt) } -},{"get-canvas-context":249}],607:[function(_dereq_,module,exports){ +},{"get-canvas-context":249}],624:[function(_dereq_,module,exports){ /* * World Calendars * https://github.com/alexcjohnson/world-calendars @@ -100602,7 +103379,7 @@ function toSolar(yearOrDate, monthOrResult, day, isIntercalaryOrResult, result) } -},{"../main":621,"object-assign":499}],608:[function(_dereq_,module,exports){ +},{"../main":638,"object-assign":484}],625:[function(_dereq_,module,exports){ /* * World Calendars * https://github.com/alexcjohnson/world-calendars @@ -100786,7 +103563,7 @@ assign(CopticCalendar.prototype, { main.calendars.coptic = CopticCalendar; -},{"../main":621,"object-assign":499}],609:[function(_dereq_,module,exports){ +},{"../main":638,"object-assign":484}],626:[function(_dereq_,module,exports){ /* * World Calendars * https://github.com/alexcjohnson/world-calendars @@ -101014,7 +103791,7 @@ var centuries = { main.calendars.discworld = DiscworldCalendar; -},{"../main":621,"object-assign":499}],610:[function(_dereq_,module,exports){ +},{"../main":638,"object-assign":484}],627:[function(_dereq_,module,exports){ /* * World Calendars * https://github.com/alexcjohnson/world-calendars @@ -101198,7 +103975,7 @@ assign(EthiopianCalendar.prototype, { main.calendars.ethiopian = EthiopianCalendar; -},{"../main":621,"object-assign":499}],611:[function(_dereq_,module,exports){ +},{"../main":638,"object-assign":484}],628:[function(_dereq_,module,exports){ /* * World Calendars * https://github.com/alexcjohnson/world-calendars @@ -101472,7 +104249,7 @@ function mod(a, b) { main.calendars.hebrew = HebrewCalendar; -},{"../main":621,"object-assign":499}],612:[function(_dereq_,module,exports){ +},{"../main":638,"object-assign":484}],629:[function(_dereq_,module,exports){ /* * World Calendars * https://github.com/alexcjohnson/world-calendars @@ -101653,7 +104430,7 @@ assign(IslamicCalendar.prototype, { main.calendars.islamic = IslamicCalendar; -},{"../main":621,"object-assign":499}],613:[function(_dereq_,module,exports){ +},{"../main":638,"object-assign":484}],630:[function(_dereq_,module,exports){ /* * World Calendars * https://github.com/alexcjohnson/world-calendars @@ -101836,7 +104613,7 @@ assign(JulianCalendar.prototype, { main.calendars.julian = JulianCalendar; -},{"../main":621,"object-assign":499}],614:[function(_dereq_,module,exports){ +},{"../main":638,"object-assign":484}],631:[function(_dereq_,module,exports){ /* * World Calendars * https://github.com/alexcjohnson/world-calendars @@ -102131,7 +104908,7 @@ function amod(a, b) { main.calendars.mayan = MayanCalendar; -},{"../main":621,"object-assign":499}],615:[function(_dereq_,module,exports){ +},{"../main":638,"object-assign":484}],632:[function(_dereq_,module,exports){ /* * World Calendars * https://github.com/alexcjohnson/world-calendars @@ -102311,7 +105088,7 @@ assign(NanakshahiCalendar.prototype, { main.calendars.nanakshahi = NanakshahiCalendar; -},{"../main":621,"object-assign":499}],616:[function(_dereq_,module,exports){ +},{"../main":638,"object-assign":484}],633:[function(_dereq_,module,exports){ /* * World Calendars * https://github.com/alexcjohnson/world-calendars @@ -102734,7 +105511,7 @@ assign(NepaliCalendar.prototype, { main.calendars.nepali = NepaliCalendar; -},{"../main":621,"object-assign":499}],617:[function(_dereq_,module,exports){ +},{"../main":638,"object-assign":484}],634:[function(_dereq_,module,exports){ /* * World Calendars * https://github.com/alexcjohnson/world-calendars @@ -102924,7 +105701,7 @@ main.calendars.persian = PersianCalendar; main.calendars.jalali = PersianCalendar; -},{"../main":621,"object-assign":499}],618:[function(_dereq_,module,exports){ +},{"../main":638,"object-assign":484}],635:[function(_dereq_,module,exports){ /* * World Calendars * https://github.com/alexcjohnson/world-calendars @@ -103110,7 +105887,7 @@ assign(TaiwanCalendar.prototype, { main.calendars.taiwan = TaiwanCalendar; -},{"../main":621,"object-assign":499}],619:[function(_dereq_,module,exports){ +},{"../main":638,"object-assign":484}],636:[function(_dereq_,module,exports){ /* * World Calendars * https://github.com/alexcjohnson/world-calendars @@ -103296,7 +106073,7 @@ assign(ThaiCalendar.prototype, { main.calendars.thai = ThaiCalendar; -},{"../main":621,"object-assign":499}],620:[function(_dereq_,module,exports){ +},{"../main":638,"object-assign":484}],637:[function(_dereq_,module,exports){ /* * World Calendars * https://github.com/alexcjohnson/world-calendars @@ -103661,7 +106438,7 @@ var ummalqura_dat = [ 79990]; -},{"../main":621,"object-assign":499}],621:[function(_dereq_,module,exports){ +},{"../main":638,"object-assign":484}],638:[function(_dereq_,module,exports){ /* * World Calendars * https://github.com/alexcjohnson/world-calendars @@ -104566,7 +107343,7 @@ _exports.baseCalendar = BaseCalendar; _exports.calendars.gregorian = GregorianCalendar; -},{"object-assign":499}],622:[function(_dereq_,module,exports){ +},{"object-assign":484}],639:[function(_dereq_,module,exports){ /* * World Calendars * https://github.com/alexcjohnson/world-calendars @@ -105068,7 +107845,7 @@ assign(main.baseCalendar.prototype, { }); -},{"./main":621,"object-assign":499}],623:[function(_dereq_,module,exports){ +},{"./main":638,"object-assign":484}],640:[function(_dereq_,module,exports){ module.exports = _dereq_('cwise-compiler')({ args: ['array', { offset: [1], @@ -105120,7 +107897,7 @@ module.exports = _dereq_('cwise-compiler')({ funcName: 'zeroCrossings' }) -},{"cwise-compiler":151}],624:[function(_dereq_,module,exports){ +},{"cwise-compiler":153}],641:[function(_dereq_,module,exports){ "use strict" module.exports = findZeroCrossings @@ -105133,14 +107910,8 @@ function findZeroCrossings(array, level) { core(array.hi(array.shape[0]-1), cross, level) return cross } -},{"./lib/zc-core":623}],625:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"./lib/zc-core":640}],642:[function(_dereq_,module,exports){ + 'use strict'; @@ -105204,14 +107975,8 @@ module.exports = [ } ]; -},{}],626:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],643:[function(_dereq_,module,exports){ + 'use strict'; @@ -105251,192 +108016,143 @@ function arrowCoordinateDescription(axis, lower, upper) { module.exports = templatedArray('annotation', { visible: { valType: 'boolean', - dflt: true, editType: 'calc+arraydraw', - }, text: { valType: 'string', - editType: 'calc+arraydraw', - }, textangle: { valType: 'angle', dflt: 0, - editType: 'calc+arraydraw', - }, font: fontAttrs({ 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', - }, // arrow showarrow: { valType: 'boolean', dflt: true, - editType: 'calc+arraydraw', - }, arrowcolor: { valType: 'color', - editType: 'arraydraw', - }, arrowhead: { valType: 'integer', min: 0, max: ARROWPATHS.length, dflt: 1, - editType: 'arraydraw', - }, startarrowhead: { valType: 'integer', min: 0, max: ARROWPATHS.length, dflt: 1, - editType: 'arraydraw', - }, arrowside: { valType: 'flaglist', flags: ['end', 'start'], extras: ['none'], dflt: 'end', - editType: 'arraydraw', - }, arrowsize: { valType: 'number', min: 0.3, dflt: 1, - editType: 'calc+arraydraw', - }, startarrowsize: { valType: 'number', min: 0.3, dflt: 1, - editType: 'calc+arraydraw', - }, arrowwidth: { valType: 'number', min: 0.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', @@ -105445,9 +108161,7 @@ module.exports = templatedArray('annotation', { 'pixel', cartesianConstants.idRegex.x.toString() ], - editType: 'calc', - }, ayref: { valType: 'enumerated', @@ -105456,9 +108170,7 @@ module.exports = templatedArray('annotation', { 'pixel', cartesianConstants.idRegex.y.toString() ], - editType: 'calc', - }, // positioning xref: { @@ -105467,30 +108179,22 @@ module.exports = templatedArray('annotation', { 'paper', cartesianConstants.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', @@ -105498,102 +108202,71 @@ module.exports = templatedArray('annotation', { 'paper', cartesianConstants.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: [false, 'onoff', 'onout'], dflt: false, - 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: fontAttrs({ 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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/axis_placeable_objects":763,"../../plot_api/plot_template":834,"../../plots/cartesian/constants":851,"../../plots/font_attributes":873,"./arrow_paths":642}],644:[function(_dereq_,module,exports){ + 'use strict'; @@ -105677,14 +108350,8 @@ function calcAxisExpansion(ann, ax) { ann._extremes[axId] = extremes; } -},{"../../lib":778,"../../plots/cartesian/axes":828,"./draw":632}],628:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../plots/cartesian/axes":845,"./draw":649}],645:[function(_dereq_,module,exports){ + 'use strict'; @@ -105810,19 +108477,13 @@ function getToggleSets(gd, hoverData) { return {on: onSet, off: offSet, explicitOff: explicitOffSet}; } -// to handle log axes until v2 +// to handle log axes until v3 function clickData2r(d, ax) { return ax.type === 'log' ? ax.l2r(d) : ax.d2r(d); } -},{"../../lib":778,"../../plot_api/plot_template":817,"../../registry":911}],629:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../plot_api/plot_template":834,"../../registry":922}],646:[function(_dereq_,module,exports){ + 'use strict'; @@ -105894,14 +108555,8 @@ module.exports = function handleAnnotationCommonDefaults(annIn, annOut, fullLayo coerce('captureevents', !!hoverText); }; -},{"../../lib":778,"../color":643}],630:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../color":660}],647:[function(_dereq_,module,exports){ + 'use strict'; @@ -105913,7 +108568,7 @@ var toLogRange = _dereq_('../../lib/to_log_range'); * convertCoords: when converting an axis between log and linear * you need to alter any annotations on that axis to keep them * pointing at the same data point. - * In v2.0 this will become obsolete + * In v3.0 this will become obsolete * * gd: the plot div * ax: the axis being changed @@ -105957,14 +108612,8 @@ module.exports = function convertCoords(gd, ax, newType, doExtra) { } }; -},{"../../lib/to_log_range":805,"fast-isnumeric":241}],631:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib/to_log_range":822,"fast-isnumeric":241}],648:[function(_dereq_,module,exports){ + 'use strict'; @@ -106065,18 +108714,12 @@ function handleAnnotationDefaults(annIn, annOut, fullLayout) { } } -},{"../../lib":778,"../../plots/array_container_defaults":823,"../../plots/cartesian/axes":828,"./attributes":626,"./common_defaults":629}],632:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../plots/array_container_defaults":840,"../../plots/cartesian/axes":845,"./attributes":643,"./common_defaults":646}],649:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Registry = _dereq_('../../registry'); var Plots = _dereq_('../../plots/plots'); @@ -106826,19 +109469,13 @@ function drawRaw(gd, options, index, subplotId, xa, ya) { } else annText.call(textLayout); } -},{"../../lib":778,"../../lib/setcursor":799,"../../lib/svg_text_utils":803,"../../plot_api/plot_template":817,"../../plots/cartesian/axes":828,"../../plots/plots":891,"../../registry":911,"../color":643,"../dragelement":662,"../drawing":665,"../fx":683,"./draw_arrow_head":633,"d3":169}],633:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../lib/setcursor":816,"../../lib/svg_text_utils":820,"../../plot_api/plot_template":834,"../../plots/cartesian/axes":845,"../../plots/plots":908,"../../registry":922,"../color":660,"../dragelement":679,"../drawing":682,"../fx":700,"./draw_arrow_head":650,"@plotly/d3":58}],650:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Color = _dereq_('../color'); @@ -106982,14 +109619,8 @@ module.exports = function drawArrowHead(el3, ends, options) { if(doEnd) drawhead(headStyle, end, endRot, scale); }; -},{"../../lib":778,"../color":643,"./arrow_paths":625,"d3":169}],634:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../color":660,"./arrow_paths":642,"@plotly/d3":58}],651:[function(_dereq_,module,exports){ + 'use strict'; @@ -107016,14 +109647,8 @@ module.exports = { convertCoords: _dereq_('./convert_coords') }; -},{"../../plots/cartesian/include_components":840,"./attributes":626,"./calc_autorange":627,"./click":628,"./convert_coords":630,"./defaults":631,"./draw":632}],635:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/cartesian/include_components":857,"./attributes":643,"./calc_autorange":644,"./click":645,"./convert_coords":647,"./defaults":648,"./draw":649}],652:[function(_dereq_,module,exports){ + 'use strict'; @@ -107036,28 +109661,18 @@ module.exports = overrideAll(templatedArray('annotation', { visible: annAttrs.visible, x: { valType: 'any', - - }, y: { valType: 'any', - - }, z: { valType: 'any', - - }, ax: { valType: 'number', - - }, ay: { valType: 'number', - - }, xanchor: annAttrs.xanchor, @@ -107104,14 +109719,8 @@ module.exports = overrideAll(templatedArray('annotation', { // zref: 'z' }), 'calc', 'from-root'); -},{"../../plot_api/edit_types":810,"../../plot_api/plot_template":817,"../annotations/attributes":626}],636:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plot_api/edit_types":827,"../../plot_api/plot_template":834,"../annotations/attributes":643}],653:[function(_dereq_,module,exports){ + 'use strict'; @@ -107169,14 +109778,8 @@ function mockAnnAxes(ann, scene) { }; } -},{"../../lib":778,"../../plots/cartesian/axes":828}],637:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../plots/cartesian/axes":845}],654:[function(_dereq_,module,exports){ + 'use strict'; @@ -107245,14 +109848,8 @@ function handleAnnotationDefaults(annIn, annOut, sceneLayout, opts) { } } -},{"../../lib":778,"../../plots/array_container_defaults":823,"../../plots/cartesian/axes":828,"../annotations/common_defaults":629,"./attributes":635}],638:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../plots/array_container_defaults":840,"../../plots/cartesian/axes":845,"../annotations/common_defaults":646,"./attributes":652}],655:[function(_dereq_,module,exports){ + 'use strict'; @@ -107297,14 +109894,8 @@ module.exports = function draw(scene) { } }; -},{"../../plots/gl3d/project":879,"../annotations/draw":632}],639:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/gl3d/project":896,"../annotations/draw":649}],656:[function(_dereq_,module,exports){ + 'use strict'; @@ -107345,14 +109936,8 @@ function includeGL3D(layoutIn, layoutOut) { } } -},{"../../lib":778,"../../registry":911,"./attributes":635,"./convert":636,"./defaults":637,"./draw":638}],640:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../registry":922,"./attributes":652,"./convert":653,"./defaults":654,"./draw":655}],657:[function(_dereq_,module,exports){ + 'use strict'; @@ -107378,14 +109963,8 @@ _dereq_('world-calendars/dist/calendars/taiwan'); _dereq_('world-calendars/dist/calendars/thai'); _dereq_('world-calendars/dist/calendars/ummalqura'); -},{"world-calendars/dist/calendars/chinese":607,"world-calendars/dist/calendars/coptic":608,"world-calendars/dist/calendars/discworld":609,"world-calendars/dist/calendars/ethiopian":610,"world-calendars/dist/calendars/hebrew":611,"world-calendars/dist/calendars/islamic":612,"world-calendars/dist/calendars/julian":613,"world-calendars/dist/calendars/mayan":614,"world-calendars/dist/calendars/nanakshahi":615,"world-calendars/dist/calendars/nepali":616,"world-calendars/dist/calendars/persian":617,"world-calendars/dist/calendars/taiwan":618,"world-calendars/dist/calendars/thai":619,"world-calendars/dist/calendars/ummalqura":620,"world-calendars/dist/main":621,"world-calendars/dist/plus":622}],641:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"world-calendars/dist/calendars/chinese":624,"world-calendars/dist/calendars/coptic":625,"world-calendars/dist/calendars/discworld":626,"world-calendars/dist/calendars/ethiopian":627,"world-calendars/dist/calendars/hebrew":628,"world-calendars/dist/calendars/islamic":629,"world-calendars/dist/calendars/julian":630,"world-calendars/dist/calendars/mayan":631,"world-calendars/dist/calendars/nanakshahi":632,"world-calendars/dist/calendars/nepali":633,"world-calendars/dist/calendars/persian":634,"world-calendars/dist/calendars/taiwan":635,"world-calendars/dist/calendars/thai":636,"world-calendars/dist/calendars/ummalqura":637,"world-calendars/dist/main":638,"world-calendars/dist/plus":639}],658:[function(_dereq_,module,exports){ + 'use strict'; @@ -107400,7 +109979,6 @@ var ONEDAY = constants.ONEDAY; var attributes = { valType: 'enumerated', values: Object.keys(calendars.calendars), - editType: 'calc', dflt: 'gregorian' }; @@ -107651,14 +110229,8 @@ module.exports = { worldCalFmt: worldCalFmt }; -},{"../../constants/numerical":753,"../../lib":778,"./calendars":640}],642:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/numerical":770,"../../lib":795,"./calendars":657}],659:[function(_dereq_,module,exports){ + 'use strict'; @@ -107691,14 +110263,8 @@ exports.borderLine = '#BEC8D9'; // gives back exactly lightLine if the other colors are defaults. exports.lightFraction = 100 * (0xe - 0x4) / (0xf - 0x4); -},{}],643:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],660:[function(_dereq_,module,exports){ + 'use strict'; @@ -107865,14 +110431,8 @@ function cleanOne(val) { return 'rgb(' + rgbStr + ')'; } -},{"./attributes":642,"fast-isnumeric":241,"tinycolor2":576}],644:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"./attributes":659,"fast-isnumeric":241,"tinycolor2":592}],661:[function(_dereq_,module,exports){ + 'use strict'; @@ -107886,82 +110446,61 @@ module.exports = overrideAll({ // TODO: only right is supported currently // orient: { // valType: 'enumerated', -// // values: ['left', 'right', 'top', 'bottom'], // dflt: 'right', -// +// // }, thicknessmode: { valType: 'enumerated', values: ['fraction', 'pixels'], - dflt: 'pixels', - }, thickness: { valType: 'number', - min: 0, dflt: 30, - }, lenmode: { valType: 'enumerated', values: ['fraction', 'pixels'], - dflt: 'fraction', - }, len: { valType: 'number', min: 0, dflt: 1, - - }, x: { valType: 'number', dflt: 1.02, min: -2, max: 3, - - }, xanchor: { valType: 'enumerated', values: ['left', 'center', 'right'], dflt: 'left', - - }, xpad: { valType: 'number', - min: 0, dflt: 10, - }, y: { valType: 'number', - dflt: 0.5, min: -2, max: 3, - }, yanchor: { valType: 'enumerated', values: ['top', 'middle', 'bottom'], - dflt: 'middle', - }, ypad: { valType: 'number', - min: 0, dflt: 10, - }, // a possible line around the bar itself outlinecolor: axesAttrs.linecolor, @@ -107971,16 +110510,12 @@ module.exports = overrideAll({ bordercolor: axesAttrs.linecolor, borderwidth: { valType: 'number', - min: 0, dflt: 0, - }, bgcolor: { valType: 'color', - dflt: 'rgba(0,0,0,0)', - }, // tick and title properties named and function exactly as in axes tickmode: axesAttrs.tickmode, @@ -107998,15 +110533,12 @@ module.exports = overrideAll({ 'outside bottom', 'inside bottom' ], dflt: 'outside', - - }, ticklen: axesAttrs.ticklen, tickwidth: axesAttrs.tickwidth, tickcolor: axesAttrs.tickcolor, showticklabels: axesAttrs.showticklabels, tickfont: fontAttrs({ - }), tickangle: axesAttrs.tickangle, tickformat: axesAttrs.tickformat, @@ -108022,48 +110554,32 @@ module.exports = overrideAll({ title: { text: { valType: 'string', - - }, font: fontAttrs({ - }), side: { valType: 'enumerated', values: ['right', 'top', 'bottom'], - dflt: 'top', - } }, _deprecated: { title: { valType: 'string', - - }, titlefont: fontAttrs({ - }), titleside: { valType: 'enumerated', values: ['right', 'top', 'bottom'], - dflt: 'top', - } } }, 'colorbars', 'from-root'); -},{"../../lib/extend":768,"../../plot_api/edit_types":810,"../../plots/cartesian/layout_attributes":842,"../../plots/font_attributes":856}],645:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib/extend":785,"../../plot_api/edit_types":827,"../../plots/cartesian/layout_attributes":859,"../../plots/font_attributes":873}],662:[function(_dereq_,module,exports){ + 'use strict'; @@ -108084,14 +110600,8 @@ module.exports = { } }; -},{}],646:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],663:[function(_dereq_,module,exports){ + 'use strict'; @@ -108154,18 +110664,12 @@ module.exports = function colorbarDefaults(containerIn, containerOut, layout) { coerce('title.side'); }; -},{"../../lib":778,"../../plot_api/plot_template":817,"../../plots/cartesian/tick_label_defaults":849,"../../plots/cartesian/tick_mark_defaults":850,"../../plots/cartesian/tick_value_defaults":851,"./attributes":644}],647:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../plot_api/plot_template":834,"../../plots/cartesian/tick_label_defaults":866,"../../plots/cartesian/tick_mark_defaults":867,"../../plots/cartesian/tick_value_defaults":868,"./attributes":661}],664:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var tinycolor = _dereq_('tinycolor2'); var Plots = _dereq_('../../plots/plots'); @@ -108888,14 +111392,8 @@ module.exports = { draw: draw }; -},{"../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/alignment":762,"../../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":908,"../../registry":922,"../color":660,"../colorscale/helpers":671,"../dragelement":679,"../drawing":682,"../titles":755,"./constants":662,"@plotly/d3":58,"tinycolor2":592}],665:[function(_dereq_,module,exports){ + 'use strict'; @@ -108907,14 +111405,8 @@ module.exports = function hasColorbar(container) { return Lib.isPlainObject(container.colorbar); }; -},{"../../lib":778}],649:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795}],666:[function(_dereq_,module,exports){ + 'use strict'; @@ -108929,14 +111421,8 @@ module.exports = { hasColorbar: _dereq_('./has_colorbar') }; -},{"./attributes":644,"./defaults":646,"./draw":647,"./has_colorbar":648}],650:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"./attributes":661,"./defaults":663,"./draw":664,"./has_colorbar":665}],667:[function(_dereq_,module,exports){ + 'use strict'; @@ -109038,9 +111524,7 @@ module.exports = function colorScaleAttrs(context, opts) { attrs.color = { valType: 'color', arrayOk: true, - editType: editTypeOverride || 'style', - }; if(opts.anim) { @@ -109050,74 +111534,58 @@ module.exports = function colorScaleAttrs(context, opts) { attrs[auto] = { valType: 'boolean', - dflt: true, editType: 'calc', impliedEdits: autoImpliedEdits, - }; attrs[min] = { valType: 'number', - dflt: null, editType: editTypeOverride || 'plot', impliedEdits: minmaxImpliedEdits, - }; attrs[max] = { valType: 'number', - dflt: null, editType: editTypeOverride || 'plot', impliedEdits: minmaxImpliedEdits, - }; attrs[mid] = { valType: 'number', - dflt: null, editType: 'calc', impliedEdits: autoImpliedEdits, - }; attrs.colorscale = { valType: 'colorscale', - editType: 'calc', dflt: colorscaleDflt, impliedEdits: {autocolorscale: false}, - }; attrs.autocolorscale = { valType: 'boolean', - // gets overrode in 'heatmap' & 'surface' for backwards comp. dflt: opts.autoColorDflt === false ? false : true, editType: 'calc', impliedEdits: {colorscale: undefined}, - }; attrs.reversescale = { valType: 'boolean', - dflt: false, editType: 'plot', - }; if(!noScale) { attrs.showscale = { valType: 'boolean', - dflt: showScaleDflt, editType: 'calc', - }; attrs.colorbar = colorbarAttrs; @@ -109126,25 +111594,17 @@ module.exports = function colorScaleAttrs(context, opts) { if(!opts.noColorAxis) { attrs.coloraxis = { valType: 'subplotid', - regex: counterRegex('coloraxis'), dflt: null, editType: 'calc', - }; } return attrs; }; -},{"../../lib/regex":795,"../colorbar/attributes":644,"./scales.js":658}],651:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib/regex":812,"../colorbar/attributes":661,"./scales.js":675}],668:[function(_dereq_,module,exports){ + 'use strict'; @@ -109216,14 +111676,8 @@ module.exports = function calc(gd, trace, opts) { } }; -},{"../../lib":778,"./helpers":654,"fast-isnumeric":241}],652:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"./helpers":671,"fast-isnumeric":241}],669:[function(_dereq_,module,exports){ + 'use strict'; @@ -109293,14 +111747,8 @@ module.exports = function crossTraceDefaults(fullData, fullLayout) { } }; -},{"../../lib":778,"./helpers":654}],653:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"./helpers":671}],670:[function(_dereq_,module,exports){ + 'use strict'; @@ -109418,18 +111866,12 @@ module.exports = function colorScaleDefaults(parentContIn, parentContOut, layout } }; -},{"../../lib":778,"../../registry":911,"../colorbar/defaults":646,"../colorbar/has_colorbar":648,"./scales":658,"fast-isnumeric":241}],654:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../registry":922,"../colorbar/defaults":663,"../colorbar/has_colorbar":665,"./scales":675,"fast-isnumeric":241}],671:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var tinycolor = _dereq_('tinycolor2'); var isNumeric = _dereq_('fast-isnumeric'); @@ -109471,7 +111913,7 @@ var letterAttrs = ['min', 'max', 'mid', 'auto']; /** * Extract 'c' / 'z', trace / color axis colorscale options * - * Note that it would be nice to replace all z* with c* equivalents in v2 + * Note that it would be nice to replace all z* with c* equivalents in v3 * * @param {object} cont : attribute container * @return {object}: @@ -109658,14 +112100,8 @@ module.exports = { makeColorScaleFuncFromTrace: makeColorScaleFuncFromTrace }; -},{"../../lib":778,"../color":643,"./scales":658,"d3":169,"fast-isnumeric":241,"tinycolor2":576}],655:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../color":660,"./scales":675,"@plotly/d3":58,"fast-isnumeric":241,"tinycolor2":592}],672:[function(_dereq_,module,exports){ + 'use strict'; @@ -109700,14 +112136,8 @@ module.exports = { makeColorScaleFuncFromTrace: helpers.makeColorScaleFuncFromTrace }; -},{"./attributes":650,"./calc":651,"./cross_trace_defaults":652,"./defaults":653,"./helpers":654,"./layout_attributes":656,"./layout_defaults":657,"./scales":658}],656:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"./attributes":667,"./calc":668,"./cross_trace_defaults":669,"./defaults":670,"./helpers":671,"./layout_attributes":673,"./layout_defaults":674,"./scales":675}],673:[function(_dereq_,module,exports){ + 'use strict'; @@ -109727,23 +112157,17 @@ module.exports = { sequential: { valType: 'colorscale', dflt: scales.Reds, - editType: 'calc', - }, sequentialminus: { valType: 'colorscale', dflt: scales.Blues, - editType: 'calc', - }, diverging: { valType: 'colorscale', dflt: scales.RdBu, - editType: 'calc', - } }, @@ -109753,7 +112177,6 @@ module.exports = { // support yaxis, yaxis2, yaxis3, ... counters _isSubplotObj: true, editType: 'calc', - }, colorScaleAttrs('', { colorAttr: 'corresponding trace color array(s)', noColorAxis: true, @@ -109761,14 +112184,8 @@ module.exports = { })) }; -},{"../../lib/extend":768,"./attributes":650,"./scales":658}],657:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib/extend":785,"./attributes":667,"./scales":675}],674:[function(_dereq_,module,exports){ + 'use strict'; @@ -109812,14 +112229,8 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) { } }; -},{"../../lib":778,"../../plot_api/plot_template":817,"./defaults":653,"./layout_attributes":656}],658:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../plot_api/plot_template":834,"./defaults":670,"./layout_attributes":673}],675:[function(_dereq_,module,exports){ + 'use strict'; @@ -110016,14 +112427,8 @@ module.exports = { isValid: isValidScale }; -},{"tinycolor2":576}],659:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"tinycolor2":592}],676:[function(_dereq_,module,exports){ + 'use strict'; @@ -110049,14 +112454,8 @@ module.exports = function align(v, dv, v0, v1, anchor) { return vc; }; -},{}],660:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],677:[function(_dereq_,module,exports){ + 'use strict'; @@ -110087,14 +112486,8 @@ module.exports = function getCursor(x, y, xanchor, yanchor) { return cursorset[y][x]; }; -},{"../../lib":778}],661:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795}],678:[function(_dereq_,module,exports){ + 'use strict'; @@ -110146,14 +112539,8 @@ exports.selectingOrDrawing = function(dragmode) { ); }; -},{}],662:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],679:[function(_dereq_,module,exports){ + 'use strict'; @@ -110329,7 +112716,7 @@ dragElement.init = function init(options) { if(dx || dy) { gd._dragged = true; - dragElement.unhover(gd); + dragElement.unhover(gd, e); } if(gd._dragged && options.moveFn && !rightClick) { @@ -110438,14 +112825,8 @@ function pointerOffset(e) { ); } -},{"../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../plots/cartesian/constants":851,"./align":676,"./cursor":677,"./unhover":680,"has-hover":439,"has-passive-events":440,"mouse-event-offset":468}],680:[function(_dereq_,module,exports){ + 'use strict'; @@ -110475,7 +112856,7 @@ unhover.raw = function raw(gd, evt) { var oldhoverdata = gd._hoverdata; if(!evt) evt = {}; - if(evt.target && + if(evt.target && !gd._dragged && Events.triggerHandler(gd, 'plotly_beforehover', evt) === false) { return; } @@ -110493,14 +112874,8 @@ unhover.raw = function raw(gd, evt) { } }; -},{"../../lib/dom":766,"../../lib/events":767,"../../lib/throttle":804,"../fx/constants":677}],664:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib/dom":783,"../../lib/events":784,"../../lib/throttle":821,"../fx/constants":694}],681:[function(_dereq_,module,exports){ + 'use strict'; @@ -110513,24 +112888,16 @@ exports.dash = { // dash lengths in px, and it will be honored values: ['solid', 'dot', 'dash', 'longdash', 'dashdot', 'longdashdot'], dflt: 'solid', - editType: 'style', - }; -},{}],665:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],682:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var isNumeric = _dereq_('fast-isnumeric'); var tinycolor = _dereq_('tinycolor2'); @@ -111715,19 +114082,13 @@ drawing.setTextPointsScale = function(selection, xScale, yScale) { }); }; -},{"../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/fx/helpers":696,"../../constants/alignment":762,"../../constants/interactions":769,"../../constants/xmlns_namespaces":771,"../../lib":795,"../../lib/svg_text_utils":820,"../../registry":922,"../../traces/scatter/make_bubble_size_func":1215,"../../traces/scatter/subtypes":1223,"../color":660,"../colorscale":672,"./symbol_defs":683,"@plotly/d3":58,"fast-isnumeric":241,"tinycolor2":592}],683:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); /** Marker symbol definitions * users can specify markers either by number or name @@ -112279,14 +114640,8 @@ module.exports = { } }; -},{"d3":169}],667:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"@plotly/d3":58}],684:[function(_dereq_,module,exports){ + 'use strict'; @@ -112294,114 +114649,84 @@ module.exports = { module.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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],685:[function(_dereq_,module,exports){ + 'use strict'; @@ -112480,14 +114805,8 @@ function calcOneAxis(calcTrace, trace, axis, coord) { baseExtremes.max = baseExtremes.max.concat(extremes.max); } -},{"../../lib":778,"../../plots/cartesian/axes":828,"../../registry":911,"./compute_error":669,"fast-isnumeric":241}],669:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../plots/cartesian/axes":845,"../../registry":922,"./compute_error":686,"fast-isnumeric":241}],686:[function(_dereq_,module,exports){ + 'use strict'; @@ -112581,14 +114900,8 @@ function makeComputeErrorValue(type, value) { } } -},{}],670:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],687:[function(_dereq_,module,exports){ + 'use strict'; @@ -112656,14 +114969,8 @@ module.exports = function(traceIn, traceOut, defaultColor, opts) { } }; -},{"../../lib":778,"../../plot_api/plot_template":817,"../../registry":911,"./attributes":667,"fast-isnumeric":241}],671:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../plot_api/plot_template":834,"../../registry":922,"./attributes":684,"fast-isnumeric":241}],688:[function(_dereq_,module,exports){ + 'use strict'; @@ -112725,19 +115032,13 @@ function hoverInfo(calcPoint, trace, hoverPoint) { } } -},{"../../lib":778,"../../plot_api/edit_types":810,"./attributes":667,"./calc":668,"./compute_error":669,"./defaults":670,"./plot":672,"./style":673}],672:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../plot_api/edit_types":827,"./attributes":684,"./calc":685,"./compute_error":686,"./defaults":687,"./plot":689,"./style":690}],689:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var isNumeric = _dereq_('fast-isnumeric'); var Drawing = _dereq_('../drawing'); @@ -112897,19 +115198,13 @@ function errorCoords(d, xa, ya) { return out; } -},{"../../traces/scatter/subtypes":1212,"../drawing":665,"d3":169,"fast-isnumeric":241}],673:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../traces/scatter/subtypes":1223,"../drawing":682,"@plotly/d3":58,"fast-isnumeric":241}],690:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Color = _dereq_('../color'); @@ -112934,14 +115229,8 @@ module.exports = function style(traces) { }); }; -},{"../color":643,"d3":169}],674:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../color":660,"@plotly/d3":58}],691:[function(_dereq_,module,exports){ + 'use strict'; @@ -112953,16 +115242,13 @@ module.exports = { hoverlabel: { bgcolor: extendFlat({}, hoverLabelAttrs.bgcolor, { arrayOk: true, - }), bordercolor: extendFlat({}, hoverLabelAttrs.bordercolor, { arrayOk: true, - }), font: fontAttrs({ arrayOk: true, editType: 'none', - }), align: extendFlat({}, hoverLabelAttrs.align, {arrayOk: true}), namelength: extendFlat({}, hoverLabelAttrs.namelength, {arrayOk: true}), @@ -112970,14 +115256,8 @@ module.exports = { } }; -},{"../../lib/extend":768,"../../plots/font_attributes":856,"./layout_attributes":684}],675:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib/extend":785,"../../plots/font_attributes":873,"./layout_attributes":701}],692:[function(_dereq_,module,exports){ + 'use strict'; @@ -113029,14 +115309,8 @@ function paste(traceAttr, cd, cdAttr, fn) { } } -},{"../../lib":778,"../../registry":911}],676:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../registry":922}],693:[function(_dereq_,module,exports){ + 'use strict'; @@ -113066,14 +115340,8 @@ module.exports = function click(gd, evt, subplot) { } }; -},{"../../registry":911,"./hover":680}],677:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../registry":922,"./hover":697}],694:[function(_dereq_,module,exports){ + 'use strict'; @@ -113098,14 +115366,8 @@ module.exports = { HOVERID: '-hover' }; -},{}],678:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],695:[function(_dereq_,module,exports){ + 'use strict'; @@ -113124,14 +115386,8 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout handleHoverLabelDefaults(traceIn, traceOut, coerce, opts); }; -},{"../../lib":778,"./attributes":674,"./hoverlabel_defaults":681}],679:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"./attributes":691,"./hoverlabel_defaults":698}],696:[function(_dereq_,module,exports){ + 'use strict'; @@ -113386,18 +115642,12 @@ exports.isXYhover = function(hovermode) { return !!xyHoverMode[hovermode]; }; -},{"../../lib":778}],680:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795}],697:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var isNumeric = _dereq_('fast-isnumeric'); var tinycolor = _dereq_('tinycolor2'); @@ -113724,7 +115974,13 @@ function _hover(gd, evt, subplot, noHoverEvent) { return; } - var dbb = evt.target.getBoundingClientRect(); + // Discover event target, traversing open shadow roots. + var target = evt.composedPath && evt.composedPath()[0]; + if(!target) { + // Fallback for browsers not supporting composedPath + target = evt.target; + } + var dbb = target.getBoundingClientRect(); xpx = evt.clientX - dbb.left; ypx = evt.clientY - dbb.top; @@ -115258,14 +117514,8 @@ function plainText(s, len) { }); } -},{"../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../lib/events":784,"../../lib/override_cursor":806,"../../lib/svg_text_utils":820,"../../plots/cartesian/axes":845,"../../registry":922,"../color":660,"../dragelement":679,"../drawing":682,"../legend/defaults":712,"../legend/draw":713,"./constants":694,"./helpers":696,"@plotly/d3":58,"fast-isnumeric":241,"tinycolor2":592}],698:[function(_dereq_,module,exports){ + 'use strict'; @@ -115304,14 +117554,8 @@ module.exports = function handleHoverLabelDefaults(contIn, contOut, coerce, opts coerce('hoverlabel.align', opts.align); }; -},{"../../lib":778,"../color":643,"./helpers":679}],682:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../color":660,"./helpers":696}],699:[function(_dereq_,module,exports){ + 'use strict'; @@ -115360,18 +117604,12 @@ function isHoriz(fullData, fullLayout) { return true; } -},{"../../lib":778,"./layout_attributes":684}],683:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"./layout_attributes":701}],700:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Lib = _dereq_('../../lib'); var dragElement = _dereq_('../dragelement'); var helpers = _dereq_('./helpers'); @@ -115439,14 +117677,8 @@ function castHoverinfo(trace, fullLayout, ptNumber) { return Lib.castOption(trace, ptNumber, 'hoverinfo', _coerce); } -},{"../../lib":778,"../dragelement":662,"./attributes":674,"./calc":675,"./click":676,"./constants":677,"./defaults":678,"./helpers":679,"./hover":680,"./layout_attributes":684,"./layout_defaults":685,"./layout_global_defaults":686,"d3":169}],684:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../dragelement":679,"./attributes":691,"./calc":692,"./click":693,"./constants":694,"./defaults":695,"./helpers":696,"./hover":697,"./layout_attributes":701,"./layout_defaults":702,"./layout_global_defaults":703,"@plotly/d3":58}],701:[function(_dereq_,module,exports){ + 'use strict'; @@ -115454,7 +117686,6 @@ var constants = _dereq_('./constants'); var fontAttrs = _dereq_('../../plots/font_attributes')({ editType: 'none', - }); fontAttrs.family.dflt = constants.HOVERFONT; fontAttrs.size.dflt = constants.HOVERFONTSIZE; @@ -115462,16 +117693,13 @@ fontAttrs.size.dflt = constants.HOVERFONTSIZE; module.exports = { clickmode: { valType: 'flaglist', - flags: ['event', 'select'], dflt: 'event', editType: 'plot', extras: ['none'], - }, dragmode: { valType: 'enumerated', - values: [ 'zoom', 'pan', @@ -115488,81 +117716,58 @@ module.exports = { ], dflt: 'zoom', editType: 'modebar', - }, hovermode: { valType: 'enumerated', - values: ['x', 'y', 'closest', false, 'x unified', 'y unified'], editType: 'modebar', - }, hoverdistance: { valType: 'integer', min: -1, dflt: 20, - editType: 'none', - }, spikedistance: { valType: 'integer', min: -1, dflt: 20, - editType: 'none', - }, hoverlabel: { bgcolor: { valType: 'color', - editType: 'none', - }, bordercolor: { valType: 'color', - editType: 'none', - }, font: fontAttrs, 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":856,"./constants":677}],685:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/font_attributes":873,"./constants":694}],702:[function(_dereq_,module,exports){ + 'use strict'; @@ -115603,14 +117808,8 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) { handleHoverLabelDefaults(layoutIn, layoutOut, coerce); }; -},{"../../lib":778,"./helpers":679,"./hoverlabel_defaults":681,"./hovermode_defaults":682,"./layout_attributes":684}],686:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"./helpers":696,"./hoverlabel_defaults":698,"./hovermode_defaults":699,"./layout_attributes":701}],703:[function(_dereq_,module,exports){ + 'use strict'; @@ -115626,14 +117825,8 @@ module.exports = function supplyLayoutGlobalDefaults(layoutIn, layoutOut) { handleHoverLabelDefaults(layoutIn, layoutOut, coerce); }; -},{"../../lib":778,"./hoverlabel_defaults":681,"./layout_attributes":684}],687:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"./hoverlabel_defaults":698,"./layout_attributes":701}],704:[function(_dereq_,module,exports){ + 'use strict'; @@ -115647,92 +117840,69 @@ var gridAttrs = { 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: true, dimensions: 2, items: {valType: 'enumerated', values: [counterRegex('xy').toString(), ''], editType: 'plot'}, - editType: 'plot', - }, xaxes: { valType: 'info_array', freeLength: true, items: {valType: 'enumerated', values: [cartesianIdRegex.x.toString(), ''], editType: 'plot'}, - editType: 'plot', - }, yaxes: { valType: 'info_array', freeLength: true, items: {valType: 'enumerated', values: [cartesianIdRegex.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: domainAttrs({name: 'grid', editType: 'plot', noGridCell: true}, { - }), 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' }; @@ -116000,14 +118170,8 @@ module.exports = { contentDefaults: contentDefaults }; -},{"../../lib":778,"../../lib/regex":795,"../../plot_api/plot_template":817,"../../plots/cartesian/constants":834,"../../plots/domain":855}],688:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../lib/regex":812,"../../plot_api/plot_template":834,"../../plots/cartesian/constants":851,"../../plots/domain":872}],705:[function(_dereq_,module,exports){ + 'use strict'; @@ -116019,95 +118183,73 @@ var axisPlaceableObjs = _dereq_('../../constants/axis_placeable_objects'); module.exports = templatedArray('image', { visible: { valType: 'boolean', - dflt: true, editType: 'arraydraw', - }, source: { valType: 'string', - editType: 'arraydraw', - }, layer: { valType: 'enumerated', values: ['below', 'above'], dflt: 'above', - editType: 'arraydraw', - }, sizex: { valType: 'number', - dflt: 0, editType: 'arraydraw', - }, sizey: { valType: 'number', - dflt: 0, editType: 'arraydraw', - }, sizing: { valType: 'enumerated', values: ['fill', 'contain', 'stretch'], dflt: 'contain', - editType: 'arraydraw', - }, opacity: { valType: 'number', - min: 0, max: 1, dflt: 1, editType: 'arraydraw', - }, x: { valType: 'any', - dflt: 0, editType: 'arraydraw', - }, y: { valType: 'any', - dflt: 0, editType: 'arraydraw', - }, xanchor: { valType: 'enumerated', values: ['left', 'center', 'right'], dflt: 'left', - editType: 'arraydraw', - }, yanchor: { valType: 'enumerated', values: ['top', 'middle', 'bottom'], dflt: 'top', - editType: 'arraydraw', - }, xref: { @@ -116117,9 +118259,7 @@ module.exports = templatedArray('image', { cartesianConstants.idRegex.x.toString() ], dflt: 'paper', - editType: 'arraydraw', - }, yref: { @@ -116129,21 +118269,13 @@ module.exports = templatedArray('image', { cartesianConstants.idRegex.y.toString() ], dflt: 'paper', - editType: 'arraydraw', - }, editType: 'arraydraw' }); -},{"../../constants/axis_placeable_objects":746,"../../plot_api/plot_template":817,"../../plots/cartesian/constants":834}],689:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/axis_placeable_objects":763,"../../plot_api/plot_template":834,"../../plots/cartesian/constants":851}],706:[function(_dereq_,module,exports){ + 'use strict'; @@ -116155,7 +118287,7 @@ var toLogRange = _dereq_('../../lib/to_log_range'); * convertCoords: when converting an axis between log and linear * you need to alter any images on that axis to keep them * pointing at the same data point. - * In v2.0 this will become obsolete (or perhaps size will still need conversion?) + * In v3.0 this will become obsolete (or perhaps size will still need conversion?) * we convert size by declaring that the maximum extent *in data units* should be * the same, assuming the image is anchored by its center (could remove that restriction * if we think it's important) even though the actual left and right values will not be @@ -116217,14 +118349,8 @@ module.exports = function convertCoords(gd, ax, newType, doExtra) { } }; -},{"../../lib/to_log_range":805,"fast-isnumeric":241}],690:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib/to_log_range":822,"fast-isnumeric":241}],707:[function(_dereq_,module,exports){ + 'use strict'; @@ -116282,18 +118408,12 @@ function imageDefaults(imageIn, imageOut, fullLayout) { return imageOut; } -},{"../../lib":778,"../../plots/array_container_defaults":823,"../../plots/cartesian/axes":828,"./attributes":688}],691:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../plots/array_container_defaults":840,"../../plots/cartesian/axes":845,"./attributes":705}],708:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Drawing = _dereq_('../drawing'); var Axes = _dereq_('../../plots/cartesian/axes'); var axisIds = _dereq_('../../plots/cartesian/axis_ids'); @@ -116521,7 +118641,7 @@ module.exports = function draw(gd) { subplot = allSubplots[i]; var subplotObj = fullLayout._plots[subplot]; - // filter out overlaid plots (which havd their images on the main plot) + // filter out overlaid plots (which have their images on the main plot) // and gl2d plots (which don't support below images, at least not yet) if(!subplotObj.imagelayer) continue; @@ -116540,14 +118660,8 @@ module.exports = function draw(gd) { } }; -},{"../../constants/xmlns_namespaces":754,"../../plots/cartesian/axes":828,"../../plots/cartesian/axis_ids":831,"../drawing":665,"d3":169}],692:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/xmlns_namespaces":771,"../../plots/cartesian/axes":845,"../../plots/cartesian/axis_ids":848,"../drawing":682,"@plotly/d3":58}],709:[function(_dereq_,module,exports){ + 'use strict'; @@ -116564,14 +118678,8 @@ module.exports = { convertCoords: _dereq_('./convert_coords') }; -},{"../../plots/cartesian/include_components":840,"./attributes":688,"./convert_coords":689,"./defaults":690,"./draw":691}],693:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/cartesian/include_components":857,"./attributes":705,"./convert_coords":706,"./defaults":707,"./draw":708}],710:[function(_dereq_,module,exports){ + 'use strict'; @@ -116582,150 +118690,112 @@ var colorAttrs = _dereq_('../color/attributes'); module.exports = { bgcolor: { valType: 'color', - editType: 'legend', - }, bordercolor: { valType: 'color', dflt: colorAttrs.defaultLine, - editType: 'legend', - }, borderwidth: { valType: 'number', min: 0, dflt: 0, - editType: 'legend', - }, font: fontAttrs({ editType: 'legend', - }), orientation: { valType: 'enumerated', values: ['v', 'h'], dflt: 'v', - editType: 'legend', - }, traceorder: { valType: 'flaglist', flags: ['reversed', 'grouped'], extras: ['normal'], - editType: 'legend', - }, tracegroupgap: { valType: 'number', min: 0, dflt: 10, - editType: 'legend', - }, itemsizing: { valType: 'enumerated', values: ['trace', 'constant'], dflt: 'trace', - editType: 'legend', - }, itemwidth: { valType: 'number', min: 30, dflt: 30, - editType: 'legend', - }, itemclick: { valType: 'enumerated', values: ['toggle', 'toggleothers', false], dflt: 'toggle', - editType: 'legend', - }, itemdoubleclick: { valType: 'enumerated', values: ['toggle', 'toggleothers', false], dflt: 'toggleothers', - editType: 'legend', - }, x: { valType: 'number', min: -2, max: 3, - editType: 'legend', - }, xanchor: { valType: 'enumerated', values: ['auto', 'left', 'center', 'right'], dflt: 'left', - editType: 'legend', - }, y: { valType: 'number', min: -2, max: 3, - editType: 'legend', - }, yanchor: { valType: 'enumerated', values: ['auto', 'top', 'middle', 'bottom'], - editType: 'legend', - }, uirevision: { valType: 'any', - editType: 'none', - }, valign: { valType: 'enumerated', values: ['top', 'middle', 'bottom'], dflt: 'middle', - editType: 'legend', - }, title: { text: { valType: 'string', dflt: '', - editType: 'legend', - }, font: fontAttrs({ editType: 'legend', - }), side: { valType: 'enumerated', values: ['top', 'left', 'top left'], - editType: 'legend', - }, editType: 'legend', }, @@ -116733,14 +118803,8 @@ module.exports = { editType: 'legend' }; -},{"../../plots/font_attributes":856,"../color/attributes":642}],694:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/font_attributes":873,"../color/attributes":659}],711:[function(_dereq_,module,exports){ + 'use strict'; @@ -116757,14 +118821,8 @@ module.exports = { itemGap: 5 }; -},{}],695:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],712:[function(_dereq_,module,exports){ + 'use strict'; @@ -116859,7 +118917,7 @@ module.exports = function legendDefaults(layoutIn, layoutOut, fullData) { } else { // maybe use y=1.1 / yanchor=bottom as above // to avoid https://github.com/plotly/plotly.js/issues/1199 - // in v2 + // in v3 defaultY = -0.1; defaultYAnchor = 'top'; } @@ -116892,18 +118950,12 @@ module.exports = function legendDefaults(layoutIn, layoutOut, fullData) { } }; -},{"../../lib":778,"../../plot_api/plot_template":817,"../../plots/layout_attributes":882,"../../registry":911,"./attributes":693,"./helpers":699}],696:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../plot_api/plot_template":834,"../../plots/layout_attributes":899,"../../registry":922,"./attributes":710,"./helpers":716}],713:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Lib = _dereq_('../../lib'); var Plots = _dereq_('../../plots/plots'); @@ -117689,14 +119741,8 @@ function getYanchor(opts) { 'top'; } -},{"../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/alignment":762,"../../lib":795,"../../lib/events":784,"../../lib/svg_text_utils":820,"../../plots/plots":908,"../../registry":922,"../color":660,"../dragelement":679,"../drawing":682,"./constants":711,"./get_legend_data":714,"./handle_click":715,"./helpers":716,"./style":718,"@plotly/d3":58}],714:[function(_dereq_,module,exports){ + 'use strict'; @@ -117798,14 +119844,8 @@ module.exports = function getLegendData(calcdata, opts) { return legendData; }; -},{"../../registry":911,"./helpers":699}],698:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../registry":922,"./helpers":716}],715:[function(_dereq_,module,exports){ + 'use strict'; @@ -118037,14 +120077,8 @@ module.exports = function handleClick(g, gd, numClicks) { } }; -},{"../../lib":778,"../../registry":911}],699:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../registry":922}],716:[function(_dereq_,module,exports){ + 'use strict'; @@ -118061,14 +120095,8 @@ exports.isReversed = function isReversed(legendLayout) { return (legendLayout.traceorder || '').indexOf('reversed') !== -1; }; -},{}],700:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],717:[function(_dereq_,module,exports){ + 'use strict'; @@ -118085,18 +120113,12 @@ module.exports = { style: _dereq_('./style') }; -},{"./attributes":693,"./defaults":695,"./draw":696,"./style":701}],701:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"./attributes":710,"./defaults":712,"./draw":713,"./style":718}],718:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Registry = _dereq_('../../registry'); var Lib = _dereq_('../../lib'); @@ -118718,14 +120740,8 @@ function getGradientDirection(reversescale, isRadial) { return str + (reversescale ? '' : 'reversed'); } -},{"../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../registry":922,"../../traces/pie/helpers":1177,"../../traces/pie/style_one":1183,"../../traces/scatter/subtypes":1223,"../color":660,"../colorscale/helpers":671,"../drawing":682,"./constants":711,"@plotly/d3":58}],719:[function(_dereq_,module,exports){ + 'use strict'; @@ -119454,28 +121470,16 @@ function resetView(gd, subplotType) { Registry.call('_guiRelayout', gd, aObj); } -},{"../../fonts/ploticon":757,"../../lib":778,"../../plots/cartesian/axis_ids":831,"../../plots/plots":891,"../../registry":911,"../shapes/draw":724}],703:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../fonts/ploticon":774,"../../lib":795,"../../plots/cartesian/axis_ids":848,"../../plots/plots":908,"../../registry":922,"../shapes/draw":741}],720:[function(_dereq_,module,exports){ + 'use strict'; exports.manage = _dereq_('./manage'); -},{"./manage":704}],704:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"./manage":721}],721:[function(_dereq_,module,exports){ + 'use strict'; @@ -119764,19 +121768,13 @@ function fillCustomButton(customButtons) { return customButtons; } -},{"../../plots/cartesian/axis_ids":831,"../../registry":911,"../../traces/scatter/subtypes":1212,"../fx/helpers":679,"./buttons":702,"./modebar":705}],705:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/cartesian/axis_ids":848,"../../registry":922,"../../traces/scatter/subtypes":1223,"../fx/helpers":696,"./buttons":719,"./modebar":722}],722:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var isNumeric = _dereq_('fast-isnumeric'); var Lib = _dereq_('../../lib'); @@ -120110,14 +122108,8 @@ function createModeBar(gd, buttons) { module.exports = createModeBar; -},{"../../fonts/ploticon":757,"../../lib":778,"d3":169,"fast-isnumeric":241}],706:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../fonts/ploticon":774,"../../lib":795,"@plotly/d3":58,"fast-isnumeric":241}],723:[function(_dereq_,module,exports){ + 'use strict'; @@ -120128,51 +122120,38 @@ var templatedArray = _dereq_('../../plot_api/plot_template').templatedArray; var buttonAttrs = templatedArray('button', { visible: { valType: 'boolean', - dflt: true, editType: 'plot', - }, step: { valType: 'enumerated', - values: ['month', 'year', 'day', 'hour', 'minute', 'second', 'all'], dflt: 'month', editType: 'plot', - }, stepmode: { valType: 'enumerated', - values: ['backward', 'todate'], dflt: 'backward', editType: 'plot', - }, count: { valType: 'number', - min: 0, dflt: 1, editType: 'plot', - }, label: { valType: 'string', - editType: 'plot', - }, editType: 'plot', - }); module.exports = { visible: { valType: 'boolean', - editType: 'plot', - }, buttons: buttonAttrs, @@ -120181,79 +122160,56 @@ module.exports = { valType: 'number', min: -2, max: 3, - editType: 'plot', - }, xanchor: { valType: 'enumerated', values: ['auto', 'left', 'center', 'right'], dflt: 'left', - editType: 'plot', - }, y: { valType: 'number', min: -2, max: 3, - editType: 'plot', - }, yanchor: { valType: 'enumerated', values: ['auto', 'top', 'middle', 'bottom'], dflt: 'bottom', - editType: 'plot', - }, font: fontAttrs({ editType: 'plot', - }), bgcolor: { valType: 'color', dflt: colorAttrs.lightLine, - editType: 'plot', - }, activecolor: { valType: 'color', - editType: 'plot', - }, bordercolor: { valType: 'color', dflt: colorAttrs.defaultLine, - editType: 'plot', - }, borderwidth: { valType: 'number', min: 0, dflt: 0, - editType: 'plot', - }, editType: 'plot' }; -},{"../../plot_api/plot_template":817,"../../plots/font_attributes":856,"../color/attributes":642}],707:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plot_api/plot_template":834,"../../plots/font_attributes":873,"../color/attributes":659}],724:[function(_dereq_,module,exports){ + 'use strict'; @@ -120275,14 +122231,8 @@ module.exports = { darkAmount: 10 }; -},{}],708:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],725:[function(_dereq_,module,exports){ + 'use strict'; @@ -120367,18 +122317,12 @@ function getPosDflt(containerOut, layout, counterAxes) { return [containerOut.domain[0], posY + constants.yPad]; } -},{"../../lib":778,"../../plot_api/plot_template":817,"../../plots/array_container_defaults":823,"../color":643,"./attributes":706,"./constants":707}],709:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../plot_api/plot_template":834,"../../plots/array_container_defaults":840,"../color":660,"./attributes":723,"./constants":724}],726:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Registry = _dereq_('../../registry'); var Plots = _dereq_('../../plots/plots'); @@ -120622,19 +122566,13 @@ function reposition(gd, buttons, opts, axName, selector) { selector.attr('transform', strTranslate(lx, ly)); } -},{"../../constants/alignment":745,"../../lib":778,"../../lib/svg_text_utils":803,"../../plots/cartesian/axis_ids":831,"../../plots/plots":891,"../../registry":911,"../color":643,"../drawing":665,"./constants":707,"./get_update_object":710,"d3":169}],710:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/alignment":762,"../../lib":795,"../../lib/svg_text_utils":820,"../../plots/cartesian/axis_ids":848,"../../plots/plots":908,"../../registry":922,"../color":660,"../drawing":682,"./constants":724,"./get_update_object":727,"@plotly/d3":58}],727:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); module.exports = function getUpdateObject(axisLayout, buttonLayout) { var axName = axisLayout._name; @@ -120676,14 +122614,8 @@ function getXRange(axisLayout, buttonLayout) { return [range0, range1]; } -},{"d3":169}],711:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"@plotly/d3":58}],728:[function(_dereq_,module,exports){ + 'use strict'; @@ -120703,14 +122635,8 @@ module.exports = { draw: _dereq_('./draw') }; -},{"./attributes":706,"./defaults":708,"./draw":709}],712:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"./attributes":723,"./defaults":725,"./draw":726}],729:[function(_dereq_,module,exports){ + 'use strict'; @@ -120720,71 +122646,51 @@ module.exports = { bgcolor: { valType: 'color', dflt: colorAttributes.background, - editType: 'plot', - }, bordercolor: { valType: 'color', dflt: colorAttributes.defaultLine, - editType: 'plot', - }, borderwidth: { valType: 'integer', dflt: 0, min: 0, - editType: 'plot', - }, autorange: { valType: 'boolean', dflt: true, - editType: 'calc', impliedEdits: {'range[0]': undefined, 'range[1]': undefined}, - }, range: { valType: 'info_array', - items: [ {valType: 'any', editType: 'calc', impliedEdits: {'^autorange': false}}, {valType: 'any', editType: 'calc', impliedEdits: {'^autorange': false}} ], editType: 'calc', impliedEdits: {'autorange': false}, - }, thickness: { valType: 'number', dflt: 0.15, min: 0, max: 1, - editType: 'plot', - }, visible: { valType: 'boolean', dflt: true, - editType: 'calc', - }, editType: 'calc' }; -},{"../color/attributes":642}],713:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../color/attributes":659}],730:[function(_dereq_,module,exports){ + 'use strict'; @@ -120811,14 +122717,8 @@ module.exports = function calcAutorange(gd) { } }; -},{"../../plots/cartesian/autorange":827,"../../plots/cartesian/axis_ids":831,"./constants":714}],714:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/cartesian/autorange":844,"../../plots/cartesian/axis_ids":848,"./constants":731}],731:[function(_dereq_,module,exports){ + 'use strict'; @@ -120867,14 +122767,8 @@ module.exports = { extraPad: 15 }; -},{}],715:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],732:[function(_dereq_,module,exports){ + 'use strict'; @@ -120953,18 +122847,12 @@ module.exports = function handleDefaults(layoutIn, layoutOut, axName) { containerOut._input = containerIn; }; -},{"../../lib":778,"../../plot_api/plot_template":817,"../../plots/cartesian/axis_ids":831,"./attributes":712,"./oppaxis_attributes":719}],716:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../plot_api/plot_template":834,"../../plots/cartesian/axis_ids":848,"./attributes":729,"./oppaxis_attributes":736}],733:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Registry = _dereq_('../../registry'); var Plots = _dereq_('../../plots/plots'); @@ -121597,14 +123485,8 @@ function drawGrabbers(rangeSlider, gd, axisOpts, opts) { grabAreaMax.attr('height', opts._height); } -},{"../../lib":778,"../../lib/setcursor":799,"../../plots/cartesian":841,"../../plots/cartesian/axis_ids":831,"../../plots/plots":891,"../../registry":911,"../color":643,"../dragelement":662,"../drawing":665,"../titles":738,"./constants":714,"d3":169}],717:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../lib/setcursor":816,"../../plots/cartesian":858,"../../plots/cartesian/axis_ids":848,"../../plots/plots":908,"../../registry":922,"../color":660,"../dragelement":679,"../drawing":682,"../titles":755,"./constants":731,"@plotly/d3":58}],734:[function(_dereq_,module,exports){ + 'use strict'; @@ -121672,14 +123554,8 @@ exports.autoMarginOpts = function(gd, ax) { }; }; -},{"../../constants/alignment":745,"../../lib/svg_text_utils":803,"../../plots/cartesian/axis_ids":831,"./constants":714}],718:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/alignment":762,"../../lib/svg_text_utils":820,"../../plots/cartesian/axis_ids":848,"./constants":731}],735:[function(_dereq_,module,exports){ + 'use strict'; @@ -121711,14 +123587,8 @@ module.exports = { autoMarginOpts: helpers.autoMarginOpts }; -},{"../../lib":778,"./attributes":712,"./calc_autorange":713,"./defaults":715,"./draw":716,"./helpers":717,"./oppaxis_attributes":719}],719:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"./attributes":729,"./calc_autorange":730,"./defaults":732,"./draw":733,"./helpers":734,"./oppaxis_attributes":736}],736:[function(_dereq_,module,exports){ + 'use strict'; @@ -121732,31 +123602,21 @@ module.exports = { valType: 'enumerated', values: ['auto', 'fixed', 'match'], dflt: 'match', - editType: 'calc', - }, range: { valType: 'info_array', - items: [ {valType: 'any', editType: 'plot'}, {valType: 'any', editType: 'plot'} ], editType: 'plot', - }, editType: 'calc' }; -},{}],720:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],737:[function(_dereq_,module,exports){ + 'use strict'; @@ -121770,94 +123630,68 @@ var axisPlaceableObjs = _dereq_('../../constants/axis_placeable_objects'); module.exports = templatedArray('shape', { visible: { valType: 'boolean', - dflt: true, editType: 'calc+arraydraw', - }, type: { valType: 'enumerated', values: ['circle', 'rect', 'path', 'line'], - editType: 'calc+arraydraw', - }, layer: { valType: 'enumerated', values: ['below', 'above'], dflt: 'above', - editType: 'arraydraw', - }, xref: extendFlat({}, annAttrs.xref, { - }), xsizemode: { valType: 'enumerated', values: ['scaled', 'pixel'], dflt: 'scaled', - editType: 'calc+arraydraw', - }, xanchor: { valType: 'any', - editType: 'calc+arraydraw', - }, x0: { valType: 'any', - editType: 'calc+arraydraw', - }, x1: { valType: 'any', - editType: 'calc+arraydraw', - }, yref: extendFlat({}, annAttrs.yref, { - }), ysizemode: { valType: 'enumerated', values: ['scaled', 'pixel'], dflt: 'scaled', - editType: 'calc+arraydraw', - }, yanchor: { valType: 'any', - editType: 'calc+arraydraw', - }, y0: { valType: 'any', - editType: 'calc+arraydraw', - }, y1: { valType: 'any', - editType: 'calc+arraydraw', - }, path: { valType: 'string', - editType: 'calc+arraydraw', - }, opacity: { @@ -121865,51 +123699,36 @@ module.exports = templatedArray('shape', { min: 0, max: 1, dflt: 1, - editType: 'arraydraw', - }, line: { color: extendFlat({}, scatterLineAttrs.color, {editType: 'arraydraw'}), width: extendFlat({}, scatterLineAttrs.width, {editType: 'calc+arraydraw'}), dash: extendFlat({}, dash, {editType: 'arraydraw'}), - editType: 'calc+arraydraw' }, fillcolor: { valType: 'color', dflt: 'rgba(0,0,0,0)', - editType: 'arraydraw', - }, fillrule: { valType: 'enumerated', values: ['evenodd', 'nonzero'], dflt: 'evenodd', - editType: 'arraydraw', - }, editable: { valType: 'boolean', - dflt: false, editType: 'calc+arraydraw', - }, editType: 'arraydraw' }); -},{"../../constants/axis_placeable_objects":746,"../../lib/extend":768,"../../plot_api/plot_template":817,"../../traces/scatter/attributes":1187,"../annotations/attributes":626,"../drawing/attributes":664}],721:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/axis_placeable_objects":763,"../../lib/extend":785,"../../plot_api/plot_template":834,"../../traces/scatter/attributes":1198,"../annotations/attributes":643,"../drawing/attributes":681}],738:[function(_dereq_,module,exports){ + 'use strict'; @@ -122022,14 +123841,8 @@ function shapeBounds(ax, v0, v1, path, paramsToUse) { if(max >= min) return [min, max]; } -},{"../../lib":778,"../../plots/cartesian/axes":828,"./constants":722,"./helpers":731}],722:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../plots/cartesian/axes":845,"./constants":739,"./helpers":748}],739:[function(_dereq_,module,exports){ + 'use strict'; @@ -122086,14 +123899,8 @@ module.exports = { } }; -},{}],723:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],740:[function(_dereq_,module,exports){ + 'use strict'; @@ -122170,7 +123977,7 @@ function handleShapeDefaults(shapeIn, shapeOut, fullLayout) { var dflt0 = 0.25; var dflt1 = 0.75; - // hack until V2.0 when log has regular range behavior - make it look like other + // hack until V3.0 when log has regular range behavior - make it look like other // ranges to send to coerce, then put it back after // this is all to give reasonable default position behavior on log axes, which is // a pretty unimportant edge case so we could just ignore this. @@ -122217,14 +124024,8 @@ function handleShapeDefaults(shapeIn, shapeOut, fullLayout) { } } -},{"../../lib":778,"../../plots/array_container_defaults":823,"../../plots/cartesian/axes":828,"./attributes":720,"./helpers":731}],724:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../plots/array_container_defaults":840,"../../plots/cartesian/axes":845,"./attributes":737,"./helpers":748}],741:[function(_dereq_,module,exports){ + 'use strict'; @@ -122991,14 +124792,8 @@ function eraseActiveShape(gd) { } } -},{"../../lib":778,"../../lib/setcursor":799,"../../plot_api/plot_template":817,"../../plots/cartesian/axes":828,"../../plots/cartesian/handle_outline":838,"../../registry":911,"../color":643,"../dragelement":662,"../drawing":665,"./constants":722,"./draw_newshape/display_outlines":728,"./draw_newshape/helpers":729,"./helpers":731}],725:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../lib/setcursor":816,"../../plot_api/plot_template":834,"../../plots/cartesian/axes":845,"../../plots/cartesian/handle_outline":855,"../../registry":922,"../color":660,"../dragelement":679,"../drawing":682,"./constants":739,"./draw_newshape/display_outlines":745,"./draw_newshape/helpers":746,"./helpers":748}],742:[function(_dereq_,module,exports){ + 'use strict'; @@ -123011,63 +124806,48 @@ module.exports = { color: { valType: 'color', editType: 'none', - - }, width: { valType: 'number', min: 0, dflt: 4, - editType: 'none', - }, dash: extendFlat({}, dash, { dflt: 'solid', editType: 'none' }), - editType: 'none' }, fillcolor: { valType: 'color', dflt: 'rgba(0,0,0,0)', - editType: 'none', - }, fillrule: { valType: 'enumerated', values: ['evenodd', 'nonzero'], dflt: 'evenodd', - editType: 'none', - }, opacity: { valType: 'number', min: 0, max: 1, dflt: 1, - editType: 'none', - }, layer: { valType: 'enumerated', values: ['below', 'above'], dflt: 'above', - editType: 'none', - }, drawdirection: { valType: 'enumerated', - values: ['ortho', 'horizontal', 'vertical', 'diagonal'], dflt: 'diagonal', editType: 'none', - }, editType: 'none' @@ -123077,31 +124857,21 @@ module.exports = { fillcolor: { valType: 'color', dflt: 'rgb(255,0,255)', - editType: 'none', - }, opacity: { valType: 'number', min: 0, max: 1, dflt: 0.5, - editType: 'none', - }, editType: 'none' } }; -},{"../../../lib/extend":768,"../../drawing/attributes":664}],726:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../../lib/extend":785,"../../drawing/attributes":681}],743:[function(_dereq_,module,exports){ + 'use strict'; @@ -123118,14 +124888,8 @@ module.exports = { SQRT2: Math.sqrt(2) }; -},{}],727:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],744:[function(_dereq_,module,exports){ + 'use strict'; @@ -123150,14 +124914,8 @@ module.exports = function supplyDrawNewShapeDefaults(layoutIn, layoutOut, coerce coerce('activeshape.opacity'); }; -},{"../../color":643}],728:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../color":660}],745:[function(_dereq_,module,exports){ + 'use strict'; @@ -123445,14 +125203,8 @@ function recordPositions(polygonsOut, polygonsIn) { return polygonsOut; } -},{"../../../plots/cartesian/handle_outline":838,"../../../registry":911,"../../dragelement":662,"../../dragelement/helpers":661,"./constants":726,"./helpers":729,"./newshapes":730}],729:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../../plots/cartesian/handle_outline":855,"../../../registry":922,"../../dragelement":679,"../../dragelement/helpers":678,"./constants":743,"./helpers":746,"./newshapes":747}],746:[function(_dereq_,module,exports){ + 'use strict'; @@ -123783,14 +125535,8 @@ exports.ellipseOver = function(pos) { }; }; -},{"../../../plots/cartesian/helpers":839,"./constants":726,"parse-svg-path":505}],730:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../../plots/cartesian/helpers":856,"./constants":743,"parse-svg-path":490}],747:[function(_dereq_,module,exports){ + 'use strict'; @@ -124042,14 +125788,8 @@ function fixDatesForPaths(polygons, xaxis, yaxis) { return polygons; } -},{"../../../plots/cartesian/handle_outline":838,"../../../plots/cartesian/helpers":839,"../../dragelement/helpers":661,"./constants":726,"./helpers":729}],731:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../../plots/cartesian/handle_outline":855,"../../../plots/cartesian/helpers":856,"../../dragelement/helpers":678,"./constants":743,"./helpers":746}],748:[function(_dereq_,module,exports){ + 'use strict'; @@ -124063,7 +125803,7 @@ var Lib = _dereq_('../../lib'); // so these have to be specified in terms of the category serial numbers, // but can take fractional values. Other axis types we specify position based on // the actual data values. -// TODO: in V2.0 (when log axis ranges are in data units) range and shape position +// TODO: in V3.0 (when log axis ranges are in data units) range and shape position // will be identical, so rangeToShapePosition and shapePositionToRange can be // removed entirely. @@ -124200,14 +125940,8 @@ exports.makeOptionsAndPlotinfo = function(gd, index) { }; }; -},{"../../lib":778,"./constants":722}],732:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"./constants":739}],749:[function(_dereq_,module,exports){ + 'use strict'; @@ -124228,14 +125962,8 @@ module.exports = { drawOne: drawModule.drawOne }; -},{"../../plots/cartesian/include_components":840,"./attributes":720,"./calc_autorange":721,"./defaults":723,"./draw":724,"./draw_newshape/defaults":727}],733:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/cartesian/include_components":857,"./attributes":737,"./calc_autorange":738,"./defaults":740,"./draw":741,"./draw_newshape/defaults":744}],750:[function(_dereq_,module,exports){ + 'use strict'; @@ -124250,60 +125978,44 @@ var constants = _dereq_('./constants'); var stepsAttrs = templatedArray('step', { visible: { valType: 'boolean', - dflt: true, - }, method: { valType: 'enumerated', values: ['restyle', 'relayout', 'animate', 'update', 'skip'], dflt: 'restyle', - - }, args: { valType: 'info_array', - freeLength: true, items: [ { valType: 'any' }, { valType: 'any' }, { valType: 'any' } ], - }, label: { valType: 'string', - - }, value: { valType: 'string', - - }, execute: { valType: 'boolean', - dflt: true, - } }); module.exports = overrideAll(templatedArray('slider', { visible: { valType: 'boolean', - dflt: true, - }, active: { valType: 'number', - min: 0, dflt: 0, - }, steps: stepsAttrs, @@ -124311,174 +126023,123 @@ module.exports = overrideAll(templatedArray('slider', { lenmode: { valType: 'enumerated', values: ['fraction', 'pixels'], - dflt: 'fraction', - }, len: { valType: 'number', min: 0, dflt: 1, - - }, x: { valType: 'number', min: -2, max: 3, dflt: 0, - - }, pad: extendDeepAll(padAttrs({editType: 'arraydraw'}), { - }, {t: {dflt: 20}}), xanchor: { valType: 'enumerated', values: ['auto', 'left', 'center', 'right'], dflt: 'left', - - }, y: { valType: 'number', min: -2, max: 3, dflt: 0, - - }, yanchor: { valType: 'enumerated', values: ['auto', 'top', 'middle', 'bottom'], dflt: 'top', - - }, transition: { duration: { valType: 'number', - min: 0, dflt: 150, - }, easing: { valType: 'enumerated', values: animationAttrs.transition.easing.values, - dflt: 'cubic-in-out', - } }, currentvalue: { visible: { valType: 'boolean', - dflt: true, - }, xanchor: { valType: 'enumerated', values: ['left', 'center', 'right'], dflt: 'left', - - }, offset: { valType: 'number', dflt: 10, - - }, prefix: { valType: 'string', - - }, suffix: { valType: 'string', - - }, font: fontAttrs({ - }) }, font: fontAttrs({ - }), activebgcolor: { valType: 'color', - dflt: constants.gripBgActiveColor, - }, bgcolor: { valType: 'color', - dflt: constants.railBgColor, - }, bordercolor: { valType: 'color', dflt: constants.railBorderColor, - - }, borderwidth: { valType: 'number', min: 0, dflt: constants.railBorderWidth, - - }, ticklen: { valType: 'number', min: 0, dflt: constants.tickLength, - - }, tickcolor: { valType: 'color', dflt: constants.tickColor, - - }, tickwidth: { valType: 'number', min: 0, dflt: 1, - - }, minorticklen: { valType: 'number', min: 0, dflt: constants.minorTickLength, - - } }), 'arraydraw', 'from-root'); -},{"../../lib/extend":768,"../../plot_api/edit_types":810,"../../plot_api/plot_template":817,"../../plots/animation_attributes":822,"../../plots/font_attributes":856,"../../plots/pad_attributes":890,"./constants":734}],734:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib/extend":785,"../../plot_api/edit_types":827,"../../plot_api/plot_template":834,"../../plots/animation_attributes":839,"../../plots/font_attributes":873,"../../plots/pad_attributes":907,"./constants":751}],751:[function(_dereq_,module,exports){ + 'use strict'; @@ -124565,14 +126226,8 @@ module.exports = { currentValueInset: 0, }; -},{}],735:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],752:[function(_dereq_,module,exports){ + 'use strict'; @@ -124680,18 +126335,12 @@ function stepDefaults(valueIn, valueOut) { } } -},{"../../lib":778,"../../plots/array_container_defaults":823,"./attributes":733,"./constants":734}],736:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../plots/array_container_defaults":840,"./attributes":750,"./constants":751}],753:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Plots = _dereq_('../../plots/plots'); var Color = _dereq_('../color'); @@ -125311,14 +126960,8 @@ function drawRail(sliderGroup, sliderOpts) { ); } -},{"../../constants/alignment":745,"../../lib":778,"../../lib/svg_text_utils":803,"../../plot_api/plot_template":817,"../../plots/plots":891,"../color":643,"../drawing":665,"./constants":734,"d3":169}],737:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/alignment":762,"../../lib":795,"../../lib/svg_text_utils":820,"../../plot_api/plot_template":834,"../../plots/plots":908,"../color":660,"../drawing":682,"./constants":751,"@plotly/d3":58}],754:[function(_dereq_,module,exports){ + 'use strict'; @@ -125334,19 +126977,13 @@ module.exports = { draw: _dereq_('./draw') }; -},{"./attributes":733,"./constants":734,"./defaults":735,"./draw":736}],738:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"./attributes":750,"./constants":751,"./defaults":752,"./draw":753}],755:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var isNumeric = _dereq_('fast-isnumeric'); var Plots = _dereq_('../../plots/plots'); @@ -125602,14 +127239,8 @@ module.exports = { draw: draw }; -},{"../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/alignment":762,"../../constants/interactions":769,"../../lib":795,"../../lib/svg_text_utils":820,"../../plots/plots":908,"../../registry":922,"../color":660,"../drawing":682,"@plotly/d3":58,"fast-isnumeric":241}],756:[function(_dereq_,module,exports){ + 'use strict'; @@ -125623,49 +127254,37 @@ var templatedArray = _dereq_('../../plot_api/plot_template').templatedArray; var buttonsAttrs = templatedArray('button', { visible: { valType: 'boolean', - - }, method: { valType: 'enumerated', values: ['restyle', 'relayout', 'animate', 'update', 'skip'], dflt: 'restyle', - - }, args: { valType: 'info_array', - freeLength: true, items: [ {valType: 'any'}, {valType: 'any'}, {valType: 'any'} ], - }, args2: { valType: 'info_array', - freeLength: true, items: [ {valType: 'any'}, {valType: 'any'}, {valType: 'any'} ], - }, label: { valType: 'string', - dflt: '', - }, execute: { valType: 'boolean', - dflt: true, - } }); @@ -125674,39 +127293,29 @@ module.exports = overrideAll(templatedArray('updatemenu', { 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: true, - }, buttons: buttonsAttrs, @@ -125716,69 +127325,47 @@ module.exports = overrideAll(templatedArray('updatemenu', { min: -2, max: 3, dflt: -0.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: extendFlat(padAttrs({editType: 'arraydraw'}), { - }), font: fontAttrs({ - }), bgcolor: { valType: 'color', - - }, bordercolor: { valType: 'color', dflt: colorAttrs.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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib/extend":785,"../../plot_api/edit_types":827,"../../plot_api/plot_template":834,"../../plots/font_attributes":873,"../../plots/pad_attributes":907,"../color/attributes":659}],757:[function(_dereq_,module,exports){ + 'use strict'; @@ -125852,14 +127439,8 @@ module.exports = { } }; -},{}],741:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],758:[function(_dereq_,module,exports){ + 'use strict'; @@ -125935,19 +127516,13 @@ function buttonDefaults(buttonIn, buttonOut) { } } -},{"../../lib":778,"../../plots/array_container_defaults":823,"./attributes":739,"./constants":740}],742:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../plots/array_container_defaults":840,"./attributes":756,"./constants":757}],759:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Plots = _dereq_('../../plots/plots'); var Color = _dereq_('../color'); @@ -126586,22 +128161,16 @@ function removeAllButtons(gButton, newMenuIndexAttr) { .selectAll('g.' + constants.dropdownButtonClassName).remove(); } -},{"../../constants/alignment":745,"../../lib":778,"../../lib/svg_text_utils":803,"../../plot_api/plot_template":817,"../../plots/plots":891,"../color":643,"../drawing":665,"./constants":740,"./scrollbox":744,"d3":169}],743:[function(_dereq_,module,exports){ -arguments[4][737][0].apply(exports,arguments) -},{"./attributes":739,"./constants":740,"./defaults":741,"./draw":742,"dup":737}],744:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/alignment":762,"../../lib":795,"../../lib/svg_text_utils":820,"../../plot_api/plot_template":834,"../../plots/plots":908,"../color":660,"../drawing":682,"./constants":757,"./scrollbox":761,"@plotly/d3":58}],760:[function(_dereq_,module,exports){ +arguments[4][754][0].apply(exports,arguments) +},{"./attributes":756,"./constants":757,"./defaults":758,"./draw":759,"dup":754}],761:[function(_dereq_,module,exports){ + 'use strict'; module.exports = ScrollBox; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Color = _dereq_('../color'); var Drawing = _dereq_('../drawing'); @@ -127053,14 +128622,8 @@ ScrollBox.prototype.setTranslate = function setTranslate(translateX, translateY) } }; -},{"../../lib":778,"../color":643,"../drawing":665,"d3":169}],745:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../color":660,"../drawing":682,"@plotly/d3":58}],762:[function(_dereq_,module,exports){ + 'use strict'; @@ -127118,14 +128681,8 @@ module.exports = { } }; -},{}],746:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],763:[function(_dereq_,module,exports){ + 'use strict'; @@ -127150,14 +128707,8 @@ module.exports = { } }; -},{}],747:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],764:[function(_dereq_,module,exports){ + 'use strict'; @@ -127172,14 +128723,8 @@ module.exports = { } }; -},{}],748:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],765:[function(_dereq_,module,exports){ + 'use strict'; @@ -127188,14 +128733,8 @@ module.exports = { DATE_FORMAT_LINK: 'https://github.com/d3/d3-time-format#locale_format' }; -},{}],749:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],766:[function(_dereq_,module,exports){ + 'use strict'; @@ -127226,14 +128765,8 @@ module.exports = { } }; -},{}],750:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],767:[function(_dereq_,module,exports){ + 'use strict'; @@ -127247,14 +128780,8 @@ module.exports = { longdashdot: [[0.5, 0.7, 0.8, 1], 10] }; -},{}],751:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],768:[function(_dereq_,module,exports){ + 'use strict'; @@ -127270,14 +128797,8 @@ module.exports = { x: '❌' }; -},{}],752:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],769:[function(_dereq_,module,exports){ + 'use strict'; @@ -127293,14 +128814,8 @@ module.exports = { DESELECTDIM: 0.2 }; -},{}],753:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],770:[function(_dereq_,module,exports){ + 'use strict'; @@ -127366,14 +128881,8 @@ module.exports = { MINUS_SIGN: '\u2212' }; -},{}],754:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],771:[function(_dereq_,module,exports){ + 'use strict'; @@ -127390,21 +128899,15 @@ exports.svgAttrs = { 'xmlns:xlink': exports.xlink }; -},{}],755:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],772:[function(_dereq_,module,exports){ + 'use strict'; exports.version = _dereq_('./version').version; // inject promise polyfill -_dereq_('es6-promise').polyfill(); +_dereq_('native-promise-only'); // inject plot css _dereq_('../build/plotcss'); @@ -127467,23 +128970,25 @@ if(window.PlotlyLocales && Array.isArray(window.PlotlyLocales)) { exports.Icons = _dereq_('./fonts/ploticon'); // unofficial 'beta' plot methods, use at your own risk -exports.Plots = _dereq_('./plots/plots'); -exports.Fx = _dereq_('./components/fx'); +var Fx = _dereq_('./components/fx'); +var Plots = _dereq_('./plots/plots'); + +exports.Plots = { + resize: Plots.resize, + graphJson: Plots.graphJson, + sendDataToCloud: Plots.sendDataToCloud +}; +exports.Fx = { + hover: Fx.hover, + unhover: Fx.unhover, + loneHover: Fx.loneHover, + loneUnhover: Fx.loneUnhover +}; exports.Snapshot = _dereq_('./snapshot'); exports.PlotSchema = _dereq_('./plot_api/plot_schema'); -exports.Queue = _dereq_('./lib/queue'); -// export d3 used in the bundle -exports.d3 = _dereq_('d3'); +},{"../build/plotcss":1,"./components/annotations":651,"./components/annotations3d":656,"./components/colorbar":666,"./components/colorscale":672,"./components/errorbars":688,"./components/fx":700,"./components/grid":704,"./components/images":709,"./components/legend":717,"./components/rangeselector":728,"./components/rangeslider":735,"./components/shapes":749,"./components/sliders":754,"./components/updatemenus":760,"./fonts/mathjax_config":773,"./fonts/ploticon":774,"./locale-en":825,"./locale-en-us":824,"./plot_api":829,"./plot_api/plot_schema":833,"./plots/plots":908,"./registry":922,"./snapshot":927,"./traces/scatter":1210,"./version":1381,"native-promise-only":471}],773:[function(_dereq_,module,exports){ -},{"../build/plotcss":1,"./components/annotations":634,"./components/annotations3d":639,"./components/colorbar":649,"./components/colorscale":655,"./components/errorbars":671,"./components/fx":683,"./components/grid":687,"./components/images":692,"./components/legend":700,"./components/rangeselector":711,"./components/rangeslider":718,"./components/shapes":732,"./components/sliders":737,"./components/updatemenus":743,"./fonts/mathjax_config":756,"./fonts/ploticon":757,"./lib/queue":794,"./locale-en":808,"./locale-en-us":807,"./plot_api":812,"./plot_api/plot_schema":816,"./plots/plots":891,"./registry":911,"./snapshot":916,"./traces/scatter":1199,"./version":1370,"d3":169,"es6-promise":224}],756:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ 'use strict'; @@ -127507,14 +129012,8 @@ module.exports = function() { } }; -},{}],757:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],774:[function(_dereq_,module,exports){ + 'use strict'; @@ -127687,14 +129186,8 @@ module.exports = { } }; -},{}],758:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],775:[function(_dereq_,module,exports){ + 'use strict'; @@ -127751,14 +129244,8 @@ exports.isBottomAnchor = function isBottomAnchor(opts) { ); }; -},{}],759:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],776:[function(_dereq_,module,exports){ + 'use strict'; @@ -127992,28 +129479,15 @@ module.exports = { pathAnnulus: pathAnnulus }; -},{"./mod":785}],760:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"./mod":802}],777:[function(_dereq_,module,exports){ + 'use strict'; var isArray = Array.isArray; -// IE9 fallbacks - -var ab = (typeof ArrayBuffer === 'undefined' || !ArrayBuffer.isView) ? - {isView: function() { return false; }} : - ArrayBuffer; - -var dv = (typeof DataView === 'undefined') ? - function() {} : - DataView; +var ab = ArrayBuffer; +var dv = DataView; function isTypedArray(a) { return ab.isView(a) && !(a instanceof dv); @@ -128149,14 +129623,8 @@ function _rowLength(z, fn, len0) { return 0; } -},{}],761:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],778:[function(_dereq_,module,exports){ + 'use strict'; @@ -128182,14 +129650,8 @@ module.exports = function cleanNumber(v) { return BADNUM; }; -},{"../constants/numerical":753,"fast-isnumeric":241}],762:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../constants/numerical":770,"fast-isnumeric":241}],779:[function(_dereq_,module,exports){ + 'use strict'; @@ -128210,14 +129672,8 @@ module.exports = function clearGlCanvases(gd) { } }; -},{}],763:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],780:[function(_dereq_,module,exports){ + 'use strict'; @@ -128233,14 +129689,8 @@ module.exports = function clearResponsive(gd) { } }; -},{}],764:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],781:[function(_dereq_,module,exports){ + 'use strict'; @@ -128259,9 +129709,6 @@ var isArrayOrTypedArray = _dereq_('./array').isArrayOrTypedArray; exports.valObjectMeta = { data_array: { // You can use *dflt=[] to force said array to exist though. - - - coerceFunction: function(v, propOut, dflt) { // TODO maybe `v: {type: 'float32', vals: [/* ... */]}` also if(isArrayOrTypedArray(v)) propOut.set(v); @@ -128269,9 +129716,6 @@ exports.valObjectMeta = { } }, enumerated: { - - - coerceFunction: function(v, propOut, dflt, opts) { if(opts.coerceNumber) v = +v; if(opts.values.indexOf(v) === -1) propOut.set(dflt); @@ -128293,18 +129737,12 @@ exports.valObjectMeta = { } }, 'boolean': { - - - coerceFunction: function(v, propOut, dflt) { if(v === true || v === false) propOut.set(v); else propOut.set(dflt); } }, number: { - - - coerceFunction: function(v, propOut, dflt, opts) { if(!isNumeric(v) || (opts.min !== undefined && v < opts.min) || @@ -128314,9 +129752,6 @@ exports.valObjectMeta = { } }, integer: { - - - coerceFunction: function(v, propOut, dflt, opts) { if(v % 1 || !isNumeric(v) || (opts.min !== undefined && v < opts.min) || @@ -128326,10 +129761,7 @@ exports.valObjectMeta = { } }, string: { - - // TODO 'values shouldn't be in there (edge case: 'dash' in Scatter) - coerceFunction: function(v, propOut, dflt, opts) { if(typeof v !== 'string') { var okToCoerce = (typeof v === 'number'); @@ -128341,18 +129773,12 @@ exports.valObjectMeta = { } }, color: { - - - coerceFunction: function(v, propOut, dflt) { if(tinycolor(v).isValid()) propOut.set(v); else propOut.set(dflt); } }, colorlist: { - - - coerceFunction: function(v, propOut, dflt) { function isColor(color) { return tinycolor(color).isValid(); @@ -128363,17 +129789,11 @@ exports.valObjectMeta = { } }, colorscale: { - - - coerceFunction: function(v, propOut, dflt) { propOut.set(colorscales.get(v, dflt)); } }, angle: { - - - coerceFunction: function(v, propOut, dflt) { if(v === 'auto') propOut.set('auto'); else if(!isNumeric(v)) propOut.set(dflt); @@ -128381,9 +129801,6 @@ exports.valObjectMeta = { } }, subplotid: { - - - coerceFunction: function(v, propOut, dflt, opts) { var regex = opts.regex || counterRegex(dflt); if(typeof v === 'string' && regex.test(v)) { @@ -128403,9 +129820,6 @@ exports.valObjectMeta = { } }, flaglist: { - - - coerceFunction: function(v, propOut, dflt, opts) { if(typeof v !== 'string') { propOut.set(dflt); @@ -128428,23 +129842,17 @@ exports.valObjectMeta = { } }, any: { - - - coerceFunction: function(v, propOut, dflt) { if(v === undefined) propOut.set(dflt); else propOut.set(v); } }, info_array: { - - // set `dimensions=2` for a 2D array or '1-2' for either // `items` may be a single object instead of an array, in which case // `freeLength` must be true. // if `dimensions='1-2'` and items is a 1D array, then the value can // either be a matching 1D array or an array of such matching 1D arrays - coerceFunction: function(v, propOut, dflt, opts) { // simplified coerce function just for array items function coercePart(v, opts, dflt) { @@ -128697,14 +130105,8 @@ function validate(value, opts) { } exports.validate = validate; -},{"../components/colorscale/scales":658,"../constants/interactions":752,"../plots/attributes":824,"./array":760,"./mod":785,"./nested_property":786,"./regex":795,"fast-isnumeric":241,"tinycolor2":576}],765:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../components/colorscale/scales":675,"../constants/interactions":769,"../plots/attributes":841,"./array":777,"./mod":802,"./nested_property":803,"./regex":812,"fast-isnumeric":241,"tinycolor2":592}],782:[function(_dereq_,module,exports){ + 'use strict'; @@ -129298,18 +130700,12 @@ exports.findExactDates = function(data, calendar) { }; }; -},{"../constants/numerical":753,"../registry":911,"./loggers":782,"./mod":785,"d3-time-format":166,"fast-isnumeric":241}],766:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../constants/numerical":770,"../registry":922,"./loggers":799,"./mod":802,"d3-time-format":168,"fast-isnumeric":241}],783:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var loggers = _dereq_('./loggers'); var matrix = _dereq_('./matrix'); var mat4X4 = _dereq_('gl-mat4'); @@ -129476,14 +130872,8 @@ module.exports = { equalDomRects: equalDomRects }; -},{"./loggers":782,"./matrix":784,"d3":169,"gl-mat4":292}],767:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"./loggers":799,"./matrix":801,"@plotly/d3":58,"gl-mat4":292}],784:[function(_dereq_,module,exports){ + 'use strict'; @@ -129649,14 +131039,8 @@ var Events = { module.exports = Events; -},{"events":110}],768:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"events":112}],785:[function(_dereq_,module,exports){ + 'use strict'; @@ -129763,14 +131147,8 @@ function _extend(inputs, isDeep, keepAllKeys, noArrayCopies) { return target; } -},{"./is_plain_object.js":779}],769:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"./is_plain_object.js":796}],786:[function(_dereq_,module,exports){ + 'use strict'; @@ -129814,14 +131192,8 @@ module.exports = function filterUnique(array) { return out; }; -},{}],770:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],787:[function(_dereq_,module,exports){ + 'use strict'; @@ -129862,18 +131234,12 @@ function isCalcData(cont) { ); } -},{}],771:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],788:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var countryRegex = _dereq_('country-regex'); var turfArea = _dereq_('@turf/area'); var turfCentroid = _dereq_('@turf/centroid'); @@ -130247,14 +131613,8 @@ module.exports = { computeBbox: computeBbox }; -},{"./identity":776,"./is_plain_object":779,"./loggers":782,"./nested_property":786,"./polygon":790,"@turf/area":59,"@turf/bbox":60,"@turf/centroid":61,"country-regex":139,"d3":169}],772:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"./identity":793,"./is_plain_object":796,"./loggers":799,"./nested_property":803,"./polygon":807,"@plotly/d3":58,"@turf/area":61,"@turf/bbox":62,"@turf/centroid":63,"country-regex":141}],789:[function(_dereq_,module,exports){ + 'use strict'; @@ -130364,14 +131724,8 @@ exports.makeBlank = function() { }; }; -},{"../constants/numerical":753}],773:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../constants/numerical":770}],790:[function(_dereq_,module,exports){ + 'use strict'; @@ -130608,14 +131962,8 @@ exports.findPointOnPath = function findPointOnPath(path, val, coord, opts) { return pt; }; -},{"./mod":785}],774:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"./mod":802}],791:[function(_dereq_,module,exports){ + 'use strict'; @@ -130709,14 +132057,8 @@ module.exports = { parseColorScale: parseColorScale }; -},{"../components/color/attributes":642,"../components/colorscale":655,"./array":760,"color-normalize":125,"fast-isnumeric":241,"tinycolor2":576}],775:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../components/color/attributes":659,"../components/colorscale":672,"./array":777,"color-normalize":127,"fast-isnumeric":241,"tinycolor2":592}],792:[function(_dereq_,module,exports){ + 'use strict'; @@ -130745,14 +132087,8 @@ module.exports = { unwrap: function(d) {return d[0];} }; -},{"./identity":776}],776:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"./identity":793}],793:[function(_dereq_,module,exports){ + 'use strict'; @@ -130761,14 +132097,8 @@ module.exports = { module.exports = function identity(d) { return d; }; -},{}],777:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],794:[function(_dereq_,module,exports){ + 'use strict'; @@ -130803,18 +132133,12 @@ module.exports = function incrementNumeric(x, delta) { return newX; }; -},{}],778:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],795:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var utcFormat = _dereq_('d3-time-format').utcFormat; var isNumeric = _dereq_('fast-isnumeric'); @@ -131518,11 +132842,6 @@ lib.isIE = function() { return typeof window.navigator.msSaveBlob !== 'undefined'; }; -var IS_IE9_OR_BELOW_REGEX = /MSIE [1-9]\./; -lib.isIE9orBelow = function() { - return lib.isIE() && IS_IE9_OR_BELOW_REGEX.test(window.navigator.userAgent); -}; - var IS_SAFARI_REGEX = /Version\/[\d\.]+.*Safari/; lib.isSafari = function() { return IS_SAFARI_REGEX.test(window.navigator.userAgent); @@ -131533,12 +132852,8 @@ lib.isIOS = function() { return IS_IOS_REGEX.test(window.navigator.userAgent); }; -/** - * Duck typing to recognize a d3 selection, mostly for IE9's benefit - * because it doesn't handle instanceof like modern browsers - */ lib.isD3Selection = function(obj) { - return obj && (typeof obj.classed === 'function'); + return obj instanceof d3.selection; }; /** @@ -132086,14 +133401,8 @@ lib.join2 = function(arr, mainSeparator, lastSeparator) { return arr.join(mainSeparator); }; -},{"../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../constants/numerical":770,"./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":58,"d3-time-format":168,"fast-isnumeric":241}],796:[function(_dereq_,module,exports){ + 'use strict'; @@ -132110,18 +133419,12 @@ module.exports = function isPlainObject(obj) { return ( Object.prototype.toString.call(obj) === '[object Object]' && - Object.getPrototypeOf(obj) === Object.prototype + Object.getPrototypeOf(obj).hasOwnProperty('hasOwnProperty') ); }; -},{}],780:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],797:[function(_dereq_,module,exports){ + 'use strict'; @@ -132307,14 +133610,8 @@ module.exports = function keyedContainer(baseObj, path, keyName, valueName) { return obj; }; -},{"./nested_property":786}],781:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"./nested_property":803}],798:[function(_dereq_,module,exports){ + 'use strict'; @@ -132363,14 +133660,8 @@ module.exports = function localize(gd, s) { return s; }; -},{"../registry":911}],782:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../registry":922}],799:[function(_dereq_,module,exports){ + 'use strict'; @@ -132396,7 +133687,7 @@ loggers.log = function() { for(i = 0; i < arguments.length; i++) { messages.push(arguments[i]); } - apply(console.trace || console.log, messages); + console.trace.apply(console, messages); } if(dfltConfig.notifyOnLogging > 1) { @@ -132416,7 +133707,7 @@ loggers.warn = function() { for(i = 0; i < arguments.length; i++) { messages.push(arguments[i]); } - apply(console.trace || console.log, messages); + console.trace.apply(console, messages); } if(dfltConfig.notifyOnLogging > 0) { @@ -132436,7 +133727,7 @@ loggers.error = function() { for(i = 0; i < arguments.length; i++) { messages.push(arguments[i]); } - apply(console.error, messages); + console.error.apply(console, messages); } if(dfltConfig.notifyOnLogging > 0) { @@ -132448,43 +133739,12 @@ loggers.error = function() { } }; -/* - * Robust apply, for IE9 where console.log doesn't support - * apply like other functions do - */ -function apply(f, args) { - if(f && f.apply) { - try { - // `this` should always be console, since here we're always - // applying a method of the console object. - f.apply(console, args); - return; - } catch(e) { /* in case apply failed, fall back on the code below */ } - } - - // no apply - just try calling the function on each arg independently - for(var i = 0; i < args.length; i++) { - try { - f(args[i]); - } catch(e) { - // still fails - last resort simple console.log - console.log(args[i]); - } - } -} +},{"../plot_api/plot_config":832,"./notifier":805}],800:[function(_dereq_,module,exports){ -},{"../plot_api/plot_config":815,"./notifier":788}],783:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); /** * General helper to manage trace groups based on calcdata @@ -132516,14 +133776,8 @@ module.exports = function makeTraceGroups(traceLayer, cdModule, cls) { return traces; }; -},{"d3":169}],784:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"@plotly/d3":58}],801:[function(_dereq_,module,exports){ + 'use strict'; @@ -132668,14 +133922,8 @@ exports.inverseTransformMatrix = function(m) { ]; }; -},{"gl-mat4":292}],785:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"gl-mat4":292}],802:[function(_dereq_,module,exports){ + 'use strict'; @@ -132703,14 +133951,8 @@ module.exports = { modHalf: modHalf }; -},{}],786:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],803:[function(_dereq_,module,exports){ + 'use strict'; @@ -132949,14 +134191,8 @@ function badContainer(container, propStr, propParts) { }; } -},{"./array":760,"fast-isnumeric":241}],787:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"./array":777,"fast-isnumeric":241}],804:[function(_dereq_,module,exports){ + 'use strict'; @@ -132965,19 +134201,13 @@ function badContainer(container, propStr, propParts) { module.exports = function noop() {}; -},{}],788:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],805:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var isNumeric = _dereq_('fast-isnumeric'); var NOTEDATA = []; @@ -133053,14 +134283,8 @@ module.exports = function(text, displayLength) { }); }; -},{"d3":169,"fast-isnumeric":241}],789:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"@plotly/d3":58,"fast-isnumeric":241}],806:[function(_dereq_,module,exports){ + 'use strict'; @@ -133101,14 +134325,8 @@ module.exports = function overrideCursor(el3, csr) { } }; -},{"./setcursor":799}],790:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"./setcursor":816}],807:[function(_dereq_,module,exports){ + 'use strict'; @@ -133353,15 +134571,9 @@ polygon.filter = function filter(pts, tolerance) { }; }; -},{"../constants/numerical":753,"./matrix":784}],791:[function(_dereq_,module,exports){ +},{"../constants/numerical":770,"./matrix":801}],808:[function(_dereq_,module,exports){ (function (global){(function (){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ + 'use strict'; @@ -133427,14 +134639,8 @@ module.exports = function prepareRegl(gd, extensions) { }; }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./show_no_webgl_msg":800,"regl":540}],792:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"./show_no_webgl_msg":817,"regl":534}],809:[function(_dereq_,module,exports){ + 'use strict'; @@ -133497,14 +134703,8 @@ function getUserAgent() { return ua; } -},{"fast-isnumeric":241,"is-mobile":467}],793:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"fast-isnumeric":241,"is-mobile":451}],810:[function(_dereq_,module,exports){ + 'use strict'; @@ -133535,14 +134735,8 @@ module.exports = function pushUnique(array, item) { return array; }; -},{}],794:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],811:[function(_dereq_,module,exports){ + 'use strict'; @@ -133664,10 +134858,6 @@ queue.stopSequence = function(gd) { queue.undo = function undo(gd) { var queueObj, i; - if(gd.framework && gd.framework.isPolar) { - gd.framework.undo(); - return; - } if(gd.undoQueue === undefined || isNaN(gd.undoQueue.index) || gd.undoQueue.index <= 0) { @@ -133697,10 +134887,6 @@ queue.undo = function undo(gd) { queue.redo = function redo(gd) { var queueObj, i; - if(gd.framework && gd.framework.isPolar) { - gd.framework.redo(); - return; - } if(gd.undoQueue === undefined || isNaN(gd.undoQueue.index) || gd.undoQueue.index >= gd.undoQueue.queue.length) { @@ -133743,14 +134929,8 @@ queue.plotDo = function(gd, func, args) { module.exports = queue; -},{"../lib":778,"../plot_api/plot_config":815}],795:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../lib":795,"../plot_api/plot_config":832}],812:[function(_dereq_,module,exports){ + 'use strict'; @@ -133773,14 +134953,8 @@ exports.counter = function(head, tail, openEnded, matchBeginning) { return new RegExp(startWithPrefix + head + '([2-9]|[1-9][0-9]+)?' + fullTail); }; -},{}],796:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],813:[function(_dereq_,module,exports){ + 'use strict'; @@ -133826,14 +135000,8 @@ module.exports = function(baseAttr, relativeAttr) { return baseAttr + relativeAttr; }; -},{}],797:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],814:[function(_dereq_,module,exports){ + 'use strict'; @@ -133883,14 +135051,8 @@ module.exports = function relinkPrivateKeys(toContainer, fromContainer) { } }; -},{"./array":760,"./is_plain_object":779}],798:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"./array":777,"./is_plain_object":796}],815:[function(_dereq_,module,exports){ + 'use strict'; @@ -134088,14 +135250,8 @@ exports.findIndexOfMin = function(arr, fn) { return ind; }; -},{"../constants/numerical":753,"./identity":776,"./loggers":782,"fast-isnumeric":241}],799:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../constants/numerical":770,"./identity":793,"./loggers":799,"fast-isnumeric":241}],816:[function(_dereq_,module,exports){ + 'use strict'; @@ -134111,14 +135267,8 @@ module.exports = function setCursor(el3, csr) { if(csr) el3.classed('cursor-' + csr, true); }; -},{}],800:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],817:[function(_dereq_,module,exports){ + 'use strict'; @@ -134175,14 +135325,8 @@ module.exports = function showNoWebGlMsg(scene) { return false; }; -},{"../components/color":643}],801:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../components/color":660}],818:[function(_dereq_,module,exports){ + 'use strict'; @@ -134285,14 +135429,8 @@ exports.interp = function(arr, n) { return frac * arr[Math.ceil(n)] + (1 - frac) * arr[Math.floor(n)]; }; -},{"./array":760,"fast-isnumeric":241}],802:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"./array":777,"fast-isnumeric":241}],819:[function(_dereq_,module,exports){ + 'use strict'; @@ -134306,21 +135444,15 @@ function str2RgbaArray(color) { module.exports = str2RgbaArray; -},{"color-normalize":125}],803:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"color-normalize":127}],820:[function(_dereq_,module,exports){ + 'use strict'; /* global MathJax:false */ -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Lib = _dereq_('../lib'); var strTranslate = Lib.strTranslate; @@ -135197,14 +136329,8 @@ exports.makeEditable = function(context, options) { return d3.rebind(context, dispatch, 'on'); }; -},{"../constants/alignment":745,"../constants/xmlns_namespaces":754,"../lib":778,"d3":169}],804:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../constants/alignment":762,"../constants/xmlns_namespaces":771,"../lib":795,"@plotly/d3":58}],821:[function(_dereq_,module,exports){ + 'use strict'; @@ -135300,14 +136426,8 @@ function _clearTimeout(cache) { } } -},{}],805:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],822:[function(_dereq_,module,exports){ + 'use strict'; @@ -135328,14 +136448,8 @@ module.exports = function toLogRange(val, range) { return newVal; }; -},{"fast-isnumeric":241}],806:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"fast-isnumeric":241}],823:[function(_dereq_,module,exports){ + 'use strict'; @@ -135362,14 +136476,8 @@ topojsonUtils.getTopojsonFeatures = function(trace, topojson) { return topojsonFeature(topojson, obj).features; }; -},{"../plots/geo/constants":858,"topojson-client":579}],807:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../plots/geo/constants":875,"topojson-client":595}],824:[function(_dereq_,module,exports){ + 'use strict'; @@ -135384,14 +136492,8 @@ module.exports = { } }; -},{}],808:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],825:[function(_dereq_,module,exports){ + 'use strict'; @@ -135427,14 +136529,8 @@ module.exports = { } }; -},{}],809:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],826:[function(_dereq_,module,exports){ + 'use strict'; @@ -135485,14 +136581,8 @@ module.exports = function containerArrayMatch(astr) { return {array: arrayStr, index: Number(match[1]), property: match[3] || ''}; }; -},{"../registry":911}],810:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../registry":922}],827:[function(_dereq_,module,exports){ + 'use strict'; @@ -135504,7 +136594,6 @@ var traceOpts = { valType: 'flaglist', extras: ['none'], flags: ['calc', 'clearAxisTypes', 'plot', 'style', 'markerSize', 'colorbars'], - }; var layoutOpts = { @@ -135514,7 +136603,6 @@ var layoutOpts = { 'calc', 'plot', 'legend', 'ticks', 'axrange', 'layoutstyle', 'modebar', 'camera', 'arraydraw', 'colorbars' ], - }; // flags for inside restyle/relayout include a few extras @@ -135610,14 +136698,8 @@ function overrideOne(attr, editTypeOverride, overrideContainers, key) { } } -},{"../lib":778}],811:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../lib":795}],828:[function(_dereq_,module,exports){ + 'use strict'; @@ -136312,20 +137394,14 @@ exports.clearAxisTypes = function(gd, traces, layoutUpdate) { } }; -},{"../components/color":643,"../lib":778,"../plots/cartesian/axis_ids":831,"../plots/plots":891,"../registry":911,"fast-isnumeric":241,"gl-mat4/fromQuat":282}],812:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../components/color":660,"../lib":795,"../plots/cartesian/axis_ids":848,"../plots/plots":908,"../registry":922,"fast-isnumeric":241,"gl-mat4/fromQuat":282}],829:[function(_dereq_,module,exports){ + 'use strict'; var main = _dereq_('./plot_api'); -exports.plot = main.plot; +exports._doPlot = main._doPlot; exports.newPlot = main.newPlot; exports.restyle = main.restyle; exports.relayout = main.relayout; @@ -136355,14 +137431,8 @@ var templateApi = _dereq_('./template_api'); exports.makeTemplate = templateApi.makeTemplate; exports.validateTemplate = templateApi.validateTemplate; -},{"../snapshot/download":913,"./plot_api":814,"./template_api":819,"./to_image":820,"./validate":821}],813:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../snapshot/download":924,"./plot_api":831,"./template_api":836,"./to_image":837,"./validate":838}],830:[function(_dereq_,module,exports){ + 'use strict'; @@ -136568,18 +137638,12 @@ exports.applyContainerArrayChanges = function applyContainerArrayChanges(gd, np, return true; }; -},{"../lib/is_plain_object":779,"../lib/loggers":782,"../lib/noop":787,"../lib/search":798,"../registry":911,"./container_array_match":809}],814:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../lib/is_plain_object":796,"../lib/loggers":799,"../lib/noop":804,"../lib/search":815,"../registry":922,"./container_array_match":826}],831:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var isNumeric = _dereq_('fast-isnumeric'); var hasHover = _dereq_('has-hover'); @@ -136592,14 +137656,12 @@ var Queue = _dereq_('../lib/queue'); var Registry = _dereq_('../registry'); var PlotSchema = _dereq_('./plot_schema'); var Plots = _dereq_('../plots/plots'); -var Polar = _dereq_('../plots/polar/legacy'); var Axes = _dereq_('../plots/cartesian/axes'); var Drawing = _dereq_('../components/drawing'); var Color = _dereq_('../components/color'); var initInteractions = _dereq_('../plots/cartesian/graph_interact').initInteractions; var xmlnsNamespaces = _dereq_('../constants/xmlns_namespaces'); -var svgTextUtils = _dereq_('../lib/svg_text_utils'); var clearSelect = _dereq_('../plots/cartesian/select').clearSelect; var dfltConfig = _dereq_('./plot_config').dfltConfig; @@ -136614,7 +137676,7 @@ var numericNameWarningCount = 0; var numericNameWarningCountLimit = 5; /** - * Main plot-creation function + * Internal plot-creation function * * @param {string id or DOM element} gd * the id or DOM element of the graph container div @@ -136634,7 +137696,7 @@ var numericNameWarningCountLimit = 5; * object containing `data`, `layout`, `config`, and `frames` members * */ -function plot(gd, data, layout, config) { +function _doPlot(gd, data, layout, config) { var frames; gd = Lib.getGraphDiv(gd); @@ -136656,7 +137718,7 @@ function plot(gd, data, layout, config) { // if there's no data or layout, and this isn't yet a plotly plot // container, log a warning to help plotly.js users debug if(!data && !layout && !Lib.isPlotDiv(gd)) { - Lib.warn('Calling Plotly.plot as if redrawing ' + + Lib.warn('Calling _doPlot as if redrawing ' + 'but this container doesn\'t yet have a plot.', gd); } @@ -136712,13 +137774,7 @@ function plot(gd, data, layout, config) { var fullLayout = gd._fullLayout; var hasCartesian = fullLayout._has('cartesian'); - // Legacy polar plots - if(!fullLayout._has('polar') && data && data[0] && data[0].r) { - Lib.log('Legacy polar charts are deprecated!'); - return plotLegacyPolar(gd, data, layout); - } - - // so we don't try to re-call Plotly.plot from inside + // so we don't try to re-call _doPlot from inside // legend and colorbar, if margins changed fullLayout._replotting = true; @@ -136731,12 +137787,6 @@ function plot(gd, data, layout, config) { } } - // polar need a different framework - if(gd.framework !== makePlotFramework) { - gd.framework = makePlotFramework; - makePlotFramework(gd); - } - // clear gradient defs on each .plot call, because we know we'll loop through all traces Drawing.initGradients(gd); @@ -136746,7 +137796,7 @@ function plot(gd, data, layout, config) { // prepare the data and find the autorange // generate calcdata, if we need to - // to force redoing calcdata, just delete it before calling Plotly.plot + // to force redoing calcdata, just delete it before calling _doPlot var recalc = !gd.calcdata || gd.calcdata.length !== (gd._fullData || []).length; if(recalc) Plots.doCalcdata(gd); @@ -137118,99 +138168,6 @@ function setPlotContext(gd, config) { } } -function plotLegacyPolar(gd, data, layout) { - // build or reuse the container skeleton - var plotContainer = d3.select(gd).selectAll('.plot-container') - .data([0]); - plotContainer.enter() - .insert('div', ':first-child') - .classed('plot-container plotly', true); - var paperDiv = plotContainer.selectAll('.svg-container') - .data([0]); - paperDiv.enter().append('div') - .classed('svg-container', true) - .style('position', 'relative'); - - // empty it everytime for now - paperDiv.html(''); - - // fulfill gd requirements - if(data) gd.data = data; - if(layout) gd.layout = layout; - Polar.manager.fillLayout(gd); - - // resize canvas - paperDiv.style({ - width: gd._fullLayout.width + 'px', - height: gd._fullLayout.height + 'px' - }); - - // instantiate framework - gd.framework = Polar.manager.framework(gd); - - // plot - gd.framework({data: gd.data, layout: gd.layout}, paperDiv.node()); - - // set undo point - gd.framework.setUndoPoint(); - - // get the resulting svg for extending it - var polarPlotSVG = gd.framework.svg(); - - // editable title - var opacity = 1; - var txt = gd._fullLayout.title ? gd._fullLayout.title.text : ''; - if(txt === '' || !txt) opacity = 0; - - var titleLayout = function() { - this.call(svgTextUtils.convertToTspans, gd); - // TODO: html/mathjax - // TODO: center title - }; - - var title = polarPlotSVG.select('.title-group text') - .call(titleLayout); - - if(gd._context.edits.titleText) { - var placeholderText = Lib._(gd, 'Click to enter Plot title'); - if(!txt || txt === placeholderText) { - opacity = 0.2; - // placeholder is not going through convertToTspans - // so needs explicit data-unformatted - title.attr({'data-unformatted': placeholderText}) - .text(placeholderText) - .style({opacity: opacity}) - .on('mouseover.opacity', function() { - d3.select(this).transition().duration(100) - .style('opacity', 1); - }) - .on('mouseout.opacity', function() { - d3.select(this).transition().duration(1000) - .style('opacity', 0); - }); - } - - var setContenteditable = function() { - this.call(svgTextUtils.makeEditable, {gd: gd}) - .on('edit', function(text) { - gd.framework({layout: {title: {text: text}}}); - this.text(text) - .call(titleLayout); - this.call(setContenteditable); - }) - .on('cancel', function() { - var txt = this.attr('data-unformatted'); - this.text(txt).call(titleLayout); - }); - }; - title.call(setContenteditable); - } - - gd._context.setBackground(gd, gd._fullLayout.paper_bgcolor); - Plots.addLinks(gd); - - return Promise.resolve(); -} // convenience function to force a full redraw, mostly for use by plotly.js function redraw(gd) { @@ -137224,7 +138181,7 @@ function redraw(gd) { helpers.cleanLayout(gd.layout); gd.calcdata = undefined; - return exports.plot(gd).then(function() { + return exports._doPlot(gd).then(function() { gd.emit('plotly_redraw'); return gd; }); @@ -137245,7 +138202,7 @@ function newPlot(gd, data, layout, config) { Plots.cleanPlot([], {}, gd._fullData || [], gd._fullLayout || {}); Plots.purge(gd); - return exports.plot(gd, data, layout, config); + return exports._doPlot(gd, data, layout, config); } /** @@ -137956,7 +138913,7 @@ function restyle(gd, astr, val, _traces) { var seq = []; if(flags.fullReplot) { - seq.push(exports.plot); + seq.push(exports._doPlot); } else { seq.push(Plots.previousPromises); @@ -138442,10 +139399,6 @@ function relayout(gd, astr, val) { gd = Lib.getGraphDiv(gd); helpers.clearPromiseQueue(gd); - if(gd.framework && gd.framework.isPolar) { - return Promise.resolve(gd); - } - var aobj = {}; if(typeof astr === 'string') { aobj[astr] = val; @@ -138955,10 +139908,6 @@ function update(gd, traceUpdate, layoutUpdate, _traces) { gd = Lib.getGraphDiv(gd); helpers.clearPromiseQueue(gd); - if(gd.framework && gd.framework.isPolar) { - return Promise.resolve(gd); - } - if(!Lib.isPlainObject(traceUpdate)) traceUpdate = {}; if(!Lib.isPlainObject(layoutUpdate)) layoutUpdate = {}; @@ -138985,7 +139934,7 @@ function update(gd, traceUpdate, layoutUpdate, _traces) { // relayoutFlags.layoutReplot and restyleFlags.fullReplot are true seq.push(subroutines.layoutReplot); } else if(restyleFlags.fullReplot) { - seq.push(exports.plot); + seq.push(exports._doPlot); } else { seq.push(Plots.previousPromises); axRangeSupplyDefaultsByPass(gd, relayoutFlags, relayoutSpecs) || Plots.supplyDefaults(gd); @@ -139377,7 +140326,7 @@ function react(gd, data, layout, config) { }); } else if(restyleFlags.fullReplot || relayoutFlags.layoutReplot || configChanged) { gd._fullLayout._skipDefaults = true; - seq.push(exports.plot); + seq.push(exports._doPlot); } else { for(var componentType in relayoutFlags.arrays) { var indices = relayoutFlags.arrays[componentType]; @@ -140276,7 +141225,7 @@ function deleteFrames(gd, frameList) { } /** - * Purge a graph container div back to its initial pre-Plotly.plot state + * Purge a graph container div back to its initial pre-_doPlot state * * @param {string id or DOM element} gd * the id or DOM element of the graph container div @@ -140299,7 +141248,7 @@ function purge(gd) { // remove plot container if(fullLayout._container) fullLayout._container.remove(); - // in contrast to Plotly.Plots.purge which does NOT clear _context! + // in contrast to _doPlots.purge which does NOT clear _context! delete gd._context; return gd; @@ -140480,7 +141429,7 @@ exports.moveTraces = moveTraces; exports.prependTraces = prependTraces; exports.newPlot = newPlot; -exports.plot = plot; +exports._doPlot = _doPlot; exports.purge = purge; exports.react = react; @@ -140498,20 +141447,14 @@ exports._guiUpdate = guiEdit(update); exports._storeDirectGUIEdit = _storeDirectGUIEdit; -},{"../components/color":643,"../components/drawing":665,"../constants/xmlns_namespaces":754,"../lib":778,"../lib/events":767,"../lib/queue":794,"../lib/svg_text_utils":803,"../plots/cartesian/axes":828,"../plots/cartesian/constants":834,"../plots/cartesian/graph_interact":837,"../plots/cartesian/select":847,"../plots/plots":891,"../plots/polar/legacy":899,"../registry":911,"./edit_types":810,"./helpers":811,"./manage_arrays":813,"./plot_config":815,"./plot_schema":816,"./subroutines":818,"d3":169,"fast-isnumeric":241,"has-hover":440}],815:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../components/color":660,"../components/drawing":682,"../constants/xmlns_namespaces":771,"../lib":795,"../lib/events":784,"../lib/queue":811,"../plots/cartesian/axes":845,"../plots/cartesian/constants":851,"../plots/cartesian/graph_interact":854,"../plots/cartesian/select":864,"../plots/plots":908,"../registry":922,"./edit_types":827,"./helpers":828,"./manage_arrays":830,"./plot_config":832,"./plot_schema":833,"./subroutines":835,"@plotly/d3":58,"fast-isnumeric":241,"has-hover":439}],832:[function(_dereq_,module,exports){ + 'use strict'; /** * This will be transferred over to gd and overridden by - * config args to Plotly.plot. + * config args to Plotly.newPlot. * * The defaults are the appropriate settings for plotly.js, * so we get the right experience without any config argument. @@ -140525,94 +141468,77 @@ var configAttributes = { staticPlot: { valType: 'boolean', dflt: false, - }, plotlyServerURL: { valType: 'string', dflt: '', - }, editable: { valType: 'boolean', dflt: false, - }, edits: { annotationPosition: { valType: 'boolean', dflt: false, - }, annotationTail: { valType: 'boolean', dflt: false, - }, annotationText: { valType: 'boolean', dflt: false, - }, axisTitleText: { valType: 'boolean', dflt: false, - }, colorbarPosition: { valType: 'boolean', dflt: false, - }, colorbarTitleText: { valType: 'boolean', dflt: false, - }, legendPosition: { valType: 'boolean', dflt: false, - }, legendText: { valType: 'boolean', dflt: false, - }, shapePosition: { valType: 'boolean', dflt: false, - }, titleText: { valType: 'boolean', dflt: false, - } }, autosizable: { valType: 'boolean', dflt: false, - }, responsive: { valType: 'boolean', dflt: false, - }, fillFrame: { valType: 'boolean', dflt: false, - }, frameMargins: { valType: 'number', dflt: 0, min: 0, max: 0.5, - }, scrollZoom: { @@ -140620,105 +141546,86 @@ var configAttributes = { flags: ['cartesian', 'gl3d', 'geo', 'mapbox'], extras: [true, false], dflt: 'gl3d+geo+mapbox', - }, doubleClick: { valType: 'enumerated', values: [false, 'reset', 'autosize', 'reset+autosize'], dflt: 'reset+autosize', - }, doubleClickDelay: { valType: 'number', dflt: 300, min: 0, - }, showAxisDragHandles: { valType: 'boolean', dflt: true, - }, showAxisRangeEntryBoxes: { valType: 'boolean', dflt: true, - }, showTips: { valType: 'boolean', dflt: true, - }, showLink: { valType: 'boolean', dflt: false, - }, linkText: { valType: 'string', dflt: 'Edit chart', noBlank: true, - }, sendData: { valType: 'boolean', dflt: true, - }, showSources: { valType: 'any', dflt: false, - }, displayModeBar: { valType: 'enumerated', values: ['hover', true, false], dflt: 'hover', - }, showSendToCloud: { valType: 'boolean', dflt: false, - }, showEditInChartStudio: { valType: 'boolean', dflt: false, - }, modeBarButtonsToRemove: { valType: 'any', dflt: [], - }, modeBarButtonsToAdd: { valType: 'any', dflt: [], - }, modeBarButtons: { valType: 'any', dflt: false, - }, toImageButtonOptions: { valType: 'any', dflt: {}, - }, displaylogo: { valType: 'boolean', dflt: true, - }, watermark: { valType: 'boolean', dflt: false, - }, plotGlPixelRatio: { @@ -140726,26 +141633,22 @@ var configAttributes = { dflt: 2, min: 1, max: 4, - }, setBackground: { valType: 'any', dflt: 'transparent', - }, topojsonURL: { valType: 'string', noBlank: true, dflt: 'https://cdn.plot.ly/', - }, mapboxAccessToken: { valType: 'string', dflt: null, - }, logging: { @@ -140753,7 +141656,6 @@ var configAttributes = { min: 0, max: 2, dflt: 1, - }, notifyOnLogging: { @@ -140761,32 +141663,27 @@ var configAttributes = { min: 0, max: 2, dflt: 0, - }, queueLength: { valType: 'integer', min: 0, dflt: 0, - }, globalTransforms: { valType: 'any', dflt: [], - }, locale: { valType: 'string', dflt: 'en-US', - }, locales: { valType: 'any', dflt: {}, - } }; @@ -140813,14 +141710,8 @@ module.exports = { dfltConfig: dfltConfig }; -},{}],816:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],833:[function(_dereq_,module,exports){ + 'use strict'; @@ -140833,13 +141724,8 @@ var frameAttributes = _dereq_('../plots/frame_attributes'); var animationAttributes = _dereq_('../plots/animation_attributes'); var configAttributes = _dereq_('./plot_config').configAttributes; -// polar attributes are not part of the Registry yet -var polarAreaAttrs = _dereq_('../plots/polar/legacy/area_attributes'); -var polarAxisAttrs = _dereq_('../plots/polar/legacy/axis_attributes'); - var editTypes = _dereq_('./edit_types'); -var extendFlat = Lib.extendFlat; var extendDeepAll = Lib.extendDeepAll; var isPlainObject = Lib.isPlainObject; var isArrayOrTypedArray = Lib.isArrayOrTypedArray; @@ -140871,7 +141757,7 @@ exports.UNDERSCORE_ATTRS = UNDERSCORE_ATTRS; exports.get = function() { var traces = {}; - Registry.allTypes.concat('area').forEach(function(type) { + Registry.allTypes.forEach(function(type) { traces[type] = getTraceAttributes(type); }); @@ -140890,7 +141776,6 @@ exports.get = function() { layout: editTypes.layout }, impliedEdits: { - } }, @@ -141083,8 +141968,6 @@ exports.getTraceValObject = function(trace, parts) { moduleAttrs = (Registry.transformsRegistry[transforms[tNum].type] || {}).attributes; valObject = moduleAttrs && moduleAttrs[parts[2]]; i = 3; // start recursing only inside the transform - } else if(trace.type === 'area') { - valObject = polarAreaAttrs[head]; } else { // first look in the module for this trace // components have already merged their trace attributes in here @@ -141185,12 +142068,7 @@ function layoutHeadAttr(fullLayout, head) { if(head in baseLayoutAttributes) return baseLayoutAttributes[head]; - // Polar doesn't populate _modules or _basePlotModules - // just fall back on these when the others fail - if(head === 'radialaxis' || head === 'angularaxis') { - return polarAxisAttrs[head]; - } - return polarAxisAttrs.layout[head] || false; + return false; } function recurseIntoValObject(valObject, parts, i) { @@ -141248,13 +142126,8 @@ function isIndex(val) { function getTraceAttributes(type) { var _module, basePlotModule; - if(type === 'area') { - _module = { attributes: polarAreaAttrs }; - basePlotModule = {}; - } else { - _module = Registry.modules[type]._module, - basePlotModule = _module.basePlotModule; - } + _module = Registry.modules[type]._module, + basePlotModule = _module.basePlotModule; var attributes = {}; @@ -141352,9 +142225,6 @@ function getLayoutAttributes() { } } - // polar layout attributes - layoutAttributes = assignPolarLayoutAttrs(layoutAttributes); - // add registered components layout attributes for(key in Registry.componentsRegistry) { _module = Registry.componentsRegistry[key]; @@ -141432,21 +142302,14 @@ function mergeValTypeAndRole(attrs) { function makeSrcAttr(attrName) { return { valType: 'string', - - editType: 'none' }; } function callback(attr, attrName, attrs) { if(exports.isValObject(attr)) { - if(attr.valType === 'data_array') { - // all 'data_array' attrs have role 'data' - attr.role = 'data'; - // all 'data_array' attrs have a corresponding 'src' attr - attrs[attrName + 'src'] = makeSrcAttr(attrName); - } else if(attr.arrayOk === true) { - // all 'arrayOk' attrs have a corresponding 'src' attr + if(attr.arrayOk === true || attr.valType === 'data_array') { + // all 'arrayOk' and 'data_array' attrs have a corresponding 'src' attr attrs[attrName + 'src'] = makeSrcAttr(attrName); } } else if(isPlainObject(attr)) { @@ -141499,16 +142362,6 @@ function stringify(attrs) { walk(attrs); } -function assignPolarLayoutAttrs(layoutAttributes) { - extendFlat(layoutAttributes, { - radialaxis: polarAxisAttrs.radialaxis, - angularaxis: polarAxisAttrs.angularaxis - }); - - extendFlat(layoutAttributes, polarAxisAttrs.layout); - - return layoutAttributes; -} function handleBasePlotModule(layoutAttributes, _module, astr) { var np = nestedProperty(layoutAttributes, astr); @@ -141524,14 +142377,8 @@ function insertAttrs(baseAttrs, newAttrs, astr) { np.set(extendDeepAll(np.get() || {}, newAttrs)); } -},{"../lib":778,"../plots/animation_attributes":822,"../plots/attributes":824,"../plots/frame_attributes":857,"../plots/layout_attributes":882,"../plots/polar/legacy/area_attributes":897,"../plots/polar/legacy/axis_attributes":898,"../registry":911,"./edit_types":810,"./plot_config":815}],817:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../lib":795,"../plots/animation_attributes":839,"../plots/attributes":841,"../plots/frame_attributes":874,"../plots/layout_attributes":899,"../registry":922,"./edit_types":827,"./plot_config":832}],834:[function(_dereq_,module,exports){ + 'use strict'; @@ -141544,16 +142391,12 @@ var TEMPLATEITEMNAME = 'templateitemname'; var templateAttrs = { name: { valType: 'string', - editType: 'none', - } }; templateAttrs[TEMPLATEITEMNAME] = { valType: 'string', - editType: 'calc', - }; /** @@ -141836,18 +142679,12 @@ exports.arrayEditor = function(parentIn, containerStr, itemOut) { }; }; -},{"../lib":778,"../plots/attributes":824}],818:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../lib":795,"../plots/attributes":841}],835:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Registry = _dereq_('../registry'); var Plots = _dereq_('../plots/plots'); @@ -142375,7 +143212,7 @@ exports.doColorBars = function(gd) { exports.layoutReplot = function(gd) { var layout = gd.layout; gd.layout = undefined; - return Registry.call('plot', gd, '', layout); + return Registry.call('_doPlot', gd, '', layout); }; exports.doLegend = function(gd) { @@ -142560,14 +143397,8 @@ exports.drawMarginPushers = function(gd) { Registry.getComponentMethod('colorbar', 'draw')(gd); }; -},{"../components/color":643,"../components/drawing":665,"../components/modebar":703,"../components/titles":738,"../constants/alignment":745,"../lib":778,"../lib/clear_gl_canvases":762,"../plots/cartesian/autorange":827,"../plots/cartesian/axes":828,"../plots/cartesian/constraints":835,"../plots/plots":891,"../registry":911,"d3":169}],819:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../components/color":660,"../components/drawing":682,"../components/modebar":720,"../components/titles":755,"../constants/alignment":762,"../lib":795,"../lib/clear_gl_canvases":779,"../plots/cartesian/autorange":844,"../plots/cartesian/axes":845,"../plots/cartesian/constraints":852,"../plots/plots":908,"../registry":922,"@plotly/d3":58}],836:[function(_dereq_,module,exports){ + 'use strict'; @@ -143022,14 +143853,8 @@ function format(opts) { return opts; } -},{"../lib":778,"../plots/attributes":824,"../plots/plots":891,"./plot_config":815,"./plot_schema":816,"./plot_template":817}],820:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../lib":795,"../plots/attributes":841,"../plots/plots":908,"./plot_config":832,"./plot_schema":833,"./plot_template":834}],837:[function(_dereq_,module,exports){ + 'use strict'; @@ -143049,33 +143874,27 @@ var attrs = { 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: false, - }, imageDataOnly: { valType: 'boolean', dflt: false, - } }; @@ -143232,7 +144051,7 @@ function toImage(gd, opts) { } return new Promise(function(resolve, reject) { - plotApi.plot(clonedGd, data, layoutImage, configImage) + plotApi.newPlot(clonedGd, data, layoutImage, configImage) .then(redrawFunc) .then(wait) .then(convert) @@ -143243,14 +144062,8 @@ function toImage(gd, opts) { module.exports = toImage; -},{"../lib":778,"../plots/plots":891,"../snapshot/helpers":915,"../snapshot/svgtoimg":917,"../snapshot/tosvg":919,"../version":1370,"./plot_api":814,"fast-isnumeric":241}],821:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../lib":795,"../plots/plots":908,"../snapshot/helpers":926,"../snapshot/svgtoimg":928,"../snapshot/tosvg":930,"../version":1381,"./plot_api":831,"fast-isnumeric":241}],838:[function(_dereq_,module,exports){ + 'use strict'; @@ -143674,14 +144487,8 @@ function convertPathToAttributeString(path) { return astr; } -},{"../lib":778,"../plots/plots":891,"./plot_config":815,"./plot_schema":816}],822:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../lib":795,"../plots/plots":908,"./plot_config":832,"./plot_schema":833}],839:[function(_dereq_,module,exports){ + 'use strict'; @@ -143689,46 +144496,34 @@ module.exports = { mode: { valType: 'enumerated', dflt: 'afterall', - values: ['immediate', 'next', 'afterall'], - }, direction: { valType: 'enumerated', - values: ['forward', 'reverse'], dflt: 'forward', - }, fromcurrent: { valType: 'boolean', dflt: false, - - }, frame: { duration: { valType: 'number', - min: 0, dflt: 500, - }, redraw: { valType: 'boolean', - dflt: true, - }, }, transition: { duration: { valType: 'number', - min: 0, dflt: 500, editType: 'none', - }, easing: { valType: 'enumerated', @@ -143771,29 +144566,19 @@ module.exports = { 'back-in-out', 'bounce-in-out' ], - editType: 'none', - }, ordering: { valType: 'enumerated', values: ['layout first', 'traces first'], dflt: 'layout first', - editType: 'none', - } } }; -},{}],823:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],840:[function(_dereq_,module,exports){ + 'use strict'; @@ -143881,14 +144666,8 @@ module.exports = function handleArrayContainerDefaults(parentObjIn, parentObjOut return contOut; }; -},{"../lib":778,"../plot_api/plot_template":817}],824:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../lib":795,"../plot_api/plot_template":834}],841:[function(_dereq_,module,exports){ + 'use strict'; @@ -143897,7 +144676,6 @@ var fxAttrs = _dereq_('../components/fx/attributes'); module.exports = { type: { valType: 'enumerated', - values: [], // listed dynamically dflt: 'scatter', editType: 'calc+clearAxisTypes', @@ -143906,64 +144684,48 @@ module.exports = { visible: { valType: 'enumerated', values: [true, false, 'legendonly'], - dflt: true, editType: 'calc', - }, showlegend: { valType: 'boolean', - dflt: true, editType: 'style', - }, legendgroup: { valType: 'string', - dflt: '', editType: 'style', - }, opacity: { valType: 'number', - min: 0, max: 1, dflt: 1, editType: 'style', - }, name: { valType: 'string', - editType: 'style', - }, uid: { valType: 'string', - editType: 'plot', anim: true, - }, ids: { valType: 'data_array', editType: 'calc', anim: true, - }, customdata: { valType: 'data_array', editType: 'calc', - }, meta: { valType: 'any', arrayOk: true, - editType: 'plot', - }, // N.B. these cannot be 'data_array' as they do not have the same length as @@ -143973,20 +144735,16 @@ module.exports = { // https://github.com/plotly/plotly.js/issues/1894 selectedpoints: { valType: 'any', - editType: 'calc', - }, hoverinfo: { valType: 'flaglist', - flags: ['x', 'y', 'z', 'text', 'name'], extras: ['all', 'none', 'skip'], arrayOk: true, dflt: 'all', editType: 'none', - }, hoverlabel: fxAttrs.hoverlabel, stream: { @@ -143994,42 +144752,29 @@ module.exports = { valType: 'string', noBlank: true, strict: true, - editType: 'calc', - }, maxpoints: { valType: 'number', min: 0, max: 10000, dflt: 500, - editType: 'calc', - }, editType: 'calc' }, transforms: { _isLinkedToArray: 'transform', editType: 'calc', - }, uirevision: { valType: 'any', - editType: 'none', - } }; -},{"../components/fx/attributes":674}],825:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../components/fx/attributes":691}],842:[function(_dereq_,module,exports){ + 'use strict'; @@ -144114,14 +144859,8 @@ module.exports = function alignPeriod(trace, ax, axLetter, vals) { return newVals; }; -},{"../../constants/numerical":753,"../../lib":778,"fast-isnumeric":241}],826:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/numerical":770,"../../lib":795,"fast-isnumeric":241}],843:[function(_dereq_,module,exports){ + 'use strict'; @@ -144129,28 +144868,18 @@ module.exports = function alignPeriod(trace, ax, axLetter, vals) { module.exports = { xaxis: { valType: 'subplotid', - dflt: 'x', editType: 'calc+clearAxisTypes', - }, yaxis: { valType: 'subplotid', - dflt: 'y', editType: 'calc+clearAxisTypes', - } }; -},{}],827:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],844:[function(_dereq_,module,exports){ + 'use strict'; @@ -144752,18 +145481,12 @@ function goodNumber(v) { function lessOrEqual(v0, v1) { return v0 <= v1; } function greaterOrEqual(v0, v1) { return v0 >= v1; } -},{"../../constants/numerical":753,"../../lib":778,"../../registry":911,"./axis_ids":831,"fast-isnumeric":241}],828:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/numerical":770,"../../lib":795,"../../registry":922,"./axis_ids":848,"fast-isnumeric":241}],845:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var isNumeric = _dereq_('fast-isnumeric'); var Plots = _dereq_('../../plots/plots'); @@ -148472,14 +149195,8 @@ function moveOutsideBreak(v, ax) { return v; } -},{"../../components/color":643,"../../components/drawing":665,"../../components/titles":738,"../../constants/alignment":745,"../../constants/numerical":753,"../../lib":778,"../../lib/svg_text_utils":803,"../../plots/plots":891,"../../registry":911,"./autorange":827,"./axis_autotype":829,"./axis_ids":831,"./clean_ticks":833,"./layout_attributes":842,"./set_convert":848,"d3":169,"fast-isnumeric":241}],829:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../components/drawing":682,"../../components/titles":755,"../../constants/alignment":762,"../../constants/numerical":770,"../../lib":795,"../../lib/svg_text_utils":820,"../../plots/plots":908,"../../registry":922,"./autorange":844,"./axis_autotype":846,"./axis_ids":848,"./clean_ticks":850,"./layout_attributes":859,"./set_convert":865,"@plotly/d3":58,"fast-isnumeric":241}],846:[function(_dereq_,module,exports){ + 'use strict'; @@ -148603,14 +149320,8 @@ function multiCategory(a) { return isArrayOrTypedArray(a[0]) && isArrayOrTypedArray(a[1]); } -},{"../../constants/numerical":753,"../../lib":778,"fast-isnumeric":241}],830:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/numerical":770,"../../lib":795,"fast-isnumeric":241}],847:[function(_dereq_,module,exports){ + 'use strict'; @@ -148911,14 +149622,8 @@ function indexOfDay(v) { ]; } -},{"../../lib":778,"../../registry":911,"../array_container_defaults":823,"./category_order_defaults":832,"./constants":834,"./layout_attributes":842,"./line_grid_defaults":844,"./set_convert":848,"./tick_label_defaults":849,"./tick_mark_defaults":850,"./tick_value_defaults":851,"fast-isnumeric":241}],831:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../registry":922,"../array_container_defaults":840,"./category_order_defaults":849,"./constants":851,"./layout_attributes":859,"./line_grid_defaults":861,"./set_convert":865,"./tick_label_defaults":866,"./tick_mark_defaults":867,"./tick_value_defaults":868,"fast-isnumeric":241}],848:[function(_dereq_,module,exports){ + 'use strict'; @@ -149067,14 +149772,8 @@ exports.isLinked = function(fullLayout, axId) { ); }; -},{"../../registry":911,"./constants":834}],832:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../registry":922,"./constants":851}],849:[function(_dereq_,module,exports){ + 'use strict'; @@ -149161,14 +149860,8 @@ module.exports = function handleCategoryOrderDefaults(containerIn, containerOut, } }; -},{}],833:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],850:[function(_dereq_,module,exports){ + 'use strict'; @@ -149253,14 +149946,8 @@ exports.tick0 = function(tick0, axType, calendar, dtick) { return isNumeric(tick0) ? Number(tick0) : 0; }; -},{"../../constants/numerical":753,"../../lib":778,"fast-isnumeric":241}],834:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/numerical":770,"../../lib":795,"fast-isnumeric":241}],851:[function(_dereq_,module,exports){ + 'use strict'; @@ -149345,14 +150032,8 @@ module.exports = { } }; -},{"../../lib/regex":795}],835:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib/regex":812}],852:[function(_dereq_,module,exports){ + 'use strict'; @@ -149996,18 +150677,12 @@ function updateDomain(ax, factor) { ax.setScale(); } -},{"../../constants/alignment":745,"../../constants/numerical":753,"../../lib":778,"./autorange":827,"./axis_ids":831,"./layout_attributes":842,"./scale_zoom":846,"./set_convert":848}],836:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/alignment":762,"../../constants/numerical":770,"../../lib":795,"./autorange":844,"./axis_ids":848,"./layout_attributes":859,"./scale_zoom":863,"./set_convert":865}],853:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var tinycolor = _dereq_('tinycolor2'); var supportsPassive = _dereq_('has-passive-events'); @@ -151334,19 +152009,13 @@ module.exports = { attachWheelEventHandler: attachWheelEventHandler }; -},{"../../components/color":643,"../../components/dragelement":662,"../../components/dragelement/helpers":661,"../../components/drawing":665,"../../components/fx":683,"../../constants/alignment":745,"../../lib":778,"../../lib/clear_gl_canvases":762,"../../lib/setcursor":799,"../../lib/svg_text_utils":803,"../../plot_api/subroutines":818,"../../registry":911,"../plots":891,"./axes":828,"./axis_ids":831,"./constants":834,"./scale_zoom":846,"./select":847,"d3":169,"has-passive-events":441,"tinycolor2":576}],837:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../components/dragelement":679,"../../components/dragelement/helpers":678,"../../components/drawing":682,"../../components/fx":700,"../../constants/alignment":762,"../../lib":795,"../../lib/clear_gl_canvases":779,"../../lib/setcursor":816,"../../lib/svg_text_utils":820,"../../plot_api/subroutines":835,"../../registry":922,"../plots":908,"./axes":845,"./axis_ids":848,"./constants":851,"./scale_zoom":863,"./select":864,"@plotly/d3":58,"has-passive-events":440,"tinycolor2":592}],854:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Fx = _dereq_('../../components/fx'); var dragElement = _dereq_('../../components/dragelement'); @@ -151502,14 +152171,8 @@ exports.updateFx = function(gd) { setCursor(fullLayout._draggers, cursor); }; -},{"../../components/dragelement":662,"../../components/fx":683,"../../lib/setcursor":799,"./constants":834,"./dragbox":836,"d3":169}],838:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/dragelement":679,"../../components/fx":700,"../../lib/setcursor":816,"./constants":851,"./dragbox":853,"@plotly/d3":58}],855:[function(_dereq_,module,exports){ + 'use strict'; @@ -151538,21 +152201,15 @@ module.exports = { clearSelect: clearSelect }; -},{}],839:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],856:[function(_dereq_,module,exports){ + 'use strict'; var strTranslate = _dereq_('../../lib').strTranslate; -// in v2 (once log ranges are fixed), +// in v3 (once log ranges are fixed), // we'll be able to p2r here for all axis types function p2r(ax, v) { switch(ax.type) { @@ -151595,14 +152252,8 @@ module.exports = { getTransform: getTransform }; -},{"../../lib":778}],840:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795}],857:[function(_dereq_,module,exports){ + 'use strict'; @@ -151673,19 +152324,13 @@ module.exports = function makeIncludeComponents(containerArrayName) { }; }; -},{"../../lib":778,"../../registry":911,"./axis_ids":831}],841:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../registry":922,"./axis_ids":848}],858:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Registry = _dereq_('../../registry'); var Lib = _dereq_('../../lib'); @@ -152291,14 +152936,8 @@ exports.toSVG = function(gd) { exports.updateFx = _dereq_('./graph_interact').updateFx; -},{"../../components/drawing":665,"../../constants/xmlns_namespaces":754,"../../lib":778,"../../registry":911,"../get_data":865,"../plots":891,"./attributes":826,"./axis_ids":831,"./constants":834,"./graph_interact":837,"./layout_attributes":842,"./layout_defaults":843,"./transition_axes":852,"d3":169}],842:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/drawing":682,"../../constants/xmlns_namespaces":771,"../../lib":795,"../../registry":922,"../get_data":882,"../plots":908,"./attributes":843,"./axis_ids":848,"./constants":851,"./graph_interact":854,"./layout_attributes":859,"./layout_defaults":860,"./transition_axes":869,"@plotly/d3":58}],859:[function(_dereq_,module,exports){ + 'use strict'; @@ -152318,34 +152957,25 @@ var DAY_OF_WEEK = constants.WEEKDAY_PATTERN; module.exports = { visible: { valType: 'boolean', - editType: 'plot', - }, color: { valType: 'color', dflt: colorAttrs.defaultLine, - editType: 'ticks', - }, title: { text: { valType: 'string', - editType: 'ticks', - }, font: fontAttrs({ editType: 'ticks', - }), standoff: { valType: 'number', - min: 0, editType: 'ticks', - }, editType: 'ticks' }, @@ -152356,43 +152986,34 @@ module.exports = { // to gd.data like the others are. values: ['-', 'linear', 'log', 'date', 'category', 'multicategory'], dflt: '-', - editType: 'calc', // we forget when an axis has been autotyped, just writing the auto // value back to the input - so it doesn't make sense to template this. // Note: we do NOT prohibit this in `coerce`, so if someone enters a // type in the template explicitly it will be honored as the default. _noTemplating: true, - }, autotypenumbers: { valType: 'enumerated', values: ['convert types', 'strict'], dflt: 'convert types', - editType: 'calc', - }, autorange: { valType: 'enumerated', values: [true, false, 'reversed'], dflt: true, - editType: 'axrange', impliedEdits: {'range[0]': undefined, 'range[1]': undefined}, - }, rangemode: { valType: 'enumerated', values: ['normal', 'tozero', 'nonnegative'], dflt: 'normal', - editType: 'plot', - }, range: { valType: 'info_array', - items: [ {valType: 'any', editType: 'axrange', impliedEdits: {'^autorange': false}, anim: true}, {valType: 'any', editType: 'axrange', impliedEdits: {'^autorange': false}, anim: true} @@ -152400,14 +153021,11 @@ module.exports = { editType: 'axrange', impliedEdits: {'autorange': false}, anim: true, - }, fixedrange: { valType: 'boolean', dflt: false, - editType: 'calc', - }, // scaleanchor: not used directly, just put here for reference // values are any opposite-letter axis id @@ -152417,32 +153035,24 @@ module.exports = { constants.idRegex.x.toString(), constants.idRegex.y.toString() ], - editType: 'plot', - }, scaleratio: { valType: 'number', min: 0, dflt: 1, - editType: 'plot', - }, constrain: { valType: 'enumerated', values: ['range', 'domain'], - editType: 'plot', - }, // constraintoward: not used directly, just put here for reference constraintoward: { valType: 'enumerated', values: ['left', 'center', 'right', 'top', 'middle', 'bottom'], - editType: 'plot', - }, matches: { valType: 'enumerated', @@ -152450,58 +153060,46 @@ module.exports = { constants.idRegex.x.toString(), constants.idRegex.y.toString() ], - editType: 'calc', - }, rangebreaks: templatedArray('rangebreak', { enabled: { valType: 'boolean', - dflt: true, editType: 'calc', - }, bounds: { valType: 'info_array', - items: [ {valType: 'any', editType: 'calc'}, {valType: 'any', editType: 'calc'} ], editType: 'calc', - }, pattern: { valType: 'enumerated', values: [DAY_OF_WEEK, HOUR, ''], - editType: 'calc', - }, values: { valType: 'info_array', freeLength: true, - editType: 'calc', items: { valType: 'any', editType: 'calc' }, - }, dvalue: { // TODO could become 'any' to add support for 'months', 'years' valType: 'number', - editType: 'calc', min: 0, dflt: ONEDAY, - }, /* @@ -152510,16 +153108,12 @@ module.exports = { min: 0, dflt: 0, // for *date* axes, maybe something else for *linear* editType: 'calc', - - }, gapmode: { valType: 'enumerated', values: ['pixels', 'fraction'], dflt: 'pixels', editType: 'calc', - - }, */ @@ -152536,65 +153130,49 @@ module.exports = { tickmode: { valType: 'enumerated', values: ['auto', 'linear', 'array'], - editType: 'ticks', impliedEdits: {tick0: undefined, dtick: undefined}, - }, nticks: { valType: 'integer', min: 0, dflt: 0, - editType: 'ticks', - }, tick0: { valType: 'any', - editType: 'ticks', impliedEdits: {tickmode: 'linear'}, - }, dtick: { valType: 'any', - editType: 'ticks', impliedEdits: {tickmode: 'linear'}, - }, tickvals: { valType: 'data_array', editType: 'ticks', - }, ticktext: { valType: 'data_array', editType: 'ticks', - }, ticks: { valType: 'enumerated', values: ['outside', 'inside', ''], - editType: 'ticks', - }, tickson: { valType: 'enumerated', values: ['labels', 'boundaries'], - dflt: 'labels', editType: 'ticks', - }, ticklabelmode: { valType: 'enumerated', values: ['instant', 'period'], dflt: 'instant', - editType: 'ticks', - }, // ticklabelposition: not used directly, as values depend on direction (similar to side) // left/right options are for x axes, and top/bottom options are for y axes @@ -152608,291 +153186,214 @@ module.exports = { 'outside bottom', 'inside bottom' ], dflt: 'outside', - editType: 'calc', - }, mirror: { valType: 'enumerated', values: [true, 'ticks', false, 'all', 'allticks'], dflt: false, - editType: 'ticks+layoutstyle', - }, ticklen: { valType: 'number', min: 0, dflt: 5, - editType: 'ticks', - }, tickwidth: { valType: 'number', min: 0, dflt: 1, - editType: 'ticks', - }, tickcolor: { valType: 'color', dflt: colorAttrs.defaultLine, - editType: 'ticks', - }, showticklabels: { valType: 'boolean', dflt: true, - editType: 'ticks', - }, automargin: { valType: 'boolean', dflt: false, - editType: 'ticks', - }, showspikes: { valType: 'boolean', dflt: false, - editType: 'modebar', - }, spikecolor: { valType: 'color', dflt: null, - editType: 'none', - }, spikethickness: { valType: 'number', dflt: 3, - editType: 'none', - }, spikedash: extendFlat({}, dash, {dflt: 'dash', editType: 'none'}), spikemode: { valType: 'flaglist', flags: ['toaxis', 'across', 'marker'], - dflt: 'toaxis', editType: 'none', - }, spikesnap: { valType: 'enumerated', values: ['data', 'cursor', 'hovered data'], dflt: 'data', - editType: 'none', - }, tickfont: fontAttrs({ editType: 'ticks', - }), tickangle: { valType: 'angle', dflt: 'auto', - editType: 'ticks', - }, tickprefix: { valType: 'string', dflt: '', - editType: 'ticks', - }, showtickprefix: { valType: 'enumerated', values: ['all', 'first', 'last', 'none'], dflt: 'all', - editType: 'ticks', - }, ticksuffix: { valType: 'string', dflt: '', - editType: 'ticks', - }, showticksuffix: { valType: 'enumerated', values: ['all', 'first', 'last', 'none'], dflt: 'all', - editType: 'ticks', - }, showexponent: { valType: 'enumerated', values: ['all', 'first', 'last', 'none'], dflt: 'all', - editType: 'ticks', - }, exponentformat: { valType: 'enumerated', values: ['none', 'e', 'E', 'power', 'SI', 'B'], dflt: 'B', - editType: 'ticks', - }, minexponent: { valType: 'number', dflt: 3, min: 0, - editType: 'ticks', - }, separatethousands: { valType: 'boolean', dflt: false, - editType: 'ticks', - }, tickformat: { valType: 'string', dflt: '', - editType: 'ticks', - }, tickformatstops: templatedArray('tickformatstop', { enabled: { valType: 'boolean', - dflt: true, editType: 'ticks', - }, dtickrange: { valType: 'info_array', - items: [ {valType: 'any', editType: 'ticks'}, {valType: 'any', editType: 'ticks'} ], editType: 'ticks', - }, value: { valType: 'string', dflt: '', - editType: 'ticks', - }, editType: 'ticks' }), hoverformat: { valType: 'string', dflt: '', - editType: 'none', - }, // lines and grids showline: { valType: 'boolean', dflt: false, - editType: 'ticks+layoutstyle', - }, linecolor: { valType: 'color', dflt: colorAttrs.defaultLine, - editType: 'layoutstyle', - }, linewidth: { valType: 'number', min: 0, dflt: 1, - editType: 'ticks+layoutstyle', - }, showgrid: { valType: 'boolean', - editType: 'ticks', - }, gridcolor: { valType: 'color', dflt: colorAttrs.lightLine, - editType: 'ticks', - }, gridwidth: { valType: 'number', min: 0, dflt: 1, - editType: 'ticks', - }, zeroline: { valType: 'boolean', - editType: 'ticks', - }, zerolinecolor: { valType: 'color', dflt: colorAttrs.defaultLine, - editType: 'ticks', - }, zerolinewidth: { valType: 'number', dflt: 1, - editType: 'ticks', - }, showdividers: { valType: 'boolean', dflt: true, - editType: 'ticks', - }, dividercolor: { valType: 'color', dflt: colorAttrs.defaultLine, - editType: 'ticks', - }, dividerwidth: { valType: 'number', dflt: 1, - editType: 'ticks', - }, // TODO dividerlen: that would override "to label base" length? @@ -152906,18 +153407,14 @@ module.exports = { constants.idRegex.x.toString(), constants.idRegex.y.toString() ], - editType: 'plot', - }, // side: not used directly, as values depend on direction // values are top, bottom for x axes, and left, right for y side: { valType: 'enumerated', values: ['top', 'bottom', 'left', 'right'], - editType: 'plot', - }, // overlaying: not used directly, just put here for reference // values are false and any other same-letter axis id that's not @@ -152929,37 +153426,29 @@ module.exports = { constants.idRegex.x.toString(), constants.idRegex.y.toString() ], - editType: 'plot', - }, layer: { valType: 'enumerated', values: ['above traces', 'below traces'], dflt: 'above traces', - editType: 'plot', - }, 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', - }, position: { valType: 'number', min: 0, max: 1, dflt: 0, - editType: 'plot', - }, categoryorder: { valType: 'enumerated', @@ -152973,52 +153462,35 @@ module.exports = { 'median ascending', 'median descending' ], dflt: 'trace', - editType: 'calc', - }, categoryarray: { valType: 'data_array', - editType: 'calc', - }, uirevision: { valType: 'any', - editType: 'none', - }, editType: 'calc', _deprecated: { autotick: { valType: 'boolean', - editType: 'ticks', - }, title: { valType: 'string', - editType: 'ticks', - }, titlefont: fontAttrs({ editType: 'ticks', - }) } }; -},{"../../components/color/attributes":642,"../../components/drawing/attributes":664,"../../constants/docs":748,"../../constants/numerical":753,"../../lib/extend":768,"../../plot_api/plot_template":817,"../font_attributes":856,"./constants":834}],843:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color/attributes":659,"../../components/drawing/attributes":681,"../../constants/docs":765,"../../constants/numerical":770,"../../lib/extend":785,"../../plot_api/plot_template":834,"../font_attributes":873,"./constants":851}],860:[function(_dereq_,module,exports){ + 'use strict'; @@ -153398,14 +153870,8 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) { }); }; -},{"../../components/color":643,"../../components/fx/helpers":679,"../../components/fx/hovermode_defaults":682,"../../lib":778,"../../plot_api/plot_template":817,"../../registry":911,"../layout_attributes":882,"./axis_defaults":830,"./axis_ids":831,"./constants":834,"./constraints":835,"./layout_attributes":842,"./position_defaults":845,"./type_defaults":853}],844:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../components/fx/helpers":696,"../../components/fx/hovermode_defaults":699,"../../lib":795,"../../plot_api/plot_template":834,"../../registry":922,"../layout_attributes":899,"./axis_defaults":847,"./axis_ids":848,"./constants":851,"./constraints":852,"./layout_attributes":859,"./position_defaults":862,"./type_defaults":870}],861:[function(_dereq_,module,exports){ + 'use strict'; @@ -153463,14 +153929,8 @@ module.exports = function handleLineGridDefaults(containerIn, containerOut, coer } }; -},{"../../components/color/attributes":642,"../../lib":778,"tinycolor2":576}],845:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color/attributes":659,"../../lib":795,"tinycolor2":592}],862:[function(_dereq_,module,exports){ + 'use strict'; @@ -153551,14 +154011,8 @@ module.exports = function handlePositionDefaults(containerIn, containerOut, coer return containerOut; }; -},{"../../lib":778,"fast-isnumeric":241}],846:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"fast-isnumeric":241}],863:[function(_dereq_,module,exports){ + 'use strict'; @@ -153580,14 +154034,8 @@ module.exports = function scaleZoom(ax, factor, centerFraction) { ax.setScale(); }; -},{"../../constants/alignment":745}],847:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/alignment":762}],864:[function(_dereq_,module,exports){ + 'use strict'; @@ -153938,9 +154386,9 @@ function prepSelect(e, startX, startY, dragOptions, mode) { } if(clickmode === 'event') { - // TODO: remove in v2 - this was probably never intended to work as it does, + // TODO: remove in v3 - this was probably never intended to work as it does, // but in case anyone depends on it we don't want to break it now. - // Note that click-to-select introduced pre v2 also emitts proper + // Note that click-to-select introduced pre v3 also emitts proper // event data when clickmode is having 'select' in its flag list. gd.emit('plotly_selected', undefined); } @@ -154523,18 +154971,12 @@ module.exports = { selectOnClick: selectOnClick }; -},{"../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../components/dragelement/helpers":678,"../../components/drawing":682,"../../components/fx":700,"../../components/fx/helpers":696,"../../components/shapes/draw_newshape/display_outlines":745,"../../components/shapes/draw_newshape/helpers":746,"../../components/shapes/draw_newshape/newshapes":747,"../../lib":795,"../../lib/clear_gl_canvases":779,"../../lib/polygon":807,"../../lib/throttle":821,"../../plot_api/subroutines":835,"../../registry":922,"./axis_ids":848,"./constants":851,"./handle_outline":855,"./helpers":856,"polybooljs":501}],865:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var utcFormat = _dereq_('d3-time-format').utcFormat; var isNumeric = _dereq_('fast-isnumeric'); @@ -154584,7 +155026,7 @@ function isValidCategory(v) { * - category: calcdata format (c), and will stay that way because * the data format has no continuous mapping * - log: linearized (l) format - * TODO: in v2.0 we plan to change it to data format. At that point + * TODO: in v3.0 we plan to change it to data format. At that point * shapes will work the same way as ranges, tick0, and annotations * so they can use this conversion too. * @@ -154621,7 +155063,7 @@ module.exports = function setConvert(ax, fullLayout) { if((opts || {}).msUTC && isNumeric(v)) { // For now it is only used // to fix bar length in milliseconds & gl3d ticks - // It could be applied in other places in v2 + // It could be applied in other places in v3 return +v; } @@ -155481,14 +155923,8 @@ module.exports = function setConvert(ax, fullLayout) { delete ax._forceTick0; }; -},{"../../constants/numerical":753,"../../lib":778,"./axis_ids":831,"./constants":834,"d3":169,"d3-time-format":166,"fast-isnumeric":241}],849:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/numerical":770,"../../lib":795,"./axis_ids":848,"./constants":851,"@plotly/d3":58,"d3-time-format":168,"fast-isnumeric":241}],866:[function(_dereq_,module,exports){ + 'use strict'; @@ -155608,14 +156044,8 @@ function tickformatstopDefaults(valueIn, valueOut) { } } -},{"../../components/color":643,"../../lib":778,"../array_container_defaults":823,"./layout_attributes":842}],850:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../lib":795,"../array_container_defaults":840,"./layout_attributes":859}],867:[function(_dereq_,module,exports){ + 'use strict'; @@ -155641,14 +156071,8 @@ module.exports = function handleTickDefaults(containerIn, containerOut, coerce, } }; -},{"../../lib":778,"./layout_attributes":842}],851:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"./layout_attributes":859}],868:[function(_dereq_,module,exports){ + 'use strict'; @@ -155688,18 +156112,12 @@ module.exports = function handleTickValueDefaults(containerIn, containerOut, coe } }; -},{"../../lib":778,"./clean_ticks":833}],852:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"./clean_ticks":850}],869:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Registry = _dereq_('../../registry'); var Lib = _dereq_('../../lib'); @@ -155901,14 +156319,8 @@ module.exports = function transitionAxes(gd, edits, transitionOpts, makeOnComple return Promise.resolve(); }; -},{"../../components/drawing":665,"../../lib":778,"../../registry":911,"./axes":828,"d3":169}],853:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/drawing":682,"../../lib":795,"../../registry":922,"./axes":845,"@plotly/d3":58}],870:[function(_dereq_,module,exports){ + 'use strict'; @@ -156041,14 +156453,8 @@ function isBoxWithoutPositionCoords(trace, axLetter) { ); } -},{"../../registry":911,"./axis_autotype":829}],854:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../registry":922,"./axis_autotype":846}],871:[function(_dereq_,module,exports){ + 'use strict'; @@ -156468,14 +156874,8 @@ function crawl(attrs, callback, path, depth) { }); } -},{"../lib":778,"../registry":911}],855:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../lib":795,"../registry":922}],872:[function(_dereq_,module,exports){ + 'use strict'; @@ -156508,7 +156908,6 @@ exports.attributes = function(opts, extra) { var base = { valType: 'info_array', - editType: opts.editType, items: [ {valType: 'number', min: 0, max: 1, editType: opts.editType}, @@ -156523,10 +156922,8 @@ exports.attributes = function(opts, extra) { var out = { x: extendFlat({}, base, { - }), y: extendFlat({}, base, { - }), editType: opts.editType }; @@ -156536,17 +156933,13 @@ exports.attributes = function(opts, extra) { valType: 'integer', min: 0, dflt: 0, - editType: opts.editType, - }; out.column = { valType: 'integer', min: 0, dflt: 0, - editType: opts.editType, - }; } @@ -156580,14 +156973,8 @@ exports.defaults = function(containerOut, layout, coerce, dfltDomains) { if(!(y[0] < y[1])) containerOut.domain.y = dfltY.slice(); }; -},{"../lib/extend":768}],856:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../lib/extend":785}],873:[function(_dereq_,module,exports){ + 'use strict'; @@ -156613,27 +157000,22 @@ module.exports = function(opts) { var attrs = { family: { valType: 'string', - noBlank: true, strict: true, editType: editType, - }, size: { valType: 'number', - min: 1, editType: editType }, color: { valType: 'color', - editType: colorEditType }, editType: editType, // blank strings so compress_attributes can remove // TODO - that's uber hacky... better solution? - }; if(opts.arrayOk) { @@ -156645,14 +157027,8 @@ module.exports = function(opts) { return attrs; }; -},{}],857:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],874:[function(_dereq_,module,exports){ + 'use strict'; @@ -156661,44 +157037,26 @@ module.exports = { group: { valType: 'string', - - }, name: { valType: 'string', - - }, traces: { valType: 'any', - - }, baseframe: { valType: 'string', - - }, data: { valType: 'any', - - }, layout: { valType: 'any', - - } }; -},{}],858:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],875:[function(_dereq_,module,exports){ + 'use strict'; @@ -156866,20 +157224,14 @@ exports.layerNameToAdjective = { frame: 'frame' }; -},{}],859:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],876:[function(_dereq_,module,exports){ + 'use strict'; /* global PlotlyGeoAssets:false */ -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Registry = _dereq_('../../registry'); var Lib = _dereq_('../../lib'); @@ -157701,14 +158053,8 @@ function makeRangeBox(lon, lat) { }; } -},{"../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../components/dragelement":679,"../../components/drawing":682,"../../components/fx":700,"../../lib":795,"../../lib/geo_location_utils":788,"../../lib/topojson_utils":823,"../../registry":922,"../cartesian/autorange":844,"../cartesian/axes":845,"../cartesian/select":864,"../plots":908,"./constants":875,"./projections":880,"./zoom":881,"@plotly/d3":58,"topojson-client":595}],877:[function(_dereq_,module,exports){ + 'use strict'; @@ -157723,10 +158069,8 @@ var counter = counterRegex(GEO); var attributes = {}; attributes[GEO] = { valType: 'subplotid', - dflt: GEO, editType: 'calc', - }; function plotGeo(gd) { @@ -157795,14 +158139,8 @@ module.exports = { clean: clean }; -},{"../../lib":778,"../../plots/get_data":865,"./geo":859,"./layout_attributes":861,"./layout_defaults":862}],861:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../plots/get_data":882,"./geo":876,"./layout_attributes":878,"./layout_defaults":879}],878:[function(_dereq_,module,exports){ + 'use strict'; @@ -157814,265 +158152,184 @@ var overrideAll = _dereq_('../../plot_api/edit_types').overrideAll; var geoAxesAttrs = { range: { valType: 'info_array', - items: [ {valType: 'number'}, {valType: 'number'} ], - }, showgrid: { valType: 'boolean', - dflt: false, - }, tick0: { valType: 'number', - dflt: 0, - }, dtick: { valType: 'number', - - }, gridcolor: { valType: 'color', - dflt: colorAttrs.lightLine, - }, gridwidth: { valType: 'number', - min: 0, dflt: 1, - } }; var attrs = module.exports = overrideAll({ domain: domainAttrs({name: 'geo'}, { - }), fitbounds: { valType: 'enumerated', values: [false, 'locations', 'geojson'], dflt: false, - editType: 'plot', - }, resolution: { valType: 'enumerated', values: [110, 50], - dflt: 110, coerceNumber: true, - }, scope: { valType: 'enumerated', - values: Object.keys(constants.scopeDefaults), dflt: 'world', - }, projection: { type: { valType: 'enumerated', - values: Object.keys(constants.projNames), - }, rotation: { lon: { valType: 'number', - - }, lat: { valType: 'number', - - }, roll: { valType: 'number', - - } }, parallels: { valType: 'info_array', - items: [ {valType: 'number'}, {valType: 'number'} ], - }, scale: { valType: 'number', - min: 0, dflt: 1, - }, }, center: { lon: { valType: 'number', - - }, lat: { valType: 'number', - - } }, visible: { valType: 'boolean', - dflt: true, - }, showcoastlines: { valType: 'boolean', - - }, coastlinecolor: { valType: 'color', - dflt: colorAttrs.defaultLine, - }, coastlinewidth: { valType: 'number', - min: 0, dflt: 1, - }, showland: { valType: 'boolean', - dflt: false, - }, landcolor: { valType: 'color', - dflt: constants.landColor, - }, showocean: { valType: 'boolean', - dflt: false, - }, oceancolor: { valType: 'color', - dflt: constants.waterColor, - }, showlakes: { valType: 'boolean', - dflt: false, - }, lakecolor: { valType: 'color', - dflt: constants.waterColor, - }, showrivers: { valType: 'boolean', - dflt: false, - }, rivercolor: { valType: 'color', - dflt: constants.waterColor, - }, riverwidth: { valType: 'number', - min: 0, dflt: 1, - }, showcountries: { valType: 'boolean', - - }, countrycolor: { valType: 'color', - dflt: colorAttrs.defaultLine, - }, countrywidth: { valType: 'number', - min: 0, dflt: 1, - }, showsubunits: { valType: 'boolean', - - }, subunitcolor: { valType: 'color', - dflt: colorAttrs.defaultLine, - }, subunitwidth: { valType: 'number', - min: 0, dflt: 1, - }, showframe: { valType: 'boolean', - - }, framecolor: { valType: 'color', - dflt: colorAttrs.defaultLine, - }, framewidth: { valType: 'number', - min: 0, dflt: 1, - }, bgcolor: { valType: 'color', - dflt: colorAttrs.background, - }, lonaxis: geoAxesAttrs, lataxis: geoAxesAttrs @@ -158081,19 +158338,11 @@ var attrs = module.exports = overrideAll({ // set uirevision outside of overrideAll so it can be `editType: 'none'` attrs.uirevision = { valType: 'any', - editType: 'none', - }; -},{"../../components/color/attributes":642,"../../plot_api/edit_types":810,"../domain":855,"./constants":858}],862:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color/attributes":659,"../../plot_api/edit_types":827,"../domain":872,"./constants":875}],879:[function(_dereq_,module,exports){ + 'use strict'; @@ -158314,14 +158563,8 @@ function handleGeoDefaults(geoLayoutIn, geoLayoutOut, coerce, opts) { } } -},{"../../lib":778,"../get_data":865,"../subplot_defaults":905,"./constants":858,"./layout_attributes":861}],863:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../get_data":882,"../subplot_defaults":916,"./constants":875,"./layout_attributes":878}],880:[function(_dereq_,module,exports){ + /* * Generated by https://github.com/etpinard/d3-geo-projection-picker @@ -158760,19 +159003,13 @@ function addProjectionsToD3(d3) { module.exports = addProjectionsToD3; -},{}],864:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],881:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Lib = _dereq_('../../lib'); var Registry = _dereq_('../../registry'); @@ -159272,14 +159509,8 @@ function d3eventDispatch(target) { return dispatch; } -},{"../../lib":778,"../../registry":911,"d3":169}],865:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../registry":922,"@plotly/d3":58}],882:[function(_dereq_,module,exports){ + 'use strict'; @@ -159401,14 +159632,8 @@ exports.getSubplotData = function getSubplotData(data, type, subplotId) { return subplotData; }; -},{"../registry":911,"./cartesian/constants":834}],866:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../registry":922,"./cartesian/constants":851}],883:[function(_dereq_,module,exports){ + 'use strict'; @@ -159696,14 +159921,8 @@ function createCamera(scene) { return result; } -},{"../cartesian/constants":834,"has-passive-events":441,"mouse-change":483,"mouse-event-offset":484,"mouse-wheel":486}],867:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../cartesian/constants":851,"has-passive-events":440,"mouse-change":467,"mouse-event-offset":468,"mouse-wheel":470}],884:[function(_dereq_,module,exports){ + 'use strict'; @@ -159939,14 +160158,8 @@ function createAxes2D(scene) { module.exports = createAxes2D; -},{"../../lib/str2rgbarray":802,"../cartesian/axes":828}],868:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib/str2rgbarray":819,"../cartesian/axes":845}],885:[function(_dereq_,module,exports){ + 'use strict'; @@ -160090,14 +160303,8 @@ exports.updateFx = function(gd) { } }; -},{"../../components/fx/layout_attributes":684,"../../constants/xmlns_namespaces":754,"../../plot_api/edit_types":810,"../cartesian":841,"../cartesian/attributes":826,"../cartesian/constants":834,"../get_data":865,"../layout_attributes":882,"./scene2d":869}],869:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/fx/layout_attributes":701,"../../constants/xmlns_namespaces":771,"../../plot_api/edit_types":827,"../cartesian":858,"../cartesian/attributes":843,"../cartesian/constants":851,"../get_data":882,"../layout_attributes":899,"./scene2d":886}],886:[function(_dereq_,module,exports){ + 'use strict'; @@ -160810,14 +161017,8 @@ proto.hoverFormatter = function(axisName, val) { return Axes.tickText(axis, axis.c2l(val), 'hover').text; }; -},{"../../components/dragelement/helpers":661,"../../components/fx":683,"../../lib/show_no_webgl_msg":800,"../../plots/cartesian/axes":828,"../../registry":911,"../cartesian/autorange":827,"../cartesian/constants":834,"../cartesian/constraints":835,"./camera":866,"./convert":867,"gl-plot2d":317,"gl-select-box":333,"gl-spikes2d":342,"webgl-context":606}],870:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/dragelement/helpers":678,"../../components/fx":700,"../../lib/show_no_webgl_msg":817,"../../plots/cartesian/axes":845,"../../registry":922,"../cartesian/autorange":844,"../cartesian/constants":851,"../cartesian/constraints":852,"./camera":883,"./convert":884,"gl-plot2d":317,"gl-select-box":332,"gl-spikes2d":341,"webgl-context":623}],887:[function(_dereq_,module,exports){ + 'use strict'; @@ -160970,14 +161171,8 @@ exports.updateFx = function(gd) { } }; -},{"../../components/fx/layout_attributes":684,"../../constants/xmlns_namespaces":754,"../../lib":778,"../../plot_api/edit_types":810,"../get_data":865,"./layout/attributes":871,"./layout/defaults":875,"./layout/layout_attributes":876,"./scene":880}],871:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/fx/layout_attributes":701,"../../constants/xmlns_namespaces":771,"../../lib":795,"../../plot_api/edit_types":827,"../get_data":882,"./layout/attributes":888,"./layout/defaults":892,"./layout/layout_attributes":893,"./scene":897}],888:[function(_dereq_,module,exports){ + 'use strict'; @@ -160985,21 +161180,13 @@ exports.updateFx = function(gd) { module.exports = { scene: { valType: 'subplotid', - dflt: 'scene', editType: 'calc+clearAxisTypes', - } }; -},{}],872:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],889:[function(_dereq_,module,exports){ + 'use strict'; @@ -161012,46 +161199,32 @@ module.exports = overrideAll({ visible: axesAttrs.visible, showspikes: { valType: 'boolean', - dflt: true, - }, spikesides: { valType: 'boolean', - dflt: true, - }, spikethickness: { valType: 'number', - min: 0, dflt: 2, - }, spikecolor: { valType: 'color', - dflt: Color.defaultLine, - }, showbackground: { valType: 'boolean', - dflt: false, - }, backgroundcolor: { valType: 'color', - dflt: 'rgba(204, 204, 204, 0.5)', - }, showaxeslabels: { valType: 'boolean', - dflt: true, - }, color: axesAttrs.color, categoryorder: axesAttrs.categoryorder, @@ -161116,14 +161289,8 @@ module.exports = overrideAll({ } }, 'plot', 'from-root'); -},{"../../../components/color":643,"../../../lib/extend":768,"../../../plot_api/edit_types":810,"../../cartesian/layout_attributes":842}],873:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../../components/color":660,"../../../lib/extend":785,"../../../plot_api/edit_types":827,"../../cartesian/layout_attributes":859}],890:[function(_dereq_,module,exports){ + 'use strict'; @@ -161193,14 +161360,8 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, options) { } }; -},{"../../../lib":778,"../../../plot_api/plot_template":817,"../../cartesian/axis_defaults":830,"../../cartesian/type_defaults":853,"./axis_attributes":872,"tinycolor2":576}],874:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../../lib":795,"../../../plot_api/plot_template":834,"../../cartesian/axis_defaults":847,"../../cartesian/type_defaults":870,"./axis_attributes":889,"tinycolor2":592}],891:[function(_dereq_,module,exports){ + 'use strict'; @@ -161358,14 +161519,8 @@ function createAxesOptions(fullLayout, sceneLayout) { module.exports = createAxesOptions; -},{"../../../lib":778,"../../../lib/str2rgbarray":802}],875:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../../lib":795,"../../../lib/str2rgbarray":819}],892:[function(_dereq_,module,exports){ + 'use strict'; @@ -161508,14 +161663,8 @@ function handleGl3dDefaults(sceneLayoutIn, sceneLayoutOut, coerce, opts) { coerce('hovermode', opts.getDfltFromLayout('hovermode')); } -},{"../../../components/color":643,"../../../lib":778,"../../../registry":911,"../../get_data":865,"../../subplot_defaults":905,"./axis_defaults":873,"./layout_attributes":876}],876:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../../components/color":660,"../../../lib":795,"../../../registry":922,"../../get_data":882,"../../subplot_defaults":916,"./axis_defaults":890,"./layout_attributes":893}],893:[function(_dereq_,module,exports){ + 'use strict'; @@ -161529,19 +161678,16 @@ function makeCameraVector(x, y, z) { return { x: { valType: 'number', - dflt: x, editType: 'camera' }, y: { valType: 'number', - dflt: y, editType: 'camera' }, z: { valType: 'number', - dflt: z, editType: 'camera' }, @@ -161554,28 +161700,22 @@ module.exports = { bgcolor: { valType: 'color', - dflt: 'rgba(0,0,0,0)', editType: 'plot' }, camera: { up: extendFlat(makeCameraVector(0, 0, 1), { - }), center: extendFlat(makeCameraVector(0, 0, 0), { - }), eye: extendFlat(makeCameraVector(1.25, 1.25, 1.25), { - }), projection: { type: { valType: 'enumerated', - values: ['perspective', 'orthographic'], dflt: 'perspective', editType: 'calc', - }, editType: 'calc' }, @@ -161584,7 +161724,6 @@ module.exports = { domain: domainAttrs({name: 'scene', editType: 'plot'}), aspectmode: { valType: 'enumerated', - values: ['auto', 'cube', 'data', 'manual'], dflt: 'auto', editType: 'plot', @@ -161593,33 +161732,28 @@ module.exports = { 'aspectratio.y': undefined, 'aspectratio.z': undefined }, - }, aspectratio: { // must be positive (0's are coerced to 1) 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: gl3dAxisAttrs, @@ -161628,45 +161762,31 @@ module.exports = { dragmode: { valType: 'enumerated', - values: ['orbit', 'turntable', 'zoom', 'pan', false], editType: 'plot', - }, hovermode: { valType: 'enumerated', - values: ['closest', false], 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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../../lib":795,"../../../lib/extend":785,"../../domain":872,"./axis_attributes":889}],894:[function(_dereq_,module,exports){ + 'use strict'; @@ -161711,14 +161831,8 @@ function createSpikeOptions(layout) { module.exports = createSpikeOptions; -},{"../../../lib/str2rgbarray":802}],878:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../../lib/str2rgbarray":819}],895:[function(_dereq_,module,exports){ + /* eslint block-scoped-var: 0*/ /* eslint no-redeclare: 0*/ @@ -161812,14 +161926,8 @@ function computeTickMarks(scene) { scene.contourLevels = contourLevelsFromTicks(ticks); } -},{"../../../lib":778,"../../cartesian/axes":828}],879:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../../lib":795,"../../cartesian/axes":845}],896:[function(_dereq_,module,exports){ + 'use strict'; @@ -161846,14 +161954,8 @@ function project(camera, v) { module.exports = project; -},{}],880:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],897:[function(_dereq_,module,exports){ + 'use strict'; @@ -162983,14 +163085,8 @@ proto.make4thDimension = function() { module.exports = Scene; -},{"../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/fx":700,"../../lib":795,"../../lib/show_no_webgl_msg":817,"../../lib/str2rgbarray":819,"../../plots/cartesian/axes":845,"../../registry":922,"./layout/convert":891,"./layout/spikes":894,"./layout/tick_marks":895,"./project":896,"gl-plot3d":321,"has-passive-events":440,"webgl-context":623}],898:[function(_dereq_,module,exports){ + 'use strict'; @@ -163004,14 +163100,8 @@ module.exports = function zip3(x, y, z, len) { return result; }; -},{}],882:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],899:[function(_dereq_,module,exports){ + 'use strict'; @@ -163024,7 +163114,6 @@ var extendFlat = _dereq_('../lib/extend').extendFlat; var globalFont = fontAttrs({ editType: 'calc', - }); globalFont.family.dflt = '"Open Sans", verdana, arial, sans-serif'; globalFont.size.dflt = 12; @@ -163035,66 +163124,50 @@ module.exports = { title: { text: { valType: 'string', - editType: 'layoutstyle', - }, font: fontAttrs({ editType: 'layoutstyle', - }), xref: { valType: 'enumerated', dflt: 'container', values: ['container', 'paper'], - editType: 'layoutstyle', - }, yref: { valType: 'enumerated', dflt: 'container', values: ['container', 'paper'], - editType: 'layoutstyle', - }, x: { valType: 'number', min: 0, max: 1, dflt: 0.5, - editType: 'layoutstyle', - }, y: { valType: 'number', min: 0, max: 1, dflt: 'auto', - editType: 'layoutstyle', - }, xanchor: { valType: 'enumerated', dflt: 'auto', values: ['auto', 'left', 'center', 'right'], - editType: 'layoutstyle', - }, yanchor: { valType: 'enumerated', dflt: 'auto', values: ['auto', 'top', 'middle', 'bottom'], - editType: 'layoutstyle', - }, pad: extendFlat(padAttrs({editType: 'layoutstyle'}), { - }), editType: 'layoutstyle' }, @@ -163103,215 +163176,157 @@ module.exports = { valType: 'enumerated', values: [false, 'hide', 'show'], dflt: false, - editType: 'plot', - }, minsize: { valType: 'number', min: 0, dflt: 0, - editType: 'plot', - }, editType: 'plot' }, autosize: { valType: 'boolean', - dflt: false, // autosize, width, and height get special editType treatment in _relayout // so we can handle noop resizes more efficiently editType: 'none', - }, width: { valType: 'number', - min: 10, dflt: 700, editType: 'plot', - }, height: { valType: 'number', - min: 10, dflt: 450, editType: 'plot', - }, margin: { l: { valType: 'number', - min: 0, dflt: 80, editType: 'plot', - }, r: { valType: 'number', - min: 0, dflt: 80, editType: 'plot', - }, t: { valType: 'number', - min: 0, dflt: 100, editType: 'plot', - }, b: { valType: 'number', - min: 0, dflt: 80, editType: 'plot', - }, pad: { valType: 'number', - min: 0, dflt: 0, editType: 'plot', - }, autoexpand: { valType: 'boolean', - dflt: true, editType: 'plot', - }, editType: 'plot' }, computed: { valType: 'any', - editType: 'none', - }, paper_bgcolor: { valType: 'color', - dflt: colorAttrs.background, editType: 'plot', - }, plot_bgcolor: { // defined here, but set in cartesian.supplyLayoutDefaults // because it needs to know if there are (2D) axes or not valType: 'color', - dflt: colorAttrs.background, editType: 'layoutstyle', - }, autotypenumbers: { valType: 'enumerated', values: ['convert types', 'strict'], dflt: 'convert types', - editType: 'calc', - }, separators: { valType: 'string', - editType: 'plot', - }, hidesources: { valType: 'boolean', - dflt: false, editType: 'plot', - }, showlegend: { // handled in legend.supplyLayoutDefaults // but included here because it's not in the legend object valType: 'boolean', - editType: 'legend', - }, colorway: { valType: 'colorlist', dflt: colorAttrs.defaults, - editType: 'calc', - }, datarevision: { valType: 'any', - editType: 'calc', - }, uirevision: { valType: 'any', - editType: 'none', - }, editrevision: { valType: 'any', - editType: 'none', - }, selectionrevision: { valType: 'any', - editType: 'none', - }, template: { valType: 'any', - editType: 'calc', - }, 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', - }, editType: 'modebar' }, @@ -163322,37 +163337,25 @@ module.exports = { meta: { valType: 'any', arrayOk: true, - editType: 'plot', - }, transition: extendFlat({}, animationAttrs.transition, { - editType: 'none' }), _deprecated: { title: { valType: 'string', - editType: 'layoutstyle', - }, titlefont: fontAttrs({ editType: 'layoutstyle', - }) } }; -},{"../components/color/attributes":642,"../components/shapes/draw_newshape/attributes":725,"../lib/extend":768,"./animation_attributes":822,"./font_attributes":856,"./pad_attributes":890}],883:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../components/color/attributes":659,"../components/shapes/draw_newshape/attributes":742,"../lib/extend":785,"./animation_attributes":839,"./font_attributes":873,"./pad_attributes":907}],900:[function(_dereq_,module,exports){ + 'use strict'; @@ -163515,7 +163518,7 @@ module.exports = { '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\' });', + ' Plotly.newPlot(gd, data, layout, { mapboxAccessToken: \'my-access-token\' });', 'More info here: https://www.mapbox.com/help/define-access-token/' ].join('\n'), @@ -163579,14 +163582,8 @@ module.exports = { } }; -},{}],884:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],901:[function(_dereq_,module,exports){ + 'use strict'; @@ -163652,14 +163649,8 @@ module.exports = function convertTextOpts(textposition, iconSize) { return { anchor: anchor, offset: offset }; }; -},{"../../lib":778}],885:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795}],902:[function(_dereq_,module,exports){ + 'use strict'; @@ -163670,7 +163661,7 @@ var strTranslate = Lib.strTranslate; var strScale = Lib.strScale; var getSubplotCalcData = _dereq_('../../plots/get_data').getSubplotCalcData; var xmlnsNamespaces = _dereq_('../../constants/xmlns_namespaces'); -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Drawing = _dereq_('../../components/drawing'); var svgTextUtils = _dereq_('../../lib/svg_text_utils'); @@ -163691,10 +163682,8 @@ exports.idRegex = exports.attrRegex = Lib.counterRegex(MAPBOX); exports.attributes = { subplot: { valType: 'subplotid', - dflt: 'mapbox', editType: 'calc', - } }; @@ -163939,14 +163928,8 @@ exports.updateFx = function(gd) { } }; -},{"../../components/drawing":665,"../../constants/xmlns_namespaces":754,"../../lib":778,"../../lib/svg_text_utils":803,"../../plots/get_data":865,"./constants":883,"./layout_attributes":887,"./layout_defaults":888,"./mapbox":889,"d3":169,"mapbox-gl":473}],886:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/drawing":682,"../../constants/xmlns_namespaces":771,"../../lib":795,"../../lib/svg_text_utils":820,"../../plots/get_data":882,"./constants":900,"./layout_attributes":904,"./layout_defaults":905,"./mapbox":906,"@plotly/d3":58,"mapbox-gl":457}],903:[function(_dereq_,module,exports){ + 'use strict'; @@ -164248,14 +164231,8 @@ module.exports = function createMapboxLayer(subplot, index, opts) { return mapboxLayer; }; -},{"../../lib":778,"../../lib/svg_text_utils":803,"./constants":883,"./convert_text_opts":884}],887:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../lib/svg_text_utils":820,"./constants":900,"./convert_text_opts":901}],904:[function(_dereq_,module,exports){ + 'use strict'; @@ -164270,7 +164247,6 @@ var templatedArray = _dereq_('../../plot_api/plot_template').templatedArray; var constants = _dereq_('./constants'); var fontAttr = fontAttrs({ - }); fontAttr.family.dflt = 'Open Sans Regular, Arial Unicode MS Regular'; @@ -164283,133 +164259,95 @@ var attrs = module.exports = overrideAll({ valType: 'string', noBlank: true, strict: true, - - }, style: { valType: 'any', values: constants.styleValuesMapbox.concat(constants.styleValuesNonMapbox), dflt: constants.styleValueDflt, - - }, center: { lon: { valType: 'number', dflt: 0, - - }, lat: { valType: 'number', dflt: 0, - - } }, zoom: { valType: 'number', dflt: 1, - - }, bearing: { valType: 'number', dflt: 0, - - }, pitch: { valType: 'number', dflt: 0, - - }, layers: templatedArray('layer', { visible: { valType: 'boolean', - dflt: true, - }, sourcetype: { valType: 'enumerated', values: ['geojson', 'vector', 'raster', 'image'], dflt: 'geojson', - - }, source: { valType: 'any', - - }, sourcelayer: { valType: 'string', dflt: '', - - }, sourceattribution: { valType: 'string', - - }, type: { valType: 'enumerated', values: ['circle', 'line', 'fill', 'symbol', 'raster'], dflt: 'circle', - - }, coordinates: { valType: 'any', - - }, // attributes shared between all types below: { valType: 'string', - - }, color: { valType: 'color', dflt: defaultLine, - - }, opacity: { valType: 'number', min: 0, max: 1, dflt: 1, - - }, minzoom: { valType: 'number', min: 0, max: 24, dflt: 0, - - }, maxzoom: { valType: 'number', min: 0, max: 24, dflt: 24, - - }, // type-specific style attributes @@ -164417,8 +164355,6 @@ var attrs = module.exports = overrideAll({ radius: { valType: 'number', dflt: 15, - - } }, @@ -164426,13 +164362,9 @@ var attrs = module.exports = overrideAll({ width: { valType: 'number', dflt: 2, - - }, dash: { valType: 'data_array', - - } }, @@ -164440,8 +164372,6 @@ var attrs = module.exports = overrideAll({ outlinecolor: { valType: 'color', dflt: defaultLine, - - } }, @@ -164449,27 +164379,19 @@ var attrs = module.exports = overrideAll({ icon: { valType: 'string', dflt: 'marker', - - }, iconsize: { valType: 'number', dflt: 10, - - }, text: { valType: 'string', dflt: '', - - }, placement: { valType: 'enumerated', values: ['point', 'line', 'line-center'], dflt: 'point', - - }, textfont: fontAttr, textposition: Lib.extendFlat({}, textposition, { arrayOk: false }) @@ -164480,19 +164402,11 @@ var attrs = module.exports = overrideAll({ // set uirevision outside of overrideAll so it can be `editType: 'none'` attrs.uirevision = { valType: 'any', - editType: 'none', - }; -},{"../../components/color":643,"../../lib":778,"../../plot_api/edit_types":810,"../../plot_api/plot_template":817,"../../traces/scatter/attributes":1187,"../domain":855,"../font_attributes":856,"./constants":883}],888:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../lib":795,"../../plot_api/edit_types":827,"../../plot_api/plot_template":834,"../../traces/scatter/attributes":1198,"../domain":872,"../font_attributes":873,"./constants":900}],905:[function(_dereq_,module,exports){ + 'use strict'; @@ -164593,14 +164507,8 @@ function handleLayerDefaults(layerIn, layerOut) { } } -},{"../../lib":778,"../array_container_defaults":823,"../subplot_defaults":905,"./layout_attributes":887}],889:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../array_container_defaults":840,"../subplot_defaults":916,"./layout_attributes":904}],906:[function(_dereq_,module,exports){ + 'use strict'; @@ -165404,14 +165312,8 @@ function convertCenter(center) { module.exports = Mapbox; -},{"../../components/dragelement":662,"../../components/dragelement/helpers":661,"../../components/fx":683,"../../lib":778,"../../lib/geo_location_utils":771,"../../registry":911,"../cartesian/axes":828,"../cartesian/select":847,"./constants":883,"./layers":886,"mapbox-gl":473}],890:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/dragelement":679,"../../components/dragelement/helpers":678,"../../components/fx":700,"../../lib":795,"../../lib/geo_location_utils":788,"../../registry":922,"../cartesian/axes":845,"../cartesian/select":864,"./constants":900,"./layers":903,"mapbox-gl":457}],907:[function(_dereq_,module,exports){ + 'use strict'; @@ -165430,47 +165332,33 @@ module.exports = function(opts) { t: { valType: 'number', dflt: 0, - editType: editType, - }, r: { valType: 'number', dflt: 0, - editType: editType, - }, b: { valType: 'number', dflt: 0, - editType: editType, - }, l: { valType: 'number', dflt: 0, - editType: editType, - }, editType: editType }; }; -},{}],891:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],908:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var timeFormatLocale = _dereq_('d3-time-format').timeFormatLocale; var isNumeric = _dereq_('fast-isnumeric'); @@ -165519,13 +165407,6 @@ plots.hasSimpleAPICommandBindings = commandModule.hasSimpleAPICommandBindings; plots.redrawText = function(gd) { gd = Lib.getGraphDiv(gd); - var fullLayout = gd._fullLayout || {}; - var hasPolar = fullLayout._has && fullLayout._has('polar'); - var hasLegacyPolar = !hasPolar && gd.data && gd.data[0] && gd.data[0].r; - - // do not work if polar is present - if(hasLegacyPolar) return; - return new Promise(function(resolve) { setTimeout(function() { Registry.getComponentMethod('annotations', 'draw')(gd); @@ -165593,7 +165474,7 @@ plots.previousPromises = function(gd) { /** * Adds the 'Edit chart' link. - * Note that now Plotly.plot() calls this so it can regenerate whenever it replots + * Note that now _doPlot calls this so it can regenerate whenever it replots * * Add source links to your graph inside the 'showSources' config argument. */ @@ -165930,15 +165811,6 @@ plots.supplyDefaults = function(gd, opts) { newFullLayout.images.length === 0 ); - // TODO remove in v2.0.0 - // add has-plot-type refs to fullLayout for backward compatibility - newFullLayout._hasCartesian = newFullLayout._has('cartesian'); - newFullLayout._hasGeo = newFullLayout._has('geo'); - newFullLayout._hasGL3D = newFullLayout._has('gl3d'); - newFullLayout._hasGL2D = newFullLayout._has('gl2d'); - newFullLayout._hasTernary = newFullLayout._has('ternary'); - newFullLayout._hasPie = newFullLayout._has('pie'); - // relink / initialize subplot axis objects plots.linkSubplots(newFullData, newFullLayout, oldFullData, oldFullLayout); @@ -166173,7 +166045,7 @@ function getFormatObj(gd, formatKeys) { /** * getFormatter: combine the final separators with the locale formatting object * we pulled earlier to generate number and time formatters - * TODO: remove separators in v2, only use locale, so we don't need this step? + * TODO: remove separators in v3, only use locale, so we don't need this step? * * @param {object} formatObj: d3.locale format object * @param {string} separators: length-2 string to override decimal and thousands @@ -166974,7 +166846,7 @@ plots.supplyLayoutGlobalDefaults = function(layoutIn, layoutOut, formatObj) { // layouts with no set width and height were set temporary set to 'initial' // to pass through the autosize routine // - // This behavior is subject to change in v2. + // This behavior is subject to change in v3. coerce('autosize', !(layoutIn.width && layoutIn.height)); coerce('width'); @@ -167218,7 +167090,6 @@ plots.purge = function(gd) { delete gd._fullData; delete gd._fullLayout; delete gd.calcdata; - delete gd.framework; delete gd.empty; delete gd.fid; @@ -167228,7 +167099,7 @@ plots.purge = function(gd) { delete gd.autoplay; // are we doing an action that doesn't go in undo queue? delete gd.changed; - // these get recreated on Plotly.plot anyway, but just to be safe + // these get recreated on _doPlot anyway, but just to be safe // (and to have a record of them...) delete gd._promises; delete gd._redrawTimer; @@ -167555,7 +167426,7 @@ plots.doAutoMargin = function(gd) { var maxNumberOfRedraws = 3 * (1 + Object.keys(pushMarginIds).length); if(fullLayout._redrawFromAutoMarginCount < maxNumberOfRedraws) { - return Registry.call('plot', gd); + return Registry.call('_doPlot', gd); } else { fullLayout._size = oldMargins; Lib.warn('Too many auto-margin redraws.'); @@ -167713,8 +167584,6 @@ plots.graphJson = function(gd, dataonly, mode, output, useDefaults, includeConfi } } - if(gd.framework && gd.framework.isPolar) obj = gd.framework.getConfig(); - if(frames) obj.frames = stripObj(frames); if(includeConfig) obj.config = stripObj(gd._context, true); @@ -168886,14 +168755,8 @@ plots.cleanBasePlot = function(desiredType, newFullData, newFullLayout, oldFullD } }; -},{"../components/color":643,"../constants/numerical":753,"../lib":778,"../plot_api/plot_schema":816,"../plot_api/plot_template":817,"../plots/get_data":865,"../registry":911,"./animation_attributes":822,"./attributes":824,"./cartesian/axis_ids":831,"./cartesian/handle_outline":838,"./command":854,"./font_attributes":856,"./frame_attributes":857,"./layout_attributes":882,"d3":169,"d3-time-format":166,"fast-isnumeric":241}],892:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../components/color":660,"../constants/numerical":770,"../lib":795,"../plot_api/plot_schema":833,"../plot_api/plot_template":834,"../plots/get_data":882,"../registry":922,"./animation_attributes":839,"./attributes":841,"./cartesian/axis_ids":848,"./cartesian/handle_outline":855,"./command":871,"./font_attributes":873,"./frame_attributes":874,"./layout_attributes":899,"@plotly/d3":58,"d3-time-format":168,"fast-isnumeric":241}],909:[function(_dereq_,module,exports){ + 'use strict'; @@ -168931,14 +168794,8 @@ module.exports = { OFFEDGE: 20 }; -},{}],893:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],910:[function(_dereq_,module,exports){ + 'use strict'; @@ -169226,14 +169083,8 @@ module.exports = { pathPolygonAnnulus: pathPolygonAnnulus }; -},{"../../lib":778,"../../lib/polygon":790}],894:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../lib/polygon":807}],911:[function(_dereq_,module,exports){ + 'use strict'; @@ -169250,10 +169101,8 @@ var counter = counterRegex(name); var attributes = {}; attributes[attr] = { valType: 'subplotid', - dflt: name, editType: 'calc', - }; function plot(gd) { @@ -169315,14 +169164,8 @@ module.exports = { toSVG: _dereq_('../cartesian').toSVG }; -},{"../../lib":778,"../cartesian":841,"../get_data":865,"./constants":892,"./layout_attributes":895,"./layout_defaults":896,"./polar":903}],895:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../cartesian":858,"../get_data":882,"./constants":909,"./layout_attributes":912,"./layout_defaults":913,"./polar":914}],912:[function(_dereq_,module,exports){ + 'use strict'; @@ -169386,9 +169229,7 @@ var radialAxisAttrs = { valType: 'enumerated', values: ['tozero', 'nonnegative', 'normal'], dflt: 'tozero', - editType: 'calc', - }, range: extendFlat({}, axesAttrs.range, { items: [ @@ -169404,8 +169245,6 @@ var radialAxisAttrs = { angle: { valType: 'angle', editType: 'plot', - - }, side: { @@ -169414,8 +169253,6 @@ var radialAxisAttrs = { values: ['clockwise', 'counterclockwise'], dflt: 'clockwise', editType: 'plot', - - }, @@ -169436,9 +169273,7 @@ var radialAxisAttrs = { uirevision: { valType: 'any', - editType: 'none', - }, editType: 'calc', @@ -169470,10 +169305,8 @@ var angularAxisAttrs = { // no 'log' for now values: ['-', 'linear', 'category'], dflt: '-', - editType: 'calc', _noTemplating: true, - }, autotypenumbers: axesAttrs.autotypenumbers, @@ -169484,17 +169317,13 @@ var angularAxisAttrs = { valType: 'enumerated', values: ['radians', 'degrees'], dflt: 'degrees', - editType: 'calc', - }, period: { valType: 'number', editType: 'calc', min: 0, - - // Examples for date axes: // // - period that equals the timeseries length @@ -169511,25 +169340,19 @@ var angularAxisAttrs = { valType: 'enumerated', values: ['counterclockwise', 'clockwise'], dflt: 'counterclockwise', - editType: 'calc', - }, rotation: { valType: 'angle', editType: 'calc', - - }, hoverformat: axesAttrs.hoverformat, uirevision: { valType: 'any', - editType: 'none', - }, editType: 'calc' @@ -169561,9 +169384,7 @@ module.exports = { {valType: 'number', editType: 'plot'} ], dflt: [0, 360], - editType: 'plot', - }, hole: { valType: 'number', @@ -169571,16 +169392,12 @@ module.exports = { max: 1, dflt: 0, editType: 'plot', - - }, bgcolor: { valType: 'color', - editType: 'plot', dflt: colorAttrs.background, - }, radialaxis: radialAxisAttrs, @@ -169590,9 +169407,7 @@ module.exports = { valType: 'enumerated', values: ['circular', 'linear'], dflt: 'circular', - editType: 'plot', - }, // TODO maybe? @@ -169600,22 +169415,14 @@ module.exports = { uirevision: { valType: 'any', - editType: 'none', - }, editType: 'calc' }; -},{"../../components/color/attributes":642,"../../lib":778,"../../plot_api/edit_types":810,"../cartesian/layout_attributes":842,"../domain":855}],896:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color/attributes":659,"../../lib":795,"../../plot_api/edit_types":827,"../cartesian/layout_attributes":859,"../domain":872}],913:[function(_dereq_,module,exports){ + 'use strict'; @@ -169846,1771 +169653,12 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) { }); }; -},{"../../components/color":643,"../../lib":778,"../../plot_api/plot_template":817,"../cartesian/axis_autotype":829,"../cartesian/category_order_defaults":832,"../cartesian/line_grid_defaults":844,"../cartesian/tick_label_defaults":849,"../cartesian/tick_mark_defaults":850,"../cartesian/tick_value_defaults":851,"../get_data":865,"../subplot_defaults":905,"./constants":892,"./layout_attributes":895,"./set_convert":904}],897:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ - -'use strict'; - -var scatterAttrs = _dereq_('../../../traces/scatter/attributes'); -var scatterMarkerAttrs = scatterAttrs.marker; -var extendFlat = _dereq_('../../../lib/extend').extendFlat; - -var deprecationWarning = [ - 'Area traces are deprecated!', - 'Please switch to the *barpolar* trace type.' -].join(' '); - -module.exports = { - r: extendFlat({}, scatterAttrs.r, { - - }), - t: extendFlat({}, scatterAttrs.t, { - - }), - marker: { - color: extendFlat({}, scatterMarkerAttrs.color, { - - }), - size: extendFlat({}, scatterMarkerAttrs.size, { - - }), - symbol: extendFlat({}, scatterMarkerAttrs.symbol, { - - }), - opacity: extendFlat({}, scatterMarkerAttrs.opacity, { - - }), - editType: 'calc' - } -}; - -},{"../../../lib/extend":768,"../../../traces/scatter/attributes":1187}],898:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../lib":795,"../../plot_api/plot_template":834,"../cartesian/axis_autotype":846,"../cartesian/category_order_defaults":849,"../cartesian/line_grid_defaults":861,"../cartesian/tick_label_defaults":866,"../cartesian/tick_mark_defaults":867,"../cartesian/tick_value_defaults":868,"../get_data":882,"../subplot_defaults":916,"./constants":909,"./layout_attributes":912,"./set_convert":915}],914:[function(_dereq_,module,exports){ 'use strict'; -var axesAttrs = _dereq_('../../cartesian/layout_attributes'); -var extendFlat = _dereq_('../../../lib/extend').extendFlat; -var overrideAll = _dereq_('../../../plot_api/edit_types').overrideAll; - -var deprecationWarning = [ - 'Legacy polar charts are deprecated!', - 'Please switch to *polar* subplots.' -].join(' '); - -var domainAttr = extendFlat({}, axesAttrs.domain, { - -}); - -function mergeAttrs(axisName, nonCommonAttrs) { - var commonAttrs = { - showline: { - valType: 'boolean', - - - }, - showticklabels: { - valType: 'boolean', - - - }, - tickorientation: { - valType: 'enumerated', - values: ['horizontal', 'vertical'], - - - }, - ticklen: { - valType: 'number', - min: 0, - - - }, - tickcolor: { - valType: 'color', - - - }, - ticksuffix: { - valType: 'string', - - - }, - endpadding: { - valType: 'number', - - description: deprecationWarning, - }, - visible: { - valType: 'boolean', - - - } - }; - - return extendFlat({}, nonCommonAttrs, commonAttrs); -} - -module.exports = overrideAll({ - radialaxis: mergeAttrs('radial', { - range: { - valType: 'info_array', - - items: [ - { valType: 'number' }, - { valType: 'number' } - ], - - }, - domain: domainAttr, - orientation: { - valType: 'number', - - - } - }), - - angularaxis: mergeAttrs('angular', { - range: { - valType: 'info_array', - - items: [ - { valType: 'number', dflt: 0 }, - { valType: 'number', dflt: 360 } - ], - - }, - domain: domainAttr - }), - - // attributes that appear at layout root - layout: { - direction: { - valType: 'enumerated', - values: ['clockwise', 'counterclockwise'], - - - }, - orientation: { - valType: 'angle', - - - } - } -}, 'plot', 'nested'); - -},{"../../../lib/extend":768,"../../../plot_api/edit_types":810,"../../cartesian/layout_attributes":842}],899:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ - -'use strict'; - -var Polar = module.exports = _dereq_('./micropolar'); - -Polar.manager = _dereq_('./micropolar_manager'); - -},{"./micropolar":900,"./micropolar_manager":901}],900:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ - -var d3 = _dereq_('d3'); -var Lib = _dereq_('../../../lib'); -var extendDeepAll = Lib.extendDeepAll; -var MID_SHIFT = _dereq_('../../../constants/alignment').MID_SHIFT; - -var µ = module.exports = { version: '0.2.2' }; - -µ.Axis = function module() { - var config = { - data: [], - layout: {} - }, inputConfig = {}, liveConfig = {}; - var svg, container, dispatch = d3.dispatch('hover'), radialScale, angularScale; - var exports = {}; - function render(_container) { - container = _container || container; - var data = config.data; - var axisConfig = config.layout; - if (typeof container == 'string' || container.nodeName) container = d3.select(container); - container.datum(data).each(function(_data, _index) { - var dataOriginal = _data.slice(); - liveConfig = { - data: µ.util.cloneJson(dataOriginal), - layout: µ.util.cloneJson(axisConfig) - }; - var colorIndex = 0; - dataOriginal.forEach(function(d, i) { - if (!d.color) { - d.color = axisConfig.defaultColorRange[colorIndex]; - colorIndex = (colorIndex + 1) % axisConfig.defaultColorRange.length; - } - if (!d.strokeColor) { - d.strokeColor = d.geometry === 'LinePlot' ? d.color : d3.rgb(d.color).darker().toString(); - } - liveConfig.data[i].color = d.color; - liveConfig.data[i].strokeColor = d.strokeColor; - liveConfig.data[i].strokeDash = d.strokeDash; - liveConfig.data[i].strokeSize = d.strokeSize; - }); - var data = dataOriginal.filter(function(d, i) { - var visible = d.visible; - return typeof visible === 'undefined' || visible === true; - }); - var isStacked = false; - var dataWithGroupId = data.map(function(d, i) { - isStacked = isStacked || typeof d.groupId !== 'undefined'; - return d; - }); - if (isStacked) { - var grouped = d3.nest().key(function(d, i) { - return typeof d.groupId != 'undefined' ? d.groupId : 'unstacked'; - }).entries(dataWithGroupId); - var dataYStack = []; - var stacked = grouped.map(function(d, i) { - if (d.key === 'unstacked') return d.values; else { - var prevArray = d.values[0].r.map(function(d, i) { - return 0; - }); - d.values.forEach(function(d, i, a) { - d.yStack = [ prevArray ]; - dataYStack.push(prevArray); - prevArray = µ.util.sumArrays(d.r, prevArray); - }); - return d.values; - } - }); - data = d3.merge(stacked); - } - data.forEach(function(d, i) { - d.t = Array.isArray(d.t[0]) ? d.t : [ d.t ]; - d.r = Array.isArray(d.r[0]) ? d.r : [ d.r ]; - }); - var radius = Math.min(axisConfig.width - axisConfig.margin.left - axisConfig.margin.right, axisConfig.height - axisConfig.margin.top - axisConfig.margin.bottom) / 2; - radius = Math.max(10, radius); - var chartCenter = [ axisConfig.margin.left + radius, axisConfig.margin.top + radius ]; - var extent; - if (isStacked) { - var highestStackedValue = d3.max(µ.util.sumArrays(µ.util.arrayLast(data).r[0], µ.util.arrayLast(dataYStack))); - extent = [ 0, highestStackedValue ]; - } else extent = d3.extent(µ.util.flattenArray(data.map(function(d, i) { - return d.r; - }))); - if (axisConfig.radialAxis.domain != µ.DATAEXTENT) extent[0] = 0; - radialScale = d3.scale.linear().domain(axisConfig.radialAxis.domain != µ.DATAEXTENT && axisConfig.radialAxis.domain ? axisConfig.radialAxis.domain : extent).range([ 0, radius ]); - liveConfig.layout.radialAxis.domain = radialScale.domain(); - var angularDataMerged = µ.util.flattenArray(data.map(function(d, i) { - return d.t; - })); - var isOrdinal = typeof angularDataMerged[0] === 'string'; - var ticks; - if (isOrdinal) { - angularDataMerged = µ.util.deduplicate(angularDataMerged); - ticks = angularDataMerged.slice(); - angularDataMerged = d3.range(angularDataMerged.length); - data = data.map(function(d, i) { - var result = d; - d.t = [ angularDataMerged ]; - if (isStacked) result.yStack = d.yStack; - return result; - }); - } - var hasOnlyLineOrDotPlot = data.filter(function(d, i) { - return d.geometry === 'LinePlot' || d.geometry === 'DotPlot'; - }).length === data.length; - var needsEndSpacing = axisConfig.needsEndSpacing === null ? isOrdinal || !hasOnlyLineOrDotPlot : axisConfig.needsEndSpacing; - var useProvidedDomain = axisConfig.angularAxis.domain && axisConfig.angularAxis.domain != µ.DATAEXTENT && !isOrdinal && axisConfig.angularAxis.domain[0] >= 0; - var angularDomain = useProvidedDomain ? axisConfig.angularAxis.domain : d3.extent(angularDataMerged); - var angularDomainStep = Math.abs(angularDataMerged[1] - angularDataMerged[0]); - if (hasOnlyLineOrDotPlot && !isOrdinal) angularDomainStep = 0; - var angularDomainWithPadding = angularDomain.slice(); - if (needsEndSpacing && isOrdinal) angularDomainWithPadding[1] += angularDomainStep; - var tickCount = axisConfig.angularAxis.ticksCount || 4; - if (tickCount > 8) tickCount = tickCount / (tickCount / 8) + tickCount % 8; - if (axisConfig.angularAxis.ticksStep) { - tickCount = (angularDomainWithPadding[1] - angularDomainWithPadding[0]) / tickCount; - } - var angularTicksStep = axisConfig.angularAxis.ticksStep || (angularDomainWithPadding[1] - angularDomainWithPadding[0]) / (tickCount * (axisConfig.minorTicks + 1)); - if (ticks) angularTicksStep = Math.max(Math.round(angularTicksStep), 1); - if (!angularDomainWithPadding[2]) angularDomainWithPadding[2] = angularTicksStep; - var angularAxisRange = d3.range.apply(this, angularDomainWithPadding); - angularAxisRange = angularAxisRange.map(function(d, i) { - return parseFloat(d.toPrecision(12)); - }); - angularScale = d3.scale.linear().domain(angularDomainWithPadding.slice(0, 2)).range(axisConfig.direction === 'clockwise' ? [ 0, 360 ] : [ 360, 0 ]); - liveConfig.layout.angularAxis.domain = angularScale.domain(); - liveConfig.layout.angularAxis.endPadding = needsEndSpacing ? angularDomainStep : 0; - svg = d3.select(this).select('svg.chart-root'); - if (typeof svg === 'undefined' || svg.empty()) { - var skeleton = "' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '"; - var doc = new DOMParser().parseFromString(skeleton, 'application/xml'); - var newSvg = this.appendChild(this.ownerDocument.importNode(doc.documentElement, true)); - svg = d3.select(newSvg); - } - svg.select('.guides-group').style({ - 'pointer-events': 'none' - }); - svg.select('.angular.axis-group').style({ - 'pointer-events': 'none' - }); - svg.select('.radial.axis-group').style({ - 'pointer-events': 'none' - }); - var chartGroup = svg.select('.chart-group'); - var lineStyle = { - fill: 'none', - stroke: axisConfig.tickColor - }; - var fontStyle = { - 'font-size': axisConfig.font.size, - 'font-family': axisConfig.font.family, - fill: axisConfig.font.color, - 'text-shadow': [ '-1px 0px', '1px -1px', '-1px 1px', '1px 1px' ].map(function(d, i) { - return ' ' + d + ' 0 ' + axisConfig.font.outlineColor; - }).join(',') - }; - var legendContainer; - if (axisConfig.showLegend) { - legendContainer = svg.select('.legend-group').attr({ - transform: 'translate(' + [ radius, axisConfig.margin.top ] + ')' - }).style({ - display: 'block' - }); - var elements = data.map(function(d, i) { - var datumClone = µ.util.cloneJson(d); - datumClone.symbol = d.geometry === 'DotPlot' ? d.dotType || 'circle' : d.geometry != 'LinePlot' ? 'square' : 'line'; - datumClone.visibleInLegend = typeof d.visibleInLegend === 'undefined' || d.visibleInLegend; - datumClone.color = d.geometry === 'LinePlot' ? d.strokeColor : d.color; - return datumClone; - }); - - µ.Legend().config({ - data: data.map(function(d, i) { - return d.name || 'Element' + i; - }), - legendConfig: extendDeepAll({}, - µ.Legend.defaultConfig().legendConfig, - { - container: legendContainer, - elements: elements, - reverseOrder: axisConfig.legend.reverseOrder - } - ) - })(); - - var legendBBox = legendContainer.node().getBBox(); - radius = Math.min(axisConfig.width - legendBBox.width - axisConfig.margin.left - axisConfig.margin.right, axisConfig.height - axisConfig.margin.top - axisConfig.margin.bottom) / 2; - radius = Math.max(10, radius); - chartCenter = [ axisConfig.margin.left + radius, axisConfig.margin.top + radius ]; - radialScale.range([ 0, radius ]); - liveConfig.layout.radialAxis.domain = radialScale.domain(); - legendContainer.attr('transform', 'translate(' + [ chartCenter[0] + radius, chartCenter[1] - radius ] + ')'); - } else { - legendContainer = svg.select('.legend-group').style({ - display: 'none' - }); - } - svg.attr({ - width: axisConfig.width, - height: axisConfig.height - }).style({ - opacity: axisConfig.opacity - }); - chartGroup.attr('transform', 'translate(' + chartCenter + ')').style({ - cursor: 'crosshair' - }); - var centeringOffset = [ (axisConfig.width - (axisConfig.margin.left + axisConfig.margin.right + radius * 2 + (legendBBox ? legendBBox.width : 0))) / 2, (axisConfig.height - (axisConfig.margin.top + axisConfig.margin.bottom + radius * 2)) / 2 ]; - centeringOffset[0] = Math.max(0, centeringOffset[0]); - centeringOffset[1] = Math.max(0, centeringOffset[1]); - svg.select('.outer-group').attr('transform', 'translate(' + centeringOffset + ')'); - if (axisConfig.title && axisConfig.title.text) { - var title = svg.select('g.title-group text').style(fontStyle).text(axisConfig.title.text); - var titleBBox = title.node().getBBox(); - title.attr({ - x: chartCenter[0] - titleBBox.width / 2, - y: chartCenter[1] - radius - 20 - }); - } - var radialAxis = svg.select('.radial.axis-group'); - if (axisConfig.radialAxis.gridLinesVisible) { - var gridCircles = radialAxis.selectAll('circle.grid-circle').data(radialScale.ticks(5)); - gridCircles.enter().append('circle').attr({ - 'class': 'grid-circle' - }).style(lineStyle); - gridCircles.attr('r', radialScale); - gridCircles.exit().remove(); - } - radialAxis.select('circle.outside-circle').attr({ - r: radius - }).style(lineStyle); - var backgroundCircle = svg.select('circle.background-circle').attr({ - r: radius - }).style({ - fill: axisConfig.backgroundColor, - stroke: axisConfig.stroke - }); - function currentAngle(d, i) { - return angularScale(d) % 360 + axisConfig.orientation; - } - if (axisConfig.radialAxis.visible) { - var axis = d3.svg.axis().scale(radialScale).ticks(5).tickSize(5); - radialAxis.call(axis).attr({ - transform: 'rotate(' + axisConfig.radialAxis.orientation + ')' - }); - radialAxis.selectAll('.domain').style(lineStyle); - radialAxis.selectAll('g>text').text(function(d, i) { - return this.textContent + axisConfig.radialAxis.ticksSuffix; - }).style(fontStyle).style({ - 'text-anchor': 'start' - }).attr({ - x: 0, - y: 0, - dx: 0, - dy: 0, - transform: function(d, i) { - if (axisConfig.radialAxis.tickOrientation === 'horizontal') { - return 'rotate(' + -axisConfig.radialAxis.orientation + ') translate(' + [ 0, fontStyle['font-size'] ] + ')'; - } else return 'translate(' + [ 0, fontStyle['font-size'] ] + ')'; - } - }); - radialAxis.selectAll('g>line').style({ - stroke: 'black' - }); - } - var angularAxis = svg.select('.angular.axis-group').selectAll('g.angular-tick').data(angularAxisRange); - var angularAxisEnter = angularAxis.enter().append('g').classed('angular-tick', true); - angularAxis.attr({ - transform: function(d, i) { - return 'rotate(' + currentAngle(d, i) + ')'; - } - }).style({ - display: axisConfig.angularAxis.visible ? 'block' : 'none' - }); - angularAxis.exit().remove(); - angularAxisEnter.append('line').classed('grid-line', true).classed('major', function(d, i) { - return i % (axisConfig.minorTicks + 1) == 0; - }).classed('minor', function(d, i) { - return !(i % (axisConfig.minorTicks + 1) == 0); - }).style(lineStyle); - angularAxisEnter.selectAll('.minor').style({ - stroke: axisConfig.minorTickColor - }); - angularAxis.select('line.grid-line').attr({ - x1: axisConfig.tickLength ? radius - axisConfig.tickLength : 0, - x2: radius - }).style({ - display: axisConfig.angularAxis.gridLinesVisible ? 'block' : 'none' - }); - angularAxisEnter.append('text').classed('axis-text', true).style(fontStyle); - var ticksText = angularAxis.select('text.axis-text').attr({ - x: radius + axisConfig.labelOffset, - dy: MID_SHIFT + 'em', - transform: function(d, i) { - var angle = currentAngle(d, i); - var rad = radius + axisConfig.labelOffset; - var orient = axisConfig.angularAxis.tickOrientation; - if (orient == 'horizontal') return 'rotate(' + -angle + ' ' + rad + ' 0)'; else if (orient == 'radial') return angle < 270 && angle > 90 ? 'rotate(180 ' + rad + ' 0)' : null; else return 'rotate(' + (angle <= 180 && angle > 0 ? -90 : 90) + ' ' + rad + ' 0)'; - } - }).style({ - 'text-anchor': 'middle', - display: axisConfig.angularAxis.labelsVisible ? 'block' : 'none' - }).text(function(d, i) { - if (i % (axisConfig.minorTicks + 1) != 0) return ''; - if (ticks) { - return ticks[d] + axisConfig.angularAxis.ticksSuffix; - } else return d + axisConfig.angularAxis.ticksSuffix; - }).style(fontStyle); - if (axisConfig.angularAxis.rewriteTicks) ticksText.text(function(d, i) { - if (i % (axisConfig.minorTicks + 1) != 0) return ''; - return axisConfig.angularAxis.rewriteTicks(this.textContent, i); - }); - var rightmostTickEndX = d3.max(chartGroup.selectAll('.angular-tick text')[0].map(function(d, i) { - return d.getCTM().e + d.getBBox().width; - })); - legendContainer.attr({ - transform: 'translate(' + [ radius + rightmostTickEndX, axisConfig.margin.top ] + ')' - }); - var hasGeometry = svg.select('g.geometry-group').selectAll('g').size() > 0; - var geometryContainer = svg.select('g.geometry-group').selectAll('g.geometry').data(data); - geometryContainer.enter().append('g').attr({ - 'class': function(d, i) { - return 'geometry geometry' + i; - } - }); - geometryContainer.exit().remove(); - if (data[0] || hasGeometry) { - var geometryConfigs = []; - data.forEach(function(d, i) { - var geometryConfig = {}; - geometryConfig.radialScale = radialScale; - geometryConfig.angularScale = angularScale; - geometryConfig.container = geometryContainer.filter(function(dB, iB) { - return iB == i; - }); - geometryConfig.geometry = d.geometry; - geometryConfig.orientation = axisConfig.orientation; - geometryConfig.direction = axisConfig.direction; - geometryConfig.index = i; - geometryConfigs.push({ - data: d, - geometryConfig: geometryConfig - }); - }); - var geometryConfigsGrouped = d3.nest().key(function(d, i) { - return typeof d.data.groupId != 'undefined' || 'unstacked'; - }).entries(geometryConfigs); - var geometryConfigsGrouped2 = []; - geometryConfigsGrouped.forEach(function(d, i) { - if (d.key === 'unstacked') geometryConfigsGrouped2 = geometryConfigsGrouped2.concat(d.values.map(function(d, i) { - return [ d ]; - })); else geometryConfigsGrouped2.push(d.values); - }); - geometryConfigsGrouped2.forEach(function(d, i) { - var geometry; - if (Array.isArray(d)) geometry = d[0].geometryConfig.geometry; else geometry = d.geometryConfig.geometry; - var finalGeometryConfig = d.map(function(dB, iB) { - return extendDeepAll(µ[geometry].defaultConfig(), dB); - }); - µ[geometry]().config(finalGeometryConfig)(); - }); - } - var guides = svg.select('.guides-group'); - var tooltipContainer = svg.select('.tooltips-group'); - var angularTooltip = µ.tooltipPanel().config({ - container: tooltipContainer, - fontSize: 8 - })(); - var radialTooltip = µ.tooltipPanel().config({ - container: tooltipContainer, - fontSize: 8 - })(); - var geometryTooltip = µ.tooltipPanel().config({ - container: tooltipContainer, - hasTick: true - })(); - var angularValue, radialValue; - if (!isOrdinal) { - var angularGuideLine = guides.select('line').attr({ - x1: 0, - y1: 0, - y2: 0 - }).style({ - stroke: 'grey', - 'pointer-events': 'none' - }); - chartGroup.on('mousemove.angular-guide', function(d, i) { - var mouseAngle = µ.util.getMousePos(backgroundCircle).angle; - angularGuideLine.attr({ - x2: -radius, - transform: 'rotate(' + mouseAngle + ')' - }).style({ - opacity: .5 - }); - var angleWithOriginOffset = (mouseAngle + 180 + 360 - axisConfig.orientation) % 360; - angularValue = angularScale.invert(angleWithOriginOffset); - var pos = µ.util.convertToCartesian(radius + 12, mouseAngle + 180); - angularTooltip.text(µ.util.round(angularValue)).move([ pos[0] + chartCenter[0], pos[1] + chartCenter[1] ]); - }).on('mouseout.angular-guide', function(d, i) { - guides.select('line').style({ - opacity: 0 - }); - }); - } - var angularGuideCircle = guides.select('circle').style({ - stroke: 'grey', - fill: 'none' - }); - chartGroup.on('mousemove.radial-guide', function(d, i) { - var r = µ.util.getMousePos(backgroundCircle).radius; - angularGuideCircle.attr({ - r: r - }).style({ - opacity: .5 - }); - radialValue = radialScale.invert(µ.util.getMousePos(backgroundCircle).radius); - var pos = µ.util.convertToCartesian(r, axisConfig.radialAxis.orientation); - radialTooltip.text(µ.util.round(radialValue)).move([ pos[0] + chartCenter[0], pos[1] + chartCenter[1] ]); - }).on('mouseout.radial-guide', function(d, i) { - angularGuideCircle.style({ - opacity: 0 - }); - geometryTooltip.hide(); - angularTooltip.hide(); - radialTooltip.hide(); - }); - svg.selectAll('.geometry-group .mark').on('mouseover.tooltip', function(d, i) { - var el = d3.select(this); - var color = this.style.fill; - var newColor = 'black'; - var opacity = this.style.opacity || 1; - el.attr({ - 'data-opacity': opacity - }); - if (color && color !== 'none') { - el.attr({ - 'data-fill': color - }); - newColor = d3.hsl(color).darker().toString(); - el.style({ - fill: newColor, - opacity: 1 - }); - var textData = { - t: µ.util.round(d[0]), - r: µ.util.round(d[1]) - }; - if (isOrdinal) textData.t = ticks[d[0]]; - var text = 't: ' + textData.t + ', r: ' + textData.r; - var bbox = this.getBoundingClientRect(); - var svgBBox = svg.node().getBoundingClientRect(); - var pos = [ bbox.left + bbox.width / 2 - centeringOffset[0] - svgBBox.left, bbox.top + bbox.height / 2 - centeringOffset[1] - svgBBox.top ]; - geometryTooltip.config({ - color: newColor - }).text(text); - geometryTooltip.move(pos); - } else { - color = this.style.stroke || 'black'; - el.attr({ - 'data-stroke': color - }); - newColor = d3.hsl(color).darker().toString(); - el.style({ - stroke: newColor, - opacity: 1 - }); - } - }).on('mousemove.tooltip', function(d, i) { - if (d3.event.which != 0) return false; - if (d3.select(this).attr('data-fill')) geometryTooltip.show(); - }).on('mouseout.tooltip', function(d, i) { - geometryTooltip.hide(); - var el = d3.select(this); - var fillColor = el.attr('data-fill'); - if (fillColor) el.style({ - fill: fillColor, - opacity: el.attr('data-opacity') - }); else el.style({ - stroke: el.attr('data-stroke'), - opacity: el.attr('data-opacity') - }); - }); - }); - return exports; - } - exports.render = function(_container) { - render(_container); - return this; - }; - exports.config = function(_x) { - if (!arguments.length) return config; - var xClone = µ.util.cloneJson(_x); - xClone.data.forEach(function(d, i) { - if (!config.data[i]) config.data[i] = {}; - extendDeepAll(config.data[i], µ.Axis.defaultConfig().data[0]); - extendDeepAll(config.data[i], d); - }); - extendDeepAll(config.layout, µ.Axis.defaultConfig().layout); - extendDeepAll(config.layout, xClone.layout); - return this; - }; - exports.getLiveConfig = function() { - return liveConfig; - }; - exports.getinputConfig = function() { - return inputConfig; - }; - exports.radialScale = function(_x) { - return radialScale; - }; - exports.angularScale = function(_x) { - return angularScale; - }; - exports.svg = function() { - return svg; - }; - d3.rebind(exports, dispatch, 'on'); - return exports; -}; - -µ.Axis.defaultConfig = function(d, i) { - var config = { - data: [ { - t: [ 1, 2, 3, 4 ], - r: [ 10, 11, 12, 13 ], - name: 'Line1', - geometry: 'LinePlot', - color: null, - strokeDash: 'solid', - strokeColor: null, - strokeSize: '1', - visibleInLegend: true, - opacity: 1 - } ], - layout: { - defaultColorRange: d3.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: true, - gridLinesVisible: true, - tickOrientation: 'horizontal', - rewriteTicks: null - }, - angularAxis: { - domain: [ 0, 360 ], - ticksSuffix: '', - visible: true, - gridLinesVisible: true, - labelsVisible: true, - tickOrientation: 'horizontal', - rewriteTicks: null, - ticksCount: null, - ticksStep: null - }, - minorTicks: 0, - tickLength: null, - tickColor: 'silver', - minorTickColor: '#eee', - backgroundColor: 'none', - needsEndSpacing: null, - showLegend: true, - legend: { - reverseOrder: false - }, - opacity: 1 - } - }; - return config; -}; - -µ.util = {}; - -µ.DATAEXTENT = 'dataExtent'; - -µ.AREA = 'AreaChart'; - -µ.LINE = 'LinePlot'; - -µ.DOT = 'DotPlot'; - -µ.BAR = 'BarChart'; - -µ.util._override = function(_objA, _objB) { - for (var x in _objA) if (x in _objB) _objB[x] = _objA[x]; -}; - -µ.util._extend = function(_objA, _objB) { - for (var x in _objA) _objB[x] = _objA[x]; -}; - -µ.util._rndSnd = function() { - return Math.random() * 2 - 1 + (Math.random() * 2 - 1) + (Math.random() * 2 - 1); -}; - -µ.util.dataFromEquation2 = function(_equation, _step) { - var step = _step || 6; - var data = d3.range(0, 360 + step, step).map(function(deg, index) { - var theta = deg * Math.PI / 180; - var radius = _equation(theta); - return [ deg, radius ]; - }); - return data; -}; - -µ.util.dataFromEquation = function(_equation, _step, _name) { - var step = _step || 6; - var t = [], r = []; - d3.range(0, 360 + step, step).forEach(function(deg, index) { - var theta = deg * Math.PI / 180; - var radius = _equation(theta); - t.push(deg); - r.push(radius); - }); - var result = { - t: t, - r: r - }; - if (_name) result.name = _name; - return result; -}; - -µ.util.ensureArray = function(_val, _count) { - if (typeof _val === 'undefined') return null; - var arr = [].concat(_val); - return d3.range(_count).map(function(d, i) { - return arr[i] || arr[0]; - }); -}; - -µ.util.fillArrays = function(_obj, _valueNames, _count) { - _valueNames.forEach(function(d, i) { - _obj[d] = µ.util.ensureArray(_obj[d], _count); - }); - return _obj; -}; - -µ.util.cloneJson = function(json) { - return JSON.parse(JSON.stringify(json)); -}; - -µ.util.validateKeys = function(obj, keys) { - if (typeof keys === 'string') keys = keys.split('.'); - var next = keys.shift(); - return obj[next] && (!keys.length || objHasKeys(obj[next], keys)); -}; - -µ.util.sumArrays = function(a, b) { - return d3.zip(a, b).map(function(d, i) { - return d3.sum(d); - }); -}; - -µ.util.arrayLast = function(a) { - return a[a.length - 1]; -}; - -µ.util.arrayEqual = function(a, b) { - var i = Math.max(a.length, b.length, 1); - while (i-- >= 0 && a[i] === b[i]) ; - return i === -2; -}; - -µ.util.flattenArray = function(arr) { - var r = []; - while (!µ.util.arrayEqual(r, arr)) { - r = arr; - arr = [].concat.apply([], arr); - } - return arr; -}; - -µ.util.deduplicate = function(arr) { - return arr.filter(function(v, i, a) { - return a.indexOf(v) == i; - }); -}; - -µ.util.convertToCartesian = function(radius, theta) { - var thetaRadians = theta * Math.PI / 180; - var x = radius * Math.cos(thetaRadians); - var y = radius * Math.sin(thetaRadians); - return [ x, y ]; -}; - -µ.util.round = function(_value, _digits) { - var digits = _digits || 2; - var mult = Math.pow(10, digits); - return Math.round(_value * mult) / mult; -}; - -µ.util.getMousePos = function(_referenceElement) { - var mousePos = d3.mouse(_referenceElement.node()); - var mouseX = mousePos[0]; - var mouseY = mousePos[1]; - var mouse = {}; - mouse.x = mouseX; - mouse.y = mouseY; - mouse.pos = mousePos; - mouse.angle = (Math.atan2(mouseY, mouseX) + Math.PI) * 180 / Math.PI; - mouse.radius = Math.sqrt(mouseX * mouseX + mouseY * mouseY); - return mouse; -}; - -µ.util.duplicatesCount = function(arr) { - var uniques = {}, val; - var dups = {}; - for (var i = 0, len = arr.length; i < len; i++) { - val = arr[i]; - if (val in uniques) { - uniques[val]++; - dups[val] = uniques[val]; - } else { - uniques[val] = 1; - } - } - return dups; -}; - -µ.util.duplicates = function(arr) { - return Object.keys(µ.util.duplicatesCount(arr)); -}; - -µ.util.translator = function(obj, sourceBranch, targetBranch, reverse) { - if (reverse) { - var targetBranchCopy = targetBranch.slice(); - targetBranch = sourceBranch; - sourceBranch = targetBranchCopy; - } - var value = sourceBranch.reduce(function(previousValue, currentValue) { - if (typeof previousValue != 'undefined') return previousValue[currentValue]; - }, obj); - if (typeof value === 'undefined') return; - sourceBranch.reduce(function(previousValue, currentValue, index) { - if (typeof previousValue == 'undefined') return; - if (index === sourceBranch.length - 1) delete previousValue[currentValue]; - return previousValue[currentValue]; - }, obj); - targetBranch.reduce(function(previousValue, currentValue, index) { - if (typeof previousValue[currentValue] === 'undefined') previousValue[currentValue] = {}; - if (index === targetBranch.length - 1) previousValue[currentValue] = value; - return previousValue[currentValue]; - }, obj); -}; - -µ.PolyChart = function module() { - var config = [ µ.PolyChart.defaultConfig() ]; - var dispatch = d3.dispatch('hover'); - var dashArray = { - solid: 'none', - dash: [ 5, 2 ], - dot: [ 2, 5 ] - }; - var colorScale; - function exports() { - var geometryConfig = config[0].geometryConfig; - var container = geometryConfig.container; - if (typeof container == 'string') container = d3.select(container); - container.datum(config).each(function(_config, _index) { - var isStack = !!_config[0].data.yStack; - var data = _config.map(function(d, i) { - if (isStack) return d3.zip(d.data.t[0], d.data.r[0], d.data.yStack[0]); else return d3.zip(d.data.t[0], d.data.r[0]); - }); - var angularScale = geometryConfig.angularScale; - var domainMin = geometryConfig.radialScale.domain()[0]; - var generator = {}; - generator.bar = function(d, i, pI) { - var dataConfig = _config[pI].data; - var h = geometryConfig.radialScale(d[1]) - geometryConfig.radialScale(0); - var stackTop = geometryConfig.radialScale(d[2] || 0); - var w = dataConfig.barWidth; - d3.select(this).attr({ - 'class': 'mark bar', - d: 'M' + [ [ h + stackTop, -w / 2 ], [ h + stackTop, w / 2 ], [ stackTop, w / 2 ], [ stackTop, -w / 2 ] ].join('L') + 'Z', - transform: function(d, i) { - return 'rotate(' + (geometryConfig.orientation + angularScale(d[0])) + ')'; - } - }); - }; - generator.dot = function(d, i, pI) { - var stackedData = d[2] ? [ d[0], d[1] + d[2] ] : d; - var symbol = d3.svg.symbol().size(_config[pI].data.dotSize).type(_config[pI].data.dotType)(d, i); - d3.select(this).attr({ - 'class': 'mark dot', - d: symbol, - transform: function(d, i) { - var coord = convertToCartesian(getPolarCoordinates(stackedData)); - return 'translate(' + [ coord.x, coord.y ] + ')'; - } - }); - }; - var line = d3.svg.line.radial().interpolate(_config[0].data.lineInterpolation).radius(function(d) { - return geometryConfig.radialScale(d[1]); - }).angle(function(d) { - return geometryConfig.angularScale(d[0]) * Math.PI / 180; - }); - generator.line = function(d, i, pI) { - var lineData = d[2] ? data[pI].map(function(d, i) { - return [ d[0], d[1] + d[2] ]; - }) : data[pI]; - d3.select(this).each(generator['dot']).style({ - opacity: function(dB, iB) { - return +_config[pI].data.dotVisible; - }, - fill: markStyle.stroke(d, i, pI) - }).attr({ - 'class': 'mark dot' - }); - if (i > 0) return; - var lineSelection = d3.select(this.parentNode).selectAll('path.line').data([ 0 ]); - lineSelection.enter().insert('path'); - lineSelection.attr({ - 'class': 'line', - d: line(lineData), - transform: function(dB, iB) { - return 'rotate(' + (geometryConfig.orientation + 90) + ')'; - }, - 'pointer-events': 'none' - }).style({ - fill: function(dB, iB) { - return markStyle.fill(d, i, pI); - }, - 'fill-opacity': 0, - stroke: function(dB, iB) { - return markStyle.stroke(d, i, pI); - }, - 'stroke-width': function(dB, iB) { - return markStyle['stroke-width'](d, i, pI); - }, - 'stroke-dasharray': function(dB, iB) { - return markStyle['stroke-dasharray'](d, i, pI); - }, - opacity: function(dB, iB) { - return markStyle.opacity(d, i, pI); - }, - display: function(dB, iB) { - return markStyle.display(d, i, pI); - } - }); - }; - var angularRange = geometryConfig.angularScale.range(); - var triangleAngle = Math.abs(angularRange[1] - angularRange[0]) / data[0].length * Math.PI / 180; - var arc = d3.svg.arc().startAngle(function(d) { - return -triangleAngle / 2; - }).endAngle(function(d) { - return triangleAngle / 2; - }).innerRadius(function(d) { - return geometryConfig.radialScale(domainMin + (d[2] || 0)); - }).outerRadius(function(d) { - return geometryConfig.radialScale(domainMin + (d[2] || 0)) + geometryConfig.radialScale(d[1]); - }); - generator.arc = function(d, i, pI) { - d3.select(this).attr({ - 'class': 'mark arc', - d: arc, - transform: function(d, i) { - return 'rotate(' + (geometryConfig.orientation + angularScale(d[0]) + 90) + ')'; - } - }); - }; - var markStyle = { - fill: function(d, i, pI) { - return _config[pI].data.color; - }, - stroke: function(d, i, pI) { - return _config[pI].data.strokeColor; - }, - 'stroke-width': function(d, i, pI) { - return _config[pI].data.strokeSize + 'px'; - }, - 'stroke-dasharray': function(d, i, pI) { - return dashArray[_config[pI].data.strokeDash]; - }, - opacity: function(d, i, pI) { - return _config[pI].data.opacity; - }, - display: function(d, i, pI) { - return typeof _config[pI].data.visible === 'undefined' || _config[pI].data.visible ? 'block' : 'none'; - } - }; - var geometryLayer = d3.select(this).selectAll('g.layer').data(data); - geometryLayer.enter().append('g').attr({ - 'class': 'layer' - }); - var geometry = geometryLayer.selectAll('path.mark').data(function(d, i) { - return d; - }); - geometry.enter().append('path').attr({ - 'class': 'mark' - }); - geometry.style(markStyle).each(generator[geometryConfig.geometryType]); - geometry.exit().remove(); - geometryLayer.exit().remove(); - function getPolarCoordinates(d, i) { - var r = geometryConfig.radialScale(d[1]); - var t = (geometryConfig.angularScale(d[0]) + geometryConfig.orientation) * Math.PI / 180; - return { - r: r, - t: t - }; - } - function convertToCartesian(polarCoordinates) { - var x = polarCoordinates.r * Math.cos(polarCoordinates.t); - var y = polarCoordinates.r * Math.sin(polarCoordinates.t); - return { - x: x, - y: y - }; - } - }); - } - exports.config = function(_x) { - if (!arguments.length) return config; - _x.forEach(function(d, i) { - if (!config[i]) config[i] = {}; - extendDeepAll(config[i], µ.PolyChart.defaultConfig()); - extendDeepAll(config[i], d); - }); - return this; - }; - exports.getColorScale = function() { - return colorScale; - }; - d3.rebind(exports, dispatch, 'on'); - return exports; -}; - -µ.PolyChart.defaultConfig = function() { - var config = { - data: { - name: 'geom1', - t: [ [ 1, 2, 3, 4 ] ], - r: [ [ 1, 2, 3, 4 ] ], - dotType: 'circle', - dotSize: 64, - dotVisible: false, - barWidth: 20, - color: '#ffa500', - strokeSize: 1, - strokeColor: 'silver', - strokeDash: 'solid', - opacity: 1, - index: 0, - visible: true, - visibleInLegend: true - }, - geometryConfig: { - geometry: 'LinePlot', - geometryType: 'arc', - direction: 'clockwise', - orientation: 0, - container: 'body', - radialScale: null, - angularScale: null, - colorScale: d3.scale.category20() - } - }; - return config; -}; - -µ.BarChart = function module() { - return µ.PolyChart(); -}; - -µ.BarChart.defaultConfig = function() { - var config = { - geometryConfig: { - geometryType: 'bar' - } - }; - return config; -}; - -µ.AreaChart = function module() { - return µ.PolyChart(); -}; - -µ.AreaChart.defaultConfig = function() { - var config = { - geometryConfig: { - geometryType: 'arc' - } - }; - return config; -}; - -µ.DotPlot = function module() { - return µ.PolyChart(); -}; - -µ.DotPlot.defaultConfig = function() { - var config = { - geometryConfig: { - geometryType: 'dot', - dotType: 'circle' - } - }; - return config; -}; - -µ.LinePlot = function module() { - return µ.PolyChart(); -}; - -µ.LinePlot.defaultConfig = function() { - var config = { - geometryConfig: { - geometryType: 'line' - } - }; - return config; -}; - -µ.Legend = function module() { - var config = µ.Legend.defaultConfig(); - var dispatch = d3.dispatch('hover'); - function exports() { - var legendConfig = config.legendConfig; - var flattenData = config.data.map(function(d, i) { - return [].concat(d).map(function(dB, iB) { - var element = extendDeepAll({}, legendConfig.elements[i]); - element.name = dB; - element.color = [].concat(legendConfig.elements[i].color)[iB]; - return element; - }); - }); - var data = d3.merge(flattenData); - data = data.filter(function(d, i) { - return legendConfig.elements[i] && (legendConfig.elements[i].visibleInLegend || typeof legendConfig.elements[i].visibleInLegend === 'undefined'); - }); - if (legendConfig.reverseOrder) data = data.reverse(); - var container = legendConfig.container; - if (typeof container == 'string' || container.nodeName) container = d3.select(container); - var colors = data.map(function(d, i) { - return d.color; - }); - var lineHeight = legendConfig.fontSize; - var isContinuous = legendConfig.isContinuous == null ? typeof data[0] === 'number' : legendConfig.isContinuous; - var height = isContinuous ? legendConfig.height : lineHeight * data.length; - var legendContainerGroup = container.classed('legend-group', true); - var svg = legendContainerGroup.selectAll('svg').data([ 0 ]); - var svgEnter = svg.enter().append('svg').attr({ - width: 300, - height: height + lineHeight, - xmlns: 'http://www.w3.org/2000/svg', - 'xmlns:xlink': 'http://www.w3.org/1999/xlink', - version: '1.1' - }); - svgEnter.append('g').classed('legend-axis', true); - svgEnter.append('g').classed('legend-marks', true); - var dataNumbered = d3.range(data.length); - var colorScale = d3.scale[isContinuous ? 'linear' : 'ordinal']().domain(dataNumbered).range(colors); - var dataScale = d3.scale[isContinuous ? 'linear' : 'ordinal']().domain(dataNumbered)[isContinuous ? 'range' : 'rangePoints']([ 0, height ]); - var shapeGenerator = function(_type, _size) { - var squareSize = _size * 3; - if (_type === 'line') { - return 'M' + [ [ -_size / 2, -_size / 12 ], [ _size / 2, -_size / 12 ], [ _size / 2, _size / 12 ], [ -_size / 2, _size / 12 ] ] + 'Z'; - } else if (d3.svg.symbolTypes.indexOf(_type) != -1) return d3.svg.symbol().type(_type).size(squareSize)(); else return d3.svg.symbol().type('square').size(squareSize)(); - }; - if (isContinuous) { - var gradient = svg.select('.legend-marks').append('defs').append('linearGradient').attr({ - id: 'grad1', - x1: '0%', - y1: '0%', - x2: '0%', - y2: '100%' - }).selectAll('stop').data(colors); - gradient.enter().append('stop'); - gradient.attr({ - offset: function(d, i) { - return i / (colors.length - 1) * 100 + '%'; - } - }).style({ - 'stop-color': function(d, i) { - return d; - } - }); - svg.append('rect').classed('legend-mark', true).attr({ - height: legendConfig.height, - width: legendConfig.colorBandWidth, - fill: 'url(#grad1)' - }); - } else { - var legendElement = svg.select('.legend-marks').selectAll('path.legend-mark').data(data); - legendElement.enter().append('path').classed('legend-mark', true); - legendElement.attr({ - transform: function(d, i) { - return 'translate(' + [ lineHeight / 2, dataScale(i) + lineHeight / 2 ] + ')'; - }, - d: function(d, i) { - var symbolType = d.symbol; - return shapeGenerator(symbolType, lineHeight); - }, - fill: function(d, i) { - return colorScale(i); - } - }); - legendElement.exit().remove(); - } - var legendAxis = d3.svg.axis().scale(dataScale).orient('right'); - var axis = svg.select('g.legend-axis').attr({ - transform: 'translate(' + [ isContinuous ? legendConfig.colorBandWidth : lineHeight, lineHeight / 2 ] + ')' - }).call(legendAxis); - axis.selectAll('.domain').style({ - fill: 'none', - stroke: 'none' - }); - axis.selectAll('line').style({ - fill: 'none', - stroke: isContinuous ? legendConfig.textColor : 'none' - }); - axis.selectAll('text').style({ - fill: legendConfig.textColor, - 'font-size': legendConfig.fontSize - }).text(function(d, i) { - return data[i].name; - }); - return exports; - } - exports.config = function(_x) { - if (!arguments.length) return config; - extendDeepAll(config, _x); - return this; - }; - d3.rebind(exports, dispatch, 'on'); - return exports; -}; - -µ.Legend.defaultConfig = function(d, i) { - var config = { - 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: false - } - }; - return config; -}; - -µ.tooltipPanel = function() { - var tooltipEl, tooltipTextEl, backgroundEl; - var config = { - container: null, - hasTick: false, - fontSize: 12, - color: 'white', - padding: 5 - }; - var id = 'tooltip-' + µ.tooltipPanel.uid++; - var tickSize = 10; - var exports = function() { - tooltipEl = config.container.selectAll('g.' + id).data([ 0 ]); - var tooltipEnter = tooltipEl.enter().append('g').classed(id, true).style({ - 'pointer-events': 'none', - display: 'none' - }); - backgroundEl = tooltipEnter.append('path').style({ - fill: 'white', - 'fill-opacity': .9 - }).attr({ - d: 'M0 0' - }); - tooltipTextEl = tooltipEnter.append('text').attr({ - dx: config.padding + tickSize, - dy: +config.fontSize * .3 - }); - return exports; - }; - exports.text = function(_text) { - var l = d3.hsl(config.color).l; - var strokeColor = l >= .5 ? '#aaa' : 'white'; - var fillColor = l >= .5 ? 'black' : 'white'; - var text = _text || ''; - tooltipTextEl.style({ - fill: fillColor, - 'font-size': config.fontSize + 'px' - }).text(text); - var padding = config.padding; - var bbox = tooltipTextEl.node().getBBox(); - var boxStyle = { - fill: config.color, - stroke: strokeColor, - 'stroke-width': '2px' - }; - var backGroundW = bbox.width + padding * 2 + tickSize; - var backGroundH = bbox.height + padding * 2; - backgroundEl.attr({ - d: 'M' + [ [ tickSize, -backGroundH / 2 ], [ tickSize, -backGroundH / 4 ], [ config.hasTick ? 0 : tickSize, 0 ], [ tickSize, backGroundH / 4 ], [ tickSize, backGroundH / 2 ], [ backGroundW, backGroundH / 2 ], [ backGroundW, -backGroundH / 2 ] ].join('L') + 'Z' - }).style(boxStyle); - tooltipEl.attr({ - transform: 'translate(' + [ tickSize, -backGroundH / 2 + padding * 2 ] + ')' - }); - tooltipEl.style({ - display: 'block' - }); - return exports; - }; - exports.move = function(_pos) { - if (!tooltipEl) return; - tooltipEl.attr({ - transform: 'translate(' + [ _pos[0], _pos[1] ] + ')' - }).style({ - display: 'block' - }); - return exports; - }; - exports.hide = function() { - if (!tooltipEl) return; - tooltipEl.style({ - display: 'none' - }); - return exports; - }; - exports.show = function() { - if (!tooltipEl) return; - tooltipEl.style({ - display: 'block' - }); - return exports; - }; - exports.config = function(_x) { - extendDeepAll(config, _x); - return exports; - }; - return exports; -}; - -µ.tooltipPanel.uid = 1; - -µ.adapter = {}; - -µ.adapter.plotly = function module() { - var exports = {}; - exports.convert = function(_inputConfig, reverse) { - var outputConfig = {}; - if (_inputConfig.data) { - outputConfig.data = _inputConfig.data.map(function(d, i) { - var r = extendDeepAll({}, d); - var toTranslate = [ - [ r, [ 'marker', 'color' ], [ 'color' ] ], - [ r, [ 'marker', 'opacity' ], [ 'opacity' ] ], - [ r, [ 'marker', 'line', 'color' ], [ 'strokeColor' ] ], - [ r, [ 'marker', 'line', 'dash' ], [ 'strokeDash' ] ], - [ r, [ 'marker', 'line', 'width' ], [ 'strokeSize' ] ], - [ r, [ 'marker', 'symbol' ], [ 'dotType' ] ], - [ r, [ 'marker', 'size' ], [ 'dotSize' ] ], - [ r, [ 'marker', 'barWidth' ], [ 'barWidth' ] ], - [ r, [ 'line', 'interpolation' ], [ 'lineInterpolation' ] ], - [ r, [ 'showlegend' ], [ 'visibleInLegend' ] ] - ]; - toTranslate.forEach(function(d, i) { - µ.util.translator.apply(null, d.concat(reverse)); - }); - - if (!reverse) delete r.marker; - if (reverse) delete r.groupId; - if (!reverse) { - if (r.type === 'scatter') { - if (r.mode === 'lines') r.geometry = 'LinePlot'; else if (r.mode === 'markers') r.geometry = 'DotPlot'; else if (r.mode === 'lines+markers') { - r.geometry = 'LinePlot'; - r.dotVisible = true; - } - } else if (r.type === 'area') r.geometry = 'AreaChart'; else if (r.type === 'bar') r.geometry = 'BarChart'; - delete r.mode; - delete r.type; - } else { - if (r.geometry === 'LinePlot') { - r.type = 'scatter'; - if (r.dotVisible === true) { - delete r.dotVisible; - r.mode = 'lines+markers'; - } else r.mode = 'lines'; - } else if (r.geometry === 'DotPlot') { - r.type = 'scatter'; - r.mode = 'markers'; - } else if (r.geometry === 'AreaChart') r.type = 'area'; else if (r.geometry === 'BarChart') r.type = 'bar'; - delete r.geometry; - } - return r; - }); - if (!reverse && _inputConfig.layout && _inputConfig.layout.barmode === 'stack') { - var duplicates = µ.util.duplicates(outputConfig.data.map(function(d, i) { - return d.geometry; - })); - outputConfig.data.forEach(function(d, i) { - var idx = duplicates.indexOf(d.geometry); - if (idx != -1) outputConfig.data[i].groupId = idx; - }); - } - } - if (_inputConfig.layout) { - var r = extendDeepAll({}, _inputConfig.layout); - var toTranslate = [ - [ r, [ 'plot_bgcolor' ], [ 'backgroundColor' ] ], - [ r, [ 'showlegend' ], [ 'showLegend' ] ], - [ r, [ 'radialaxis' ], [ 'radialAxis' ] ], - [ r, [ 'angularaxis' ], [ 'angularAxis' ] ], - [ r.angularaxis, [ 'showline' ], [ 'gridLinesVisible' ] ], - [ r.angularaxis, [ 'showticklabels' ], [ 'labelsVisible' ] ], - [ r.angularaxis, [ 'nticks' ], [ 'ticksCount' ] ], - [ r.angularaxis, [ 'tickorientation' ], [ 'tickOrientation' ] ], - [ r.angularaxis, [ 'ticksuffix' ], [ 'ticksSuffix' ] ], - [ r.angularaxis, [ 'range' ], [ 'domain' ] ], - [ r.angularaxis, [ 'endpadding' ], [ 'endPadding' ] ], - [ r.radialaxis, [ 'showline' ], [ 'gridLinesVisible' ] ], - [ r.radialaxis, [ 'tickorientation' ], [ 'tickOrientation' ] ], - [ r.radialaxis, [ 'ticksuffix' ], [ 'ticksSuffix' ] ], - [ r.radialaxis, [ 'range' ], [ 'domain' ] ], - [ r.angularAxis, [ 'showline' ], [ 'gridLinesVisible' ] ], - [ r.angularAxis, [ 'showticklabels' ], [ 'labelsVisible' ] ], - [ r.angularAxis, [ 'nticks' ], [ 'ticksCount' ] ], - [ r.angularAxis, [ 'tickorientation' ], [ 'tickOrientation' ] ], - [ r.angularAxis, [ 'ticksuffix' ], [ 'ticksSuffix' ] ], - [ r.angularAxis, [ 'range' ], [ 'domain' ] ], - [ r.angularAxis, [ 'endpadding' ], [ 'endPadding' ] ], - [ r.radialAxis, [ 'showline' ], [ 'gridLinesVisible' ] ], - [ r.radialAxis, [ 'tickorientation' ], [ 'tickOrientation' ] ], - [ r.radialAxis, [ 'ticksuffix' ], [ 'ticksSuffix' ] ], - [ r.radialAxis, [ 'range' ], [ 'domain' ] ], - [ r.font, [ 'outlinecolor' ], [ 'outlineColor' ] ], - [ r.legend, [ 'traceorder' ], [ 'reverseOrder' ] ], - [ r, [ 'labeloffset' ], [ 'labelOffset' ] ], - [ r, [ 'defaultcolorrange' ], [ 'defaultColorRange' ] ] - ]; - toTranslate.forEach(function(d, i) { - µ.util.translator.apply(null, d.concat(reverse)); - }); - - if (!reverse) { - if (r.angularAxis && typeof r.angularAxis.ticklen !== 'undefined') r.tickLength = r.angularAxis.ticklen; - if (r.angularAxis && typeof r.angularAxis.tickcolor !== 'undefined') r.tickColor = r.angularAxis.tickcolor; - } else { - if (typeof r.tickLength !== 'undefined') { - r.angularaxis.ticklen = r.tickLength; - delete r.tickLength; - } - if (r.tickColor) { - r.angularaxis.tickcolor = r.tickColor; - delete r.tickColor; - } - } - if (r.legend && typeof r.legend.reverseOrder != 'boolean') { - r.legend.reverseOrder = r.legend.reverseOrder != 'normal'; - } - if (r.legend && typeof r.legend.traceorder == 'boolean') { - r.legend.traceorder = r.legend.traceorder ? 'reversed' : 'normal'; - delete r.legend.reverseOrder; - } - if (r.margin && typeof r.margin.t != 'undefined') { - var source = [ 't', 'r', 'b', 'l', 'pad' ]; - var target = [ 'top', 'right', 'bottom', 'left', 'pad' ]; - var margin = {}; - d3.entries(r.margin).forEach(function(dB, iB) { - margin[target[source.indexOf(dB.key)]] = dB.value; - }); - r.margin = margin; - } - if (reverse) { - delete r.needsEndSpacing; - delete r.minorTickColor; - delete r.minorTicks; - delete r.angularaxis.ticksCount; - delete r.angularaxis.ticksCount; - delete r.angularaxis.ticksStep; - delete r.angularaxis.rewriteTicks; - delete r.angularaxis.nticks; - delete r.radialaxis.ticksCount; - delete r.radialaxis.ticksCount; - delete r.radialaxis.ticksStep; - delete r.radialaxis.rewriteTicks; - delete r.radialaxis.nticks; - } - outputConfig.layout = r; - } - return outputConfig; - }; - return exports; -}; - -},{"../../../constants/alignment":745,"../../../lib":778,"d3":169}],901:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ - -/* eslint-disable new-cap */ - -'use strict'; - -var d3 = _dereq_('d3'); -var Lib = _dereq_('../../../lib'); -var Color = _dereq_('../../../components/color'); - -var micropolar = _dereq_('./micropolar'); -var UndoManager = _dereq_('./undo_manager'); -var extendDeepAll = Lib.extendDeepAll; - -var manager = module.exports = {}; - -manager.framework = function(_gd) { - var config, previousConfigClone, plot, convertedInput, container; - var undoManager = new UndoManager(); - - function exports(_inputConfig, _container) { - if(_container) container = _container; - d3.select(d3.select(container).node().parentNode).selectAll('.svg-container>*:not(.chart-root)').remove(); - - config = (!config) ? - _inputConfig : - extendDeepAll(config, _inputConfig); - - if(!plot) plot = micropolar.Axis(); - convertedInput = micropolar.adapter.plotly().convert(config); - plot.config(convertedInput).render(container); - _gd.data = config.data; - _gd.layout = config.layout; - manager.fillLayout(_gd); - return config; - } - exports.isPolar = true; - exports.svg = function() { return plot.svg(); }; - exports.getConfig = function() { return config; }; - exports.getLiveConfig = function() { - return micropolar.adapter.plotly().convert(plot.getLiveConfig(), true); - }; - exports.getLiveScales = function() { return {t: plot.angularScale(), r: plot.radialScale()}; }; - exports.setUndoPoint = function() { - var that = this; - var configClone = micropolar.util.cloneJson(config); - (function(_configClone, _previousConfigClone) { - undoManager.add({ - undo: function() { - if(_previousConfigClone) that(_previousConfigClone); - }, - redo: function() { - that(_configClone); - } - }); - })(configClone, previousConfigClone); - previousConfigClone = micropolar.util.cloneJson(configClone); - }; - exports.undo = function() { undoManager.undo(); }; - exports.redo = function() { undoManager.redo(); }; - return exports; -}; - -manager.fillLayout = function(_gd) { - var container = d3.select(_gd).selectAll('.plot-container'); - var paperDiv = container.selectAll('.svg-container'); - var paper = _gd.framework && _gd.framework.svg && _gd.framework.svg(); - var dflts = { - width: 800, - height: 600, - paper_bgcolor: Color.background, - _container: container, - _paperdiv: paperDiv, - _paper: paper - }; - - _gd._fullLayout = extendDeepAll(dflts, _gd.layout); -}; - -},{"../../../components/color":643,"../../../lib":778,"./micropolar":900,"./undo_manager":902,"d3":169}],902:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ - -'use strict'; - -// Modified from https://github.com/ArthurClemens/Javascript-Undo-Manager -// Copyright (c) 2010-2013 Arthur Clemens, arthur@visiblearea.com -module.exports = function UndoManager() { - var undoCommands = []; - var index = -1; - var isExecuting = false; - var callback; - - function execute(command, action) { - if(!command) return this; - - isExecuting = true; - command[action](); - isExecuting = false; - - return this; - } - - return { - add: function(command) { - if(isExecuting) return this; - undoCommands.splice(index + 1, undoCommands.length - index); - undoCommands.push(command); - index = undoCommands.length - 1; - return this; - }, - setCallback: function(callbackFunc) { callback = callbackFunc; }, - undo: function() { - var command = undoCommands[index]; - if(!command) return this; - execute(command, 'undo'); - index -= 1; - if(callback) callback(command.undo); - return this; - }, - redo: function() { - var command = undoCommands[index + 1]; - if(!command) return this; - execute(command, 'redo'); - index += 1; - if(callback) callback(command.redo); - return this; - }, - clear: function() { - undoCommands = []; - index = -1; - }, - hasUndo: function() { return index !== -1; }, - hasRedo: function() { return index < (undoCommands.length - 1); }, - getCommands: function() { return undoCommands; }, - getPreviousCommand: function() { return undoCommands[index - 1]; }, - getIndex: function() { return index; } - }; -}; - -},{}],903:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ - -'use strict'; - -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var tinycolor = _dereq_('tinycolor2'); var Registry = _dereq_('../../registry'); @@ -173044,14 +171092,8 @@ function updateElement(sel, showAttr, attrs) { return sel; } -},{"../../components/color":643,"../../components/dragelement":662,"../../components/drawing":665,"../../components/fx":683,"../../components/titles":738,"../../constants/alignment":745,"../../lib":778,"../../lib/clear_gl_canvases":762,"../../lib/setcursor":799,"../../plot_api/subroutines":818,"../../plots/cartesian/axes":828,"../../registry":911,"../cartesian/autorange":827,"../cartesian/dragbox":836,"../cartesian/select":847,"../cartesian/set_convert":848,"../plots":891,"./constants":892,"./helpers":893,"./set_convert":904,"d3":169,"tinycolor2":576}],904:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../components/dragelement":679,"../../components/drawing":682,"../../components/fx":700,"../../components/titles":755,"../../constants/alignment":762,"../../lib":795,"../../lib/clear_gl_canvases":779,"../../lib/setcursor":816,"../../plot_api/subroutines":835,"../../plots/cartesian/axes":845,"../../registry":922,"../cartesian/autorange":844,"../cartesian/dragbox":853,"../cartesian/select":864,"../cartesian/set_convert":865,"../plots":908,"./constants":909,"./helpers":910,"./set_convert":915,"@plotly/d3":58,"tinycolor2":592}],915:[function(_dereq_,module,exports){ + 'use strict'; @@ -173239,14 +171281,8 @@ function setConvertAngular(ax, polarLayout) { }; } -},{"../../lib":778,"../cartesian/set_convert":848}],905:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../cartesian/set_convert":865}],916:[function(_dereq_,module,exports){ + 'use strict'; @@ -173324,14 +171360,8 @@ module.exports = function handleSubplotDefaults(layoutIn, layoutOut, fullData, o } }; -},{"../lib":778,"../plot_api/plot_template":817,"./domain":855}],906:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../lib":795,"../plot_api/plot_template":834,"./domain":872}],917:[function(_dereq_,module,exports){ + 'use strict'; @@ -173374,10 +171404,8 @@ exports.hovertemplateAttrs = function(opts, extra) { var hovertemplate = { valType: 'string', - dflt: '', editType: opts.editType || 'none', - }; if(opts.arrayOk !== false) { @@ -173395,10 +171423,8 @@ exports.texttemplateAttrs = function(opts, extra) { var texttemplate = { valType: 'string', - dflt: '', editType: opts.editType || 'calc', - }; if(opts.arrayOk !== false) { @@ -173407,14 +171433,8 @@ exports.texttemplateAttrs = function(opts, extra) { return texttemplate; }; -},{"../constants/docs":748}],907:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../constants/docs":765}],918:[function(_dereq_,module,exports){ + 'use strict'; @@ -173436,10 +171456,8 @@ exports.idRegex = exports.attrRegex = counterRegex(TERNARY); var attributes = exports.attributes = {}; attributes[attr] = { valType: 'subplotid', - dflt: 'ternary', editType: 'calc', - }; exports.layoutAttributes = _dereq_('./layout_attributes'); @@ -173491,14 +171509,8 @@ exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) } }; -},{"../../lib":778,"../../plots/get_data":865,"./layout_attributes":908,"./layout_defaults":909,"./ternary":910}],908:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../plots/get_data":882,"./layout_attributes":919,"./layout_defaults":920,"./ternary":921}],919:[function(_dereq_,module,exports){ + 'use strict'; @@ -173553,9 +171565,7 @@ var ternaryAxesAttrs = { min: { valType: 'number', dflt: 0, - min: 0, - }, _deprecated: { title: axesAttrs._deprecated.title, @@ -173568,16 +171578,12 @@ var attrs = module.exports = overrideAll({ bgcolor: { valType: 'color', - dflt: colorAttrs.background, - }, sum: { valType: 'number', - dflt: 1, min: 0, - }, aaxis: ternaryAxesAttrs, baxis: ternaryAxesAttrs, @@ -173587,26 +171593,16 @@ var attrs = module.exports = overrideAll({ // set uirevisions outside of `overrideAll` so we can get `editType: none` attrs.uirevision = { valType: 'any', - editType: 'none', - }; attrs.aaxis.uirevision = attrs.baxis.uirevision = attrs.caxis.uirevision = { valType: 'any', - editType: 'none', - }; -},{"../../components/color/attributes":642,"../../lib/extend":768,"../../plot_api/edit_types":810,"../cartesian/layout_attributes":842,"../domain":855}],909:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color/attributes":659,"../../lib/extend":785,"../../plot_api/edit_types":827,"../cartesian/layout_attributes":859,"../domain":872}],920:[function(_dereq_,module,exports){ + 'use strict'; @@ -173731,19 +171727,13 @@ function handleAxisDefaults(containerIn, containerOut, options, ternaryLayoutOut coerce('layer'); } -},{"../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../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":916,"./layout_attributes":919}],921:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var tinycolor = _dereq_('tinycolor2'); var Registry = _dereq_('../../registry'); @@ -174512,14 +172502,8 @@ function removeZoombox(gd) { .remove(); } -},{"../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../components/dragelement":679,"../../components/dragelement/helpers":678,"../../components/drawing":682,"../../components/fx":700,"../../components/titles":755,"../../lib":795,"../../lib/extend":785,"../../registry":922,"../cartesian/axes":845,"../cartesian/constants":851,"../cartesian/select":864,"../cartesian/set_convert":865,"../plots":908,"@plotly/d3":58,"tinycolor2":592}],922:[function(_dereq_,module,exports){ + 'use strict'; @@ -174659,7 +172643,7 @@ exports.traceIs = function(traceType, category) { var _module = exports.modules[traceType]; if(!_module) { - if(traceType && traceType !== 'area') { + if(traceType) { Loggers.log('Unrecognized trace type ' + traceType + '.'); } @@ -174978,14 +172962,8 @@ function getTraceType(traceType) { return traceType; } -},{"./lib/dom":766,"./lib/extend":768,"./lib/is_plain_object":779,"./lib/loggers":782,"./lib/noop":787,"./lib/push_unique":793,"./plots/attributes":824,"./plots/layout_attributes":882}],912:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"./lib/dom":783,"./lib/extend":785,"./lib/is_plain_object":796,"./lib/loggers":799,"./lib/noop":804,"./lib/push_unique":810,"./plots/attributes":841,"./plots/layout_attributes":899}],923:[function(_dereq_,module,exports){ + 'use strict'; @@ -175039,11 +173017,6 @@ function keyIsAxis(keyName) { module.exports = function clonePlot(graphObj, options) { - // Polar plot compatibility - if(graphObj.framework && graphObj.framework.isPolar) { - graphObj = graphObj.framework.getConfig(); - } - var i; var oldData = graphObj.data; var oldLayout = graphObj.layout; @@ -175151,14 +173124,8 @@ module.exports = function clonePlot(graphObj, options) { return plotTile; }; -},{"../lib":778,"../registry":911}],913:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../lib":795,"../registry":922}],924:[function(_dereq_,module,exports){ + 'use strict'; @@ -175223,14 +173190,8 @@ function downloadImage(gd, opts) { module.exports = downloadImage; -},{"../lib":778,"../plot_api/to_image":820,"./filesaver":914,"./helpers":915}],914:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../lib":795,"../plot_api/to_image":837,"./filesaver":925,"./helpers":926}],925:[function(_dereq_,module,exports){ + 'use strict'; @@ -175257,10 +173218,6 @@ function fileSaver(url, name, format) { var blob; var objectUrl; - if(Lib.isIE9orBelow()) { - reject(new Error('IE < 10 unsupported')); - } - // Safari doesn't allow downloading of blob urls if(Lib.isSafari()) { var prefix = format === 'svg' ? ',' : ';base64,'; @@ -175303,14 +173260,8 @@ function fileSaver(url, name, format) { module.exports = fileSaver; -},{"../lib":778,"./helpers":915}],915:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../lib":795,"./helpers":926}],926:[function(_dereq_,module,exports){ + 'use strict'; @@ -175328,13 +173279,7 @@ exports.getDelay = function(fullLayout) { exports.getRedrawFunc = function(gd) { return function() { - var fullLayout = gd._fullLayout || {}; - var hasPolar = fullLayout._has && fullLayout._has('polar'); - var hasLegacyPolar = !hasPolar && gd.data && gd.data[0] && gd.data[0].r; - - if(!hasLegacyPolar) { - Registry.getComponentMethod('colorbar', 'draw')(gd); - } + Registry.getComponentMethod('colorbar', 'draw')(gd); }; }; @@ -175386,14 +173331,8 @@ exports.IMAGE_URL_PREFIX = /^data:image\/\w+;base64,/; exports.MSG_IE_BAD_FORMAT = 'Sorry IE does not support downloading from canvas. Try {format:\'svg\'} instead.'; -},{"../registry":911}],916:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../registry":922}],927:[function(_dereq_,module,exports){ + 'use strict'; @@ -175412,14 +173351,8 @@ var Snapshot = { module.exports = Snapshot; -},{"./cloneplot":912,"./download":913,"./helpers":915,"./svgtoimg":917,"./toimage":918,"./tosvg":919}],917:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"./cloneplot":923,"./download":924,"./helpers":926,"./svgtoimg":928,"./toimage":929,"./tosvg":930}],928:[function(_dereq_,module,exports){ + 'use strict'; @@ -175460,7 +173393,7 @@ function svgToImg(opts) { var img = new Image(); var svgBlob, url; - if(format === 'svg' || Lib.isIE9orBelow() || Lib.isSafari()) { + if(format === 'svg' || Lib.isSafari()) { url = helpers.encodeSVG(svg); } else { svgBlob = helpers.createBlob(svg, 'svg'); @@ -175539,14 +173472,8 @@ function svgToImg(opts) { module.exports = svgToImg; -},{"../lib":778,"./helpers":915,"events":110}],918:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../lib":795,"./helpers":926,"events":112}],929:[function(_dereq_,module,exports){ + 'use strict'; @@ -175603,7 +173530,7 @@ function toImage(gd, opts) { var redrawFunc = helpers.getRedrawFunc(clonedGd); - Registry.call('plot', clonedGd, clone.data, clone.layout, clone.config) + Registry.call('_doPlot', clonedGd, clone.data, clone.layout, clone.config) .then(redrawFunc) .then(wait) .catch(function(err) { @@ -175616,19 +173543,13 @@ function toImage(gd, opts) { module.exports = toImage; -},{"../lib":778,"../registry":911,"./cloneplot":912,"./helpers":915,"./svgtoimg":917,"./tosvg":919,"events":110}],919:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../lib":795,"../registry":922,"./cloneplot":923,"./helpers":926,"./svgtoimg":928,"./tosvg":930,"events":112}],930:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Lib = _dereq_('../lib'); var Drawing = _dereq_('../components/drawing'); @@ -175783,6 +173704,8 @@ module.exports = function toSVG(gd, format, scale) { // Fix quotations around font strings and gradient URLs s = s.replace(DUMMY_REGEX, '\''); + // Do we need this process now that IE9 and IE10 are not supported? + // IE is very strict, so we will need to clean // svg with the following regex // yes this is messy, but do not know a better way @@ -175805,14 +173728,8 @@ module.exports = function toSVG(gd, format, scale) { return s; }; -},{"../components/color":643,"../components/drawing":665,"../constants/xmlns_namespaces":754,"../lib":778,"d3":169}],920:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../components/color":660,"../components/drawing":682,"../constants/xmlns_namespaces":771,"../lib":795,"@plotly/d3":58}],931:[function(_dereq_,module,exports){ + 'use strict'; @@ -175838,14 +173755,8 @@ module.exports = function arraysToCalcdata(cd, trace) { } }; -},{"../../lib":778}],921:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795}],932:[function(_dereq_,module,exports){ + 'use strict'; @@ -175862,7 +173773,6 @@ var textFontAttrs = fontAttrs({ editType: 'calc', arrayOk: true, colorEditType: 'style', - }); var scatterMarkerAttrs = scatterAttrs.marker; @@ -175886,9 +173796,7 @@ var marker = extendFlat({ dflt: 1, min: 0, max: 1, - editType: 'style', - } }); @@ -175918,80 +173826,62 @@ module.exports = { textposition: { valType: 'enumerated', - values: ['inside', 'outside', 'auto', 'none'], dflt: 'none', arrayOk: true, editType: 'calc', - }, insidetextanchor: { valType: 'enumerated', values: ['end', 'middle', 'start'], dflt: 'end', - editType: 'plot', - }, textangle: { valType: 'angle', dflt: 'auto', - editType: 'plot', - }, textfont: extendFlat({}, textFontAttrs, { - }), insidetextfont: extendFlat({}, textFontAttrs, { - }), outsidetextfont: extendFlat({}, textFontAttrs, { - }), constraintext: { valType: 'enumerated', values: ['inside', 'outside', 'both', 'none'], - dflt: 'both', editType: 'calc', - }, cliponaxis: extendFlat({}, scatterAttrs.cliponaxis, { - }), orientation: { valType: 'enumerated', - values: ['v', 'h'], editType: 'calc+clearAxisTypes', - }, base: { valType: 'any', dflt: null, arrayOk: true, - editType: 'calc', - }, offset: { valType: 'number', dflt: null, arrayOk: true, - editType: 'calc', - }, width: { @@ -175999,26 +173889,20 @@ module.exports = { dflt: null, min: 0, arrayOk: true, - editType: 'calc', - }, marker: marker, offsetgroup: { valType: 'string', - dflt: '', editType: 'calc', - }, alignmentgroup: { valType: 'string', - dflt: '', editType: 'calc', - }, selected: { @@ -176040,28 +173924,17 @@ module.exports = { editType: 'style' }, - r: scatterAttrs.r, - t: scatterAttrs.t, - _deprecated: { bardir: { valType: 'enumerated', - editType: 'calc', values: ['v', 'h'], - } } }; -},{"../../components/colorscale/attributes":650,"../../lib/extend":768,"../../plots/font_attributes":856,"../../plots/template_attributes":906,"../scatter/attributes":1187,"./constants":923}],922:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/attributes":667,"../../lib/extend":785,"../../plots/font_attributes":873,"../../plots/template_attributes":917,"../scatter/attributes":1198,"./constants":934}],933:[function(_dereq_,module,exports){ + 'use strict'; @@ -176133,14 +174006,8 @@ module.exports = function calc(gd, trace) { return cd; }; -},{"../../components/colorscale/calc":651,"../../components/colorscale/helpers":654,"../../plots/cartesian/align_period":825,"../../plots/cartesian/axes":828,"../scatter/calc_selection":1189,"./arrays_to_calcdata":920}],923:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/calc":668,"../../components/colorscale/helpers":671,"../../plots/cartesian/align_period":842,"../../plots/cartesian/axes":845,"../scatter/calc_selection":1200,"./arrays_to_calcdata":931}],934:[function(_dereq_,module,exports){ + 'use strict'; @@ -176155,14 +174022,8 @@ module.exports = { eventDataKeys: ['value', 'label'] }; -},{}],924:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],935:[function(_dereq_,module,exports){ + 'use strict'; @@ -176935,14 +174796,8 @@ module.exports = { setGroupPositions: setGroupPositions }; -},{"../../constants/numerical":753,"../../lib":778,"../../plots/cartesian/axes":828,"../../plots/cartesian/constraints":835,"../../registry":911,"./sieve.js":934,"fast-isnumeric":241}],925:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/numerical":770,"../../lib":795,"../../plots/cartesian/axes":845,"../../plots/cartesian/constraints":852,"../../registry":922,"./sieve.js":945,"fast-isnumeric":241}],936:[function(_dereq_,module,exports){ + 'use strict'; @@ -177120,14 +174975,8 @@ module.exports = { handleText: handleText }; -},{"../../components/color":643,"../../lib":778,"../../plots/cartesian/constraints":835,"../../registry":911,"../scatter/period_defaults":1207,"../scatter/xy_defaults":1214,"./attributes":921,"./style_defaults":936}],926:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../lib":795,"../../plots/cartesian/constraints":852,"../../registry":922,"../scatter/period_defaults":1218,"../scatter/xy_defaults":1225,"./attributes":932,"./style_defaults":947}],937:[function(_dereq_,module,exports){ + 'use strict'; @@ -177149,14 +174998,8 @@ module.exports = function eventData(out, pt, trace) { return out; }; -},{}],927:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],938:[function(_dereq_,module,exports){ + 'use strict'; @@ -177227,14 +175070,8 @@ exports.getLineWidth = function(trace, di) { return w; }; -},{"../../lib":778,"fast-isnumeric":241,"tinycolor2":576}],928:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"fast-isnumeric":241,"tinycolor2":592}],939:[function(_dereq_,module,exports){ + 'use strict'; @@ -177423,14 +175260,8 @@ module.exports = { getTraceColor: getTraceColor }; -},{"../../components/color":643,"../../components/fx":683,"../../constants/numerical":753,"../../lib":778,"../../plots/cartesian/axes":828,"../../registry":911,"./helpers":927}],929:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../components/fx":700,"../../constants/numerical":770,"../../lib":795,"../../plots/cartesian/axes":845,"../../registry":922,"./helpers":938}],940:[function(_dereq_,module,exports){ + 'use strict'; @@ -177457,18 +175288,11 @@ module.exports = { categories: ['bar-like', 'cartesian', 'svg', 'bar', 'oriented', 'errorBarsOK', 'showLegend', 'zoomScale'], animatable: true, 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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/cartesian":858,"../scatter/marker_colorbar":1216,"./arrays_to_calcdata":931,"./attributes":932,"./calc":933,"./cross_trace_calc":935,"./defaults":936,"./event_data":937,"./hover":939,"./layout_attributes":941,"./layout_defaults":942,"./plot":943,"./select":944,"./style":946}],941:[function(_dereq_,module,exports){ + 'use strict'; @@ -177478,45 +175302,31 @@ module.exports = { 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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],942:[function(_dereq_,module,exports){ + 'use strict'; @@ -177569,18 +175379,12 @@ module.exports = function(layoutIn, layoutOut, fullData) { coerce('bargroupgap'); }; -},{"../../lib":778,"../../plots/cartesian/axes":828,"../../registry":911,"./layout_attributes":930}],932:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../plots/cartesian/axes":845,"../../registry":922,"./layout_attributes":941}],943:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var isNumeric = _dereq_('fast-isnumeric'); var Lib = _dereq_('../../lib'); @@ -178354,14 +176158,8 @@ module.exports = { toMoveInsideBar: toMoveInsideBar }; -},{"../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../components/drawing":682,"../../components/fx/helpers":696,"../../lib":795,"../../lib/svg_text_utils":820,"../../plots/cartesian/axes":845,"../../registry":922,"./attributes":932,"./constants":934,"./helpers":938,"./style":946,"./uniform_text":948,"@plotly/d3":58,"fast-isnumeric":241}],944:[function(_dereq_,module,exports){ + 'use strict'; @@ -178418,14 +176216,8 @@ function getCentroid(d, xa, ya, isHorizontal, isFunnel) { } } -},{}],934:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],945:[function(_dereq_,module,exports){ + 'use strict'; @@ -178532,18 +176324,12 @@ Sieve.prototype.getLabel = function getLabel(position, value) { return prefix + label; }; -},{"../../constants/numerical":753,"../../lib":778}],935:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/numerical":770,"../../lib":795}],946:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Color = _dereq_('../../components/color'); var Drawing = _dereq_('../../components/drawing'); var Lib = _dereq_('../../lib'); @@ -178714,14 +176500,8 @@ module.exports = { resizeText: resizeText }; -},{"../../components/color":643,"../../components/drawing":665,"../../lib":778,"../../registry":911,"./attributes":921,"./helpers":927,"./uniform_text":937,"d3":169}],936:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../components/drawing":682,"../../lib":795,"../../registry":922,"./attributes":932,"./helpers":938,"./uniform_text":948,"@plotly/d3":58}],947:[function(_dereq_,module,exports){ + 'use strict'; @@ -178752,18 +176532,12 @@ module.exports = function handleStyleDefaults(traceIn, traceOut, coerce, default coerce('unselected.marker.color'); }; -},{"../../components/color":643,"../../components/colorscale/defaults":653,"../../components/colorscale/helpers":654}],937:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../components/colorscale/defaults":670,"../../components/colorscale/helpers":671}],948:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Lib = _dereq_('../../lib'); function resizeText(gd, gTrace, traceType) { @@ -178838,14 +176612,8 @@ module.exports = { resizeText: resizeText }; -},{"../../lib":778,"d3":169}],938:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"@plotly/d3":58}],949:[function(_dereq_,module,exports){ + 'use strict'; @@ -178865,27 +176633,21 @@ module.exports = { // orientation: { // valType: 'enumerated', - // // values: ['radial', 'angular'], // editType: 'calc+clearAxisTypes', - // + // // }, base: extendFlat({}, barAttrs.base, { - }), offset: extendFlat({}, barAttrs.offset, { - }), width: extendFlat({}, barAttrs.width, { - }), text: extendFlat({}, barAttrs.text, { - }), hovertext: extendFlat({}, barAttrs.hovertext, { - }), // textposition: {}, @@ -178907,14 +176669,8 @@ module.exports = { // error_y }; -},{"../../lib/extend":768,"../../plots/template_attributes":906,"../bar/attributes":921,"../scatterpolar/attributes":1261}],939:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib/extend":785,"../../plots/template_attributes":917,"../bar/attributes":932,"../scatterpolar/attributes":1272}],950:[function(_dereq_,module,exports){ + 'use strict'; @@ -179019,14 +176775,8 @@ module.exports = { crossTraceCalc: crossTraceCalc }; -},{"../../components/colorscale/calc":651,"../../components/colorscale/helpers":654,"../../lib":778,"../../registry":911,"../bar/arrays_to_calcdata":920,"../bar/cross_trace_calc":924,"../scatter/calc_selection":1189}],940:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/calc":668,"../../components/colorscale/helpers":671,"../../lib":795,"../../registry":922,"../bar/arrays_to_calcdata":931,"../bar/cross_trace_calc":935,"../scatter/calc_selection":1200}],951:[function(_dereq_,module,exports){ + 'use strict'; @@ -179078,14 +176828,8 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout Lib.coerceSelectionMarkerOpacity(traceOut, coerce); }; -},{"../../lib":778,"../bar/style_defaults":936,"../scatterpolar/defaults":1263,"./attributes":938}],941:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../bar/style_defaults":947,"../scatterpolar/defaults":1274,"./attributes":949}],952:[function(_dereq_,module,exports){ + 'use strict'; @@ -179153,14 +176897,8 @@ module.exports = function hoverPoints(pointData, xval, yval) { return [pointData]; }; -},{"../../components/fx":683,"../../lib":778,"../../plots/polar/helpers":893,"../bar/hover":928,"../scatterpolar/hover":1265}],942:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/fx":700,"../../lib":795,"../../plots/polar/helpers":910,"../bar/hover":939,"../scatterpolar/hover":1276}],953:[function(_dereq_,module,exports){ + 'use strict'; @@ -179189,19 +176927,11 @@ module.exports = { selectPoints: _dereq_('../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/polar":911,"../bar/select":944,"../bar/style":946,"../scatter/marker_colorbar":1216,"../scatterpolar/format_labels":1275,"./attributes":949,"./calc":950,"./defaults":951,"./hover":952,"./layout_attributes":954,"./layout_defaults":955,"./plot":956}],954:[function(_dereq_,module,exports){ + 'use strict'; @@ -179210,29 +176940,19 @@ module.exports = { valType: 'enumerated', values: ['stack', 'overlay'], dflt: 'stack', - editType: 'calc', - }, bargap: { valType: 'number', dflt: 0.1, min: 0, max: 1, - editType: 'calc', - } }; -},{}],944:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],955:[function(_dereq_,module,exports){ + 'use strict'; @@ -179260,18 +176980,12 @@ module.exports = function(layoutIn, layoutOut, fullData) { } }; -},{"../../lib":778,"./layout_attributes":943}],945:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"./layout_attributes":954}],956:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var isNumeric = _dereq_('fast-isnumeric'); var Lib = _dereq_('../../lib'); @@ -179368,14 +177082,8 @@ function makePathFn(subplot) { }; } -},{"../../components/drawing":665,"../../lib":778,"../../plots/polar/helpers":893,"d3":169,"fast-isnumeric":241}],946:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/drawing":682,"../../lib":795,"../../plots/polar/helpers":910,"@plotly/d3":58,"fast-isnumeric":241}],957:[function(_dereq_,module,exports){ + 'use strict'; @@ -179392,37 +177100,27 @@ module.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: scatterAttrs.xperiod, @@ -179434,62 +177132,44 @@ module.exports = { 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: 0.5, dflt: 0.25, - editType: 'calc', - }, notchspan: { valType: 'data_array', - editType: 'calc', - }, // TODO @@ -179500,80 +177180,60 @@ module.exports = { boxpoints: { valType: 'enumerated', values: ['all', 'outliers', 'suspectedoutliers', false], - editType: 'calc', - }, jitter: { valType: 'number', min: 0, max: 1, - editType: 'calc', - }, pointpos: { valType: 'number', min: -2, max: 2, - editType: 'calc', - }, boxmean: { valType: 'enumerated', values: [true, 'sd', false], - 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: extendFlat({}, scatterMarkerAttrs.symbol, {arrayOk: false, editType: 'plot'}), @@ -179592,17 +177252,13 @@ module.exports = { ), outliercolor: { valType: 'color', - editType: 'style', - }, outlierwidth: { valType: 'number', min: 0, dflt: 1, - editType: 'style', - }, editType: 'style' }, @@ -179612,17 +177268,13 @@ module.exports = { line: { color: { valType: 'color', - editType: 'style', - }, width: { valType: 'number', - min: 0, dflt: 2, editType: 'style', - }, editType: 'plot' }, @@ -179634,9 +177286,7 @@ module.exports = { min: 0, max: 1, dflt: 0.5, - editType: 'calc', - }, offsetgroup: barAttrs.offsetgroup, @@ -179652,33 +177302,22 @@ module.exports = { }, text: extendFlat({}, scatterAttrs.text, { - }), hovertext: extendFlat({}, scatterAttrs.hovertext, { - }), hovertemplate: hovertemplateAttrs({ - }), 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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color/attributes":659,"../../lib/extend":785,"../../plots/template_attributes":917,"../bar/attributes":932,"../scatter/attributes":1198}],958:[function(_dereq_,module,exports){ + 'use strict'; @@ -180125,14 +177764,8 @@ function computeNotchSpan(cdi, N) { return 1.57 * (cdi.q3 - cdi.q1) / Math.sqrt(N); } -},{"../../constants/numerical":753,"../../lib":778,"../../plots/cartesian/align_period":825,"../../plots/cartesian/axes":828,"fast-isnumeric":241}],948:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/numerical":770,"../../lib":795,"../../plots/cartesian/align_period":842,"../../plots/cartesian/axes":845,"fast-isnumeric":241}],959:[function(_dereq_,module,exports){ + 'use strict'; @@ -180357,14 +177990,8 @@ module.exports = { setPositionOffset: setPositionOffset }; -},{"../../lib":778,"../../plots/cartesian/axes":828,"../../plots/cartesian/constraints":835}],949:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../plots/cartesian/axes":845,"../../plots/cartesian/constraints":852}],960:[function(_dereq_,module,exports){ + 'use strict'; @@ -180673,14 +178300,8 @@ module.exports = { handlePointsDefaults: handlePointsDefaults }; -},{"../../components/color":643,"../../lib":778,"../../plots/cartesian/axis_autotype":829,"../../registry":911,"../bar/defaults":925,"../scatter/period_defaults":1207,"./attributes":946}],950:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../lib":795,"../../plots/cartesian/axis_autotype":846,"../../registry":922,"../bar/defaults":936,"../scatter/period_defaults":1218,"./attributes":957}],961:[function(_dereq_,module,exports){ + 'use strict'; @@ -180698,14 +178319,8 @@ module.exports = function eventData(out, pt) { return out; }; -},{}],951:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],962:[function(_dereq_,module,exports){ + 'use strict'; @@ -180985,14 +178600,8 @@ module.exports = { hoverOnPoints: hoverOnPoints }; -},{"../../components/color":643,"../../components/fx":683,"../../lib":778,"../../plots/cartesian/axes":828}],952:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../components/fx":700,"../../lib":795,"../../plots/cartesian/axes":845}],963:[function(_dereq_,module,exports){ + 'use strict'; @@ -181016,18 +178625,11 @@ module.exports = { basePlotModule: _dereq_('../../plots/cartesian'), categories: ['cartesian', 'svg', 'symbols', 'oriented', 'box-violin', 'showLegend', 'boxLayout', 'zoomScale'], meta: { - } }; -},{"../../plots/cartesian":841,"./attributes":946,"./calc":947,"./cross_trace_calc":948,"./defaults":949,"./event_data":950,"./hover":951,"./layout_attributes":953,"./layout_defaults":954,"./plot":955,"./select":956,"./style":957}],953:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/cartesian":858,"./attributes":957,"./calc":958,"./cross_trace_calc":959,"./defaults":960,"./event_data":961,"./hover":962,"./layout_attributes":964,"./layout_defaults":965,"./plot":966,"./select":967,"./style":968}],964:[function(_dereq_,module,exports){ + 'use strict'; @@ -181037,38 +178639,26 @@ module.exports = { valType: 'enumerated', values: ['group', 'overlay'], dflt: 'overlay', - editType: 'calc', - }, boxgap: { valType: 'number', min: 0, max: 1, dflt: 0.3, - editType: 'calc', - }, boxgroupgap: { valType: 'number', min: 0, max: 1, dflt: 0.3, - editType: 'calc', - } }; -},{}],954:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],965:[function(_dereq_,module,exports){ + 'use strict'; @@ -181107,18 +178697,12 @@ module.exports = { _supply: _supply }; -},{"../../lib":778,"../../registry":911,"./layout_attributes":953}],955:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../registry":922,"./layout_attributes":964}],966:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Lib = _dereq_('../../lib'); var Drawing = _dereq_('../../components/drawing'); @@ -181457,14 +179041,8 @@ module.exports = { plotBoxMean: plotBoxMean }; -},{"../../components/drawing":665,"../../lib":778,"d3":169}],956:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/drawing":682,"../../lib":795,"@plotly/d3":58}],967:[function(_dereq_,module,exports){ + 'use strict'; @@ -181506,18 +179084,12 @@ module.exports = function selectPoints(searchInfo, selectionTester) { return selection; }; -},{}],957:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],968:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Color = _dereq_('../../components/color'); var Drawing = _dereq_('../../components/drawing'); @@ -181580,14 +179152,8 @@ module.exports = { styleOnSelect: styleOnSelect }; -},{"../../components/color":643,"../../components/drawing":665,"d3":169}],958:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../components/drawing":682,"@plotly/d3":58}],969:[function(_dereq_,module,exports){ + 'use strict'; @@ -181622,7 +179188,6 @@ module.exports = { line: { width: extendFlat({}, boxAttrs.line.width, { - }), editType: 'style' }, @@ -181638,14 +179203,8 @@ module.exports = { hoverlabel: OHLCattrs.hoverlabel, }; -},{"../../lib":778,"../box/attributes":946,"../ohlc/attributes":1133}],959:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../box/attributes":957,"../ohlc/attributes":1144}],970:[function(_dereq_,module,exports){ + 'use strict'; @@ -181690,14 +179249,8 @@ function ptFunc(o, h, l, c) { }; } -},{"../../lib":778,"../../plots/cartesian/align_period":825,"../../plots/cartesian/axes":828,"../ohlc/calc":1134}],960:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../plots/cartesian/align_period":842,"../../plots/cartesian/axes":845,"../ohlc/calc":1145}],971:[function(_dereq_,module,exports){ + 'use strict'; @@ -181739,14 +179292,8 @@ function handleDirection(traceIn, traceOut, coerce, direction) { coerce(direction + '.fillcolor', Color.addOpacity(lineColor, 0.5)); } -},{"../../components/color":643,"../../lib":778,"../ohlc/ohlc_defaults":1138,"../scatter/period_defaults":1207,"./attributes":958}],961:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../lib":795,"../ohlc/ohlc_defaults":1149,"../scatter/period_defaults":1218,"./attributes":969}],972:[function(_dereq_,module,exports){ + 'use strict'; @@ -181756,7 +179303,6 @@ module.exports = { basePlotModule: _dereq_('../../plots/cartesian'), categories: ['cartesian', 'svg', 'showLegend', 'candlestick', 'boxLayout'], meta: { - }, attributes: _dereq_('./attributes'), @@ -181772,14 +179318,8 @@ module.exports = { selectPoints: _dereq_('../ohlc/select') }; -},{"../../plots/cartesian":841,"../box/cross_trace_calc":948,"../box/layout_attributes":953,"../box/layout_defaults":954,"../box/plot":955,"../box/style":957,"../ohlc/hover":1136,"../ohlc/select":1140,"./attributes":958,"./calc":959,"./defaults":960}],962:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/cartesian":858,"../box/cross_trace_calc":959,"../box/layout_attributes":964,"../box/layout_defaults":965,"../box/plot":966,"../box/style":968,"../ohlc/hover":1147,"../ohlc/select":1151,"./attributes":969,"./calc":970,"./defaults":971}],973:[function(_dereq_,module,exports){ + 'use strict'; @@ -181837,14 +179377,8 @@ function mimickAxisDefaults(traceIn, traceOut, fullLayout, dfltColor) { }); } -},{"../../plot_api/plot_template":817,"./axis_defaults":967}],963:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plot_api/plot_template":834,"./axis_defaults":978}],974:[function(_dereq_,module,exports){ + 'use strict'; @@ -181884,14 +179418,8 @@ function minMax(a, depth) { return [min, max]; } -},{"../../lib":778}],964:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795}],975:[function(_dereq_,module,exports){ + 'use strict'; @@ -181901,7 +179429,6 @@ var colorAttrs = _dereq_('../../components/color/attributes'); var carpetFont = fontAttrs({ editType: 'calc', - }); // TODO: inherit from global font carpetFont.family.dflt = '"Open Sans", verdana, arial, sans-serif'; @@ -181911,64 +179438,48 @@ carpetFont.color.dflt = colorAttrs.defaultLine; module.exports = { carpet: { valType: 'string', - editType: 'calc', - }, x: { valType: 'data_array', editType: 'calc+clearAxisTypes', - }, y: { valType: 'data_array', editType: 'calc+clearAxisTypes', - }, a: { valType: 'data_array', editType: 'calc', - }, a0: { valType: 'number', dflt: 0, - editType: 'calc', - }, da: { valType: 'number', dflt: 1, - editType: 'calc', - }, b: { valType: 'data_array', editType: 'calc', - }, b0: { valType: 'number', dflt: 0, - editType: 'calc', - }, db: { valType: 'number', dflt: 1, - editType: 'calc', - }, cheaterslope: { valType: 'number', - dflt: 1, editType: 'calc', - }, aaxis: axisAttrs, baxis: axisAttrs, @@ -181976,21 +179487,13 @@ module.exports = { color: { valType: 'color', dflt: colorAttrs.defaultLine, - editType: 'plot', - }, transforms: undefined }; -},{"../../components/color/attributes":642,"../../plots/font_attributes":856,"./axis_attributes":966}],965:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color/attributes":659,"../../plots/font_attributes":873,"./axis_attributes":977}],976:[function(_dereq_,module,exports){ + 'use strict'; @@ -182090,14 +179593,8 @@ module.exports = function(carpet, carpetcd, a, b) { return segments; }; -},{"../../lib":778}],966:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795}],977:[function(_dereq_,module,exports){ + 'use strict'; @@ -182112,37 +179609,29 @@ var DATE_FORMAT_LINK = _dereq_('../../constants/docs').TIME_FORMAT_LINK; module.exports = { color: { valType: 'color', - editType: 'calc', - }, smoothing: { valType: 'number', dflt: 1, min: 0, max: 1.3, - editType: 'calc' }, title: { text: { valType: 'string', dflt: '', - editType: 'calc', - }, font: fontAttrs({ editType: 'calc', - }), // TODO how is this different than `title.standoff` offset: { valType: 'number', - dflt: 10, editType: 'calc', - }, editType: 'calc', }, @@ -182153,163 +179642,124 @@ module.exports = { // to gd.data like the others are. values: ['-', 'linear', 'date', 'category'], dflt: '-', - editType: 'calc', - }, autotypenumbers: axesAttrs.autotypenumbers, autorange: { valType: 'enumerated', values: [true, false, 'reversed'], dflt: true, - editType: 'calc', - }, rangemode: { valType: 'enumerated', values: ['normal', 'tozero', 'nonnegative'], dflt: 'normal', - editType: 'calc', - }, range: { valType: 'info_array', - editType: 'calc', items: [ {valType: 'any', editType: 'calc'}, {valType: 'any', editType: 'calc'} ], - }, fixedrange: { valType: 'boolean', dflt: false, - editType: 'calc', - }, 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', - }, tickvals: { valType: 'data_array', editType: 'calc', - }, ticktext: { valType: 'data_array', editType: 'calc', - }, showticklabels: { valType: 'enumerated', values: ['start', 'end', 'both', 'none'], dflt: 'start', - editType: 'calc', - }, tickfont: fontAttrs({ editType: 'calc', - }), tickangle: { valType: 'angle', dflt: 'auto', - editType: 'calc', - }, tickprefix: { valType: 'string', dflt: '', - editType: 'calc', - }, showtickprefix: { valType: 'enumerated', values: ['all', 'first', 'last', 'none'], dflt: 'all', - editType: 'calc', - }, ticksuffix: { valType: 'string', dflt: '', - editType: 'calc', - }, showticksuffix: { valType: 'enumerated', values: ['all', 'first', 'last', 'none'], dflt: 'all', - editType: 'calc', - }, showexponent: { valType: 'enumerated', values: ['all', 'first', 'last', 'none'], dflt: 'all', - editType: 'calc', - }, exponentformat: { valType: 'enumerated', values: ['none', 'e', 'E', 'power', 'SI', 'B'], dflt: 'B', - editType: 'calc', - }, minexponent: { valType: 'number', dflt: 3, min: 0, - editType: 'calc', - }, separatethousands: { valType: 'boolean', dflt: false, - editType: 'calc', - }, tickformat: { valType: 'string', dflt: '', - editType: 'calc', - }, tickformatstops: overrideAll(axesAttrs.tickformatstops, 'calc', 'from-root'), categoryorder: { @@ -182319,205 +179769,146 @@ module.exports = { /* , 'value ascending', 'value descending'*/ // value ascending / descending to be implemented later ], dflt: 'trace', - editType: 'calc', - }, categoryarray: { valType: 'data_array', - editType: 'calc', - }, labelpadding: { valType: 'integer', - dflt: 10, editType: 'calc', - }, labelprefix: { valType: 'string', - editType: 'calc', - }, labelsuffix: { valType: 'string', dflt: '', - editType: 'calc', - }, // lines and grids showline: { valType: 'boolean', dflt: false, - editType: 'calc', - }, linecolor: { valType: 'color', dflt: colorAttrs.defaultLine, - editType: 'calc', - }, linewidth: { valType: 'number', min: 0, dflt: 1, - editType: 'calc', - }, gridcolor: { valType: 'color', - editType: 'calc', - }, gridwidth: { valType: 'number', min: 0, dflt: 1, - editType: 'calc', - }, showgrid: { valType: 'boolean', - dflt: true, editType: 'calc', - }, minorgridcount: { valType: 'integer', min: 0, dflt: 0, - editType: 'calc', - }, minorgridwidth: { valType: 'number', min: 0, dflt: 1, - editType: 'calc', - }, minorgridcolor: { valType: 'color', dflt: colorAttrs.lightLine, - editType: 'calc', - }, startline: { valType: 'boolean', - editType: 'calc', - }, startlinecolor: { valType: 'color', - editType: 'calc', - }, startlinewidth: { valType: 'number', dflt: 1, - editType: 'calc', - }, endline: { valType: 'boolean', - editType: 'calc', - }, endlinewidth: { valType: 'number', dflt: 1, - editType: 'calc', - }, endlinecolor: { valType: 'color', - editType: 'calc', - }, tick0: { valType: 'number', min: 0, dflt: 0, - editType: 'calc', - }, dtick: { valType: 'number', min: 0, dflt: 1, - editType: 'calc', - }, arraytick0: { valType: 'integer', min: 0, dflt: 0, - editType: 'calc', - }, arraydtick: { valType: 'integer', min: 1, dflt: 1, - editType: 'calc', - }, _deprecated: { title: { valType: 'string', - editType: 'calc', - }, titlefont: fontAttrs({ editType: 'calc', - }), titleoffset: { valType: 'number', - dflt: 10, editType: 'calc', - } }, editType: 'calc' }; -},{"../../components/color/attributes":642,"../../constants/docs":748,"../../plot_api/edit_types":810,"../../plots/cartesian/layout_attributes":842,"../../plots/font_attributes":856}],967:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color/attributes":659,"../../constants/docs":765,"../../plot_api/edit_types":827,"../../plots/cartesian/layout_attributes":859,"../../plots/font_attributes":873}],978:[function(_dereq_,module,exports){ + 'use strict'; @@ -182738,14 +180129,8 @@ function setAutoType(ax, data) { }); } -},{"../../components/color":643,"../../lib":778,"../../plots/cartesian/axis_autotype":829,"../../plots/cartesian/category_order_defaults":832,"../../plots/cartesian/set_convert":848,"../../plots/cartesian/tick_label_defaults":849,"../../plots/cartesian/tick_value_defaults":851,"../../registry":911,"./attributes":964}],968:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../lib":795,"../../plots/cartesian/axis_autotype":846,"../../plots/cartesian/category_order_defaults":849,"../../plots/cartesian/set_convert":865,"../../plots/cartesian/tick_label_defaults":866,"../../plots/cartesian/tick_value_defaults":868,"../../registry":922,"./attributes":975}],979:[function(_dereq_,module,exports){ + 'use strict'; @@ -182848,14 +180233,8 @@ module.exports = function calc(gd, trace) { return [t]; }; -},{"../../lib":778,"../../plots/cartesian/axes":828,"../heatmap/clean_2d_array":1067,"../heatmap/convert_column_xyz":1069,"./array_minmax":963,"./calc_clippath":969,"./calc_gridlines":970,"./calc_labels":971,"./cheater_basis":973,"./set_convert":986,"./smooth_fill_2d_array":987}],969:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../plots/cartesian/axes":845,"../heatmap/clean_2d_array":1078,"../heatmap/convert_column_xyz":1080,"./array_minmax":974,"./calc_clippath":980,"./calc_gridlines":981,"./calc_labels":982,"./cheater_basis":984,"./set_convert":997,"./smooth_fill_2d_array":998}],980:[function(_dereq_,module,exports){ + 'use strict'; @@ -182900,14 +180279,8 @@ module.exports = function makeClipPath(xctrl, yctrl, aax, bax) { return segments; }; -},{}],970:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],981:[function(_dereq_,module,exports){ + 'use strict'; @@ -183243,14 +180616,8 @@ module.exports = function calcGridlines(trace, axisLetter, crossAxisLetter) { } }; -},{"../../lib/extend":768,"../../plots/cartesian/axes":828}],971:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib/extend":785,"../../plots/cartesian/axes":845}],982:[function(_dereq_,module,exports){ + 'use strict'; @@ -183304,14 +180671,8 @@ module.exports = function calcLabels(trace, axis) { } }; -},{"../../lib/extend":768,"../../plots/cartesian/axes":828}],972:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib/extend":785,"../../plots/cartesian/axes":845}],983:[function(_dereq_,module,exports){ + 'use strict'; @@ -183347,14 +180708,8 @@ module.exports = function makeControlPoints(p0, p1, p2, smoothness) { ]]; }; -},{}],973:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],984:[function(_dereq_,module,exports){ + 'use strict'; @@ -183415,14 +180770,8 @@ module.exports = function(a, b, cheaterslope) { return data; }; -},{"../../lib":778}],974:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795}],985:[function(_dereq_,module,exports){ + 'use strict'; @@ -183767,14 +181116,8 @@ module.exports = function computeControlPoints(xe, ye, x, y, asmoothing, bsmooth return [xe, ye]; }; -},{"../../lib":778,"./catmull_rom":972}],975:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"./catmull_rom":983}],986:[function(_dereq_,module,exports){ + 'use strict'; @@ -183783,14 +181126,8 @@ module.exports = { RELATIVE_CULL_TOLERANCE: 1e-6 }; -},{}],976:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],987:[function(_dereq_,module,exports){ + 'use strict'; @@ -183935,14 +181272,8 @@ module.exports = function(arrays, asmoothing, bsmoothing) { } }; -},{}],977:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],988:[function(_dereq_,module,exports){ + 'use strict'; @@ -184062,14 +181393,8 @@ module.exports = function(arrays, asmoothing, bsmoothing) { } }; -},{}],978:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],989:[function(_dereq_,module,exports){ + 'use strict'; @@ -184212,14 +181537,8 @@ module.exports = function(arrays, na, nb, asmoothing, bsmoothing) { } }; -},{}],979:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],990:[function(_dereq_,module,exports){ + 'use strict'; @@ -184271,14 +181590,8 @@ module.exports = function supplyDefaults(traceIn, traceOut, dfltColor, fullLayou } }; -},{"../../components/color/attributes":642,"../../lib":778,"./ab_defaults":962,"./attributes":964,"./xy_defaults":988}],980:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color/attributes":659,"../../lib":795,"./ab_defaults":973,"./attributes":975,"./xy_defaults":999}],991:[function(_dereq_,module,exports){ + 'use strict'; @@ -184295,18 +181608,11 @@ module.exports = { basePlotModule: _dereq_('../../plots/cartesian'), categories: ['cartesian', 'svg', 'carpet', 'carpetAxis', 'notLegendIsolatable', 'noMultiCategory', 'noHover', 'noSortingByValue'], meta: { - } }; -},{"../../plots/cartesian":841,"./attributes":964,"./calc":968,"./defaults":979,"./plot":985}],981:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/cartesian":858,"./attributes":975,"./calc":979,"./defaults":990,"./plot":996}],992:[function(_dereq_,module,exports){ + 'use strict'; @@ -184335,14 +181641,8 @@ module.exports = function(gd, trace) { return firstAxis; }; -},{}],982:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],993:[function(_dereq_,module,exports){ + 'use strict'; @@ -184367,14 +181667,8 @@ module.exports = function makePath(xp, yp, isBicubic) { return path.join(isBicubic ? '' : 'L'); }; -},{}],983:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],994:[function(_dereq_,module,exports){ + 'use strict'; @@ -184404,14 +181698,8 @@ module.exports = function mapArray(out, data, func) { return out; }; -},{"../../lib":778}],984:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795}],995:[function(_dereq_,module,exports){ + 'use strict'; @@ -184446,19 +181734,13 @@ module.exports = function orientText(trace, xaxis, yaxis, xy, dxy, refDxy) { }; }; -},{}],985:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],996:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Drawing = _dereq_('../../components/drawing'); var map1dArray = _dereq_('./map_1d_array'); var makepath = _dereq_('./makepath'); @@ -184697,14 +181979,8 @@ function drawAxisTitle(gd, layer, trace, t, xy, dxy, axis, xa, ya, labelOrientat titleJoin.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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/drawing":682,"../../constants/alignment":762,"../../lib":795,"../../lib/svg_text_utils":820,"./makepath":993,"./map_1d_array":994,"./orient_text":995,"@plotly/d3":58}],997:[function(_dereq_,module,exports){ + 'use strict'; @@ -184980,14 +182256,8 @@ module.exports = function setConvert(trace) { }; }; -},{"../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib/search":815,"./compute_control_points":985,"./constants":986,"./create_i_derivative_evaluator":987,"./create_j_derivative_evaluator":988,"./create_spline_evaluator":989}],998:[function(_dereq_,module,exports){ + 'use strict'; @@ -185202,14 +182472,8 @@ module.exports = function smoothFill2dArray(data, a, b) { return data; }; -},{"../../lib":778}],988:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795}],999:[function(_dereq_,module,exports){ + 'use strict'; @@ -185236,14 +182500,8 @@ module.exports = function handleXYDefaults(traceIn, traceOut, coerce) { return true; }; -},{"../../lib":778}],989:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795}],1000:[function(_dereq_,module,exports){ + 'use strict'; @@ -185261,24 +182519,19 @@ module.exports = extendFlat({ locations: { valType: 'data_array', editType: 'calc', - }, locationmode: scatterGeoAttrs.locationmode, z: { valType: 'data_array', editType: 'calc', - }, geojson: extendFlat({}, scatterGeoAttrs.geojson, { - }), featureidkey: scatterGeoAttrs.featureidkey, text: extendFlat({}, scatterGeoAttrs.text, { - }), hovertext: extendFlat({}, scatterGeoAttrs.hovertext, { - }), marker: { line: { @@ -185292,9 +182545,7 @@ module.exports = extendFlat({ min: 0, max: 1, dflt: 1, - editType: 'style', - }, editType: 'calc' }, @@ -185328,14 +182579,8 @@ module.exports = extendFlat({ }) ); -},{"../../components/color/attributes":642,"../../components/colorscale/attributes":650,"../../lib/extend":768,"../../plots/attributes":824,"../../plots/template_attributes":906,"../scattergeo/attributes":1229}],990:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color/attributes":659,"../../components/colorscale/attributes":667,"../../lib/extend":785,"../../plots/attributes":841,"../../plots/template_attributes":917,"../scattergeo/attributes":1240}],1001:[function(_dereq_,module,exports){ + 'use strict'; @@ -185389,14 +182634,8 @@ module.exports = function calc(gd, trace) { return calcTrace; }; -},{"../../components/colorscale/calc":651,"../../constants/numerical":753,"../scatter/arrays_to_calcdata":1186,"../scatter/calc_selection":1189,"fast-isnumeric":241}],991:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/calc":668,"../../constants/numerical":770,"../scatter/arrays_to_calcdata":1197,"../scatter/calc_selection":1200,"fast-isnumeric":241}],1002:[function(_dereq_,module,exports){ + 'use strict'; @@ -185445,14 +182684,8 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout Lib.coerceSelectionMarkerOpacity(traceOut, coerce); }; -},{"../../components/colorscale/defaults":653,"../../lib":778,"./attributes":989}],992:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/defaults":670,"../../lib":795,"./attributes":1000}],1003:[function(_dereq_,module,exports){ + 'use strict'; @@ -185470,14 +182703,8 @@ module.exports = function eventData(out, pt, trace, cd, pointNumber) { return out; }; -},{}],993:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1004:[function(_dereq_,module,exports){ + 'use strict'; @@ -185565,14 +182792,8 @@ function makeHoverInfo(pointData, trace, pt) { pointData.extraText = text.join('
'); } -},{"../../lib":778,"../../plots/cartesian/axes":828,"./attributes":989}],994:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../plots/cartesian/axes":845,"./attributes":1000}],1005:[function(_dereq_,module,exports){ + 'use strict'; @@ -185594,22 +182815,15 @@ module.exports = { basePlotModule: _dereq_('../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/geo":877,"../heatmap/colorbar":1079,"./attributes":1000,"./calc":1001,"./defaults":1002,"./event_data":1003,"./hover":1004,"./plot":1006,"./select":1007,"./style":1008}],1006:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Lib = _dereq_('../../lib'); var geoUtils = _dereq_('../../lib/geo_location_utils'); @@ -185686,14 +182900,8 @@ module.exports = { plot: plot }; -},{"../../lib":778,"../../lib/geo_location_utils":771,"../../lib/topojson_utils":806,"../../plots/cartesian/autorange":827,"./style":997,"d3":169}],996:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../lib/geo_location_utils":788,"../../lib/topojson_utils":823,"../../plots/cartesian/autorange":844,"./style":1008,"@plotly/d3":58}],1007:[function(_dereq_,module,exports){ + 'use strict'; @@ -185735,18 +182943,12 @@ module.exports = function selectPoints(searchInfo, selectionTester) { return selection; }; -},{}],997:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1008:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Color = _dereq_('../../components/color'); var Drawing = _dereq_('../../components/drawing'); var Colorscale = _dereq_('../../components/colorscale'); @@ -185791,14 +182993,8 @@ module.exports = { styleOnSelect: styleOnSelect }; -},{"../../components/color":643,"../../components/colorscale":655,"../../components/drawing":665,"d3":169}],998:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../components/colorscale":672,"../../components/drawing":682,"@plotly/d3":58}],1009:[function(_dereq_,module,exports){ + 'use strict'; @@ -185812,7 +183008,6 @@ module.exports = extendFlat({ locations: { valType: 'data_array', editType: 'calc', - }, // TODO @@ -185824,7 +183019,6 @@ module.exports = extendFlat({ z: { valType: 'data_array', editType: 'calc', - }, // TODO maybe we could also set a "key" to dig out values out of the @@ -185832,12 +183026,9 @@ module.exports = extendFlat({ geojson: { valType: 'any', - editType: 'calc', - }, featureidkey: extendFlat({}, choroplethAttrs.featureidkey, { - }), // TODO agree on name / behaviour @@ -185849,9 +183040,7 @@ module.exports = extendFlat({ // see https://codepen.io/etpinard/pen/ydVMwM for full list below: { valType: 'string', - editType: 'plot', - }, text: choroplethAttrs.text, @@ -185894,14 +183083,8 @@ module.exports = extendFlat({ }) ); -},{"../../components/colorscale/attributes":650,"../../lib/extend":768,"../../plots/attributes":824,"../../plots/template_attributes":906,"../choropleth/attributes":989}],999:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/attributes":667,"../../lib/extend":785,"../../plots/attributes":841,"../../plots/template_attributes":917,"../choropleth/attributes":1000}],1010:[function(_dereq_,module,exports){ + 'use strict'; @@ -186050,14 +183233,8 @@ module.exports = { convertOnSelect: convertOnSelect }; -},{"../../components/colorscale":655,"../../components/drawing":665,"../../lib":778,"../../lib/geo_location_utils":771,"../../lib/geojson_utils":772,"fast-isnumeric":241}],1000:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale":672,"../../components/drawing":682,"../../lib":795,"../../lib/geo_location_utils":788,"../../lib/geojson_utils":789,"fast-isnumeric":241}],1011:[function(_dereq_,module,exports){ + 'use strict'; @@ -186101,14 +183278,8 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout Lib.coerceSelectionMarkerOpacity(traceOut, coerce); }; -},{"../../components/colorscale/defaults":653,"../../lib":778,"./attributes":998}],1001:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/defaults":670,"../../lib":795,"./attributes":1009}],1012:[function(_dereq_,module,exports){ + 'use strict'; @@ -186159,18 +183330,11 @@ module.exports = { categories: ['mapbox', 'gl', 'noOpacity', 'showLegend'], meta: { hr_name: 'choropleth_mapbox', - } }; -},{"../../plots/mapbox":885,"../choropleth/calc":990,"../choropleth/event_data":992,"../choropleth/hover":993,"../choropleth/select":996,"../heatmap/colorbar":1068,"./attributes":998,"./defaults":1000,"./plot":1002}],1002:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/mapbox":902,"../choropleth/calc":1001,"../choropleth/event_data":1003,"../choropleth/hover":1004,"../choropleth/select":1007,"../heatmap/colorbar":1079,"./attributes":1009,"./defaults":1011,"./plot":1013}],1013:[function(_dereq_,module,exports){ + 'use strict'; @@ -186290,14 +183454,8 @@ module.exports = function createChoroplethMapbox(subplot, calcTrace) { return choroplethMapbox; }; -},{"../../plots/mapbox/constants":883,"./convert":999}],1003:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/mapbox/constants":900,"./convert":1010}],1014:[function(_dereq_,module,exports){ + 'use strict'; @@ -186311,37 +183469,28 @@ var extendFlat = _dereq_('../../lib/extend').extendFlat; var attrs = { 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', - }, // TODO add way to specify cone positions independently of the vector field @@ -186368,63 +183517,53 @@ var attrs = { // x: { // valType: 'data_array', // editType: 'calc', - // + // // }, // y: { // valType: 'data_array', // editType: 'calc', - // + // // }, // z: { // valType: 'data_array', // editType: 'calc', - // + // // }, // // 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: true, editType: 'calc', - }, hovertext: { valType: 'string', - dflt: '', arrayOk: true, editType: 'calc', - }, hovertemplate: hovertemplateAttrs({editType: 'calc'}, {keys: ['norm']}), @@ -186453,14 +183592,8 @@ attrs.transforms = undefined; module.exports = attrs; -},{"../../components/colorscale/attributes":650,"../../lib/extend":768,"../../plots/attributes":824,"../../plots/template_attributes":906,"../mesh3d/attributes":1128}],1004:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/attributes":667,"../../lib/extend":785,"../../plots/attributes":841,"../../plots/template_attributes":917,"../mesh3d/attributes":1139}],1015:[function(_dereq_,module,exports){ + 'use strict'; @@ -186497,14 +183630,8 @@ module.exports = function calc(gd, trace) { }); }; -},{"../../components/colorscale/calc":651}],1005:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/calc":668}],1016:[function(_dereq_,module,exports){ + 'use strict'; @@ -186644,14 +183771,8 @@ function createConeTrace(scene, data) { module.exports = createConeTrace; -},{"../../components/colorscale":655,"../../lib":778,"../../lib/gl_format_color":774,"../../plots/gl3d/zip3":881,"gl-cone3d":260}],1006:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale":672,"../../lib":795,"../../lib/gl_format_color":791,"../../plots/gl3d/zip3":898,"gl-cone3d":260}],1017:[function(_dereq_,module,exports){ + 'use strict'; @@ -186706,14 +183827,8 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout traceOut._length = null; }; -},{"../../components/colorscale/defaults":653,"../../lib":778,"./attributes":1003}],1007:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/defaults":670,"../../lib":795,"./attributes":1014}],1018:[function(_dereq_,module,exports){ + 'use strict'; @@ -186737,18 +183852,11 @@ module.exports = { }, meta: { - } }; -},{"../../plots/gl3d":870,"./attributes":1003,"./calc":1004,"./convert":1005,"./defaults":1006}],1008:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/gl3d":887,"./attributes":1014,"./calc":1015,"./convert":1016,"./defaults":1017}],1019:[function(_dereq_,module,exports){ + 'use strict'; @@ -186792,35 +183900,28 @@ module.exports = extendFlat({ hovertemplate: heatmapAttrs.hovertemplate, hoverongaps: heatmapAttrs.hoverongaps, connectgaps: extendFlat({}, heatmapAttrs.connectgaps, { - }), fillcolor: { valType: 'color', - editType: 'calc', - }, autocontour: { valType: 'boolean', dflt: true, - editType: 'calc', impliedEdits: { 'contours.start': undefined, 'contours.end': undefined, 'contours.size': undefined }, - }, ncontours: { valType: 'integer', dflt: 15, min: 1, - editType: 'calc', - }, contours: { @@ -186828,83 +183929,62 @@ module.exports = extendFlat({ valType: 'enumerated', values: ['levels', 'constraint'], dflt: 'levels', - editType: 'calc', - }, start: { valType: 'number', dflt: null, - editType: 'plot', impliedEdits: {'^autocontour': false}, - }, end: { valType: 'number', dflt: null, - editType: 'plot', impliedEdits: {'^autocontour': false}, - }, size: { valType: 'number', dflt: null, min: 0, - editType: 'plot', impliedEdits: {'^autocontour': false}, - }, coloring: { valType: 'enumerated', values: ['fill', 'heatmap', 'lines', 'none'], dflt: 'fill', - editType: 'calc', - }, showlines: { valType: 'boolean', dflt: true, - editType: 'plot', - }, showlabels: { valType: 'boolean', dflt: false, - editType: 'plot', - }, labelfont: fontAttrs({ editType: 'plot', colorEditType: 'style', - }), labelformat: { valType: 'string', dflt: '', - editType: 'plot', - }, operation: { valType: 'enumerated', values: [].concat(COMPARISON_OPS2).concat(INTERVAL_OPS), - dflt: '=', editType: 'calc', - }, value: { valType: 'any', dflt: 0, - editType: 'calc', - }, editType: 'calc', impliedEdits: {'autocontour': false} @@ -186913,18 +183993,14 @@ module.exports = extendFlat({ line: { color: extendFlat({}, scatterLineAttrs.color, { editType: 'style+colorbars', - }), width: { valType: 'number', min: 0, - editType: 'style+colorbars', - }, dash: dash, smoothing: extendFlat({}, scatterLineAttrs.smoothing, { - }), editType: 'plot' } @@ -186936,14 +184012,8 @@ module.exports = extendFlat({ }) ); -},{"../../components/colorscale/attributes":650,"../../components/drawing/attributes":664,"../../constants/docs":748,"../../constants/filter_ops":749,"../../lib/extend":768,"../../plots/font_attributes":856,"../heatmap/attributes":1065,"../scatter/attributes":1187}],1009:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/attributes":667,"../../components/drawing/attributes":681,"../../constants/docs":765,"../../constants/filter_ops":766,"../../lib/extend":785,"../../plots/font_attributes":873,"../heatmap/attributes":1076,"../scatter/attributes":1198}],1020:[function(_dereq_,module,exports){ + 'use strict'; @@ -186989,14 +184059,8 @@ module.exports = function calc(gd, trace) { return cd; }; -},{"../../components/colorscale":655,"../heatmap/calc":1066,"./end_plus":1019,"./set_contours":1027}],1010:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale":672,"../heatmap/calc":1077,"./end_plus":1030,"./set_contours":1038}],1021:[function(_dereq_,module,exports){ + 'use strict'; @@ -187079,14 +184143,8 @@ module.exports = function(pathinfo, contours) { } }; -},{}],1011:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1022:[function(_dereq_,module,exports){ + 'use strict'; @@ -187130,14 +184188,8 @@ module.exports = { calc: calc }; -},{"../../components/colorscale":655,"./end_plus":1019,"./make_color_map":1024}],1012:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale":672,"./end_plus":1030,"./make_color_map":1035}],1023:[function(_dereq_,module,exports){ + 'use strict'; module.exports = { @@ -187208,14 +184260,8 @@ module.exports = { } }; -},{}],1013:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1024:[function(_dereq_,module,exports){ + 'use strict'; @@ -187302,14 +184348,8 @@ function handleConstraintValueDefaults(coerce, contours) { } } -},{"../../components/color":643,"../../constants/filter_ops":749,"./label_defaults":1023,"fast-isnumeric":241}],1014:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../constants/filter_ops":766,"./label_defaults":1034,"fast-isnumeric":241}],1025:[function(_dereq_,module,exports){ + 'use strict'; @@ -187381,14 +184421,8 @@ function makeInequalitySettings(operation) { }; } -},{"../../constants/filter_ops":749,"fast-isnumeric":241}],1015:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/filter_ops":766,"fast-isnumeric":241}],1026:[function(_dereq_,module,exports){ + 'use strict'; @@ -187410,14 +184444,8 @@ module.exports = function handleContourDefaults(traceIn, traceOut, coerce, coerc if(autoContour || !contourSize) coerce('ncontours'); }; -},{}],1016:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1027:[function(_dereq_,module,exports){ + 'use strict'; @@ -187510,14 +184538,8 @@ function copyPathinfo(pi) { }); } -},{"../../lib":778}],1017:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795}],1028:[function(_dereq_,module,exports){ + 'use strict'; @@ -187564,14 +184586,8 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout } }; -},{"../../lib":778,"../heatmap/xyz_defaults":1079,"../scatter/period_defaults":1207,"./attributes":1008,"./constraint_defaults":1013,"./contours_defaults":1015,"./style_defaults":1029}],1018:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../heatmap/xyz_defaults":1090,"../scatter/period_defaults":1218,"./attributes":1019,"./constraint_defaults":1024,"./contours_defaults":1026,"./style_defaults":1040}],1029:[function(_dereq_,module,exports){ + 'use strict'; @@ -187628,14 +184644,8 @@ module.exports = function emptyPathinfo(contours, plotinfo, cd0) { return pathinfo; }; -},{"../../lib":778,"./constraint_mapping":1014,"./end_plus":1019}],1019:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"./constraint_mapping":1025,"./end_plus":1030}],1030:[function(_dereq_,module,exports){ + 'use strict'; @@ -187648,14 +184658,8 @@ module.exports = function endPlus(contours) { return contours.end + contours.size / 1e6; }; -},{}],1020:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1031:[function(_dereq_,module,exports){ + 'use strict'; @@ -187942,14 +184946,8 @@ function getInterpPx(pi, loc, step) { } } -},{"../../lib":778,"./constants":1012}],1021:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"./constants":1023}],1032:[function(_dereq_,module,exports){ + 'use strict'; @@ -187977,14 +184975,8 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode, hoverLay return hoverData; }; -},{"../../components/color":643,"../heatmap/hover":1072}],1022:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../heatmap/hover":1083}],1033:[function(_dereq_,module,exports){ + 'use strict'; @@ -188002,18 +184994,11 @@ module.exports = { basePlotModule: _dereq_('../../plots/cartesian'), categories: ['cartesian', 'svg', '2dMap', 'contour', 'showLegend'], meta: { - } }; -},{"../../plots/cartesian":841,"./attributes":1008,"./calc":1009,"./colorbar":1011,"./defaults":1017,"./hover":1021,"./plot":1026,"./style":1028}],1023:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/cartesian":858,"./attributes":1019,"./calc":1020,"./colorbar":1022,"./defaults":1028,"./hover":1032,"./plot":1037,"./style":1039}],1034:[function(_dereq_,module,exports){ + 'use strict'; @@ -188036,18 +185021,12 @@ module.exports = function handleLabelDefaults(coerce, layout, lineColor, opts) { if(opts.hasHover !== false) coerce('zhoverformat'); }; -},{"../../lib":778}],1024:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795}],1035:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Colorscale = _dereq_('../../components/colorscale'); var endPlus = _dereq_('./end_plus'); @@ -188120,14 +185099,8 @@ module.exports = function makeColorMap(trace) { ); }; -},{"../../components/colorscale":655,"./end_plus":1019,"d3":169}],1025:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale":672,"./end_plus":1030,"@plotly/d3":58}],1036:[function(_dereq_,module,exports){ + 'use strict'; @@ -188212,19 +185185,13 @@ function getMarchingIndex(val, corners) { return (mi === 15) ? 0 : mi; } -},{"./constants":1012}],1026:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"./constants":1023}],1037:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Lib = _dereq_('../../lib'); var Drawing = _dereq_('../../components/drawing'); @@ -188903,14 +185870,8 @@ function makeClipMask(cd0) { return z; } -},{"../../components/colorscale":655,"../../components/drawing":665,"../../lib":778,"../../lib/svg_text_utils":803,"../../plots/cartesian/axes":828,"../../plots/cartesian/set_convert":848,"../heatmap/plot":1076,"./close_boundaries":1010,"./constants":1012,"./convert_to_constraints":1016,"./empty_pathinfo":1018,"./find_all_paths":1020,"./make_crossings":1025,"d3":169}],1027:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale":672,"../../components/drawing":682,"../../lib":795,"../../lib/svg_text_utils":820,"../../plots/cartesian/axes":845,"../../plots/cartesian/set_convert":865,"../heatmap/plot":1087,"./close_boundaries":1021,"./constants":1023,"./convert_to_constraints":1027,"./empty_pathinfo":1029,"./find_all_paths":1031,"./make_crossings":1036,"@plotly/d3":58}],1038:[function(_dereq_,module,exports){ + 'use strict'; @@ -189007,19 +185968,13 @@ function autoContours(start, end, ncontours) { return dummyAx; } -},{"../../lib":778,"../../plots/cartesian/axes":828}],1028:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../plots/cartesian/axes":845}],1039:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Drawing = _dereq_('../../components/drawing'); var heatmapStyle = _dereq_('../heatmap/style'); @@ -189088,14 +186043,8 @@ module.exports = function style(gd) { heatmapStyle(gd); }; -},{"../../components/drawing":665,"../heatmap/style":1077,"./make_color_map":1024,"d3":169}],1029:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/drawing":682,"../heatmap/style":1088,"./make_color_map":1035,"@plotly/d3":58}],1040:[function(_dereq_,module,exports){ + 'use strict'; @@ -189133,14 +186082,8 @@ module.exports = function handleStyleDefaults(traceIn, traceOut, coerce, layout, handleLabelDefaults(coerce, layout, lineColor, opts); }; -},{"../../components/colorscale/defaults":653,"./label_defaults":1023}],1030:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/defaults":670,"./label_defaults":1034}],1041:[function(_dereq_,module,exports){ + 'use strict'; @@ -189155,9 +186098,7 @@ var contourContourAttrs = contourAttrs.contours; module.exports = extendFlat({ carpet: { valType: 'string', - editType: 'calc', - }, z: heatmapAttrs.z, a: heatmapAttrs.x, @@ -189187,9 +186128,7 @@ module.exports = extendFlat({ valType: 'enumerated', values: ['fill', 'lines', 'none'], dflt: 'fill', - editType: 'calc', - }, showlines: contourContourAttrs.showlines, showlabels: contourContourAttrs.showlabels, @@ -189218,14 +186157,8 @@ module.exports = extendFlat({ }) ); -},{"../../components/colorscale/attributes":650,"../../lib/extend":768,"../contour/attributes":1008,"../heatmap/attributes":1065}],1031:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/attributes":667,"../../lib/extend":785,"../contour/attributes":1019,"../heatmap/attributes":1076}],1042:[function(_dereq_,module,exports){ + 'use strict'; @@ -189330,14 +186263,8 @@ function heatmappishCalc(gd, trace) { return [cd0]; } -},{"../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/calc":668,"../../lib":795,"../carpet/lookup_carpetid":992,"../contour/set_contours":1038,"../heatmap/clean_2d_array":1078,"../heatmap/convert_column_xyz":1080,"../heatmap/find_empties":1082,"../heatmap/interp2d":1085,"../heatmap/make_bound_array":1086,"./defaults":1043}],1043:[function(_dereq_,module,exports){ + 'use strict'; @@ -189399,14 +186326,8 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout } }; -},{"../../lib":778,"../contour/constraint_defaults":1013,"../contour/contours_defaults":1015,"../contour/style_defaults":1029,"../heatmap/xyz_defaults":1079,"./attributes":1030}],1033:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../contour/constraint_defaults":1024,"../contour/contours_defaults":1026,"../contour/style_defaults":1040,"../heatmap/xyz_defaults":1090,"./attributes":1041}],1044:[function(_dereq_,module,exports){ + 'use strict'; @@ -189423,23 +186344,15 @@ module.exports = { basePlotModule: _dereq_('../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/cartesian":858,"../contour/colorbar":1022,"../contour/style":1039,"./attributes":1041,"./calc":1042,"./defaults":1043,"./plot":1045}],1045:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var map1dArray = _dereq_('../carpet/map_1d_array'); var makepath = _dereq_('../carpet/makepath'); var Drawing = _dereq_('../../components/drawing'); @@ -189909,14 +186822,8 @@ function joinAllPaths(trace, pi, perimeter, ab2p, carpet, carpetcd, xa, ya) { return fullpath; } -},{"../../components/drawing":665,"../../lib":778,"../carpet/axis_aligned_line":965,"../carpet/lookup_carpetid":981,"../carpet/makepath":982,"../carpet/map_1d_array":983,"../contour/close_boundaries":1010,"../contour/constants":1012,"../contour/convert_to_constraints":1016,"../contour/empty_pathinfo":1018,"../contour/find_all_paths":1020,"../contour/make_crossings":1025,"../contour/plot":1026,"d3":169}],1035:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/drawing":682,"../../lib":795,"../carpet/axis_aligned_line":976,"../carpet/lookup_carpetid":992,"../carpet/makepath":993,"../carpet/map_1d_array":994,"../contour/close_boundaries":1021,"../contour/constants":1023,"../contour/convert_to_constraints":1027,"../contour/empty_pathinfo":1029,"../contour/find_all_paths":1031,"../contour/make_crossings":1036,"../contour/plot":1037,"@plotly/d3":58}],1046:[function(_dereq_,module,exports){ + 'use strict'; @@ -189956,24 +186863,19 @@ module.exports = extendFlat({ z: { valType: 'data_array', editType: 'calc', - }, radius: { valType: 'number', - editType: 'plot', arrayOk: true, min: 1, dflt: 30, - }, below: { valType: 'string', - editType: 'plot', - }, text: scatterMapboxAttrs.text, @@ -189991,14 +186893,8 @@ module.exports = extendFlat({ }) ); -},{"../../components/colorscale/attributes":650,"../../lib/extend":768,"../../plots/attributes":824,"../../plots/template_attributes":906,"../scattermapbox/attributes":1252}],1036:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/attributes":667,"../../lib/extend":785,"../../plots/attributes":841,"../../plots/template_attributes":917,"../scattermapbox/attributes":1263}],1047:[function(_dereq_,module,exports){ + 'use strict'; @@ -190050,14 +186946,8 @@ module.exports = function calc(gd, trace) { return calcTrace; }; -},{"../../components/colorscale/calc":651,"../../constants/numerical":753,"../../lib":778,"fast-isnumeric":241}],1037:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/calc":668,"../../constants/numerical":770,"../../lib":795,"fast-isnumeric":241}],1048:[function(_dereq_,module,exports){ + 'use strict'; @@ -190166,14 +187056,8 @@ module.exports = function convert(calcTrace) { return opts; }; -},{"../../components/color":643,"../../components/colorscale":655,"../../constants/numerical":753,"../../lib":778,"../../lib/geojson_utils":772,"fast-isnumeric":241}],1038:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../components/colorscale":672,"../../constants/numerical":770,"../../lib":795,"../../lib/geojson_utils":789,"fast-isnumeric":241}],1049:[function(_dereq_,module,exports){ + 'use strict'; @@ -190208,14 +187092,8 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'z'}); }; -},{"../../components/colorscale/defaults":653,"../../lib":778,"./attributes":1035}],1039:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/defaults":670,"../../lib":795,"./attributes":1046}],1050:[function(_dereq_,module,exports){ + 'use strict'; @@ -190226,14 +187104,8 @@ module.exports = function eventData(out, pt) { return out; }; -},{}],1040:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1051:[function(_dereq_,module,exports){ + 'use strict'; @@ -190294,14 +187166,8 @@ function getExtraText(trace, di, labels) { return text.join('
'); } -},{"../../lib":778,"../../plots/cartesian/axes":828,"../scattermapbox/hover":1257}],1041:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../plots/cartesian/axes":845,"../scattermapbox/hover":1268}],1052:[function(_dereq_,module,exports){ + 'use strict'; @@ -190337,18 +187203,11 @@ module.exports = { categories: ['mapbox', 'gl', 'showLegend'], meta: { hr_name: 'density_mapbox', - } }; -},{"../../plots/mapbox":885,"../heatmap/colorbar":1068,"../scattermapbox/format_labels":1256,"./attributes":1035,"./calc":1036,"./defaults":1038,"./event_data":1039,"./hover":1040,"./plot":1042}],1042:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/mapbox":902,"../heatmap/colorbar":1079,"../scattermapbox/format_labels":1267,"./attributes":1046,"./calc":1047,"./defaults":1049,"./event_data":1050,"./hover":1051,"./plot":1053}],1053:[function(_dereq_,module,exports){ + 'use strict'; @@ -190455,14 +187314,8 @@ module.exports = function createDensityMapbox(subplot, calcTrace) { return densityMapbox; }; -},{"../../plots/mapbox/constants":883,"./convert":1037}],1043:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/mapbox/constants":900,"./convert":1048}],1054:[function(_dereq_,module,exports){ + 'use strict'; @@ -190488,14 +187341,8 @@ module.exports = function arraysToCalcdata(cd, trace) { } }; -},{"../../lib":778}],1044:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795}],1055:[function(_dereq_,module,exports){ + 'use strict'; @@ -190536,10 +187383,8 @@ module.exports = { valType: 'flaglist', flags: ['label', 'text', 'percent initial', 'percent previous', 'percent total', 'value'], extras: ['none'], - editType: 'plot', arrayOk: false, - }, // TODO: incorporate `label` and `value` in the eventData texttemplate: texttemplateAttrs({editType: 'plot'}, { @@ -190557,7 +187402,6 @@ module.exports = { cliponaxis: barAttrs.cliponaxis, orientation: extendFlat({}, barAttrs.orientation, { - }), offset: extendFlat({}, barAttrs.offset, {arrayOk: false}), @@ -190568,9 +187412,7 @@ module.exports = { connector: { fillcolor: { valType: 'color', - editType: 'style', - }, line: { color: extendFlat({}, lineAttrs.color, {dflt: Color.defaultLine}), @@ -190584,9 +187426,7 @@ module.exports = { visible: { valType: 'boolean', dflt: true, - editType: 'plot', - }, editType: 'plot' }, @@ -190595,14 +187435,8 @@ module.exports = { alignmentgroup: barAttrs.alignmentgroup }; -},{"../../components/color":643,"../../lib/extend":768,"../../plots/attributes":824,"../../plots/template_attributes":906,"../bar/attributes":921,"../scatter/attributes":1187,"./constants":1046}],1045:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../lib/extend":785,"../../plots/attributes":841,"../../plots/template_attributes":917,"../bar/attributes":932,"../scatter/attributes":1198,"./constants":1057}],1056:[function(_dereq_,module,exports){ + 'use strict'; @@ -190699,14 +187533,8 @@ function fixNum(a) { return (a === BADNUM) ? 0 : a; } -},{"../../constants/numerical":753,"../../plots/cartesian/align_period":825,"../../plots/cartesian/axes":828,"../scatter/calc_selection":1189,"./arrays_to_calcdata":1043}],1046:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/numerical":770,"../../plots/cartesian/align_period":842,"../../plots/cartesian/axes":845,"../scatter/calc_selection":1200,"./arrays_to_calcdata":1054}],1057:[function(_dereq_,module,exports){ + 'use strict'; @@ -190718,14 +187546,8 @@ module.exports = { ] }; -},{}],1047:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1058:[function(_dereq_,module,exports){ + 'use strict'; @@ -190789,14 +187611,8 @@ module.exports = function crossTraceCalc(gd, plotinfo) { } }; -},{"../bar/cross_trace_calc":924}],1048:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../bar/cross_trace_calc":935}],1059:[function(_dereq_,module,exports){ + 'use strict'; @@ -190889,14 +187705,8 @@ module.exports = { crossTraceDefaults: crossTraceDefaults }; -},{"../../components/color":643,"../../lib":778,"../bar/defaults":925,"../scatter/period_defaults":1207,"../scatter/xy_defaults":1214,"./attributes":1044}],1049:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../lib":795,"../bar/defaults":936,"../scatter/period_defaults":1218,"../scatter/xy_defaults":1225,"./attributes":1055}],1060:[function(_dereq_,module,exports){ + 'use strict'; @@ -190916,14 +187726,8 @@ module.exports = function eventData(out, pt /* , trace, cd, pointNumber */) { return out; }; -},{}],1050:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1061:[function(_dereq_,module,exports){ + 'use strict'; @@ -190989,14 +187793,8 @@ function getTraceColor(trace, di) { else if(opacity(mlc) && mlw) return mlc; } -},{"../../components/color":643,"../../lib":778,"../bar/hover":928}],1051:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../lib":795,"../bar/hover":939}],1062:[function(_dereq_,module,exports){ + 'use strict'; @@ -191020,18 +187818,11 @@ module.exports = { basePlotModule: _dereq_('../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/cartesian":858,"../bar/select":944,"./attributes":1055,"./calc":1056,"./cross_trace_calc":1058,"./defaults":1059,"./event_data":1060,"./hover":1061,"./layout_attributes":1063,"./layout_defaults":1064,"./plot":1065,"./style":1066}],1063:[function(_dereq_,module,exports){ + 'use strict'; @@ -191040,37 +187831,25 @@ module.exports = { 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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1064:[function(_dereq_,module,exports){ + 'use strict'; @@ -191100,18 +187879,12 @@ module.exports = function(layoutIn, layoutOut, fullData) { } }; -},{"../../lib":778,"./layout_attributes":1052}],1054:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"./layout_attributes":1063}],1065:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Lib = _dereq_('../../lib'); var Drawing = _dereq_('../../components/drawing'); var BADNUM = _dereq_('../../constants/numerical').BADNUM; @@ -191269,18 +188042,12 @@ function getXY(di, xa, ya, isHorizontal) { return isHorizontal ? [s, p] : [p, s]; } -},{"../../components/drawing":665,"../../constants/numerical":753,"../../lib":778,"../bar/plot":932,"../bar/uniform_text":937,"d3":169}],1055:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/drawing":682,"../../constants/numerical":770,"../../lib":795,"../bar/plot":943,"../bar/uniform_text":948,"@plotly/d3":58}],1066:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Drawing = _dereq_('../../components/drawing'); var Color = _dereq_('../../components/color'); @@ -191334,14 +188101,8 @@ module.exports = { style: style }; -},{"../../components/color":643,"../../components/drawing":665,"../../constants/interactions":752,"../bar/style":935,"../bar/uniform_text":937,"d3":169}],1056:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../components/drawing":682,"../../constants/interactions":769,"../bar/style":946,"../bar/uniform_text":948,"@plotly/d3":58}],1067:[function(_dereq_,module,exports){ + 'use strict'; @@ -191365,7 +188126,6 @@ module.exports = { line: { color: extendFlat({}, pieAttrs.marker.line.color, { dflt: null, - }), width: extendFlat({}, pieAttrs.marker.line.width, {dflt: 1}), editType: 'calc' @@ -191377,7 +188137,6 @@ module.exports = { hovertext: pieAttrs.hovertext, scalegroup: extendFlat({}, pieAttrs.scalegroup, { - }), textinfo: extendFlat({}, pieAttrs.textinfo, { @@ -191418,32 +188177,22 @@ module.exports = { aspectratio: { valType: 'number', - min: 0, dflt: 1, editType: 'plot', - }, baseratio: { valType: 'number', - min: 0, max: 1, dflt: 0.333, editType: 'plot', - } }; -},{"../../lib/extend":768,"../../plots/attributes":824,"../../plots/domain":855,"../../plots/template_attributes":906,"../pie/attributes":1161}],1057:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib/extend":785,"../../plots/attributes":841,"../../plots/domain":872,"../../plots/template_attributes":917,"../pie/attributes":1172}],1068:[function(_dereq_,module,exports){ + 'use strict'; @@ -191459,14 +188208,8 @@ exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) plots.cleanBasePlot(exports.name, newFullData, newFullLayout, oldFullData, oldFullLayout); }; -},{"../../plots/plots":891}],1058:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/plots":908}],1069:[function(_dereq_,module,exports){ + 'use strict'; @@ -191485,14 +188228,8 @@ module.exports = { crossTraceCalc: crossTraceCalc }; -},{"../pie/calc":1163}],1059:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../pie/calc":1174}],1070:[function(_dereq_,module,exports){ + 'use strict'; @@ -191567,14 +188304,8 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout coerce('baseratio'); }; -},{"../../lib":778,"../../plots/domain":855,"../bar/defaults":925,"../pie/defaults":1164,"./attributes":1056}],1060:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../plots/domain":872,"../bar/defaults":936,"../pie/defaults":1175,"./attributes":1067}],1071:[function(_dereq_,module,exports){ + 'use strict'; @@ -191597,18 +188328,11 @@ module.exports = { styleOne: _dereq_('../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../pie/style_one":1183,"./attributes":1067,"./base_plot":1068,"./calc":1069,"./defaults":1070,"./layout_attributes":1072,"./layout_defaults":1073,"./plot":1074,"./style":1075}],1072:[function(_dereq_,module,exports){ + 'use strict'; @@ -191619,27 +188343,17 @@ module.exports = { funnelareacolorway: { valType: 'colorlist', - editType: 'calc', - }, extendfunnelareacolors: { valType: 'boolean', dflt: true, - editType: 'calc', - } }; -},{"../pie/layout_attributes":1168}],1062:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../pie/layout_attributes":1179}],1073:[function(_dereq_,module,exports){ + 'use strict'; @@ -191657,18 +188371,12 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) { coerce('extendfunnelareacolors'); }; -},{"../../lib":778,"./layout_attributes":1061}],1063:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"./layout_attributes":1072}],1074:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Drawing = _dereq_('../../components/drawing'); var Lib = _dereq_('../../lib'); @@ -191955,18 +188663,12 @@ function setCoords(cd) { } } -},{"../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/drawing":682,"../../lib":795,"../../lib/svg_text_utils":820,"../bar/plot":943,"../bar/uniform_text":948,"../pie/helpers":1177,"../pie/plot":1181,"@plotly/d3":58}],1075:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var styleOne = _dereq_('../pie/style_one'); var resizeText = _dereq_('../bar/uniform_text').resizeText; @@ -191988,14 +188690,8 @@ module.exports = function style(gd) { }); }; -},{"../bar/uniform_text":937,"../pie/style_one":1172,"d3":169}],1065:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../bar/uniform_text":948,"../pie/style_one":1183,"@plotly/d3":58}],1076:[function(_dereq_,module,exports){ + 'use strict'; @@ -192011,7 +188707,6 @@ module.exports = extendFlat({ z: { valType: 'data_array', editType: 'calc', - }, x: extendFlat({}, scatterAttrs.x, {impliedEdits: {xtype: 'array'}}), x0: extendFlat({}, scatterAttrs.x0, {impliedEdits: {xtype: 'scaled'}}), @@ -192030,77 +188725,57 @@ module.exports = extendFlat({ text: { valType: 'data_array', editType: 'calc', - }, hovertext: { valType: 'data_array', editType: 'calc', - }, transpose: { valType: 'boolean', dflt: false, - 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', false], dflt: false, - editType: 'calc', - }, hoverongaps: { valType: 'boolean', dflt: true, - 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: hovertemplateAttrs(), showlegend: extendFlat({}, baseAttrs.showlegend, {dflt: false}) @@ -192110,14 +188785,8 @@ module.exports = extendFlat({ colorScaleAttrs('', {cLetter: 'z', autoColorDflt: false}) ); -},{"../../components/colorscale/attributes":650,"../../constants/docs":748,"../../lib/extend":768,"../../plots/attributes":824,"../../plots/template_attributes":906,"../scatter/attributes":1187}],1066:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/attributes":667,"../../constants/docs":765,"../../lib/extend":785,"../../plots/attributes":841,"../../plots/template_attributes":917,"../scatter/attributes":1198}],1077:[function(_dereq_,module,exports){ + 'use strict'; @@ -192319,14 +188988,8 @@ function dropZonBreaks(x, y, z) { return newZ; } -},{"../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/calc":668,"../../constants/numerical":770,"../../lib":795,"../../plots/cartesian/align_period":842,"../../plots/cartesian/axes":845,"../../registry":922,"../histogram2d/calc":1109,"./clean_2d_array":1078,"./convert_column_xyz":1080,"./find_empties":1082,"./interp2d":1085,"./make_bound_array":1086}],1078:[function(_dereq_,module,exports){ + 'use strict'; @@ -192396,14 +189059,8 @@ module.exports = function clean2dArray(zOld, trace, xa, ya) { return zNew; }; -},{"../../constants/numerical":753,"../../lib":778,"fast-isnumeric":241}],1068:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/numerical":770,"../../lib":795,"fast-isnumeric":241}],1079:[function(_dereq_,module,exports){ + 'use strict'; @@ -192412,14 +189069,8 @@ module.exports = { max: 'zmax' }; -},{}],1069:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1080:[function(_dereq_,module,exports){ + 'use strict'; @@ -192502,14 +189153,8 @@ module.exports = function convertColumnData(trace, ax1, ax2, var1Name, var2Name, trace._after2before = after2before; }; -},{"../../constants/numerical":753,"../../lib":778,"../../plots/cartesian/align_period":825}],1070:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/numerical":770,"../../lib":795,"../../plots/cartesian/align_period":842}],1081:[function(_dereq_,module,exports){ + 'use strict'; @@ -192548,14 +189193,8 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'z'}); }; -},{"../../components/colorscale/defaults":653,"../../lib":778,"../scatter/period_defaults":1207,"./attributes":1065,"./style_defaults":1078,"./xyz_defaults":1079}],1071:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/defaults":670,"../../lib":795,"../scatter/period_defaults":1218,"./attributes":1076,"./style_defaults":1089,"./xyz_defaults":1090}],1082:[function(_dereq_,module,exports){ + 'use strict'; @@ -192653,14 +189292,8 @@ module.exports = function findEmpties(z) { return empties.sort(function(a, b) { return b[2] - a[2]; }); }; -},{"../../lib":778}],1072:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795}],1083:[function(_dereq_,module,exports){ + 'use strict'; @@ -192791,14 +189424,8 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode, hoverLay })]; }; -},{"../../components/colorscale":655,"../../components/fx":683,"../../lib":778,"../../plots/cartesian/axes":828}],1073:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale":672,"../../components/fx":700,"../../lib":795,"../../plots/cartesian/axes":845}],1084:[function(_dereq_,module,exports){ + 'use strict'; @@ -192816,18 +189443,11 @@ module.exports = { basePlotModule: _dereq_('../../plots/cartesian'), categories: ['cartesian', 'svg', '2dMap', 'showLegend'], meta: { - } }; -},{"../../plots/cartesian":841,"./attributes":1065,"./calc":1066,"./colorbar":1068,"./defaults":1070,"./hover":1072,"./plot":1076,"./style":1077}],1074:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/cartesian":858,"./attributes":1076,"./calc":1077,"./colorbar":1079,"./defaults":1081,"./hover":1083,"./plot":1087,"./style":1088}],1085:[function(_dereq_,module,exports){ + 'use strict'; @@ -192953,14 +189573,8 @@ function iterateInterp2d(z, emptyPoints, overshoot) { return maxFractionalChange; } -},{"../../lib":778}],1075:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795}],1086:[function(_dereq_,module,exports){ + 'use strict'; @@ -193041,19 +189655,13 @@ module.exports = function makeBoundArray(trace, arrayIn, v0In, dvIn, numbricks, return arrayOut; }; -},{"../../lib":778,"../../registry":911}],1076:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../registry":922}],1087:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var tinycolor = _dereq_('tinycolor2'); var Registry = _dereq_('../../registry'); @@ -193446,19 +190054,13 @@ function putColor(pixels, pxIndex, c) { pixels[pxIndex + 3] = Math.round(c[3] * 255); } -},{"../../components/colorscale":655,"../../constants/xmlns_namespaces":754,"../../lib":778,"../../registry":911,"d3":169,"tinycolor2":576}],1077:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale":672,"../../constants/xmlns_namespaces":771,"../../lib":795,"../../registry":922,"@plotly/d3":58,"tinycolor2":592}],1088:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); module.exports = function style(gd) { d3.select(gd).selectAll('.hm image') @@ -193467,14 +190069,8 @@ module.exports = function style(gd) { }); }; -},{"d3":169}],1078:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"@plotly/d3":58}],1089:[function(_dereq_,module,exports){ + 'use strict'; @@ -193490,14 +190086,8 @@ module.exports = function handleStyleDefaults(traceIn, traceOut, coerce) { coerce('zhoverformat'); }; -},{}],1079:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1090:[function(_dereq_,module,exports){ + 'use strict'; @@ -193537,10 +190127,7 @@ module.exports = function handleXYZDefaults(traceIn, traceOut, coerce, layout, x traceOut._length = null; } - if( - traceIn.type === 'heatmapgl' || - traceIn.type === 'contourgl' - ) return true; // skip calendars until we handle them in those traces + if(traceIn.type === 'heatmapgl') return true; // skip calendars until we handle them in those traces var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleTraceDefaults'); handleCalendarDefaults(traceIn, traceOut, [xName, yName], layout); @@ -193592,14 +190179,8 @@ function isValidZ(z) { return (allRowsAreArrays && oneRowIsFilled && hasOneNumber); } -},{"../../lib":778,"../../registry":911,"fast-isnumeric":241}],1080:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../registry":922,"fast-isnumeric":241}],1091:[function(_dereq_,module,exports){ + 'use strict'; @@ -193628,9 +190209,7 @@ attrs.zsmooth = { valType: 'enumerated', values: ['fast', false], dflt: 'fast', - editType: 'calc', - }; extendFlat( @@ -193640,14 +190219,8 @@ extendFlat( module.exports = overrideAll(attrs, 'calc', 'nested'); -},{"../../components/colorscale/attributes":650,"../../lib/extend":768,"../../plot_api/edit_types":810,"../heatmap/attributes":1065}],1081:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/attributes":667,"../../lib/extend":785,"../../plot_api/edit_types":827,"../heatmap/attributes":1076}],1092:[function(_dereq_,module,exports){ + 'use strict'; @@ -193792,14 +190365,8 @@ function createHeatmap(scene, fullTrace, calcTrace) { module.exports = createHeatmap; -},{"../../lib/str2rgbarray":802,"../../plots/cartesian/axes":828,"gl-heatmap2d":271}],1082:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib/str2rgbarray":819,"../../plots/cartesian/axes":845,"gl-heatmap2d":271}],1093:[function(_dereq_,module,exports){ + 'use strict'; @@ -193828,14 +190395,8 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'z'}); }; -},{"../../components/colorscale/defaults":653,"../../lib":778,"../heatmap/xyz_defaults":1079,"./attributes":1080}],1083:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/defaults":670,"../../lib":795,"../heatmap/xyz_defaults":1090,"./attributes":1091}],1094:[function(_dereq_,module,exports){ + 'use strict'; @@ -193852,18 +190413,11 @@ module.exports = { basePlotModule: _dereq_('../../plots/gl2d'), categories: ['gl', 'gl2d', '2dMap'], meta: { - } }; -},{"../../plots/gl2d":868,"../heatmap/calc":1066,"../heatmap/colorbar":1068,"./attributes":1080,"./convert":1081,"./defaults":1082}],1084:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/gl2d":885,"../heatmap/calc":1077,"../heatmap/colorbar":1079,"./attributes":1091,"./convert":1092,"./defaults":1093}],1095:[function(_dereq_,module,exports){ + 'use strict'; @@ -193877,64 +190431,50 @@ module.exports = { x: { valType: 'data_array', editType: 'calc+clearAxisTypes', - }, y: { valType: 'data_array', editType: 'calc+clearAxisTypes', - }, text: extendFlat({}, barAttrs.text, { - }), hovertext: extendFlat({}, barAttrs.hovertext, { - }), orientation: barAttrs.orientation, histfunc: { valType: 'enumerated', values: ['count', 'sum', 'avg', 'min', 'max'], - dflt: 'count', editType: 'calc', - }, histnorm: { valType: 'enumerated', values: ['', 'percent', 'probability', 'density', 'probability density'], dflt: '', - editType: 'calc', - }, cumulative: { enabled: { valType: 'boolean', dflt: false, - editType: 'calc', - }, direction: { valType: 'enumerated', values: ['increasing', 'decreasing'], dflt: 'increasing', - editType: 'calc', - }, currentbin: { valType: 'enumerated', values: ['include', 'exclude', 'half'], dflt: 'include', - editType: 'calc', - }, editType: 'calc' }, @@ -193942,9 +190482,7 @@ module.exports = { valType: 'integer', min: 0, dflt: 0, - editType: 'calc', - }, xbins: makeBinAttrs('x', true), @@ -193952,32 +190490,24 @@ module.exports = { valType: 'integer', min: 0, dflt: 0, - editType: 'calc', - }, ybins: makeBinAttrs('y', true), autobinx: { valType: 'boolean', dflt: null, - editType: 'calc', - }, autobiny: { valType: 'boolean', dflt: null, - editType: 'calc', - }, bingroup: { valType: 'string', - dflt: '', editType: 'calc', - }, hovertemplate: hovertemplateAttrs({}, { @@ -193997,14 +190527,8 @@ module.exports = { } }; -},{"../../lib/extend":768,"../../plots/template_attributes":906,"../bar/attributes":921,"./bin_attributes":1086,"./constants":1090}],1085:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib/extend":785,"../../plots/template_attributes":917,"../bar/attributes":932,"./bin_attributes":1097,"./constants":1101}],1096:[function(_dereq_,module,exports){ + 'use strict'; @@ -194022,14 +190546,8 @@ module.exports = function doAvg(size, counts) { return total; }; -},{}],1086:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1097:[function(_dereq_,module,exports){ + 'use strict'; @@ -194037,34 +190555,22 @@ module.exports = function makeBinAttrs(axLetter, match) { return { start: { valType: 'any', // for date axes - editType: 'calc', - }, end: { valType: 'any', // for date axes - editType: 'calc', - }, size: { valType: 'any', // for date axes - editType: 'calc', - }, editType: 'calc' }; }; -},{}],1087:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1098:[function(_dereq_,module,exports){ + 'use strict'; @@ -194131,14 +190637,8 @@ module.exports = { } }; -},{"fast-isnumeric":241}],1088:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"fast-isnumeric":241}],1099:[function(_dereq_,module,exports){ + 'use strict'; @@ -194307,14 +190807,8 @@ function dateParts(v, pa, calendar) { return parts; } -},{"../../constants/numerical":753,"../../plots/cartesian/axes":828}],1089:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/numerical":770,"../../plots/cartesian/axes":845}],1100:[function(_dereq_,module,exports){ + 'use strict'; @@ -194886,14 +191380,8 @@ module.exports = { calcAllAutoBins: calcAllAutoBins }; -},{"../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../plots/cartesian/axes":845,"../../registry":922,"../bar/arrays_to_calcdata":931,"./average":1096,"./bin_functions":1098,"./bin_label_vals":1099,"./norm_functions":1107,"fast-isnumeric":241}],1101:[function(_dereq_,module,exports){ + 'use strict'; @@ -194902,14 +191390,8 @@ module.exports = { eventDataKeys: ['binNumber'] }; -},{}],1091:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1102:[function(_dereq_,module,exports){ + 'use strict'; @@ -195179,14 +191661,8 @@ module.exports = function crossTraceDefaults(fullData, fullLayout) { } }; -},{"../../lib":778,"../../plots/cartesian/axis_ids":831,"../../plots/cartesian/constraints":835,"../../registry":911,"../bar/defaults":925}],1092:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../plots/cartesian/axis_ids":848,"../../plots/cartesian/constraints":852,"../../registry":922,"../bar/defaults":936}],1103:[function(_dereq_,module,exports){ + 'use strict'; @@ -195253,14 +191729,8 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout errorBarsSupplyDefaults(traceIn, traceOut, lineColor || Color.defaultLine, {axis: 'x', inherit: 'y'}); }; -},{"../../components/color":643,"../../lib":778,"../../registry":911,"../bar/style_defaults":936,"./attributes":1084}],1093:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../lib":795,"../../registry":922,"../bar/style_defaults":947,"./attributes":1095}],1104:[function(_dereq_,module,exports){ + 'use strict'; @@ -195302,14 +191772,8 @@ module.exports = function eventData(out, pt, trace, cd, pointNumber) { return out; }; -},{}],1094:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1105:[function(_dereq_,module,exports){ + 'use strict'; @@ -195335,14 +191799,8 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode) { return pts; }; -},{"../../plots/cartesian/axes":828,"../bar/hover":928}],1095:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/cartesian/axes":845,"../bar/hover":939}],1106:[function(_dereq_,module,exports){ + 'use strict'; @@ -195381,18 +191839,11 @@ module.exports = { basePlotModule: _dereq_('../../plots/cartesian'), categories: ['bar-like', 'cartesian', 'svg', 'bar', 'histogram', 'oriented', 'errorBarsOK', 'showLegend'], meta: { - } }; -},{"../../plots/cartesian":841,"../bar/cross_trace_calc":924,"../bar/layout_attributes":930,"../bar/layout_defaults":931,"../bar/plot":932,"../bar/select":933,"../bar/style":935,"../scatter/marker_colorbar":1205,"./attributes":1084,"./calc":1089,"./cross_trace_defaults":1091,"./defaults":1092,"./event_data":1093,"./hover":1094}],1096:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/cartesian":858,"../bar/cross_trace_calc":935,"../bar/layout_attributes":941,"../bar/layout_defaults":942,"../bar/plot":943,"../bar/select":944,"../bar/style":946,"../scatter/marker_colorbar":1216,"./attributes":1095,"./calc":1100,"./cross_trace_defaults":1102,"./defaults":1103,"./event_data":1104,"./hover":1105}],1107:[function(_dereq_,module,exports){ + 'use strict'; @@ -195420,14 +191871,8 @@ module.exports = { } }; -},{}],1097:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1108:[function(_dereq_,module,exports){ + 'use strict'; @@ -195448,13 +191893,11 @@ module.exports = extendFlat( z: { valType: 'data_array', editType: 'calc', - }, marker: { color: { valType: 'data_array', editType: 'calc', - }, editType: 'calc' }, @@ -195469,13 +191912,10 @@ module.exports = extendFlat( autobiny: histogramAttrs.autobiny, bingroup: extendFlat({}, histogramAttrs.bingroup, { - }), xbingroup: extendFlat({}, histogramAttrs.bingroup, { - }), ybingroup: extendFlat({}, histogramAttrs.bingroup, { - }), xgap: heatmapAttrs.xgap, @@ -195488,14 +191928,8 @@ module.exports = extendFlat( colorScaleAttrs('', {cLetter: 'z', autoColorDflt: false}) ); -},{"../../components/colorscale/attributes":650,"../../lib/extend":768,"../../plots/attributes":824,"../../plots/template_attributes":906,"../heatmap/attributes":1065,"../histogram/attributes":1084,"../histogram/bin_attributes":1086}],1098:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/attributes":667,"../../lib/extend":785,"../../plots/attributes":841,"../../plots/template_attributes":917,"../heatmap/attributes":1076,"../histogram/attributes":1095,"../histogram/bin_attributes":1097}],1109:[function(_dereq_,module,exports){ + 'use strict'; @@ -195707,14 +192141,8 @@ function getRanges(edges, uniqueVals, gapLow, gapHigh, ax, calendar) { return out; } -},{"../../lib":778,"../../plots/cartesian/axes":828,"../histogram/average":1085,"../histogram/bin_functions":1087,"../histogram/bin_label_vals":1088,"../histogram/calc":1089,"../histogram/norm_functions":1096}],1099:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../plots/cartesian/axes":845,"../histogram/average":1096,"../histogram/bin_functions":1098,"../histogram/bin_label_vals":1099,"../histogram/calc":1100,"../histogram/norm_functions":1107}],1110:[function(_dereq_,module,exports){ + 'use strict'; @@ -195740,14 +192168,8 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout coerce('hovertemplate'); }; -},{"../../components/colorscale/defaults":653,"../../lib":778,"../heatmap/style_defaults":1078,"./attributes":1097,"./sample_defaults":1102}],1100:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/defaults":670,"../../lib":795,"../heatmap/style_defaults":1089,"./attributes":1108,"./sample_defaults":1113}],1111:[function(_dereq_,module,exports){ + 'use strict'; @@ -195774,14 +192196,8 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode, hoverLay return pts; }; -},{"../../plots/cartesian/axes":828,"../heatmap/hover":1072}],1101:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/cartesian/axes":845,"../heatmap/hover":1083}],1112:[function(_dereq_,module,exports){ + 'use strict'; @@ -195802,19 +192218,11 @@ module.exports = { basePlotModule: _dereq_('../../plots/cartesian'), categories: ['cartesian', 'svg', '2dMap', 'histogram', 'showLegend'], meta: { - - } }; -},{"../../plots/cartesian":841,"../heatmap/calc":1066,"../heatmap/colorbar":1068,"../heatmap/plot":1076,"../heatmap/style":1077,"../histogram/cross_trace_defaults":1091,"../histogram/event_data":1093,"./attributes":1097,"./defaults":1099,"./hover":1100}],1102:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/cartesian":858,"../heatmap/calc":1077,"../heatmap/colorbar":1079,"../heatmap/plot":1087,"../heatmap/style":1088,"../histogram/cross_trace_defaults":1102,"../histogram/event_data":1104,"./attributes":1108,"./defaults":1110,"./hover":1111}],1113:[function(_dereq_,module,exports){ + 'use strict'; @@ -195852,14 +192260,8 @@ module.exports = function handleSampleDefaults(traceIn, traceOut, coerce, layout coerce('autobiny'); }; -},{"../../lib":778,"../../registry":911}],1103:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../registry":922}],1114:[function(_dereq_,module,exports){ + 'use strict'; @@ -195895,7 +192297,6 @@ module.exports = extendFlat({ color: contourAttrs.line.color, width: extendFlat({}, contourAttrs.line.width, { dflt: 0.5, - }), dash: contourAttrs.line.dash, smoothing: contourAttrs.line.smoothing, @@ -195910,14 +192311,8 @@ module.exports = extendFlat({ }) ); -},{"../../components/colorscale/attributes":650,"../../lib/extend":768,"../contour/attributes":1008,"../histogram2d/attributes":1097}],1104:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/attributes":667,"../../lib/extend":785,"../contour/attributes":1019,"../histogram2d/attributes":1108}],1115:[function(_dereq_,module,exports){ + 'use strict'; @@ -195947,14 +192342,8 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout coerce('hovertemplate'); }; -},{"../../lib":778,"../contour/contours_defaults":1015,"../contour/style_defaults":1029,"../histogram2d/sample_defaults":1102,"./attributes":1103}],1105:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../contour/contours_defaults":1026,"../contour/style_defaults":1040,"../histogram2d/sample_defaults":1113,"./attributes":1114}],1116:[function(_dereq_,module,exports){ + 'use strict'; @@ -195974,19 +192363,11 @@ module.exports = { basePlotModule: _dereq_('../../plots/cartesian'), categories: ['cartesian', 'svg', '2dMap', 'contour', 'histogram', 'showLegend'], meta: { - - } }; -},{"../../plots/cartesian":841,"../contour/calc":1009,"../contour/colorbar":1011,"../contour/hover":1021,"../contour/plot":1026,"../contour/style":1028,"../histogram/cross_trace_defaults":1091,"./attributes":1103,"./defaults":1104}],1106:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/cartesian":858,"../contour/calc":1020,"../contour/colorbar":1022,"../contour/hover":1032,"../contour/plot":1037,"../contour/style":1039,"../histogram/cross_trace_defaults":1102,"./attributes":1114,"./defaults":1115}],1117:[function(_dereq_,module,exports){ + 'use strict'; @@ -196007,22 +192388,22 @@ for(var i = 0; i < cm.length; i++) { module.exports = extendFlat({ source: { valType: 'string', - editType: 'calc', - }, z: { valType: 'data_array', - editType: 'calc', - }, colormodel: { valType: 'enumerated', values: cm, - editType: 'calc', - + }, + zsmooth: { + valType: 'enumerated', + values: ['fast', false], + dflt: false, + editType: 'plot', }, zmin: { valType: 'info_array', @@ -196032,9 +192413,7 @@ module.exports = extendFlat({ {valType: 'number', editType: 'calc'}, {valType: 'number', editType: 'calc'} ], - editType: 'calc', - }, zmax: { valType: 'info_array', @@ -196044,47 +192423,35 @@ module.exports = extendFlat({ {valType: 'number', editType: 'calc'}, {valType: 'number', editType: 'calc'} ], - editType: 'calc', - }, x0: { valType: 'any', dflt: 0, - editType: 'calc+clearAxisTypes', - }, y0: { valType: 'any', dflt: 0, - editType: 'calc+clearAxisTypes', - }, dx: { valType: 'number', dflt: 1, - editType: 'calc', - }, dy: { valType: 'number', dflt: 1, - editType: 'calc', - }, text: { valType: 'data_array', editType: 'plot', - }, hovertext: { valType: 'data_array', editType: 'plot', - }, hoverinfo: extendFlat({}, baseAttrs.hoverinfo, { flags: ['x', 'y', 'z', 'color', 'name', 'text'], @@ -196097,14 +192464,8 @@ module.exports = extendFlat({ transforms: undefined }); -},{"../../lib/extend":768,"../../plots/attributes":824,"../../plots/template_attributes":906,"./constants":1108}],1107:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib/extend":785,"../../plots/attributes":841,"../../plots/template_attributes":917,"./constants":1119}],1118:[function(_dereq_,module,exports){ + 'use strict'; @@ -196195,14 +192556,8 @@ function makeScaler(trace) { }; } -},{"../../lib":778,"../../plots/cartesian/axes":828,"./constants":1108,"./helpers":1111,"fast-isnumeric":241}],1108:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../plots/cartesian/axes":845,"./constants":1119,"./helpers":1122,"fast-isnumeric":241}],1119:[function(_dereq_,module,exports){ + 'use strict'; @@ -196253,17 +192608,24 @@ module.exports = { }, suffix: ['°', '%', '%', ''] } - } + }, + // For pixelated image rendering + // http://phrogz.net/tmp/canvas_image_zoom.html + // https://developer.mozilla.org/en-US/docs/Web/CSS/image-rendering + pixelatedStyle: [ + 'image-rendering: optimizeSpeed', + 'image-rendering: -moz-crisp-edges', + 'image-rendering: -o-crisp-edges', + 'image-rendering: -webkit-optimize-contrast', + 'image-rendering: optimize-contrast', + 'image-rendering: crisp-edges', + 'image-rendering: pixelated', + '' + ].join('; ') }; -},{}],1109:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1120:[function(_dereq_,module,exports){ + 'use strict'; @@ -196306,6 +192668,7 @@ module.exports = function supplyDefaults(traceIn, traceOut) { traceOut.zmax = cm.zmaxDflt; } + coerce('zsmooth'); coerce('text'); coerce('hovertext'); coerce('hovertemplate'); @@ -196313,14 +192676,8 @@ module.exports = function supplyDefaults(traceIn, traceOut) { traceOut._length = null; }; -},{"../../lib":778,"../../snapshot/helpers":915,"./attributes":1106,"./constants":1108}],1110:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../snapshot/helpers":926,"./attributes":1117,"./constants":1119}],1121:[function(_dereq_,module,exports){ + 'use strict'; @@ -196335,35 +192692,23 @@ module.exports = function eventData(out, pt) { return out; }; -},{}],1111:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1122:[function(_dereq_,module,exports){ + 'use strict'; -var sizeOf = _dereq_('image-size'); +var probeSync = _dereq_('probe-image-size/sync'); var dataUri = _dereq_('../../snapshot/helpers').IMAGE_URL_PREFIX; var Buffer = _dereq_('buffer/').Buffer; // note: the trailing slash is important! exports.getImageSize = function(src) { var data = src.replace(dataUri, ''); var buff = new Buffer(data, 'base64'); - return sizeOf(buff); + return probeSync(buff); }; -},{"../../snapshot/helpers":915,"buffer/":111,"image-size":444}],1112:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../snapshot/helpers":926,"buffer/":113,"probe-image-size/sync":521}],1123:[function(_dereq_,module,exports){ + 'use strict'; @@ -196456,14 +192801,8 @@ module.exports = function hoverPoints(pointData, xval, yval) { })]; }; -},{"../../components/fx":683,"../../lib":778,"./constants":1108}],1113:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/fx":700,"../../lib":795,"./constants":1119}],1124:[function(_dereq_,module,exports){ + 'use strict'; @@ -196482,22 +192821,15 @@ module.exports = { categories: ['cartesian', 'svg', '2dMap', 'noSortingByValue'], animatable: false, meta: { - } }; -},{"../../plots/cartesian":841,"./attributes":1106,"./calc":1107,"./defaults":1109,"./event_data":1110,"./hover":1112,"./plot":1114,"./style":1115}],1114:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/cartesian":858,"./attributes":1117,"./calc":1118,"./defaults":1120,"./event_data":1121,"./hover":1123,"./plot":1125,"./style":1126}],1125:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Lib = _dereq_('../../lib'); var strTranslate = Lib.strTranslate; var xmlnsNamespaces = _dereq_('../../constants/xmlns_namespaces'); @@ -196515,8 +192847,11 @@ module.exports = function plot(gd, plotinfo, cdimage, imageLayer) { var plotGroup = d3.select(this); var cd0 = cd[0]; var trace = cd0.trace; - var fastImage = supportsPixelatedImage && !trace._hasZ && trace._hasSource && xa.type === 'linear' && ya.type === 'linear'; - trace._fastImage = fastImage; + var realImage = ( + ((trace.zsmooth === 'fast') || (trace.zsmooth === false && supportsPixelatedImage)) && + !trace._hasZ && trace._hasSource && xa.type === 'linear' && ya.type === 'linear' + ); + trace._realImage = realImage; var z = cd0.z; var x0 = cd0.x0; @@ -196562,7 +192897,7 @@ module.exports = function plot(gd, plotinfo, cdimage, imageLayer) { } // Reduce image size when zoomed in to save memory - if(!fastImage) { + if(!realImage) { var extra = 0.5; // half the axis size left = Math.max(-extra * xa._length, left); right = Math.min((1 + extra) * xa._length, right); @@ -196625,11 +192960,9 @@ module.exports = function plot(gd, plotinfo, cdimage, imageLayer) { image3.exit().remove(); - // Pixelated image rendering - // http://phrogz.net/tmp/canvas_image_zoom.html - // https://developer.mozilla.org/en-US/docs/Web/CSS/image-rendering - var style = 'image-rendering: optimizeSpeed; image-rendering: -moz-crisp-edges; image-rendering: -o-crisp-edges; image-rendering: -webkit-optimize-contrast; image-rendering: optimize-contrast; image-rendering: crisp-edges; image-rendering: pixelated;'; - if(fastImage) { + var style = (trace.zsmooth === false) ? constants.pixelatedStyle : ''; + + if(realImage) { var xRange = Lib.simpleMap(xa.range, xa.r2l); var yRange = Lib.simpleMap(ya.range, ya.r2l); @@ -196685,7 +193018,7 @@ module.exports = function plot(gd, plotinfo, cdimage, imageLayer) { canvas = drawMagnifiedPixelsOnCanvas(function(i, j) {return z[j][i];}); href = canvas.toDataURL('image/png'); } else if(trace._hasSource) { - if(fastImage) { + if(realImage) { href = trace.source; } else { var context = trace._canvas.el.getContext('2d'); @@ -196716,18 +193049,12 @@ module.exports = function plot(gd, plotinfo, cdimage, imageLayer) { }); }; -},{"../../constants/xmlns_namespaces":754,"../../lib":778,"./constants":1108,"d3":169}],1115:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/xmlns_namespaces":771,"../../lib":795,"./constants":1119,"@plotly/d3":58}],1126:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); module.exports = function style(gd) { d3.select(gd).selectAll('.im image') @@ -196736,14 +193063,8 @@ module.exports = function style(gd) { }); }; -},{"d3":169}],1116:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"@plotly/d3":58}],1127:[function(_dereq_,module,exports){ + 'use strict'; @@ -196767,48 +193088,38 @@ var gaugeBarAttrs = { color: { valType: 'color', editType: 'plot', - - }, line: { color: { valType: 'color', - dflt: colorAttrs.defaultLine, editType: 'plot', - }, width: { valType: 'number', - min: 0, dflt: 0, editType: 'plot', - }, editType: 'calc' }, thickness: { valType: 'number', - min: 0, max: 1, dflt: 1, editType: 'plot', - }, editType: 'calc' }; var rangeAttr = { valType: 'info_array', - items: [ {valType: 'number', editType: 'plot'}, {valType: 'number', editType: 'plot'} ], editType: 'plot', - }; var stepsAttrs = templatedArray('step', extendDeep({}, gaugeBarAttrs, { @@ -196819,24 +193130,18 @@ module.exports = { mode: { valType: 'flaglist', editType: 'calc', - flags: ['number', 'delta', 'gauge'], dflt: 'number', - }, value: { valType: 'number', editType: 'calc', - anim: true, - }, align: { valType: 'enumerated', values: ['left', 'center', 'right'], - editType: 'plot', - }, // position domain: domainAttrs({name: 'indicator', trace: true, editType: 'calc'}), @@ -196844,19 +193149,14 @@ module.exports = { title: { text: { valType: 'string', - editType: 'plot', - }, align: { valType: 'enumerated', values: ['left', 'center', 'right'], - editType: 'plot', - }, font: extendFlat({}, textFontAttrs, { - }), editType: 'plot' }, @@ -196864,71 +193164,52 @@ module.exports = { valueformat: { valType: 'string', dflt: '', - editType: 'plot', - }, font: extendFlat({}, textFontAttrs, { - }), prefix: { valType: 'string', dflt: '', - editType: 'plot', - }, suffix: { valType: 'string', dflt: '', - editType: 'plot', - }, editType: 'plot' }, delta: { reference: { valType: 'number', - editType: 'calc', - }, position: { valType: 'enumerated', values: ['top', 'bottom', 'left', 'right'], - dflt: 'bottom', editType: 'plot', - }, relative: { valType: 'boolean', editType: 'plot', - dflt: false, - }, valueformat: { valType: 'string', - editType: 'plot', - }, increasing: { symbol: { valType: 'string', - dflt: delta.INCREASING.SYMBOL, editType: 'plot', - }, color: { valType: 'color', - dflt: delta.INCREASING.COLOR, editType: 'plot', - }, // TODO: add attribute to show sign editType: 'plot' @@ -196936,23 +193217,18 @@ module.exports = { decreasing: { symbol: { valType: 'string', - dflt: delta.DECREASING.SYMBOL, editType: 'plot', - }, color: { valType: 'color', - dflt: delta.DECREASING.COLOR, editType: 'plot', - }, // TODO: add attribute to hide sign editType: 'plot' }, font: extendFlat({}, textFontAttrs, { - }), editType: 'calc' }, @@ -196960,36 +193236,27 @@ module.exports = { shape: { valType: 'enumerated', editType: 'plot', - dflt: 'angular', values: ['angular', 'bullet'], - }, bar: extendDeep({}, gaugeBarAttrs, { color: {dflt: 'green'}, - }), // Background of the gauge bgcolor: { valType: 'color', - editType: 'plot', - }, bordercolor: { valType: 'color', dflt: colorAttrs.defaultLine, - editType: 'plot', - }, borderwidth: { valType: 'number', min: 0, dflt: 1, - editType: 'plot', - }, axis: overrideAll({ range: rangeAttr, @@ -197009,7 +193276,6 @@ module.exports = { tickcolor: axesAttrs.tickcolor, showticklabels: axesAttrs.showticklabels, tickfont: fontAttrs({ - }), tickangle: axesAttrs.tickangle, tickformat: axesAttrs.tickformat, @@ -197029,41 +193295,29 @@ module.exports = { threshold: { line: { color: extendFlat({}, gaugeBarAttrs.line.color, { - }), width: extendFlat({}, gaugeBarAttrs.line.width, { dflt: 1, - }), editType: 'plot' }, thickness: extendFlat({}, gaugeBarAttrs.thickness, { dflt: 0.85, - }), value: { valType: 'number', editType: 'calc', dflt: false, - - }, editType: 'plot' }, - editType: 'plot' // TODO: in future version, add marker: (bar|needle) } }; -},{"../../components/color/attributes":642,"../../constants/delta.js":747,"../../constants/docs":748,"../../lib/extend":768,"../../plot_api/edit_types":810,"../../plot_api/plot_template":817,"../../plots/cartesian/layout_attributes":842,"../../plots/domain":855,"../../plots/font_attributes":856}],1117:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color/attributes":659,"../../constants/delta.js":764,"../../constants/docs":765,"../../lib/extend":785,"../../plot_api/edit_types":827,"../../plot_api/plot_template":834,"../../plots/cartesian/layout_attributes":859,"../../plots/domain":872,"../../plots/font_attributes":873}],1128:[function(_dereq_,module,exports){ + 'use strict'; @@ -197079,14 +193333,8 @@ exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) plots.cleanBasePlot(exports.name, newFullData, newFullLayout, oldFullData, oldFullLayout); }; -},{"../../plots/plots":891}],1118:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/plots":908}],1129:[function(_dereq_,module,exports){ + 'use strict'; @@ -197116,14 +193364,8 @@ module.exports = { calc: calc }; -},{}],1119:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1130:[function(_dereq_,module,exports){ + 'use strict'; @@ -197138,14 +193380,8 @@ module.exports = { horizontalPadding: 10 }; -},{}],1120:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1131:[function(_dereq_,module,exports){ + 'use strict'; @@ -197305,14 +193541,8 @@ module.exports = { supplyDefaults: supplyDefaults }; -},{"../../lib":778,"../../plot_api/plot_template":817,"../../plots/array_container_defaults":823,"../../plots/cartesian/tick_label_defaults":849,"../../plots/cartesian/tick_mark_defaults":850,"../../plots/cartesian/tick_value_defaults":851,"../../plots/domain":855,"./attributes":1116,"./constants.js":1119}],1121:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../plot_api/plot_template":834,"../../plots/array_container_defaults":840,"../../plots/cartesian/tick_label_defaults":866,"../../plots/cartesian/tick_mark_defaults":867,"../../plots/cartesian/tick_value_defaults":868,"../../plots/domain":872,"./attributes":1127,"./constants.js":1130}],1132:[function(_dereq_,module,exports){ + 'use strict'; @@ -197331,22 +193561,15 @@ module.exports = { plot: _dereq_('./plot'), meta: { - } }; -},{"./attributes":1116,"./base_plot":1117,"./calc":1118,"./defaults":1120,"./plot":1122}],1122:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"./attributes":1127,"./base_plot":1128,"./calc":1129,"./defaults":1131,"./plot":1133}],1133:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Lib = _dereq_('../../lib'); var strScale = Lib.strScale; @@ -197662,7 +193885,7 @@ function drawBulletGauge(gd, plotGroup, cd, opts) { } fgBullet.exit().remove(); - var data = cd.filter(function() {return trace.gauge.threshold.value;}); + var data = cd.filter(function() {return trace.gauge.threshold.value || trace.gauge.threshold.value === 0;}); var threshold = bullet.selectAll('g.threshold-bullet').data(data); threshold.enter().append('g').classed('threshold-bullet', true).append('line'); threshold.select('line') @@ -197835,7 +194058,7 @@ function drawAngularGauge(gd, plotGroup, cd, opts) { // Draw threshold arcs = []; var v = trace.gauge.threshold.value; - if(v) { + if(v || v === 0) { arcs.push({ range: [v, v], color: trace.gauge.threshold.color, @@ -198214,14 +194437,8 @@ function cache(trace, name, initialValue, value, key, fn) { return v; } -},{"../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../components/drawing":682,"../../constants/alignment":762,"../../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":1130,"@plotly/d3":58}],1134:[function(_dereq_,module,exports){ + 'use strict'; @@ -198237,23 +194454,17 @@ function makeSliceAttr(axLetter) { return { show: { valType: 'boolean', - dflt: false, - }, locations: { valType: 'data_array', dflt: [], - - }, fill: { valType: 'number', - min: 0, max: 1, dflt: 1, - } }; } @@ -198262,17 +194473,13 @@ function makeCapAttr(axLetter) { return { show: { valType: 'boolean', - dflt: true, - }, fill: { valType: 'number', - min: 0, max: 1, dflt: 1, - } }; } @@ -198280,81 +194487,57 @@ function makeCapAttr(axLetter) { var attrs = module.exports = overrideAll(extendFlat({ 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: true, - }, 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: false, - }, fill: { valType: 'number', - min: 0, max: 1, dflt: 0.15, - } }, @@ -198372,17 +194555,13 @@ var attrs = module.exports = overrideAll(extendFlat({ text: { valType: 'string', - dflt: '', arrayOk: true, - }, hovertext: { valType: 'string', - dflt: '', arrayOk: true, - }, hovertemplate: hovertemplateAttrs(), showlegend: extendFlat({}, baseAttrs.showlegend, {dflt: false}) @@ -198408,14 +194587,8 @@ attrs.flatshading.dflt = true; attrs.lighting.facenormalsepsilon.dflt = 0; attrs.x.editType = attrs.y.editType = attrs.z.editType = attrs.value.editType = 'calc+clearAxisTypes'; attrs.transforms = undefined; -},{"../../components/colorscale/attributes":650,"../../lib/extend":768,"../../plot_api/edit_types":810,"../../plots/attributes":824,"../../plots/template_attributes":906,"../mesh3d/attributes":1128}],1124:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/attributes":667,"../../lib/extend":785,"../../plot_api/edit_types":827,"../../plots/attributes":841,"../../plots/template_attributes":917,"../mesh3d/attributes":1139}],1135:[function(_dereq_,module,exports){ + 'use strict'; @@ -198463,14 +194636,8 @@ module.exports = function calc(gd, trace) { }); }; -},{"../../components/colorscale/calc":651,"../streamtube/calc":1295}],1125:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/calc":668,"../streamtube/calc":1306}],1136:[function(_dereq_,module,exports){ + 'use strict'; @@ -199519,14 +195686,8 @@ module.exports = { createIsosurfaceTrace: createIsosurfaceTrace, }; -},{"../../components/colorscale":655,"../../lib/gl_format_color":774,"../../lib/str2rgbarray":802,"../../plots/gl3d/zip3":881,"gl-mesh3d":309}],1126:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale":672,"../../lib/gl_format_color":791,"../../lib/str2rgbarray":819,"../../plots/gl3d/zip3":898,"gl-mesh3d":309}],1137:[function(_dereq_,module,exports){ + 'use strict'; @@ -199636,14 +195797,8 @@ module.exports = { supplyIsoDefaults: supplyIsoDefaults }; -},{"../../components/colorscale/defaults":653,"../../lib":778,"../../registry":911,"./attributes":1123}],1127:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/defaults":670,"../../lib":795,"../../registry":922,"./attributes":1134}],1138:[function(_dereq_,module,exports){ + 'use strict'; @@ -199662,18 +195817,11 @@ module.exports = { basePlotModule: _dereq_('../../plots/gl3d'), categories: ['gl3d', 'showLegend'], meta: { - } }; -},{"../../plots/gl3d":870,"./attributes":1123,"./calc":1124,"./convert":1125,"./defaults":1126}],1128:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/gl3d":887,"./attributes":1134,"./calc":1135,"./convert":1136,"./defaults":1137}],1139:[function(_dereq_,module,exports){ + 'use strict'; @@ -199688,104 +195836,81 @@ module.exports = extendFlat({ 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: true, editType: 'calc', - }, hovertext: { valType: 'string', - dflt: '', arrayOk: true, editType: 'calc', - }, hovertemplate: hovertemplateAttrs({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 field color: { valType: 'color', - editType: 'calc', - }, vertexcolor: { valType: 'data_array', - editType: 'calc', - }, facecolor: { valType: 'data_array', - editType: 'calc', - }, transforms: undefined }, @@ -199800,15 +195925,12 @@ colorScaleAttrs('', { // Flat shaded mode flatshading: { valType: 'boolean', - dflt: false, editType: 'calc', - }, contour: { show: extendFlat({}, surfaceAttrs.contours.x.show, { - }), color: surfaceAttrs.contours.x.color, width: surfaceAttrs.contours.x.width, @@ -199824,21 +195946,17 @@ colorScaleAttrs('', { lighting: extendFlat({ vertexnormalsepsilon: { valType: 'number', - min: 0.00, max: 1, dflt: 1e-12, // otherwise finely tessellated things eg. the brain will have no specular light reflection editType: 'calc', - }, facenormalsepsilon: { valType: 'number', - min: 0.00, max: 1, dflt: 1e-6, // even the brain model doesn't appear to need finer than this editType: 'calc', - }, editType: 'calc' }, surfaceAttrs.lighting), @@ -199847,14 +195965,8 @@ colorScaleAttrs('', { showlegend: extendFlat({}, baseAttrs.showlegend, {dflt: false}) }); -},{"../../components/colorscale/attributes":650,"../../lib/extend":768,"../../plots/attributes":824,"../../plots/template_attributes":906,"../surface/attributes":1311}],1129:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/attributes":667,"../../lib/extend":785,"../../plots/attributes":841,"../../plots/template_attributes":917,"../surface/attributes":1322}],1140:[function(_dereq_,module,exports){ + 'use strict'; @@ -199870,14 +195982,8 @@ module.exports = function calc(gd, trace) { } }; -},{"../../components/colorscale/calc":651}],1130:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/calc":668}],1141:[function(_dereq_,module,exports){ + 'use strict'; @@ -200073,14 +196179,8 @@ function createMesh3DTrace(scene, data) { module.exports = createMesh3DTrace; -},{"../../components/colorscale":655,"../../lib/gl_format_color":774,"../../lib/str2rgbarray":802,"../../plots/gl3d/zip3":881,"alpha-shape":69,"convex-hull":135,"delaunay-triangulate":171,"gl-mesh3d":309}],1131:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale":672,"../../lib/gl_format_color":791,"../../lib/str2rgbarray":819,"../../plots/gl3d/zip3":898,"alpha-shape":71,"convex-hull":137,"delaunay-triangulate":172,"gl-mesh3d":309}],1142:[function(_dereq_,module,exports){ + 'use strict'; @@ -200175,14 +196275,8 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout traceOut._length = null; }; -},{"../../components/colorscale/defaults":653,"../../lib":778,"../../registry":911,"./attributes":1128}],1132:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/defaults":670,"../../lib":795,"../../registry":922,"./attributes":1139}],1143:[function(_dereq_,module,exports){ + 'use strict'; @@ -200201,18 +196295,11 @@ module.exports = { basePlotModule: _dereq_('../../plots/gl3d'), categories: ['gl3d', 'showLegend'], meta: { - } }; -},{"../../plots/gl3d":870,"./attributes":1128,"./calc":1129,"./convert":1130,"./defaults":1131}],1133:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/gl3d":887,"./attributes":1139,"./calc":1140,"./convert":1141,"./defaults":1142}],1144:[function(_dereq_,module,exports){ + 'use strict'; @@ -200249,39 +196336,32 @@ module.exports = { x: { valType: 'data_array', editType: 'calc+clearAxisTypes', - }, open: { valType: 'data_array', editType: 'calc', - }, high: { valType: 'data_array', editType: 'calc', - }, low: { valType: 'data_array', editType: 'calc', - }, close: { valType: 'data_array', editType: 'calc', - }, line: { width: extendFlat({}, lineAttrs.width, { - }), dash: extendFlat({}, dash, { - }), editType: 'style' }, @@ -200292,19 +196372,15 @@ module.exports = { text: { valType: 'string', - dflt: '', arrayOk: true, editType: 'calc', - }, hovertext: { valType: 'string', - dflt: '', arrayOk: true, editType: 'calc', - }, tickwidth: { @@ -200312,30 +196388,20 @@ module.exports = { min: 0, max: 0.5, dflt: 0.3, - editType: 'calc', - }, hoverlabel: extendFlat({}, fxAttrs.hoverlabel, { split: { valType: 'boolean', - dflt: false, editType: 'style', - } }), }; -},{"../../components/drawing/attributes":664,"../../components/fx/attributes":674,"../../constants/delta.js":747,"../../lib":778,"../scatter/attributes":1187}],1134:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/drawing/attributes":681,"../../components/fx/attributes":691,"../../constants/delta.js":764,"../../lib":795,"../scatter/attributes":1198}],1145:[function(_dereq_,module,exports){ + 'use strict'; @@ -200509,14 +196575,8 @@ module.exports = { calcCommon: calcCommon }; -},{"../../constants/numerical":753,"../../lib":778,"../../plots/cartesian/align_period":825,"../../plots/cartesian/axes":828}],1135:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/numerical":770,"../../lib":795,"../../plots/cartesian/align_period":842,"../../plots/cartesian/axes":845}],1146:[function(_dereq_,module,exports){ + 'use strict'; @@ -200558,14 +196618,8 @@ function handleDirection(traceIn, traceOut, coerce, direction) { coerce(direction + '.line.dash', traceOut.line.dash); } -},{"../../lib":778,"../scatter/period_defaults":1207,"./attributes":1133,"./ohlc_defaults":1138}],1136:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../scatter/period_defaults":1218,"./attributes":1144,"./ohlc_defaults":1149}],1147:[function(_dereq_,module,exports){ + 'use strict'; @@ -200765,14 +196819,8 @@ module.exports = { hoverOnPoints: hoverOnPoints }; -},{"../../components/color":643,"../../components/fx":683,"../../constants/delta.js":747,"../../lib":778,"../../plots/cartesian/axes":828}],1137:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../components/fx":700,"../../constants/delta.js":764,"../../lib":795,"../../plots/cartesian/axes":845}],1148:[function(_dereq_,module,exports){ + 'use strict'; @@ -200782,7 +196830,6 @@ module.exports = { basePlotModule: _dereq_('../../plots/cartesian'), categories: ['cartesian', 'svg', 'showLegend'], meta: { - }, attributes: _dereq_('./attributes'), @@ -200794,14 +196841,8 @@ module.exports = { selectPoints: _dereq_('./select') }; -},{"../../plots/cartesian":841,"./attributes":1133,"./calc":1134,"./defaults":1135,"./hover":1136,"./plot":1139,"./select":1140,"./style":1141}],1138:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/cartesian":858,"./attributes":1144,"./calc":1145,"./defaults":1146,"./hover":1147,"./plot":1150,"./select":1151,"./style":1152}],1149:[function(_dereq_,module,exports){ + 'use strict'; @@ -200829,18 +196870,12 @@ module.exports = function handleOHLC(traceIn, traceOut, coerce, layout) { return len; }; -},{"../../lib":778,"../../registry":911}],1139:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../registry":922}],1150:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Lib = _dereq_('../../lib'); @@ -200887,14 +196922,8 @@ module.exports = function plot(gd, plotinfo, cdOHLC, ohlcLayer) { }); }; -},{"../../lib":778,"d3":169}],1140:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"@plotly/d3":58}],1151:[function(_dereq_,module,exports){ + 'use strict'; @@ -200932,18 +196961,12 @@ module.exports = function selectPoints(searchInfo, selectionTester) { return selection; }; -},{}],1141:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1152:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Drawing = _dereq_('../../components/drawing'); var Color = _dereq_('../../components/color'); @@ -200971,14 +196994,8 @@ module.exports = function style(gd, cd, sel) { }); }; -},{"../../components/color":643,"../../components/drawing":665,"d3":169}],1142:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../components/drawing":682,"@plotly/d3":58}],1153:[function(_dereq_,module,exports){ + 'use strict'; @@ -200997,9 +197014,7 @@ var line = extendFlat( valType: 'enumerated', values: ['linear', 'hspline'], dflt: 'linear', - editType: 'plot', - }, hovertemplate: hovertemplateAttrs({ @@ -201007,7 +197022,6 @@ var line = extendFlat( arrayOk: false }, { keys: ['count', 'probability'], - }) } ); @@ -201024,9 +197038,7 @@ module.exports = { valType: 'enumerated', values: ['category', 'color', 'dimension'], dflt: 'category', - editType: 'plot', - }, hovertemplate: hovertemplateAttrs({ editType: 'plot', @@ -201036,49 +197048,38 @@ module.exports = { 'count', 'probability', 'category', 'categorycount', 'colorcount', 'bandcolorcount' ], - }), arrangement: { valType: 'enumerated', values: ['perpendicular', 'freeform', 'fixed'], dflt: 'perpendicular', - editType: 'plot', - }, bundlecolors: { valType: 'boolean', dflt: true, - editType: 'plot', - }, sortpaths: { valType: 'enumerated', values: ['forward', 'backward'], dflt: 'forward', - editType: 'plot', - }, labelfont: fontAttrs({ editType: 'calc', - }), tickfont: fontAttrs({ editType: 'calc', - }), dimensions: { _isLinkedToArray: 'dimension', label: { valType: 'string', - editType: 'calc', - }, categoryorder: { valType: 'enumerated', @@ -201086,43 +197087,30 @@ module.exports = { 'trace', 'category ascending', 'category descending', 'array' ], dflt: 'trace', - editType: 'calc', - }, categoryarray: { valType: 'data_array', - editType: 'calc', - }, ticktext: { valType: 'data_array', - editType: 'calc', - }, values: { valType: 'data_array', - dflt: [], editType: 'calc', - }, displayindex: { valType: 'integer', - editType: 'calc', - }, editType: 'calc', - visible: { valType: 'boolean', dflt: true, - editType: 'calc', - } }, @@ -201132,9 +197120,7 @@ module.exports = { min: 0, dflt: 1, arrayOk: true, - editType: 'calc', - }, // Hide unsupported top-level properties from plot-schema @@ -201147,14 +197133,8 @@ module.exports = { showlegend: undefined }; -},{"../../components/colorscale/attributes":650,"../../lib/extend":768,"../../plots/attributes":824,"../../plots/domain":855,"../../plots/font_attributes":856,"../../plots/template_attributes":906}],1143:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/attributes":667,"../../lib/extend":785,"../../plots/attributes":841,"../../plots/domain":872,"../../plots/font_attributes":873,"../../plots/template_attributes":917}],1154:[function(_dereq_,module,exports){ + 'use strict'; @@ -201182,14 +197162,8 @@ exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) } }; -},{"../../plots/get_data":865,"./plot":1148}],1144:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/get_data":882,"./plot":1159}],1155:[function(_dereq_,module,exports){ + 'use strict'; @@ -201701,14 +197675,8 @@ function isRangePermutation(inds) { return true; } -},{"../../components/colorscale/calc":651,"../../components/colorscale/helpers":654,"../../components/drawing":665,"../../lib":778,"../../lib/filter_unique.js":769,"../../lib/gup":775,"fast-isnumeric":241}],1145:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/calc":668,"../../components/colorscale/helpers":671,"../../components/drawing":682,"../../lib":795,"../../lib/filter_unique.js":786,"../../lib/gup":792,"fast-isnumeric":241}],1156:[function(_dereq_,module,exports){ + 'use strict'; @@ -201822,14 +197790,8 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout Lib.coerceFont(coerce, 'tickfont', categoryfontDefault); }; -},{"../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/defaults":670,"../../components/colorscale/helpers":671,"../../lib":795,"../../plots/array_container_defaults":840,"../../plots/domain":872,"../parcoords/merge_length":1169,"./attributes":1153}],1157:[function(_dereq_,module,exports){ + 'use strict'; @@ -201849,22 +197811,15 @@ module.exports = { basePlotModule: _dereq_('./base_plot'), categories: ['noOpacity'], meta: { - } }; -},{"./attributes":1142,"./base_plot":1143,"./calc":1144,"./defaults":1145,"./plot":1148}],1147:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"./attributes":1153,"./base_plot":1154,"./calc":1155,"./defaults":1156,"./plot":1159}],1158:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Plotly = _dereq_('../../plot_api/plot_api'); var Fx = _dereq_('../../components/fx'); var Lib = _dereq_('../../lib'); @@ -204013,14 +199968,8 @@ function createDimensionViewModel(parcatsViewModel, dimensionModel) { * The parent trace's view model */ -},{"../../components/drawing":665,"../../components/fx":683,"../../lib":778,"../../lib/svg_text_utils":803,"../../plot_api/plot_api":814,"d3":169,"tinycolor2":576}],1148:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/drawing":682,"../../components/fx":700,"../../lib":795,"../../lib/svg_text_utils":820,"../../plot_api/plot_api":831,"@plotly/d3":58,"tinycolor2":592}],1159:[function(_dereq_,module,exports){ + 'use strict'; @@ -204057,14 +200006,8 @@ module.exports = function plot(graphDiv, parcatsModels, transitionOpts, makeOnCo ); }; -},{"./parcats":1147}],1149:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"./parcats":1158}],1160:[function(_dereq_,module,exports){ + 'use strict'; @@ -204082,49 +200025,38 @@ module.exports = { labelangle: { valType: 'angle', dflt: 0, - editType: 'plot', - }, labelside: { valType: 'enumerated', - values: ['top', 'bottom'], dflt: 'top', editType: 'plot', - }, labelfont: fontAttrs({ editType: 'plot', - }), tickfont: fontAttrs({ editType: 'plot', - }), rangefont: fontAttrs({ editType: 'plot', - }), dimensions: templatedArray('dimension', { label: { valType: 'string', - editType: 'plot', - }, // TODO: better way to determine ordinal vs continuous axes, // so users can use tickvals/ticktext with a continuous axis. tickvals: extendFlat({}, axesAttrs.tickvals, { editType: 'plot', - }), ticktext: extendFlat({}, axesAttrs.ticktext, { editType: 'plot', - }), tickformat: extendFlat({}, axesAttrs.tickformat, { editType: 'plot' @@ -204132,23 +200064,18 @@ module.exports = { visible: { valType: 'boolean', dflt: true, - editType: 'plot', - }, range: { valType: 'info_array', - items: [ {valType: 'number', editType: 'plot'}, {valType: 'number', editType: 'plot'} ], editType: 'plot', - }, constraintrange: { valType: 'info_array', - freeLength: true, dimensions: '1-2', items: [ @@ -204156,23 +200083,17 @@ module.exports = { {valType: 'number', editType: 'plot'} ], editType: 'plot', - }, multiselect: { valType: 'boolean', dflt: true, - editType: 'plot', - }, values: { valType: 'data_array', - editType: 'calc', - }, editType: 'calc', - }), line: extendFlat({editType: 'calc'}, @@ -204186,19 +200107,13 @@ module.exports = { ) }; -},{"../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/attributes":667,"../../lib/extend":785,"../../plot_api/plot_template":834,"../../plots/cartesian/layout_attributes":859,"../../plots/domain":872,"../../plots/font_attributes":873}],1161:[function(_dereq_,module,exports){ + 'use strict'; var c = _dereq_('./constants'); -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var keyFun = _dereq_('../../lib/gup').keyFun; var repeat = _dereq_('../../lib/gup').repeat; var sortAsc = _dereq_('../../lib').sorterAsc; @@ -204731,18 +200646,12 @@ module.exports = { cleanRanges: cleanRanges }; -},{"../../lib":778,"../../lib/gup":775,"./constants":1153,"d3":169}],1151:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../lib/gup":792,"./constants":1164,"@plotly/d3":58}],1162:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var getModuleCalcData = _dereq_('../../plots/get_data').getModuleCalcData; var parcoordsPlot = _dereq_('./plot'); var xmlnsNamespaces = _dereq_('../../constants/xmlns_namespaces'); @@ -204798,14 +200707,8 @@ exports.toSVG = function(gd) { }, 60); }; -},{"../../constants/xmlns_namespaces":754,"../../plots/get_data":865,"./plot":1160,"d3":169}],1152:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/xmlns_namespaces":771,"../../plots/get_data":882,"./plot":1171,"@plotly/d3":58}],1163:[function(_dereq_,module,exports){ + 'use strict'; @@ -204842,14 +200745,8 @@ function constHalf(len) { return out; } -},{"../../components/colorscale":655,"../../lib":778,"../../lib/gup":775}],1153:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale":672,"../../lib":795,"../../lib/gup":792}],1164:[function(_dereq_,module,exports){ + 'use strict'; @@ -204904,14 +200801,8 @@ module.exports = { } }; -},{}],1154:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1165:[function(_dereq_,module,exports){ + 'use strict'; @@ -205024,14 +200915,8 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout coerce('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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/defaults":670,"../../components/colorscale/helpers":671,"../../lib":795,"../../plots/array_container_defaults":840,"../../plots/cartesian/axes":845,"../../plots/domain":872,"./attributes":1160,"./axisbrush":1161,"./constants":1164,"./merge_length":1169}],1166:[function(_dereq_,module,exports){ + 'use strict'; @@ -205049,14 +200934,8 @@ exports.isVisible = function(dimension) { return dimension.visible || !('visible' in dimension); }; -},{"../../lib":778}],1156:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795}],1167:[function(_dereq_,module,exports){ + 'use strict'; @@ -205076,18 +200955,11 @@ module.exports = { basePlotModule: _dereq_('./base_plot'), categories: ['gl', 'regl', 'noOpacity', 'noHover'], meta: { - } }; -},{"./attributes":1149,"./base_plot":1151,"./calc":1152,"./defaults":1154,"./plot":1160}],1157:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"./attributes":1160,"./base_plot":1162,"./calc":1163,"./defaults":1165,"./plot":1171}],1168:[function(_dereq_,module,exports){ + 'use strict'; @@ -205610,14 +201482,8 @@ module.exports = function(canvasGL, d) { }; }; -},{"../../lib":778,"./constants":1153,"glslify":439}],1158:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"./constants":1164,"glslify":438}],1169:[function(_dereq_,module,exports){ + 'use strict'; @@ -205648,18 +201514,12 @@ module.exports = function(traceOut, dimensions, dataAttr, len) { return len; }; -},{}],1159:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1170:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var rgba = _dereq_('color-rgba'); var Axes = _dereq_('../../plots/cartesian/axes'); @@ -206411,14 +202271,8 @@ module.exports = function parcoords(gd, cdModule, layout, callbacks) { brush.ensureAxisBrush(axisOverlays); }; -},{"../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale":672,"../../components/drawing":682,"../../lib":795,"../../lib/gup":792,"../../lib/svg_text_utils":820,"../../plots/cartesian/axes":845,"./axisbrush":1161,"./constants":1164,"./helpers":1166,"./lines":1168,"@plotly/d3":58,"color-rgba":129}],1171:[function(_dereq_,module,exports){ + 'use strict'; @@ -206566,14 +202420,8 @@ module.exports = function plot(gd, cdModule) { ); }; -},{"../../lib/prepare_regl":791,"./helpers":1155,"./parcoords":1159}],1161:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib/prepare_regl":808,"./helpers":1166,"./parcoords":1170}],1172:[function(_dereq_,module,exports){ + 'use strict'; @@ -206590,61 +202438,49 @@ var textFontAttrs = fontAttrs({ editType: 'plot', arrayOk: true, colorEditType: 'plot', - }); module.exports = { labels: { valType: 'data_array', editType: 'calc', - }, // equivalent of x0 and dx, if label is missing 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', // TODO 'color_array' ? editType: 'calc', - }, line: { color: { valType: 'color', - dflt: colorAttrs.defaultLine, arrayOk: true, editType: 'style', - }, width: { valType: 'number', - min: 0, dflt: 0, arrayOk: true, editType: 'style', - }, editType: 'calc' }, @@ -206654,15 +202490,12 @@ module.exports = { text: { valType: 'data_array', editType: 'plot', - }, hovertext: { valType: 'string', - dflt: '', arrayOk: true, editType: 'style', - }, // 'see eg:' @@ -206671,20 +202504,16 @@ module.exports = { // 'of its own. but the point is the size of the whole pie is important.)' scalegroup: { valType: 'string', - dflt: '', editType: 'calc', - }, // labels (legend is handled by plots.attributes.showlegend and layout.hiddenlabels) textinfo: { valType: 'flaglist', - flags: ['label', 'text', 'value', 'percent'], extras: ['none'], editType: 'calc', - }, hoverinfo: extendFlat({}, baseAttrs.hoverinfo, { flags: ['label', 'text', 'value', 'percent', 'name'] @@ -206697,48 +202526,36 @@ module.exports = { }), textposition: { valType: 'enumerated', - values: ['inside', 'outside', 'auto', 'none'], dflt: 'auto', arrayOk: true, editType: 'plot', - }, textfont: extendFlat({}, textFontAttrs, { - }), insidetextorientation: { valType: 'enumerated', - values: ['horizontal', 'radial', 'tangential', 'auto'], dflt: 'auto', editType: 'plot', - }, insidetextfont: extendFlat({}, textFontAttrs, { - }), outsidetextfont: extendFlat({}, textFontAttrs, { - }), automargin: { valType: 'boolean', dflt: false, - editType: 'plot', - }, title: { text: { valType: 'string', dflt: '', - editType: 'plot', - }, font: extendFlat({}, textFontAttrs, { - }), position: { valType: 'enumerated', @@ -206747,9 +202564,7 @@ module.exports = { 'middle center', 'bottom left', 'bottom center', 'bottom right' ], - editType: 'plot', - }, editType: 'plot' @@ -206760,21 +202575,17 @@ module.exports = { hole: { valType: 'number', - min: 0, max: 1, dflt: 0, editType: 'calc', - }, // ordering and direction sort: { valType: 'boolean', - dflt: true, editType: 'calc', - }, direction: { /** @@ -206786,42 +202597,33 @@ module.exports = { */ 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: true, editType: 'calc', - }, _deprecated: { title: { valType: 'string', dflt: '', - editType: 'calc', - }, titlefont: extendFlat({}, textFontAttrs, { - }), titleposition: { valType: 'enumerated', @@ -206830,21 +202632,13 @@ module.exports = { '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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color/attributes":659,"../../lib/extend":785,"../../plots/attributes":841,"../../plots/domain":872,"../../plots/font_attributes":873,"../../plots/template_attributes":917}],1173:[function(_dereq_,module,exports){ + 'use strict'; @@ -206860,14 +202654,8 @@ exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) plots.cleanBasePlot(exports.name, newFullData, newFullLayout, oldFullData, oldFullLayout); }; -},{"../../plots/plots":891}],1163:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/plots":908}],1174:[function(_dereq_,module,exports){ + 'use strict'; @@ -207043,14 +202831,8 @@ module.exports = { generateExtendedColors: generateExtendedColors }; -},{"../../components/color":643,"fast-isnumeric":241,"tinycolor2":576}],1164:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"fast-isnumeric":241,"tinycolor2":592}],1175:[function(_dereq_,module,exports){ + 'use strict'; @@ -207174,14 +202956,8 @@ module.exports = { supplyDefaults: supplyDefaults }; -},{"../../lib":778,"../../plots/domain":855,"../bar/defaults":925,"./attributes":1161,"fast-isnumeric":241}],1165:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../plots/domain":872,"../bar/defaults":936,"./attributes":1172,"fast-isnumeric":241}],1176:[function(_dereq_,module,exports){ + 'use strict'; @@ -207223,14 +202999,8 @@ module.exports = function eventData(pt, trace) { return out; }; -},{"../../components/fx/helpers":679}],1166:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/fx/helpers":696}],1177:[function(_dereq_,module,exports){ + 'use strict'; @@ -207271,14 +203041,8 @@ exports.getRotationAngle = function(rotation) { return (rotation === 'auto' ? 0 : rotation) * Math.PI / 180; }; -},{"../../lib":778}],1167:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795}],1178:[function(_dereq_,module,exports){ + 'use strict'; @@ -207300,51 +203064,32 @@ module.exports = { basePlotModule: _dereq_('./base_plot'), categories: ['pie-like', 'pie', 'showLegend'], meta: { - } }; -},{"./attributes":1161,"./base_plot":1162,"./calc":1163,"./defaults":1164,"./layout_attributes":1168,"./layout_defaults":1169,"./plot":1170,"./style":1171,"./style_one":1172}],1168:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"./attributes":1172,"./base_plot":1173,"./calc":1174,"./defaults":1175,"./layout_attributes":1179,"./layout_defaults":1180,"./plot":1181,"./style":1182,"./style_one":1183}],1179:[function(_dereq_,module,exports){ + 'use strict'; module.exports = { hiddenlabels: { valType: 'data_array', - editType: 'calc', - }, piecolorway: { valType: 'colorlist', - editType: 'calc', - }, extendpiecolors: { valType: 'boolean', dflt: true, - editType: 'calc', - } }; -},{}],1169:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1180:[function(_dereq_,module,exports){ + 'use strict'; @@ -207362,18 +203107,12 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) { coerce('extendpiecolors'); }; -},{"../../lib":778,"./layout_attributes":1168}],1170:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"./layout_attributes":1179}],1181:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Plots = _dereq_('../../plots/plots'); var Fx = _dereq_('../../components/fx'); @@ -208542,18 +204281,12 @@ module.exports = { computeTransform: computeTransform }; -},{"../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../components/drawing":682,"../../components/fx":700,"../../lib":795,"../../lib/svg_text_utils":820,"../../plots/plots":908,"../bar/constants":934,"../bar/uniform_text":948,"./event_data":1176,"./helpers":1177,"@plotly/d3":58}],1182:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var styleOne = _dereq_('./style_one'); var resizeText = _dereq_('../bar/uniform_text').resizeText; @@ -208575,14 +204308,8 @@ module.exports = function style(gd) { }); }; -},{"../bar/uniform_text":937,"./style_one":1172,"d3":169}],1172:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../bar/uniform_text":948,"./style_one":1183,"@plotly/d3":58}],1183:[function(_dereq_,module,exports){ + 'use strict'; @@ -208599,14 +204326,8 @@ module.exports = function styleOne(s, pt, trace) { .call(Color.stroke, lineColor); }; -},{"../../components/color":643,"./helpers":1166}],1173:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"./helpers":1177}],1184:[function(_dereq_,module,exports){ + 'use strict'; @@ -208618,31 +204339,26 @@ module.exports = { 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: scatterglAttrs.text, marker: { color: { valType: 'color', arrayOk: false, - + editType: 'calc', - }, opacity: { valType: 'number', @@ -208650,50 +204366,44 @@ module.exports = { max: 1, dflt: 1, arrayOk: false, - + editType: 'calc', - }, blend: { valType: 'boolean', dflt: null, - + editType: 'calc', - }, sizemin: { valType: 'number', min: 0.1, max: 2, dflt: 0.5, - + editType: 'calc', - }, sizemax: { valType: 'number', min: 0.1, dflt: 20, - + editType: 'calc', - }, border: { color: { valType: 'color', arrayOk: false, - + editType: 'calc', - }, arearatio: { valType: 'number', min: 0, max: 1, dflt: 0, - + editType: 'calc', - }, editType: 'calc' }, @@ -208702,14 +204412,8 @@ module.exports = { transforms: undefined }; -},{"../scatter/attributes":1187}],1174:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../scatter/attributes":1198}],1185:[function(_dereq_,module,exports){ + 'use strict'; @@ -208904,14 +204608,8 @@ function createPointcloud(scene, data) { module.exports = createPointcloud; -},{"../../lib/str2rgbarray":802,"../../plots/cartesian/autorange":827,"../scatter/get_trace_color":1197,"gl-pointcloud2d":324}],1175:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib/str2rgbarray":819,"../../plots/cartesian/autorange":844,"../scatter/get_trace_color":1208,"gl-pointcloud2d":323}],1186:[function(_dereq_,module,exports){ + 'use strict'; @@ -208952,14 +204650,8 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor) { traceOut._length = null; }; -},{"../../lib":778,"./attributes":1173}],1176:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"./attributes":1184}],1187:[function(_dereq_,module,exports){ + 'use strict'; @@ -208976,18 +204668,11 @@ module.exports = { basePlotModule: _dereq_('../../plots/gl2d'), categories: ['gl', 'gl2d', 'showLegend'], meta: { - } }; -},{"../../plots/gl2d":868,"../scatter3d/calc":1216,"./attributes":1173,"./convert":1174,"./defaults":1175}],1177:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/gl2d":885,"../scatter3d/calc":1227,"./attributes":1184,"./convert":1185,"./defaults":1186}],1188:[function(_dereq_,module,exports){ + 'use strict'; @@ -209009,7 +204694,6 @@ var attrs = module.exports = overrideAll({ hoverinfo: extendFlat({}, baseAttrs.hoverinfo, { flags: [], arrayOk: false, - }), hoverlabel: fxAttrs.hoverlabel, domain: domainAttrs({name: 'sankey', trace: true}), @@ -209018,34 +204702,25 @@ var attrs = module.exports = overrideAll({ 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: fontAttrs({ - }), // Remove top-level customdata @@ -209055,8 +204730,6 @@ var attrs = module.exports = overrideAll({ label: { valType: 'data_array', dflt: [], - - }, groups: { valType: 'info_array', @@ -209065,47 +204738,34 @@ var attrs = module.exports = overrideAll({ freeLength: true, dflt: [], items: {valType: 'number', editType: 'calc'}, - - }, x: { valType: 'data_array', dflt: [], - - }, y: { valType: 'data_array', dflt: [], - - }, color: { valType: 'color', - arrayOk: true, - }, customdata: { valType: 'data_array', editType: 'calc', - }, line: { color: { valType: 'color', - dflt: colorAttrs.defaultLine, arrayOk: true, - }, width: { valType: 'number', - min: 0, dflt: 0.5, arrayOk: true, - } }, pad: { @@ -209113,136 +204773,96 @@ var attrs = module.exports = overrideAll({ arrayOk: false, min: 0, dflt: 20, - - }, thickness: { valType: 'number', arrayOk: false, min: 1, dflt: 20, - - }, hoverinfo: { valType: 'enumerated', values: ['all', 'none', 'skip'], dflt: 'all', - - }, hoverlabel: fxAttrs.hoverlabel, // needs editType override, hovertemplate: hovertemplateAttrs({}, { - keys: ['value', 'label'] }), - }, link: { label: { valType: 'data_array', dflt: [], - - }, color: { valType: 'color', - arrayOk: true, - }, customdata: { valType: 'data_array', editType: 'calc', - }, line: { color: { valType: 'color', - dflt: colorAttrs.defaultLine, arrayOk: true, - }, width: { valType: 'number', - min: 0, dflt: 0, arrayOk: true, - } }, 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: fxAttrs.hoverlabel, // needs editType override, hovertemplate: hovertemplateAttrs({}, { - keys: ['value', 'label'] }), colorscales: templatedArray('concentrationscales', { editType: 'calc', label: { valType: 'string', - editType: 'calc', - dflt: '' }, cmax: { valType: 'number', - editType: 'calc', dflt: 1, - }, cmin: { valType: 'number', - editType: 'calc', dflt: 0, - }, colorscale: extendFlat(colorAttributes().colorscale, {dflt: [[0, 'white'], [1, 'black']]}) }), - - } }, 'calc', 'nested'); attrs.transforms = undefined; -},{"../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color/attributes":659,"../../components/colorscale/attributes":667,"../../components/fx/attributes":691,"../../constants/docs":765,"../../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":917}],1189:[function(_dereq_,module,exports){ + 'use strict'; @@ -209374,14 +204994,8 @@ function subplotUpdateFx(gd, index) { dragElement.init(dragOptions); } -},{"../../components/dragelement":662,"../../components/fx/layout_attributes":684,"../../lib":778,"../../lib/setcursor":799,"../../plot_api/edit_types":810,"../../plots/cartesian/select":847,"../../plots/get_data":865,"../../registry":911,"./plot":1183}],1179:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/dragelement":679,"../../components/fx/layout_attributes":701,"../../lib":795,"../../lib/setcursor":816,"../../plot_api/edit_types":827,"../../plots/cartesian/select":864,"../../plots/get_data":882,"../../registry":922,"./plot":1194}],1190:[function(_dereq_,module,exports){ + 'use strict'; @@ -209563,14 +205177,8 @@ module.exports = function calc(gd, trace) { }); }; -},{"../../components/colorscale":655,"../../lib":778,"../../lib/gup":775,"strongly-connected-components":569}],1180:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale":672,"../../lib":795,"../../lib/gup":792,"strongly-connected-components":584}],1191:[function(_dereq_,module,exports){ + 'use strict'; @@ -209598,14 +205206,8 @@ module.exports = { } }; -},{}],1181:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1192:[function(_dereq_,module,exports){ + 'use strict'; @@ -209712,14 +205314,8 @@ function concentrationscalesDefaults(In, Out) { coerce('colorscale'); } -},{"../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../components/fx/hoverlabel_defaults":698,"../../lib":795,"../../plot_api/plot_template":834,"../../plots/array_container_defaults":840,"../../plots/domain":872,"./attributes":1188,"tinycolor2":592}],1193:[function(_dereq_,module,exports){ + 'use strict'; @@ -209735,22 +205331,15 @@ module.exports = { selectPoints: _dereq_('./select.js'), categories: ['noOpacity'], meta: { - } }; -},{"./attributes":1177,"./base_plot":1178,"./calc":1179,"./defaults":1181,"./plot":1183,"./select.js":1185}],1183:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"./attributes":1188,"./base_plot":1189,"./calc":1190,"./defaults":1192,"./plot":1194,"./select.js":1196}],1194:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var render = _dereq_('./render'); var Fx = _dereq_('../../components/fx'); var Color = _dereq_('../../components/color'); @@ -210115,19 +205704,13 @@ module.exports = function plot(gd, calcData) { ); }; -},{"../../components/color":643,"../../components/fx":683,"../../lib":778,"./constants":1180,"./render":1184,"d3":169}],1184:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../components/fx":700,"../../lib":795,"./constants":1191,"./render":1195,"@plotly/d3":58}],1195:[function(_dereq_,module,exports){ + 'use strict'; var c = _dereq_('./constants'); -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var tinycolor = _dereq_('tinycolor2'); var Color = _dereq_('../../components/color'); var Drawing = _dereq_('../../components/drawing'); @@ -211181,14 +206764,8 @@ module.exports = function(gd, svg, calcData, layout, callbacks) { .style('fill', nodeTextColor); }; -},{"../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../components/drawing":682,"../../lib":795,"../../lib/gup":792,"../../registry":922,"./constants":1191,"@plotly/d3":58,"@plotly/d3-sankey":57,"@plotly/d3-sankey-circular":56,"d3-force":162,"d3-interpolate":164,"tinycolor2":592}],1196:[function(_dereq_,module,exports){ + 'use strict'; @@ -211219,14 +206796,8 @@ module.exports = function selectPoints(searchInfo, selectionTester) { return selection; }; -},{}],1186:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1197:[function(_dereq_,module,exports){ + 'use strict'; @@ -211271,14 +206842,8 @@ module.exports = function arraysToCalcdata(cd, trace) { } }; -},{"../../lib":778}],1187:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795}],1198:[function(_dereq_,module,exports){ + 'use strict'; @@ -211297,18 +206862,14 @@ function axisPeriod(axis) { return { valType: 'any', dflt: 0, - editType: 'calc', - }; } function axisPeriod0(axis) { return { valType: 'any', - editType: 'calc', - }; } @@ -211319,9 +206880,7 @@ function axisPeriodAlignment(axis) { 'start', 'middle', 'end' ], dflt: 'middle', - editType: 'calc', - }; } @@ -211330,45 +206889,35 @@ module.exports = { valType: 'data_array', editType: 'calc+clearAxisTypes', anim: true, - }, x0: { valType: 'any', dflt: 0, - editType: 'calc+clearAxisTypes', anim: true, - }, dx: { valType: 'number', dflt: 1, - editType: 'calc', anim: true, - }, y: { valType: 'data_array', editType: 'calc+clearAxisTypes', anim: true, - }, y0: { valType: 'any', dflt: 0, - editType: 'calc+clearAxisTypes', anim: true, - }, dy: { valType: 'number', dflt: 1, - editType: 'calc', anim: true, - }, xperiod: axisPeriod('x'), @@ -211380,42 +206929,32 @@ module.exports = { stackgroup: { valType: 'string', - dflt: '', editType: 'calc', - }, orientation: { valType: 'enumerated', - values: ['v', 'h'], editType: 'calc', - }, groupnorm: { valType: 'enumerated', values: ['', 'fraction', 'percent'], dflt: '', - editType: 'calc', - }, stackgaps: { valType: 'enumerated', values: ['infer zero', 'interpolate'], dflt: 'infer zero', - editType: 'calc', - }, text: { valType: 'string', - dflt: '', arrayOk: true, editType: 'calc', - }, texttemplate: texttemplateAttrs({}, { @@ -211423,26 +206962,20 @@ module.exports = { }), hovertext: { valType: 'string', - dflt: '', arrayOk: true, editType: 'style', - }, mode: { valType: 'flaglist', flags: ['lines', 'markers', 'text'], extras: ['none'], - editType: 'calc', - }, hoveron: { valType: 'flaglist', flags: ['points', 'fills'], - editType: 'style', - }, hovertemplate: hovertemplateAttrs({}, { keys: constants.eventDataKeys @@ -211450,44 +206983,34 @@ module.exports = { line: { color: { valType: 'color', - editType: 'style', anim: true, - }, width: { valType: 'number', min: 0, dflt: 2, - editType: 'style', anim: true, - }, shape: { valType: 'enumerated', values: ['linear', 'spline', 'hv', 'vh', 'hvh', 'vhv'], dflt: 'linear', - editType: 'plot', - }, smoothing: { valType: 'number', min: 0, max: 1.3, dflt: 1, - editType: 'plot', - }, dash: extendFlat({}, dash, {editType: 'style'}), simplify: { valType: 'boolean', dflt: true, - editType: 'plot', - }, editType: 'plot' }, @@ -211495,31 +207018,23 @@ module.exports = { connectgaps: { valType: 'boolean', dflt: false, - editType: 'calc', - }, cliponaxis: { valType: 'boolean', dflt: true, - editType: 'plot', - }, fill: { valType: 'enumerated', values: ['none', 'tozeroy', 'tozerox', 'tonexty', 'tonextx', 'toself', 'tonext'], - editType: 'calc', - }, fillcolor: { valType: 'color', - editType: 'style', anim: true, - }, marker: extendFlat({ symbol: { @@ -211527,60 +207042,46 @@ module.exports = { values: Drawing.symbolList, dflt: 'circle', arrayOk: true, - editType: 'style', - }, opacity: { valType: 'number', min: 0, max: 1, arrayOk: true, - editType: 'style', anim: true, - }, size: { valType: 'number', min: 0, dflt: 6, arrayOk: true, - editType: 'calc', anim: true, - }, maxdisplayed: { valType: 'number', min: 0, dflt: 0, - editType: 'plot', - }, sizeref: { valType: 'number', dflt: 1, - editType: 'calc', - }, sizemin: { valType: 'number', min: 0, dflt: 0, - editType: 'calc', - }, sizemode: { valType: 'enumerated', values: ['diameter', 'area'], dflt: 'diameter', - editType: 'calc', - }, line: extendFlat({ @@ -211588,10 +207089,8 @@ module.exports = { valType: 'number', min: 0, arrayOk: true, - editType: 'style', anim: true, - }, editType: 'calc' }, @@ -211603,16 +207102,12 @@ module.exports = { values: ['radial', 'horizontal', 'vertical', 'none'], arrayOk: true, dflt: 'none', - editType: 'calc', - }, color: { valType: 'color', arrayOk: true, - editType: 'calc', - }, editType: 'calc' }, @@ -211626,31 +207121,23 @@ module.exports = { valType: 'number', min: 0, max: 1, - editType: 'style', - }, color: { valType: 'color', - editType: 'style', - }, size: { valType: 'number', min: 0, - editType: 'style', - }, editType: 'style' }, textfont: { color: { valType: 'color', - editType: 'style', - }, editType: 'style' }, @@ -211662,31 +207149,23 @@ module.exports = { valType: 'number', min: 0, max: 1, - editType: 'style', - }, color: { valType: 'color', - editType: 'style', - }, size: { valType: 'number', min: 0, - editType: 'style', - }, editType: 'style' }, textfont: { color: { valType: 'color', - editType: 'style', - }, editType: 'style' }, @@ -211702,37 +207181,17 @@ module.exports = { ], dflt: 'middle center', arrayOk: true, - editType: 'calc', - }, textfont: fontAttrs({ editType: 'calc', colorEditType: 'style', arrayOk: true, - }), - - r: { - valType: 'data_array', - editType: 'calc', - - }, - t: { - valType: 'data_array', - editType: 'calc', - - } }; -},{"../../components/colorscale/attributes":650,"../../components/drawing":665,"../../components/drawing/attributes":664,"../../lib/extend":768,"../../plots/font_attributes":856,"../../plots/template_attributes":906,"./constants":1191}],1188:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/attributes":667,"../../components/drawing":682,"../../components/drawing/attributes":681,"../../lib/extend":785,"../../plots/font_attributes":873,"../../plots/template_attributes":917,"./constants":1202}],1199:[function(_dereq_,module,exports){ + 'use strict'; @@ -212024,14 +207483,8 @@ module.exports = { getStackOpts: getStackOpts }; -},{"../../constants/numerical":753,"../../lib":778,"../../plots/cartesian/align_period":825,"../../plots/cartesian/axes":828,"./arrays_to_calcdata":1186,"./calc_selection":1189,"./colorscale_calc":1190,"./subtypes":1212,"fast-isnumeric":241}],1189:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/numerical":770,"../../lib":795,"../../plots/cartesian/align_period":842,"../../plots/cartesian/axes":845,"./arrays_to_calcdata":1197,"./calc_selection":1200,"./colorscale_calc":1201,"./subtypes":1223,"fast-isnumeric":241}],1200:[function(_dereq_,module,exports){ + 'use strict'; @@ -212043,14 +207496,8 @@ module.exports = function calcSelection(cd, trace) { } }; -},{"../../lib":778}],1190:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795}],1201:[function(_dereq_,module,exports){ + 'use strict'; @@ -212086,14 +207533,8 @@ module.exports = function calcMarkerColorscale(gd, trace) { } }; -},{"../../components/colorscale/calc":651,"../../components/colorscale/helpers":654,"./subtypes":1212}],1191:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/calc":668,"../../components/colorscale/helpers":671,"./subtypes":1223}],1202:[function(_dereq_,module,exports){ + 'use strict'; @@ -212115,14 +207556,8 @@ module.exports = { eventDataKeys: [] }; -},{}],1192:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1203:[function(_dereq_,module,exports){ + 'use strict'; @@ -212296,14 +207731,8 @@ function getInterp(calcTrace, index, position, posAttr) { return pt0.s + (pt1.s - pt0.s) * (position - pt0[posAttr]) / (pt1[posAttr] - pt0[posAttr]); } -},{"./calc":1188}],1193:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"./calc":1199}],1204:[function(_dereq_,module,exports){ + 'use strict'; @@ -212335,14 +207764,8 @@ module.exports = function crossTraceDefaults(fullData) { } }; -},{}],1194:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1205:[function(_dereq_,module,exports){ + 'use strict'; @@ -212428,14 +207851,8 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout Lib.coerceSelectionMarkerOpacity(traceOut, coerce); }; -},{"../../lib":778,"../../registry":911,"./attributes":1187,"./constants":1191,"./fillcolor_defaults":1195,"./line_defaults":1200,"./line_shape_defaults":1202,"./marker_defaults":1206,"./period_defaults":1207,"./stack_defaults":1210,"./subtypes":1212,"./text_defaults":1213,"./xy_defaults":1214}],1195:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../registry":922,"./attributes":1198,"./constants":1202,"./fillcolor_defaults":1206,"./line_defaults":1211,"./line_shape_defaults":1213,"./marker_defaults":1217,"./period_defaults":1218,"./stack_defaults":1221,"./subtypes":1223,"./text_defaults":1224,"./xy_defaults":1225}],1206:[function(_dereq_,module,exports){ + 'use strict'; @@ -212465,14 +207882,8 @@ module.exports = function fillColorDefaults(traceIn, traceOut, defaultColor, coe )); }; -},{"../../components/color":643,"../../lib":778}],1196:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../lib":795}],1207:[function(_dereq_,module,exports){ + 'use strict'; @@ -212491,14 +207902,8 @@ module.exports = function formatLabels(cdi, trace, fullLayout) { return labels; }; -},{"../../plots/cartesian/axes":828}],1197:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/cartesian/axes":845}],1208:[function(_dereq_,module,exports){ + 'use strict'; @@ -212540,14 +207945,8 @@ module.exports = function getTraceColor(trace, di) { } }; -},{"../../components/color":643,"./subtypes":1212}],1198:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"./subtypes":1223}],1209:[function(_dereq_,module,exports){ + 'use strict'; @@ -212735,14 +208134,8 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode) { } }; -},{"../../components/color":643,"../../components/fx":683,"../../lib":778,"../../registry":911,"./get_trace_color":1197}],1199:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../components/fx":700,"../../lib":795,"../../registry":922,"./get_trace_color":1208}],1210:[function(_dereq_,module,exports){ + 'use strict'; @@ -212777,18 +208170,11 @@ module.exports = { '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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/cartesian":858,"./arrays_to_calcdata":1197,"./attributes":1198,"./calc":1199,"./cross_trace_calc":1203,"./cross_trace_defaults":1204,"./defaults":1205,"./format_labels":1207,"./hover":1209,"./marker_colorbar":1216,"./plot":1219,"./select":1220,"./style":1222,"./subtypes":1223}],1211:[function(_dereq_,module,exports){ + 'use strict'; @@ -212812,14 +208198,8 @@ module.exports = function lineDefaults(traceIn, traceOut, defaultColor, layout, if(!(opts || {}).noDash) coerce('line.dash'); }; -},{"../../components/colorscale/defaults":653,"../../components/colorscale/helpers":654,"../../lib":778}],1201:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/defaults":670,"../../components/colorscale/helpers":671,"../../lib":795}],1212:[function(_dereq_,module,exports){ + 'use strict'; @@ -213273,14 +208653,8 @@ module.exports = function linePoints(d, opts) { return segments; }; -},{"../../constants/numerical":753,"../../lib":778,"./constants":1191}],1202:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/numerical":770,"../../lib":795,"./constants":1202}],1213:[function(_dereq_,module,exports){ + 'use strict'; @@ -213292,14 +208666,8 @@ module.exports = function handleLineShapeDefaults(traceIn, traceOut, coerce) { if(shape === 'spline') coerce('line.smoothing'); }; -},{}],1203:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1214:[function(_dereq_,module,exports){ + 'use strict'; @@ -213382,14 +208750,8 @@ module.exports = function linkTraces(gd, plotinfo, cdscatter) { return cdscatterSorted; }; -},{}],1204:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1215:[function(_dereq_,module,exports){ + 'use strict'; @@ -213424,14 +208786,8 @@ module.exports = function makeBubbleSizeFn(trace) { }; }; -},{"fast-isnumeric":241}],1205:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"fast-isnumeric":241}],1216:[function(_dereq_,module,exports){ + 'use strict'; @@ -213442,14 +208798,8 @@ module.exports = { max: 'cmax' }; -},{}],1206:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1217:[function(_dereq_,module,exports){ + 'use strict'; @@ -213523,14 +208873,8 @@ module.exports = function markerDefaults(traceIn, traceOut, defaultColor, layout } }; -},{"../../components/color":643,"../../components/colorscale/defaults":653,"../../components/colorscale/helpers":654,"./subtypes":1212}],1207:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../components/colorscale/defaults":670,"../../components/colorscale/helpers":671,"./subtypes":1223}],1218:[function(_dereq_,module,exports){ + 'use strict'; @@ -213570,19 +208914,13 @@ module.exports = function handlePeriodDefaults(traceIn, traceOut, layout, coerce } }; -},{"../../constants/numerical":753,"../../lib":778}],1208:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/numerical":770,"../../lib":795}],1219:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Registry = _dereq_('../../registry'); var Lib = _dereq_('../../lib'); @@ -214131,14 +209469,8 @@ function selectMarkers(gd, idx, plotinfo, cdscatter, cdscatterAll) { }); } -},{"../../components/drawing":665,"../../lib":778,"../../lib/polygon":790,"../../registry":911,"./line_points":1201,"./link_traces":1203,"./subtypes":1212,"d3":169}],1209:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/drawing":682,"../../lib":795,"../../lib/polygon":807,"../../registry":922,"./line_points":1212,"./link_traces":1214,"./subtypes":1223,"@plotly/d3":58}],1220:[function(_dereq_,module,exports){ + 'use strict'; @@ -214185,14 +209517,8 @@ module.exports = function selectPoints(searchInfo, selectionTester) { return selection; }; -},{"./subtypes":1212}],1210:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"./subtypes":1223}],1221:[function(_dereq_,module,exports){ + 'use strict'; @@ -214290,19 +209616,13 @@ module.exports = function handleStackDefaults(traceIn, traceOut, layout, coerce) } }; -},{}],1211:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1222:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Drawing = _dereq_('../../components/drawing'); var Registry = _dereq_('../../registry'); @@ -214361,14 +209681,8 @@ module.exports = { styleOnSelect: styleOnSelect }; -},{"../../components/drawing":665,"../../registry":911,"d3":169}],1212:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/drawing":682,"../../registry":922,"@plotly/d3":58}],1223:[function(_dereq_,module,exports){ + 'use strict'; @@ -214400,14 +209714,8 @@ module.exports = { } }; -},{"../../lib":778}],1213:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795}],1224:[function(_dereq_,module,exports){ + 'use strict'; @@ -214430,14 +209738,8 @@ module.exports = function(traceIn, traceOut, layout, coerce, opts) { } }; -},{"../../lib":778}],1214:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795}],1225:[function(_dereq_,module,exports){ + 'use strict'; @@ -214474,14 +209776,8 @@ module.exports = function handleXYDefaults(traceIn, traceOut, layout, coerce) { return len; }; -},{"../../lib":778,"../../registry":911}],1215:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../registry":922}],1226:[function(_dereq_,module,exports){ + 'use strict'; @@ -214506,8 +209802,6 @@ var lineAttrs = extendFlat({ valType: 'enumerated', values: Object.keys(DASHES), dflt: 'solid', - - } }, colorAttributes('line')); @@ -214515,25 +209809,19 @@ function makeProjectionAttr(axLetter) { return { show: { valType: 'boolean', - dflt: false, - }, opacity: { valType: 'number', - min: 0, max: 1, dflt: 1, - }, scale: { valType: 'number', - min: 0, max: 10, dflt: 2 / 3, - } }; } @@ -214543,17 +209831,14 @@ var attrs = module.exports = overrideAll({ y: scatterAttrs.y, z: { valType: 'data_array', - }, text: extendFlat({}, scatterAttrs.text, { - }), texttemplate: texttemplateAttrs({}, { }), hovertext: extendFlat({}, scatterAttrs.hovertext, { - }), hovertemplate: hovertemplateAttrs(), @@ -214561,15 +209846,11 @@ var attrs = module.exports = overrideAll({ {dflt: 'lines+markers'}), surfaceaxis: { valType: 'enumerated', - values: [-1, 0, 1, 2], dflt: -1, - }, surfacecolor: { valType: 'color', - - }, projection: { x: makeProjectionAttr('x'), @@ -214584,10 +209865,8 @@ var attrs = module.exports = overrideAll({ symbol: { valType: 'enumerated', values: Object.keys(MARKER_SYMBOLS), - dflt: 'circle', arrayOk: true, - }, size: extendFlat({}, scatterMarkerAttrs.size, {dflt: 8}), sizeref: scatterMarkerAttrs.sizeref, @@ -214595,7 +209874,6 @@ var attrs = module.exports = overrideAll({ sizemode: scatterMarkerAttrs.sizemode, opacity: extendFlat({}, scatterMarkerAttrs.opacity, { arrayOk: false, - }), colorbar: scatterMarkerAttrs.colorbar, @@ -214620,14 +209898,8 @@ var attrs = module.exports = overrideAll({ attrs.x.editType = attrs.y.editType = attrs.z.editType = 'calc+clearAxisTypes'; -},{"../../components/colorscale/attributes":650,"../../constants/gl3d_dashes":750,"../../constants/gl3d_markers":751,"../../lib/extend":768,"../../plot_api/edit_types":810,"../../plots/attributes":824,"../../plots/template_attributes":906,"../scatter/attributes":1187}],1216:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/attributes":667,"../../constants/gl3d_dashes":767,"../../constants/gl3d_markers":768,"../../lib/extend":785,"../../plot_api/edit_types":827,"../../plots/attributes":841,"../../plots/template_attributes":917,"../scatter/attributes":1198}],1227:[function(_dereq_,module,exports){ + 'use strict'; @@ -214648,14 +209920,8 @@ module.exports = function calc(gd, trace) { return cd; }; -},{"../scatter/arrays_to_calcdata":1186,"../scatter/colorscale_calc":1190}],1217:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../scatter/arrays_to_calcdata":1197,"../scatter/colorscale_calc":1201}],1228:[function(_dereq_,module,exports){ + 'use strict'; @@ -214735,14 +210001,8 @@ function calculateErrors(data, scaleFactor, sceneLayout) { module.exports = calculateErrors; -},{"../../registry":911}],1218:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../registry":922}],1229:[function(_dereq_,module,exports){ + 'use strict'; @@ -215289,14 +210549,8 @@ function createLineWithMarkers(scene, data) { module.exports = createLineWithMarkers; -},{"../../components/fx/helpers":679,"../../constants/gl3d_dashes":750,"../../constants/gl3d_markers":751,"../../lib":778,"../../lib/gl_format_color":774,"../../lib/str2rgbarray":802,"../../plots/cartesian/axes":828,"../scatter/make_bubble_size_func":1204,"./calc_errors":1217,"delaunay-triangulate":171,"gl-error3d":266,"gl-line3d":275,"gl-mesh3d":309,"gl-scatter3d":330}],1219:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/fx/helpers":696,"../../constants/gl3d_dashes":767,"../../constants/gl3d_markers":768,"../../lib":795,"../../lib/gl_format_color":791,"../../lib/str2rgbarray":819,"../../plots/cartesian/axes":845,"../scatter/make_bubble_size_func":1215,"./calc_errors":1228,"delaunay-triangulate":172,"gl-error3d":266,"gl-line3d":275,"gl-mesh3d":309,"gl-scatter3d":329}],1230:[function(_dereq_,module,exports){ + 'use strict'; @@ -215378,14 +210632,8 @@ function handleXYZDefaults(traceIn, traceOut, coerce, layout) { return len; } -},{"../../lib":778,"../../registry":911,"../scatter/line_defaults":1200,"../scatter/marker_defaults":1206,"../scatter/subtypes":1212,"../scatter/text_defaults":1213,"./attributes":1215}],1220:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../registry":922,"../scatter/line_defaults":1211,"../scatter/marker_defaults":1217,"../scatter/subtypes":1223,"../scatter/text_defaults":1224,"./attributes":1226}],1231:[function(_dereq_,module,exports){ + 'use strict'; @@ -215412,19 +210660,11 @@ module.exports = { basePlotModule: _dereq_('../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/gl3d_markers":768,"../../plots/gl3d":887,"./attributes":1226,"./calc":1227,"./convert":1229,"./defaults":1230}],1232:[function(_dereq_,module,exports){ + 'use strict'; @@ -215443,29 +210683,23 @@ var scatterMarkerLineAttrs = scatterMarkerAttrs.line; module.exports = { carpet: { valType: 'string', - editType: 'calc', - }, a: { valType: 'data_array', editType: 'calc', - }, b: { valType: 'data_array', editType: 'calc', - }, mode: extendFlat({}, scatterAttrs.mode, {dflt: 'markers'}), text: extendFlat({}, scatterAttrs.text, { - }), texttemplate: texttemplateAttrs({editType: 'plot'}, { keys: ['a', 'b', 'text'] }), hovertext: extendFlat({}, scatterAttrs.hovertext, { - }), line: { color: scatterLineAttrs.color, @@ -215480,7 +210714,6 @@ module.exports = { fill: extendFlat({}, scatterAttrs.fill, { values: ['none', 'toself', 'tonext'], dflt: 'none', - }), fillcolor: scatterAttrs.fillcolor, marker: extendFlat({ @@ -215516,14 +210749,8 @@ module.exports = { hovertemplate: hovertemplateAttrs() }; -},{"../../components/colorscale/attributes":650,"../../lib/extend":768,"../../plots/attributes":824,"../../plots/template_attributes":906,"../scatter/attributes":1187}],1222:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/attributes":667,"../../lib/extend":785,"../../plots/attributes":841,"../../plots/template_attributes":917,"../scatter/attributes":1198}],1233:[function(_dereq_,module,exports){ + 'use strict'; @@ -215575,14 +210802,8 @@ module.exports = function calc(gd, trace) { return cd; }; -},{"../carpet/lookup_carpetid":981,"../scatter/arrays_to_calcdata":1186,"../scatter/calc":1188,"../scatter/calc_selection":1189,"../scatter/colorscale_calc":1190,"fast-isnumeric":241}],1223:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../carpet/lookup_carpetid":992,"../scatter/arrays_to_calcdata":1197,"../scatter/calc":1199,"../scatter/calc_selection":1200,"../scatter/colorscale_calc":1201,"fast-isnumeric":241}],1234:[function(_dereq_,module,exports){ + 'use strict'; @@ -215665,14 +210886,8 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout Lib.coerceSelectionMarkerOpacity(traceOut, coerce); }; -},{"../../lib":778,"../scatter/constants":1191,"../scatter/fillcolor_defaults":1195,"../scatter/line_defaults":1200,"../scatter/line_shape_defaults":1202,"../scatter/marker_defaults":1206,"../scatter/subtypes":1212,"../scatter/text_defaults":1213,"./attributes":1221}],1224:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../scatter/constants":1202,"../scatter/fillcolor_defaults":1206,"../scatter/line_defaults":1211,"../scatter/line_shape_defaults":1213,"../scatter/marker_defaults":1217,"../scatter/subtypes":1223,"../scatter/text_defaults":1224,"./attributes":1232}],1235:[function(_dereq_,module,exports){ + 'use strict'; @@ -215686,14 +210901,8 @@ module.exports = function eventData(out, pt, trace, cd, pointNumber) { return out; }; -},{}],1225:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1236:[function(_dereq_,module,exports){ + 'use strict'; @@ -215713,14 +210922,8 @@ module.exports = function formatLabels(cdi, trace) { return labels; }; -},{}],1226:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1237:[function(_dereq_,module,exports){ + 'use strict'; @@ -215804,14 +211007,8 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode) { return scatterPointData; }; -},{"../../lib":778,"../scatter/hover":1198}],1227:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../scatter/hover":1209}],1238:[function(_dereq_,module,exports){ + 'use strict'; @@ -215833,19 +211030,11 @@ module.exports = { basePlotModule: _dereq_('../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/cartesian":858,"../scatter/marker_colorbar":1216,"../scatter/select":1220,"../scatter/style":1222,"./attributes":1232,"./calc":1233,"./defaults":1234,"./event_data":1235,"./format_labels":1236,"./hover":1237,"./plot":1239}],1239:[function(_dereq_,module,exports){ + 'use strict'; @@ -215882,14 +211071,8 @@ module.exports = function plot(gd, plotinfoproxy, data, layer) { } }; -},{"../../components/drawing":665,"../../plots/cartesian/axes":828,"../scatter/plot":1208}],1229:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/drawing":682,"../../plots/cartesian/axes":845,"../scatter/plot":1219}],1240:[function(_dereq_,module,exports){ + 'use strict'; @@ -215910,49 +211093,38 @@ var scatterMarkerLineAttrs = scatterMarkerAttrs.line; module.exports = overrideAll({ lon: { valType: 'data_array', - }, lat: { valType: 'data_array', - }, locations: { valType: 'data_array', - }, locationmode: { valType: 'enumerated', values: ['ISO-3', 'USA-states', 'country names', 'geojson-id'], - dflt: 'ISO-3', - }, geojson: { valType: 'any', - editType: 'calc', - }, featureidkey: { valType: 'string', - editType: 'calc', dflt: 'id', - }, mode: extendFlat({}, scatterAttrs.mode, {dflt: 'markers'}), text: extendFlat({}, scatterAttrs.text, { - }), texttemplate: texttemplateAttrs({editType: 'plot'}, { keys: ['lat', 'lon', 'location', 'text'] }), hovertext: extendFlat({}, scatterAttrs.hovertext, { - }), textfont: scatterAttrs.textfont, @@ -215987,8 +211159,6 @@ module.exports = overrideAll({ valType: 'enumerated', values: ['none', 'toself'], dflt: 'none', - - }, fillcolor: scatterAttrs.fillcolor, @@ -216001,14 +211171,8 @@ module.exports = overrideAll({ hovertemplate: hovertemplateAttrs(), }, 'calc', 'nested'); -},{"../../components/colorscale/attributes":650,"../../components/drawing/attributes":664,"../../lib/extend":768,"../../plot_api/edit_types":810,"../../plots/attributes":824,"../../plots/template_attributes":906,"../scatter/attributes":1187}],1230:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/attributes":667,"../../components/drawing/attributes":681,"../../lib/extend":785,"../../plot_api/edit_types":827,"../../plots/attributes":841,"../../plots/template_attributes":917,"../scatter/attributes":1198}],1241:[function(_dereq_,module,exports){ + 'use strict'; @@ -216069,14 +211233,8 @@ module.exports = function calc(gd, trace) { return calcTrace; }; -},{"../../constants/numerical":753,"../../lib":778,"../scatter/arrays_to_calcdata":1186,"../scatter/calc_selection":1189,"../scatter/colorscale_calc":1190,"fast-isnumeric":241}],1231:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/numerical":770,"../../lib":795,"../scatter/arrays_to_calcdata":1197,"../scatter/calc_selection":1200,"../scatter/colorscale_calc":1201,"fast-isnumeric":241}],1242:[function(_dereq_,module,exports){ + 'use strict'; @@ -216152,14 +211310,8 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout Lib.coerceSelectionMarkerOpacity(traceOut, coerce); }; -},{"../../lib":778,"../scatter/fillcolor_defaults":1195,"../scatter/line_defaults":1200,"../scatter/marker_defaults":1206,"../scatter/subtypes":1212,"../scatter/text_defaults":1213,"./attributes":1229}],1232:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../scatter/fillcolor_defaults":1206,"../scatter/line_defaults":1211,"../scatter/marker_defaults":1217,"../scatter/subtypes":1223,"../scatter/text_defaults":1224,"./attributes":1240}],1243:[function(_dereq_,module,exports){ + 'use strict'; @@ -216179,14 +211331,8 @@ module.exports = function eventData(out, pt, trace, cd, pointNumber) { return out; }; -},{}],1233:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1244:[function(_dereq_,module,exports){ + 'use strict'; @@ -216204,14 +211350,8 @@ module.exports = function formatLabels(cdi, trace, fullLayout) { return labels; }; -},{"../../plots/cartesian/axes":828}],1234:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/cartesian/axes":845}],1245:[function(_dereq_,module,exports){ + 'use strict'; @@ -216316,14 +211456,8 @@ function getExtraText(trace, pt, pointData, labels) { return text.join('
'); } -},{"../../components/fx":683,"../../constants/numerical":753,"../../lib":778,"../scatter/get_trace_color":1197,"./attributes":1229}],1235:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/fx":700,"../../constants/numerical":770,"../../lib":795,"../scatter/get_trace_color":1208,"./attributes":1240}],1246:[function(_dereq_,module,exports){ + 'use strict'; @@ -216346,23 +211480,15 @@ module.exports = { basePlotModule: _dereq_('../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/geo":877,"../scatter/marker_colorbar":1216,"../scatter/style":1222,"./attributes":1240,"./calc":1241,"./defaults":1242,"./event_data":1243,"./format_labels":1244,"./hover":1245,"./plot":1247,"./select":1248,"./style":1249}],1247:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Lib = _dereq_('../../lib'); var getTopojsonFeatures = _dereq_('../../lib/topojson_utils').getTopojsonFeatures; @@ -216480,14 +211606,8 @@ module.exports = { plot: plot }; -},{"../../constants/numerical":753,"../../lib":778,"../../lib/geo_location_utils":771,"../../lib/geojson_utils":772,"../../lib/topojson_utils":806,"../../plots/cartesian/autorange":827,"../scatter/calc":1188,"../scatter/subtypes":1212,"./style":1238,"d3":169}],1237:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/numerical":770,"../../lib":795,"../../lib/geo_location_utils":788,"../../lib/geojson_utils":789,"../../lib/topojson_utils":823,"../../plots/cartesian/autorange":844,"../scatter/calc":1199,"../scatter/subtypes":1223,"./style":1249,"@plotly/d3":58}],1248:[function(_dereq_,module,exports){ + 'use strict'; @@ -216537,18 +211657,12 @@ module.exports = function selectPoints(searchInfo, selectionTester) { return selection; }; -},{"../../constants/numerical":753,"../scatter/subtypes":1212}],1238:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/numerical":770,"../scatter/subtypes":1223}],1249:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Drawing = _dereq_('../../components/drawing'); var Color = _dereq_('../../components/color'); @@ -216586,14 +211700,8 @@ function styleTrace(gd, calcTrace) { }); } -},{"../../components/color":643,"../../components/drawing":665,"../scatter/style":1211,"d3":169}],1239:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../components/drawing":682,"../scatter/style":1222,"@plotly/d3":58}],1250:[function(_dereq_,module,exports){ + 'use strict'; @@ -216634,8 +211742,6 @@ var attrs = module.exports = overrideAll({ valType: 'flaglist', flags: ['lines', 'markers', 'text'], extras: ['none'], - - }, line: { color: scatterLineAttrs.color, @@ -216644,16 +211750,12 @@ var attrs = module.exports = overrideAll({ valType: 'enumerated', values: ['linear', 'hv', 'vh', 'hvh', 'vhv'], dflt: 'linear', - editType: 'plot', - }, dash: { valType: 'enumerated', values: Object.keys(DASHES), dflt: 'solid', - - } }, marker: extendFlat({}, colorScaleAttrs('marker'), { @@ -216691,14 +211793,8 @@ attrs.x.editType = attrs.y.editType = attrs.x0.editType = attrs.y0.editType = 'c attrs.hovertemplate = scatterAttrs.hovertemplate; attrs.texttemplate = scatterAttrs.texttemplate; -},{"../../components/colorscale/attributes":650,"../../lib/extend":768,"../../plot_api/edit_types":810,"../../plots/attributes":824,"../scatter/attributes":1187,"./constants":1241}],1240:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/attributes":667,"../../lib/extend":785,"../../plot_api/edit_types":827,"../../plots/attributes":841,"../scatter/attributes":1198,"./constants":1252}],1251:[function(_dereq_,module,exports){ + 'use strict'; @@ -216877,14 +211973,8 @@ function sceneOptions(gd, subplot, trace, positions, x, y) { return opts; } -},{"../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/numerical":770,"../../lib":795,"../../plots/cartesian/align_period":842,"../../plots/cartesian/autorange":844,"../../plots/cartesian/axis_ids":848,"../scatter/calc":1199,"../scatter/colorscale_calc":1201,"./constants":1252,"./convert":1253,"./scene_update":1261,"@plotly/point-cluster":59}],1252:[function(_dereq_,module,exports){ + 'use strict'; @@ -216910,14 +212000,8 @@ module.exports = { } }; -},{}],1242:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1253:[function(_dereq_,module,exports){ + 'use strict'; @@ -217561,14 +212645,8 @@ module.exports = { textPosition: convertTextPosition }; -},{"../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/drawing":682,"../../components/fx/helpers":696,"../../constants/interactions":769,"../../lib":795,"../../lib/gl_format_color":791,"../../plots/cartesian/axis_ids":848,"../../registry":922,"../scatter/make_bubble_size_func":1215,"../scatter/subtypes":1223,"./constants":1252,"./helpers":1257,"color-normalize":127,"fast-isnumeric":241,"svg-path-sdf":589}],1254:[function(_dereq_,module,exports){ + 'use strict'; @@ -217640,14 +212718,8 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout Lib.coerceSelectionMarkerOpacity(traceOut, coerce); }; -},{"../../lib":778,"../../registry":911,"../scatter/constants":1191,"../scatter/fillcolor_defaults":1195,"../scatter/line_defaults":1200,"../scatter/marker_defaults":1206,"../scatter/period_defaults":1207,"../scatter/subtypes":1212,"../scatter/text_defaults":1213,"../scatter/xy_defaults":1214,"./attributes":1239,"./helpers":1246}],1244:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../registry":922,"../scatter/constants":1202,"../scatter/fillcolor_defaults":1206,"../scatter/line_defaults":1211,"../scatter/marker_defaults":1217,"../scatter/period_defaults":1218,"../scatter/subtypes":1223,"../scatter/text_defaults":1224,"../scatter/xy_defaults":1225,"./attributes":1250,"./helpers":1257}],1255:[function(_dereq_,module,exports){ + 'use strict'; @@ -217696,14 +212768,8 @@ module.exports = { styleTextSelection: styleTextSelection }; -},{"../../components/color":643,"../../constants/interactions":752,"../../lib":778}],1245:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../constants/interactions":769,"../../lib":795}],1256:[function(_dereq_,module,exports){ + 'use strict'; @@ -217716,14 +212782,8 @@ module.exports = function formatLabels(cdi, trace, fullLayout) { return scatterFormatLabels(cdi, trace, fullLayout); }; -},{"../scatter/format_labels":1196}],1246:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../scatter/format_labels":1207}],1257:[function(_dereq_,module,exports){ + 'use strict'; @@ -217741,14 +212801,8 @@ exports.isDotSymbol = function(symbol) { symbol > 200; }; -},{"./constants":1241}],1247:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"./constants":1252}],1258:[function(_dereq_,module,exports){ + 'use strict'; @@ -217941,14 +212995,8 @@ module.exports = { calcHover: calcHover }; -},{"../../lib":778,"../../registry":911,"../scatter/get_trace_color":1197}],1248:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../registry":922,"../scatter/get_trace_color":1208}],1259:[function(_dereq_,module,exports){ + 'use strict'; @@ -217971,19 +213019,11 @@ module.exports = { selectPoints: _dereq_('./select'), meta: { - - } }; -},{"../../plots/cartesian":841,"../scatter/cross_trace_defaults":1193,"../scatter/marker_colorbar":1205,"./attributes":1239,"./calc":1240,"./defaults":1243,"./format_labels":1245,"./hover":1247,"./plot":1249,"./select":1251}],1249:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/cartesian":858,"../scatter/cross_trace_defaults":1204,"../scatter/marker_colorbar":1216,"./attributes":1250,"./calc":1251,"./defaults":1254,"./format_labels":1256,"./hover":1258,"./plot":1260,"./select":1262}],1260:[function(_dereq_,module,exports){ + 'use strict'; @@ -218161,10 +213201,14 @@ module.exports = function plot(gd, subplot, cdata) { } else if(trace.fill === 'toself' || trace.fill === 'tonext') { pos = []; last = 0; + + fillOptions.splitNull = true; + for(j = 0; j < srcPos.length; j += 2) { if(isNaN(srcPos[j]) || isNaN(srcPos[j + 1])) { pos = pos.concat(srcPos.slice(last, j)); pos.push(srcPos[last], srcPos[last + 1]); + pos.push(null, null); // keep null to mark end of polygon last = j + 2; } } @@ -218345,14 +213389,8 @@ module.exports = function plot(gd, subplot, cdata) { } }; -},{"../../components/dragelement/helpers":661,"../../lib":778,"../../lib/prepare_regl":791,"../scatter/link_traces":1203,"../scatter/subtypes":1212,"./edit_style":1244,"gl-text":352,"regl-error2d":534,"regl-line2d":535,"regl-scatter2d":537}],1250:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/dragelement/helpers":678,"../../lib":795,"../../lib/prepare_regl":808,"../scatter/link_traces":1214,"../scatter/subtypes":1223,"./edit_style":1255,"gl-text":351,"regl-error2d":530,"regl-line2d":531,"regl-scatter2d":532}],1261:[function(_dereq_,module,exports){ + 'use strict'; @@ -218503,14 +213541,8 @@ module.exports = function sceneUpdate(gd, subplot) { return scene; }; -},{"../../lib":778}],1251:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795}],1262:[function(_dereq_,module,exports){ + 'use strict'; @@ -218582,14 +213614,8 @@ module.exports = function select(searchInfo, selectionTester) { return selection; }; -},{"../scatter/subtypes":1212,"./edit_style":1244}],1252:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../scatter/subtypes":1223,"./edit_style":1255}],1263:[function(_dereq_,module,exports){ + 'use strict'; @@ -218616,17 +213642,14 @@ module.exports = overrideAll({ mode: extendFlat({}, scatterAttrs.mode, { dflt: 'markers', - }), text: extendFlat({}, scatterAttrs.text, { - }), texttemplate: texttemplateAttrs({editType: 'plot'}, { keys: ['lat', 'lon', 'text'] }), hovertext: extendFlat({}, scatterAttrs.hovertext, { - }), line: { @@ -218643,22 +213666,16 @@ module.exports = overrideAll({ symbol: { valType: 'string', dflt: 'circle', - arrayOk: true, - }, angle: { valType: 'number', dflt: 'auto', - arrayOk: true, - }, allowoverlap: { valType: 'boolean', dflt: false, - - }, opacity: markerAttrs.opacity, size: markerAttrs.size, @@ -218678,8 +213695,6 @@ module.exports = overrideAll({ below: { valType: 'string', - - }, selected: { @@ -218695,14 +213710,8 @@ module.exports = overrideAll({ hovertemplate: hovertemplateAttrs(), }, 'calc', 'nested'); -},{"../../components/colorscale/attributes":650,"../../lib/extend":768,"../../plot_api/edit_types":810,"../../plots/attributes":824,"../../plots/mapbox/layout_attributes":887,"../../plots/template_attributes":906,"../scatter/attributes":1187,"../scattergeo/attributes":1229}],1253:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/attributes":667,"../../lib/extend":785,"../../plot_api/edit_types":827,"../../plots/attributes":841,"../../plots/mapbox/layout_attributes":904,"../../plots/template_attributes":917,"../scatter/attributes":1198,"../scattergeo/attributes":1240}],1264:[function(_dereq_,module,exports){ + 'use strict'; @@ -219030,14 +214039,8 @@ function isBADNUM(lonlat) { return lonlat[0] === BADNUM; } -},{"../../components/colorscale":655,"../../components/drawing":665,"../../components/fx/helpers":679,"../../constants/numerical":753,"../../lib":778,"../../lib/geojson_utils":772,"../../lib/svg_text_utils":803,"../../plots/mapbox/convert_text_opts":884,"../scatter/make_bubble_size_func":1204,"../scatter/subtypes":1212,"fast-isnumeric":241}],1254:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale":672,"../../components/drawing":682,"../../components/fx/helpers":696,"../../constants/numerical":770,"../../lib":795,"../../lib/geojson_utils":789,"../../lib/svg_text_utils":820,"../../plots/mapbox/convert_text_opts":901,"../scatter/make_bubble_size_func":1215,"../scatter/subtypes":1223,"fast-isnumeric":241}],1265:[function(_dereq_,module,exports){ + 'use strict'; @@ -219108,14 +214111,8 @@ function handleLonLatDefaults(traceIn, traceOut, coerce) { return len; } -},{"../../lib":778,"../scatter/fillcolor_defaults":1195,"../scatter/line_defaults":1200,"../scatter/marker_defaults":1206,"../scatter/subtypes":1212,"../scatter/text_defaults":1213,"./attributes":1252}],1255:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../scatter/fillcolor_defaults":1206,"../scatter/line_defaults":1211,"../scatter/marker_defaults":1217,"../scatter/subtypes":1223,"../scatter/text_defaults":1224,"./attributes":1263}],1266:[function(_dereq_,module,exports){ + 'use strict'; @@ -219128,14 +214125,8 @@ module.exports = function eventData(out, pt) { return out; }; -},{}],1256:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1267:[function(_dereq_,module,exports){ + 'use strict'; @@ -219154,14 +214145,8 @@ module.exports = function formatLabels(cdi, trace, fullLayout) { return labels; }; -},{"../../plots/cartesian/axes":828}],1257:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/cartesian/axes":845}],1268:[function(_dereq_,module,exports){ + 'use strict'; @@ -219266,14 +214251,8 @@ function getExtraText(trace, di, labels) { return text.join('
'); } -},{"../../components/fx":683,"../../constants/numerical":753,"../../lib":778,"../scatter/get_trace_color":1197}],1258:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/fx":700,"../../constants/numerical":770,"../../lib":795,"../scatter/get_trace_color":1208}],1269:[function(_dereq_,module,exports){ + 'use strict'; @@ -219300,19 +214279,11 @@ module.exports = { basePlotModule: _dereq_('../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/mapbox":902,"../scatter/marker_colorbar":1216,"../scattergeo/calc":1241,"./attributes":1263,"./defaults":1265,"./event_data":1266,"./format_labels":1267,"./hover":1268,"./plot":1270,"./select":1271}],1270:[function(_dereq_,module,exports){ + 'use strict'; @@ -219438,14 +214409,8 @@ module.exports = function createScatterMapbox(subplot, calcTrace) { return scatterMapbox; }; -},{"../../plots/mapbox/constants":883,"./convert":1253}],1260:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/mapbox/constants":900,"./convert":1264}],1271:[function(_dereq_,module,exports){ + 'use strict'; @@ -219493,14 +214458,8 @@ module.exports = function selectPoints(searchInfo, selectionTester) { return selection; }; -},{"../../constants/numerical":753,"../../lib":778,"../scatter/subtypes":1212}],1261:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/numerical":770,"../../lib":795,"../scatter/subtypes":1223}],1272:[function(_dereq_,module,exports){ + 'use strict'; @@ -219517,51 +214476,39 @@ module.exports = { r: { valType: 'data_array', editType: 'calc+clearAxisTypes', - }, theta: { valType: 'data_array', editType: 'calc+clearAxisTypes', - }, r0: { valType: 'any', dflt: 0, - editType: 'calc+clearAxisTypes', - }, dr: { valType: 'number', dflt: 1, - editType: 'calc', - }, theta0: { valType: 'any', dflt: 0, - editType: 'calc+clearAxisTypes', - }, dtheta: { valType: 'number', - editType: 'calc', - }, thetaunit: { valType: 'enumerated', values: ['radians', 'degrees', 'gradians'], dflt: 'degrees', - editType: 'calc+clearAxisTypes', - }, text: scatterAttrs.text, @@ -219591,7 +214538,6 @@ module.exports = { fill: extendFlat({}, scatterAttrs.fill, { values: ['none', 'toself', 'tonext'], dflt: 'none', - }), fillcolor: scatterAttrs.fillcolor, @@ -219610,14 +214556,8 @@ module.exports = { unselected: scatterAttrs.unselected }; -},{"../../lib/extend":768,"../../plots/attributes":824,"../../plots/template_attributes":906,"../scatter/attributes":1187}],1262:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib/extend":785,"../../plots/attributes":841,"../../plots/template_attributes":917,"../scatter/attributes":1198}],1273:[function(_dereq_,module,exports){ + 'use strict'; @@ -219665,14 +214605,8 @@ module.exports = function calc(gd, trace) { return cd; }; -},{"../../constants/numerical":753,"../../plots/cartesian/axes":828,"../scatter/arrays_to_calcdata":1186,"../scatter/calc":1188,"../scatter/calc_selection":1189,"../scatter/colorscale_calc":1190,"fast-isnumeric":241}],1263:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/numerical":770,"../../plots/cartesian/axes":845,"../scatter/arrays_to_calcdata":1197,"../scatter/calc":1199,"../scatter/calc_selection":1200,"../scatter/colorscale_calc":1201,"fast-isnumeric":241}],1274:[function(_dereq_,module,exports){ + 'use strict'; @@ -219772,14 +214706,8 @@ module.exports = { supplyDefaults: supplyDefaults }; -},{"../../lib":778,"../scatter/constants":1191,"../scatter/fillcolor_defaults":1195,"../scatter/line_defaults":1200,"../scatter/line_shape_defaults":1202,"../scatter/marker_defaults":1206,"../scatter/subtypes":1212,"../scatter/text_defaults":1213,"./attributes":1261}],1264:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../scatter/constants":1202,"../scatter/fillcolor_defaults":1206,"../scatter/line_defaults":1211,"../scatter/line_shape_defaults":1213,"../scatter/marker_defaults":1217,"../scatter/subtypes":1223,"../scatter/text_defaults":1224,"./attributes":1272}],1275:[function(_dereq_,module,exports){ + 'use strict'; @@ -219814,14 +214742,8 @@ module.exports = function formatLabels(cdi, trace, fullLayout) { return labels; }; -},{"../../lib":778,"../../plots/cartesian/axes":828}],1265:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../plots/cartesian/axes":845}],1276:[function(_dereq_,module,exports){ + 'use strict'; @@ -219890,14 +214812,8 @@ module.exports = { makeHoverPointText: makeHoverPointText }; -},{"../scatter/hover":1198}],1266:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../scatter/hover":1209}],1277:[function(_dereq_,module,exports){ + 'use strict'; @@ -219919,19 +214835,11 @@ module.exports = { selectPoints: _dereq_('../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/polar":911,"../scatter/marker_colorbar":1216,"../scatter/select":1220,"../scatter/style":1222,"./attributes":1272,"./calc":1273,"./defaults":1274,"./format_labels":1275,"./hover":1276,"./plot":1278}],1278:[function(_dereq_,module,exports){ + 'use strict'; @@ -219974,14 +214882,8 @@ module.exports = function plot(gd, subplot, moduleCalcData) { scatterPlot(gd, plotinfo, moduleCalcData, mlayer); }; -},{"../../constants/numerical":753,"../scatter/plot":1208}],1268:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/numerical":770,"../scatter/plot":1219}],1279:[function(_dereq_,module,exports){ + 'use strict'; @@ -220025,14 +214927,8 @@ module.exports = { unselected: scatterPolarAttrs.unselected }; -},{"../../plots/template_attributes":906,"../scattergl/attributes":1239,"../scatterpolar/attributes":1261}],1269:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/template_attributes":917,"../scattergl/attributes":1250,"../scatterpolar/attributes":1272}],1280:[function(_dereq_,module,exports){ + 'use strict'; @@ -220077,14 +214973,8 @@ module.exports = function calc(gd, trace) { return [{x: false, y: false, t: stash, trace: trace}]; }; -},{"../../plots/cartesian/axes":828,"../scatter/calc":1188,"../scatter/colorscale_calc":1190,"../scattergl/constants":1241,"../scattergl/convert":1242}],1270:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/cartesian/axes":845,"../scatter/calc":1199,"../scatter/colorscale_calc":1201,"../scattergl/constants":1252,"../scattergl/convert":1253}],1281:[function(_dereq_,module,exports){ + 'use strict'; @@ -220139,14 +215029,8 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout Lib.coerceSelectionMarkerOpacity(traceOut, coerce); }; -},{"../../lib":778,"../scatter/constants":1191,"../scatter/fillcolor_defaults":1195,"../scatter/line_defaults":1200,"../scatter/marker_defaults":1206,"../scatter/subtypes":1212,"../scatter/text_defaults":1213,"../scatterpolar/defaults":1263,"./attributes":1268}],1271:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../scatter/constants":1202,"../scatter/fillcolor_defaults":1206,"../scatter/line_defaults":1211,"../scatter/marker_defaults":1217,"../scatter/subtypes":1223,"../scatter/text_defaults":1224,"../scatterpolar/defaults":1274,"./attributes":1279}],1282:[function(_dereq_,module,exports){ + 'use strict'; @@ -220159,14 +215043,8 @@ module.exports = function formatLabels(cdi, trace, fullLayout) { return scatterPolarFormatLabels(cdi, trace, fullLayout); }; -},{"../scatterpolar/format_labels":1264}],1272:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../scatterpolar/format_labels":1275}],1283:[function(_dereq_,module,exports){ + 'use strict'; @@ -220209,14 +215087,8 @@ module.exports = { hoverPoints: hoverPoints }; -},{"../scattergl/hover":1247,"../scatterpolar/hover":1265}],1273:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../scattergl/hover":1258,"../scatterpolar/hover":1276}],1284:[function(_dereq_,module,exports){ + 'use strict'; @@ -220237,19 +215109,11 @@ module.exports = { selectPoints: _dereq_('../scattergl/select'), meta: { - - } }; -},{"../../plots/polar":894,"../scatter/marker_colorbar":1205,"../scattergl/select":1251,"./attributes":1268,"./calc":1269,"./defaults":1270,"./format_labels":1271,"./hover":1272,"./plot":1274}],1274:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/polar":911,"../scatter/marker_colorbar":1216,"../scattergl/select":1262,"./attributes":1279,"./calc":1280,"./defaults":1281,"./format_labels":1282,"./hover":1283,"./plot":1285}],1285:[function(_dereq_,module,exports){ + 'use strict'; @@ -220380,14 +215244,8 @@ module.exports = function plot(gd, subplot, cdata) { return scatterglPlot(gd, subplot, cdata); }; -},{"../../lib":778,"../scattergl/constants":1241,"../scattergl/convert":1242,"../scattergl/plot":1249,"../scattergl/scene_update":1250,"@plotly/point-cluster":57,"fast-isnumeric":241}],1275:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../scattergl/constants":1252,"../scattergl/convert":1253,"../scattergl/plot":1260,"../scattergl/scene_update":1261,"@plotly/point-cluster":59,"fast-isnumeric":241}],1286:[function(_dereq_,module,exports){ + 'use strict'; @@ -220408,35 +215266,28 @@ module.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: extendFlat({}, scatterAttrs.mode, {dflt: 'markers'}), text: extendFlat({}, scatterAttrs.text, { - }), texttemplate: texttemplateAttrs({editType: 'plot'}, { keys: ['a', 'b', 'c', 'text'] }), hovertext: extendFlat({}, scatterAttrs.hovertext, { - }), line: { color: scatterLineAttrs.color, @@ -220452,7 +215303,6 @@ module.exports = { fill: extendFlat({}, scatterAttrs.fill, { values: ['none', 'toself', 'tonext'], dflt: 'none', - }), fillcolor: scatterAttrs.fillcolor, marker: extendFlat({ @@ -220488,14 +215338,8 @@ module.exports = { hovertemplate: hovertemplateAttrs(), }; -},{"../../components/colorscale/attributes":650,"../../components/drawing/attributes":664,"../../lib/extend":768,"../../plots/attributes":824,"../../plots/template_attributes":906,"../scatter/attributes":1187}],1276:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/attributes":667,"../../components/drawing/attributes":681,"../../lib/extend":785,"../../plots/attributes":841,"../../plots/template_attributes":917,"../scatter/attributes":1198}],1287:[function(_dereq_,module,exports){ + 'use strict'; @@ -220569,14 +215413,8 @@ module.exports = function calc(gd, trace) { return cd; }; -},{"../scatter/arrays_to_calcdata":1186,"../scatter/calc":1188,"../scatter/calc_selection":1189,"../scatter/colorscale_calc":1190,"fast-isnumeric":241}],1277:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../scatter/arrays_to_calcdata":1197,"../scatter/calc":1199,"../scatter/calc_selection":1200,"../scatter/colorscale_calc":1201,"fast-isnumeric":241}],1288:[function(_dereq_,module,exports){ + 'use strict'; @@ -220673,14 +215511,8 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout Lib.coerceSelectionMarkerOpacity(traceOut, coerce); }; -},{"../../lib":778,"../scatter/constants":1191,"../scatter/fillcolor_defaults":1195,"../scatter/line_defaults":1200,"../scatter/line_shape_defaults":1202,"../scatter/marker_defaults":1206,"../scatter/subtypes":1212,"../scatter/text_defaults":1213,"./attributes":1275}],1278:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../scatter/constants":1202,"../scatter/fillcolor_defaults":1206,"../scatter/line_defaults":1211,"../scatter/line_shape_defaults":1213,"../scatter/marker_defaults":1217,"../scatter/subtypes":1223,"../scatter/text_defaults":1224,"./attributes":1286}],1289:[function(_dereq_,module,exports){ + 'use strict'; @@ -220705,14 +215537,8 @@ module.exports = function eventData(out, pt, trace, cd, pointNumber) { return out; }; -},{}],1279:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1290:[function(_dereq_,module,exports){ + 'use strict'; @@ -220729,14 +215555,8 @@ module.exports = function formatLabels(cdi, trace, fullLayout) { return labels; }; -},{"../../plots/cartesian/axes":828}],1280:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/cartesian/axes":845}],1291:[function(_dereq_,module,exports){ + 'use strict'; @@ -220803,14 +215623,8 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode) { return scatterPointData; }; -},{"../scatter/hover":1198}],1281:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../scatter/hover":1209}],1292:[function(_dereq_,module,exports){ + 'use strict'; @@ -220832,19 +215646,11 @@ module.exports = { basePlotModule: _dereq_('../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/ternary":918,"../scatter/marker_colorbar":1216,"../scatter/select":1220,"../scatter/style":1222,"./attributes":1286,"./calc":1287,"./defaults":1288,"./event_data":1289,"./format_labels":1290,"./hover":1291,"./plot":1293}],1293:[function(_dereq_,module,exports){ + 'use strict'; @@ -220870,14 +215676,8 @@ module.exports = function plot(gd, ternary, moduleCalcData) { scatterPlot(gd, plotinfo, moduleCalcData, scatterLayer); }; -},{"../scatter/plot":1208}],1283:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../scatter/plot":1219}],1294:[function(_dereq_,module,exports){ + 'use strict'; @@ -220915,14 +215715,12 @@ function makeAxesValObject(axLetter) { return { valType: 'info_array', freeLength: true, - editType: 'calc', items: { valType: 'subplotid', regex: cartesianIdRegex[axLetter], editType: 'plot' }, - }; } @@ -220930,40 +215728,30 @@ module.exports = { dimensions: templatedArray('dimension', { visible: { valType: 'boolean', - dflt: true, 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', - }, - // TODO make 'true' the default in v2? + // TODO make 'true' the default in v3? matches: { valType: 'boolean', dflt: false, - editType: 'calc', - }, editType: 'calc+clearAxisTypes' @@ -220981,10 +215769,8 @@ module.exports = { // mode: {}, (only 'markers' for now) text: extendFlat({}, scatterGlAttrs.text, { - }), hovertext: extendFlat({}, scatterGlAttrs.hovertext, { - }), hovertemplate: hovertemplateAttrs(), @@ -220997,10 +215783,8 @@ module.exports = { diagonal: { visible: { valType: 'boolean', - dflt: true, editType: 'calc', - }, // type: 'scattergl' | 'histogram' | 'box' | 'violin' @@ -221012,17 +215796,13 @@ module.exports = { showupperhalf: { valType: 'boolean', - dflt: true, editType: 'calc', - }, showlowerhalf: { valType: 'boolean', - dflt: true, editType: 'calc', - }, selected: { @@ -221037,14 +215817,8 @@ module.exports = { opacity: scatterGlAttrs.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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/attributes":667,"../../lib/extend":785,"../../plot_api/plot_template":834,"../../plots/cartesian/constants":851,"../../plots/template_attributes":917,"../scatter/attributes":1198,"../scattergl/attributes":1250}],1295:[function(_dereq_,module,exports){ + 'use strict'; @@ -221256,14 +216030,8 @@ module.exports = { toSVG: Cartesian.toSVG }; -},{"../../lib/prepare_regl":791,"../../plots/cartesian":841,"../../plots/cartesian/axes":828,"../../plots/cartesian/axis_ids":831,"../../plots/get_data":865,"../../registry":911,"regl-line2d":535}],1285:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib/prepare_regl":808,"../../plots/cartesian":858,"../../plots/cartesian/axes":845,"../../plots/cartesian/axis_ids":848,"../../plots/get_data":882,"../../registry":922,"regl-line2d":531}],1296:[function(_dereq_,module,exports){ + 'use strict'; @@ -221367,14 +216135,8 @@ module.exports = function calc(gd, trace) { return [{x: false, y: false, t: {}, trace: trace}]; }; -},{"../../constants/numerical":753,"../../lib":778,"../../plots/cartesian/axis_ids":831,"../scatter/calc":1188,"../scatter/colorscale_calc":1190,"../scattergl/constants":1241,"../scattergl/convert":1242,"./scene_update":1292}],1286:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/numerical":770,"../../lib":795,"../../plots/cartesian/axis_ids":848,"../scatter/calc":1199,"../scatter/colorscale_calc":1201,"../scattergl/constants":1252,"../scattergl/convert":1253,"./scene_update":1303}],1297:[function(_dereq_,module,exports){ + 'use strict'; @@ -221544,14 +216306,8 @@ function handleAxisDefaults(traceIn, traceOut, layout, coerce) { } } -},{"../../lib":778,"../../plots/array_container_defaults":823,"../parcoords/merge_length":1158,"../scatter/marker_defaults":1206,"../scatter/subtypes":1212,"../scattergl/helpers":1246,"./attributes":1283}],1287:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../plots/array_container_defaults":840,"../parcoords/merge_length":1169,"../scatter/marker_defaults":1217,"../scatter/subtypes":1223,"../scattergl/helpers":1257,"./attributes":1294}],1298:[function(_dereq_,module,exports){ + 'use strict'; @@ -221576,14 +216332,8 @@ module.exports = function editStyle(gd, cd0) { } }; -},{"../../lib":778,"../scatter/colorscale_calc":1190,"../scattergl/convert":1242}],1288:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../scatter/colorscale_calc":1201,"../scattergl/convert":1253}],1299:[function(_dereq_,module,exports){ + 'use strict'; @@ -221600,14 +216350,8 @@ exports.getDimIndex = function getDimIndex(trace, ax) { return false; }; -},{}],1289:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1300:[function(_dereq_,module,exports){ + 'use strict'; @@ -221661,14 +216405,8 @@ module.exports = { hoverPoints: hoverPoints }; -},{"../scattergl/hover":1247,"./helpers":1288}],1290:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../scattergl/hover":1258,"./helpers":1299}],1301:[function(_dereq_,module,exports){ + 'use strict'; @@ -221693,7 +216431,6 @@ module.exports = { editStyle: _dereq_('./edit_style'), meta: { - } }; @@ -221701,14 +216438,8 @@ module.exports = { // register it here Registry.register(Grid); -},{"../../components/grid":687,"../../registry":911,"../scatter/marker_colorbar":1205,"./attributes":1283,"./base_plot":1284,"./calc":1285,"./defaults":1286,"./edit_style":1287,"./hover":1289,"./plot":1291,"./select":1293}],1291:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/grid":704,"../../registry":922,"../scatter/marker_colorbar":1216,"./attributes":1294,"./base_plot":1295,"./calc":1296,"./defaults":1297,"./edit_style":1298,"./hover":1300,"./plot":1302,"./select":1304}],1302:[function(_dereq_,module,exports){ + 'use strict'; @@ -221846,14 +216577,8 @@ function plotOne(gd, cd0) { } } -},{"../../components/dragelement/helpers":661,"../../lib":778,"../../plots/cartesian/axis_ids":831,"regl-splom":539}],1292:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/dragelement/helpers":678,"../../lib":795,"../../plots/cartesian/axis_ids":848,"regl-splom":533}],1303:[function(_dereq_,module,exports){ + 'use strict'; @@ -221918,14 +216643,8 @@ module.exports = function sceneUpdate(gd, trace) { return scene; }; -},{"../../lib":778}],1293:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795}],1304:[function(_dereq_,module,exports){ + 'use strict'; @@ -221993,14 +216712,8 @@ module.exports = function select(searchInfo, selectionTester) { return selection; }; -},{"../../lib":778,"../scatter/subtypes":1212,"./helpers":1288}],1294:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../scatter/subtypes":1223,"./helpers":1299}],1305:[function(_dereq_,module,exports){ + 'use strict'; @@ -222014,54 +216727,42 @@ var extendFlat = _dereq_('../../lib/extend').extendFlat; var attrs = { 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', - }, starts: { x: { valType: 'data_array', editType: 'calc', - }, y: { valType: 'data_array', editType: 'calc', - }, z: { valType: 'data_array', editType: 'calc', - }, editType: 'calc' }, @@ -222070,9 +216771,7 @@ var attrs = { valType: 'integer', min: 0, dflt: 1000, - editType: 'calc', - }, // TODO @@ -222087,33 +216786,26 @@ var attrs = { // valType: 'enumerated', // values: ['scaled', 'absolute', 'fixed'], // dflt: 'scaled', - // // editType: 'calc', - // + // // }, sizeref: { valType: 'number', - editType: 'calc', min: 0, dflt: 1, - }, text: { valType: 'string', - dflt: '', editType: 'calc', - }, hovertext: { valType: 'string', - dflt: '', editType: 'calc', - }, hovertemplate: hovertemplateAttrs({editType: 'calc'}, { keys: [ @@ -222146,14 +216838,8 @@ attrs.transforms = undefined; module.exports = attrs; -},{"../../components/colorscale/attributes":650,"../../lib/extend":768,"../../plots/attributes":824,"../../plots/template_attributes":906,"../mesh3d/attributes":1128}],1295:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/attributes":667,"../../lib/extend":785,"../../plots/attributes":841,"../../plots/template_attributes":917,"../mesh3d/attributes":1139}],1306:[function(_dereq_,module,exports){ + 'use strict'; @@ -222402,14 +217088,8 @@ module.exports = { processGrid: processGrid }; -},{"../../components/colorscale/calc":651,"../../lib":778}],1296:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/calc":668,"../../lib":795}],1307:[function(_dereq_,module,exports){ + 'use strict'; @@ -222628,14 +217308,8 @@ function createStreamtubeTrace(scene, data) { module.exports = createStreamtubeTrace; -},{"../../components/colorscale":655,"../../lib":778,"../../lib/gl_format_color":774,"../../plots/gl3d/zip3":881,"gl-streamtube3d":348}],1297:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale":672,"../../lib":795,"../../lib/gl_format_color":791,"../../plots/gl3d/zip3":898,"gl-streamtube3d":347}],1308:[function(_dereq_,module,exports){ + 'use strict'; @@ -222693,14 +217367,8 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout traceOut._length = null; }; -},{"../../components/colorscale/defaults":653,"../../lib":778,"./attributes":1294}],1298:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/defaults":670,"../../lib":795,"./attributes":1305}],1309:[function(_dereq_,module,exports){ + 'use strict'; @@ -222739,18 +217407,11 @@ module.exports = { }, meta: { - } }; -},{"../../plots/gl3d":870,"./attributes":1294,"./calc":1295,"./convert":1296,"./defaults":1297}],1299:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/gl3d":887,"./attributes":1305,"./calc":1306,"./convert":1307,"./defaults":1308}],1310:[function(_dereq_,module,exports){ + 'use strict'; @@ -222768,26 +217429,21 @@ module.exports = { labels: { valType: 'data_array', editType: 'calc', - }, parents: { valType: 'data_array', editType: 'calc', - }, values: { valType: 'data_array', editType: 'calc', - }, branchvalues: { valType: 'enumerated', values: ['remainder', 'total'], dflt: 'remainder', editType: 'calc', - - }, count: { valType: 'flaglist', @@ -222797,30 +217453,23 @@ module.exports = { ], dflt: 'leaves', editType: 'calc', - - }, level: { valType: 'any', editType: 'plot', anim: true, - - }, maxdepth: { valType: 'integer', editType: 'plot', - dflt: -1, - }, marker: extendFlat({ colors: { valType: 'data_array', editType: 'calc', - }, // colorinheritance: { @@ -222831,7 +217480,6 @@ module.exports = { line: { color: extendFlat({}, pieAttrs.marker.line.color, { dflt: null, - }), width: extendFlat({}, pieAttrs.marker.line.width, {dflt: 1}), editType: 'calc' @@ -222848,10 +217496,8 @@ module.exports = { opacity: { valType: 'number', editType: 'style', - min: 0, max: 1, - }, editType: 'plot' }, @@ -222859,7 +217505,6 @@ module.exports = { text: pieAttrs.text, textinfo: { valType: 'flaglist', - flags: [ 'label', 'text', @@ -222871,7 +217516,6 @@ module.exports = { ], extras: ['none'], editType: 'plot', - }, // TODO: incorporate `label` and `value` in the eventData @@ -222901,14 +217545,11 @@ module.exports = { insidetextorientation: pieAttrs.insidetextorientation, insidetextfont: pieAttrs.insidetextfont, outsidetextfont: extendFlat({}, pieAttrs.outsidetextfont, { - }), rotation: { valType: 'angle', - dflt: 0, editType: 'plot', - }, sort: pieAttrs.sort, @@ -222916,9 +217557,7 @@ module.exports = { color: { valType: 'color', editType: 'calc', - dflt: 'rgba(0,0,0,0)', - }, editType: 'calc' }, @@ -222926,14 +217565,8 @@ module.exports = { domain: domainAttrs({name: 'sunburst', trace: true, editType: 'calc'}) }; -},{"../../components/colorscale/attributes":650,"../../lib/extend":768,"../../plots/attributes":824,"../../plots/domain":855,"../../plots/template_attributes":906,"../pie/attributes":1161,"./constants":1302}],1300:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/attributes":667,"../../lib/extend":785,"../../plots/attributes":841,"../../plots/domain":872,"../../plots/template_attributes":917,"../pie/attributes":1172,"./constants":1313}],1311:[function(_dereq_,module,exports){ + 'use strict'; @@ -222949,14 +217582,8 @@ exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) plots.cleanBasePlot(exports.name, newFullData, newFullLayout, oldFullData, oldFullLayout); }; -},{"../../plots/plots":891}],1301:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/plots":908}],1312:[function(_dereq_,module,exports){ + 'use strict'; @@ -223275,14 +217902,8 @@ function countDescendants(node, trace, opts) { return nChild; } -},{"../../components/colorscale":655,"../../constants/numerical":753,"../../lib":778,"../pie/calc":1163,"d3-hierarchy":161,"fast-isnumeric":241}],1302:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale":672,"../../constants/numerical":770,"../../lib":795,"../pie/calc":1174,"d3-hierarchy":163,"fast-isnumeric":241}],1313:[function(_dereq_,module,exports){ + 'use strict'; @@ -223303,14 +217924,8 @@ module.exports = { ] }; -},{}],1303:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1314:[function(_dereq_,module,exports){ + 'use strict'; @@ -223391,18 +218006,12 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout traceOut._length = null; }; -},{"../../components/colorscale":655,"../../lib":778,"../../plots/domain":855,"../bar/defaults":925,"./attributes":1299}],1304:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale":672,"../../lib":795,"../../plots/domain":872,"../bar/defaults":936,"./attributes":1310}],1315:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Registry = _dereq_('../../registry'); var appendArrayPointValue = _dereq_('../../components/fx/helpers').appendArrayPointValue; var Fx = _dereq_('../../components/fx'); @@ -223702,14 +218311,8 @@ function makeEventData(pt, trace, keys) { return out; } -},{"../../components/fx":683,"../../components/fx/helpers":679,"../../lib":778,"../../lib/events":767,"../../registry":911,"../pie/helpers":1166,"./helpers":1305,"d3":169}],1305:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/fx":700,"../../components/fx/helpers":696,"../../lib":795,"../../lib/events":784,"../../registry":922,"../pie/helpers":1177,"./helpers":1316,"@plotly/d3":58}],1316:[function(_dereq_,module,exports){ + 'use strict'; @@ -223887,14 +218490,8 @@ exports.formatPercent = function(v, separators) { return tx; }; -},{"../../components/color":643,"../../lib":778,"../../lib/setcursor":799,"../pie/helpers":1166}],1306:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../lib":795,"../../lib/setcursor":816,"../pie/helpers":1177}],1317:[function(_dereq_,module,exports){ + 'use strict'; @@ -223919,45 +218516,28 @@ module.exports = { colorbar: _dereq_('../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../scatter/marker_colorbar":1216,"./attributes":1310,"./base_plot":1311,"./calc":1312,"./defaults":1314,"./layout_attributes":1318,"./layout_defaults":1319,"./plot":1320,"./style":1321}],1318:[function(_dereq_,module,exports){ + 'use strict'; module.exports = { sunburstcolorway: { valType: 'colorlist', - editType: 'calc', - }, extendsunburstcolors: { valType: 'boolean', dflt: true, - editType: 'calc', - } }; -},{}],1308:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1319:[function(_dereq_,module,exports){ + 'use strict'; @@ -223972,18 +218552,12 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) { coerce('extendsunburstcolors'); }; -},{"../../lib":778,"./layout_attributes":1307}],1309:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"./layout_attributes":1318}],1320:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var d3Hierarchy = _dereq_('d3-hierarchy'); var Drawing = _dereq_('../../components/drawing'); @@ -224612,18 +219186,12 @@ function getCoords(r, angle) { return [r * Math.sin(angle), -r * Math.cos(angle)]; } -},{"../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/drawing":682,"../../lib":795,"../../lib/svg_text_utils":820,"../bar/style":946,"../bar/uniform_text":948,"../pie/helpers":1177,"../pie/plot":1181,"./constants":1313,"./fx":1315,"./helpers":1316,"./style":1321,"@plotly/d3":58,"d3-hierarchy":163}],1321:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Color = _dereq_('../../components/color'); var Lib = _dereq_('../../lib'); var resizeText = _dereq_('../bar/uniform_text').resizeText; @@ -224663,14 +219231,8 @@ module.exports = { styleOne: styleOne }; -},{"../../components/color":643,"../../lib":778,"../bar/uniform_text":937,"d3":169}],1311:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../lib":795,"../bar/uniform_text":948,"@plotly/d3":58}],1322:[function(_dereq_,module,exports){ + 'use strict'; @@ -224685,9 +219247,7 @@ var overrideAll = _dereq_('../../plot_api/edit_types').overrideAll; function makeContourProjAttr(axLetter) { return { valType: 'boolean', - dflt: false, - }; } @@ -224695,34 +219255,26 @@ function makeContourAttr(axLetter) { return { show: { valType: 'boolean', - dflt: false, - }, start: { valType: 'number', dflt: null, - editType: 'plot', // impliedEdits: {'^autocontour': false}, - }, end: { valType: 'number', dflt: null, - editType: 'plot', // impliedEdits: {'^autocontour': false}, - }, size: { valType: 'number', dflt: null, min: 0, - editType: 'plot', // impliedEdits: {'^autocontour': false}, - }, project: { x: makeContourProjAttr('x'), @@ -224731,43 +219283,31 @@ function makeContourAttr(axLetter) { }, color: { valType: 'color', - dflt: Color.defaultLine, - }, usecolormap: { valType: 'boolean', - dflt: false, - }, width: { valType: 'number', - min: 1, max: 16, dflt: 2, - }, highlight: { valType: 'boolean', - dflt: true, - }, highlightcolor: { valType: 'color', - dflt: Color.defaultLine, - }, highlightwidth: { valType: 'number', - min: 1, max: 16, dflt: 2, - } }; } @@ -224775,44 +219315,34 @@ function makeContourAttr(axLetter) { var attrs = module.exports = overrideAll(extendFlat({ z: { valType: 'data_array', - }, x: { valType: 'data_array', - }, y: { valType: 'data_array', - }, text: { valType: 'string', - dflt: '', arrayOk: true, - }, hovertext: { valType: 'string', - dflt: '', arrayOk: true, - }, hovertemplate: hovertemplateAttrs(), connectgaps: { valType: 'boolean', dflt: false, - editType: 'calc', - }, surfacecolor: { valType: 'data_array', - }, }, @@ -224829,106 +219359,81 @@ colorScaleAttrs('', { }, hidesurface: { valType: 'boolean', - dflt: false, - }, 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.00, max: 1.0, dflt: 0.8, - }, diffuse: { valType: 'number', - min: 0.00, max: 1.00, dflt: 0.8, - }, specular: { valType: 'number', - min: 0.00, max: 2.00, dflt: 0.05, - }, roughness: { valType: 'number', - min: 0.00, max: 1.00, dflt: 0.5, - }, fresnel: { valType: 'number', - min: 0.00, max: 5.00, dflt: 0.2, - } }, opacity: { valType: 'number', - min: 0, max: 1, dflt: 1, - }, opacityscale: { valType: 'any', - editType: 'calc', - }, _deprecated: { zauto: extendFlat({}, colorScaleAttrs.zauto, { - }), zmin: extendFlat({}, colorScaleAttrs.zmin, { - }), zmax: extendFlat({}, colorScaleAttrs.zmax, { - }) }, @@ -224939,14 +219444,8 @@ colorScaleAttrs('', { attrs.x.editType = attrs.y.editType = attrs.z.editType = 'calc+clearAxisTypes'; attrs.transforms = undefined; -},{"../../components/color":643,"../../components/colorscale/attributes":650,"../../lib/extend":768,"../../plot_api/edit_types":810,"../../plots/attributes":824,"../../plots/template_attributes":906}],1312:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../components/colorscale/attributes":667,"../../lib/extend":785,"../../plot_api/edit_types":827,"../../plots/attributes":841,"../../plots/template_attributes":917}],1323:[function(_dereq_,module,exports){ + 'use strict'; @@ -224971,14 +219470,8 @@ module.exports = function calc(gd, trace) { } }; -},{"../../components/colorscale/calc":651}],1313:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/calc":668}],1324:[function(_dereq_,module,exports){ + 'use strict'; @@ -225671,14 +220164,8 @@ function createSurfaceTrace(scene, data) { module.exports = createSurfaceTrace; -},{"../../components/colorscale":655,"../../lib":778,"../../lib/gl_format_color":774,"../../lib/str2rgbarray":802,"../heatmap/find_empties":1071,"../heatmap/interp2d":1074,"gl-surface3d":351,"ndarray":495,"ndarray-linear-interpolate":489}],1314:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale":672,"../../lib":795,"../../lib/gl_format_color":791,"../../lib/str2rgbarray":819,"../heatmap/find_empties":1082,"../heatmap/interp2d":1085,"gl-surface3d":350,"ndarray":480,"ndarray-linear-interpolate":474}],1325:[function(_dereq_,module,exports){ + 'use strict'; @@ -225845,14 +220332,8 @@ module.exports = { opacityscaleDefaults: opacityscaleDefaults }; -},{"../../components/colorscale/defaults":653,"../../lib":778,"../../registry":911,"./attributes":1311}],1315:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/defaults":670,"../../lib":795,"../../registry":922,"./attributes":1322}],1326:[function(_dereq_,module,exports){ + 'use strict'; @@ -225871,18 +220352,11 @@ module.exports = { basePlotModule: _dereq_('../../plots/gl3d'), categories: ['gl3d', '2dMap', 'showLegend'], meta: { - } }; -},{"../../plots/gl3d":870,"./attributes":1311,"./calc":1312,"./convert":1313,"./defaults":1314}],1316:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/gl3d":887,"./attributes":1322,"./calc":1323,"./convert":1324,"./defaults":1325}],1327:[function(_dereq_,module,exports){ + 'use strict'; @@ -225901,53 +220375,39 @@ var attrs = module.exports = overrideAll({ valType: 'number', arrayOk: true, dflt: null, - - }, columnorder: { valType: 'data_array', - - }, header: { values: { valType: 'data_array', - dflt: [], - }, format: { valType: 'data_array', - dflt: [], - }, prefix: { valType: 'string', arrayOk: true, dflt: null, - - }, suffix: { valType: 'string', arrayOk: true, dflt: null, - - }, height: { valType: 'number', dflt: 28, - - }, align: extendFlat({}, annAttrs.align, {arrayOk: true}), @@ -225957,13 +220417,11 @@ var attrs = module.exports = overrideAll({ valType: 'number', arrayOk: true, dflt: 1, - }, color: { valType: 'color', arrayOk: true, dflt: 'grey', - } }, @@ -225972,8 +220430,6 @@ var attrs = module.exports = overrideAll({ valType: 'color', arrayOk: true, dflt: 'white', - - } }, @@ -225984,39 +220440,29 @@ var attrs = module.exports = overrideAll({ values: { valType: 'data_array', - dflt: [], - }, format: { valType: 'data_array', - dflt: [], - }, prefix: { valType: 'string', arrayOk: true, dflt: null, - - }, suffix: { valType: 'string', arrayOk: true, dflt: null, - - }, height: { valType: 'number', dflt: 20, - - }, align: extendFlat({}, annAttrs.align, {arrayOk: true}), @@ -226026,13 +220472,11 @@ var attrs = module.exports = overrideAll({ valType: 'number', arrayOk: true, dflt: 1, - }, color: { valType: 'color', arrayOk: true, dflt: 'grey', - } }, @@ -226040,9 +220484,7 @@ var attrs = module.exports = overrideAll({ color: { valType: 'color', arrayOk: true, - dflt: 'white', - } }, @@ -226051,14 +220493,8 @@ var attrs = module.exports = overrideAll({ }, 'calc', 'from-root'); attrs.transforms = undefined; -},{"../../components/annotations/attributes":626,"../../constants/docs":748,"../../lib/extend":768,"../../plot_api/edit_types":810,"../../plots/domain":855,"../../plots/font_attributes":856}],1317:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/annotations/attributes":643,"../../constants/docs":765,"../../lib/extend":785,"../../plot_api/edit_types":827,"../../plots/domain":872,"../../plots/font_attributes":873}],1328:[function(_dereq_,module,exports){ + 'use strict'; @@ -226083,14 +220519,8 @@ exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) } }; -},{"../../plots/get_data":865,"./plot":1324}],1318:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/get_data":882,"./plot":1335}],1329:[function(_dereq_,module,exports){ + 'use strict'; @@ -226102,14 +220532,8 @@ module.exports = function calc() { return wrap({}); }; -},{"../../lib/gup":775}],1319:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib/gup":792}],1330:[function(_dereq_,module,exports){ + 'use strict'; @@ -226162,14 +220586,8 @@ module.exports = { } }; -},{}],1320:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1331:[function(_dereq_,module,exports){ + 'use strict'; @@ -226357,14 +220775,8 @@ function makeIdentity() { }; } -},{"../../lib/extend":768,"./constants":1319,"fast-isnumeric":241}],1321:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib/extend":785,"./constants":1330,"fast-isnumeric":241}],1332:[function(_dereq_,module,exports){ + 'use strict'; @@ -226440,14 +220852,8 @@ function rowFromTo(d) { return [rowFrom, rowTo]; } -},{"../../lib/extend":768}],1322:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib/extend":785}],1333:[function(_dereq_,module,exports){ + 'use strict'; @@ -226505,14 +220911,8 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout traceOut._length = null; }; -},{"../../lib":778,"../../plots/domain":855,"./attributes":1316}],1323:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../plots/domain":872,"./attributes":1327}],1334:[function(_dereq_,module,exports){ + 'use strict'; @@ -226527,23 +220927,16 @@ module.exports = { basePlotModule: _dereq_('./base_plot'), categories: ['noOpacity'], meta: { - } }; -},{"./attributes":1316,"./base_plot":1317,"./calc":1318,"./defaults":1322,"./plot":1324}],1324:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"./attributes":1327,"./base_plot":1328,"./calc":1329,"./defaults":1333,"./plot":1335}],1335:[function(_dereq_,module,exports){ + 'use strict'; var c = _dereq_('./constants'); -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var gup = _dereq_('../../lib/gup'); var Drawing = _dereq_('../../components/drawing'); var svgUtil = _dereq_('../../lib/svg_text_utils'); @@ -227428,14 +221821,8 @@ function allRowsHeight(rowBlock) { function getBlock(d) {return d.rowBlocks[d.page];} function getRow(l, i) {return l.rows[i - l.firstRowIndex];} -},{"../../components/color":643,"../../components/drawing":665,"../../lib":778,"../../lib/gup":775,"../../lib/svg_text_utils":803,"./constants":1319,"./data_preparation_helper":1320,"./data_split_helpers":1321,"d3":169}],1325:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../components/drawing":682,"../../lib":795,"../../lib/gup":792,"../../lib/svg_text_utils":820,"./constants":1330,"./data_preparation_helper":1331,"./data_split_helpers":1332,"@plotly/d3":58}],1336:[function(_dereq_,module,exports){ + 'use strict'; @@ -227472,39 +221859,31 @@ module.exports = { 'dice-slice' ], dflt: 'squarify', - editType: 'plot', - }, squarifyratio: { valType: 'number', - min: 1, dflt: 1, editType: 'plot', - }, flip: { valType: 'flaglist', - flags: [ 'x', 'y' ], dflt: '', editType: 'plot', - }, pad: { valType: 'number', - min: 0, dflt: 3, editType: 'plot', - }, editType: 'calc', @@ -227514,31 +221893,23 @@ module.exports = { pad: { t: { valType: 'number', - min: 0, editType: 'plot', - }, l: { valType: 'number', - min: 0, editType: 'plot', - }, r: { valType: 'number', - min: 0, editType: 'plot', - }, b: { valType: 'number', - min: 0, editType: 'plot', - }, editType: 'calc' @@ -227550,8 +221921,6 @@ module.exports = { valType: 'enumerated', values: [true, false, 'reversed'], editType: 'style', - - }, line: sunburstAttrs.marker.line, @@ -227568,9 +221937,7 @@ module.exports = { visible: { valType: 'boolean', dflt: true, - editType: 'plot', - }, side: { @@ -227580,9 +221947,7 @@ module.exports = { 'bottom' ], dflt: 'top', - editType: 'plot', - }, edgeshape: { @@ -227595,21 +221960,16 @@ module.exports = { '\\' ], dflt: '>', - editType: 'plot', - }, thickness: { valType: 'number', min: 12, - editType: 'plot', - }, textfont: extendFlat({}, pieAttrs.textfont, { - }), editType: 'calc' @@ -227631,7 +221991,6 @@ module.exports = { textfont: pieAttrs.textfont, insidetextfont: pieAttrs.insidetextfont, outsidetextfont: extendFlat({}, pieAttrs.outsidetextfont, { - }), textposition: { @@ -227642,9 +222001,7 @@ module.exports = { 'bottom left', 'bottom center', 'bottom right' ], dflt: 'top left', - editType: 'plot', - }, sort: pieAttrs.sort, root: sunburstAttrs.root, @@ -227652,14 +222009,8 @@ module.exports = { domain: domainAttrs({name: 'treemap', trace: true, 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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/attributes":667,"../../lib/extend":785,"../../plots/domain":872,"../../plots/template_attributes":917,"../pie/attributes":1172,"../sunburst/attributes":1310,"./constants":1339}],1337:[function(_dereq_,module,exports){ + 'use strict'; @@ -227675,14 +222026,8 @@ exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) plots.cleanBasePlot(exports.name, newFullData, newFullLayout, oldFullData, oldFullLayout); }; -},{"../../plots/plots":891}],1327:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/plots":908}],1338:[function(_dereq_,module,exports){ + 'use strict'; @@ -227696,14 +222041,8 @@ exports.crossTraceCalc = function(gd) { return calc._runCrossTraceCalc('treemap', gd); }; -},{"../sunburst/calc":1301}],1328:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../sunburst/calc":1312}],1339:[function(_dereq_,module,exports){ + 'use strict'; @@ -227725,14 +222064,8 @@ module.exports = { gapWithPathbar: 1 // i.e. one pixel }; -},{}],1329:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1340:[function(_dereq_,module,exports){ + 'use strict'; @@ -227852,18 +222185,12 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout traceOut._length = null; }; -},{"../../components/color":643,"../../components/colorscale":655,"../../lib":778,"../../plots/domain":855,"../bar/constants":923,"../bar/defaults":925,"./attributes":1325}],1330:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../components/colorscale":672,"../../lib":795,"../../plots/domain":872,"../bar/constants":934,"../bar/defaults":936,"./attributes":1336}],1341:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Lib = _dereq_('../../lib'); var Drawing = _dereq_('../../components/drawing'); var svgTextUtils = _dereq_('../../lib/svg_text_utils'); @@ -228024,18 +222351,12 @@ module.exports = function drawAncestors(gd, cd, entry, slices, opts) { }); }; -},{"../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/drawing":682,"../../lib":795,"../../lib/svg_text_utils":820,"../sunburst/fx":1315,"../sunburst/helpers":1316,"./constants":1339,"./partition":1346,"./style":1348,"@plotly/d3":58}],1342:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Lib = _dereq_('../../lib'); var Drawing = _dereq_('../../components/drawing'); var svgTextUtils = _dereq_('../../lib/svg_text_utils'); @@ -228237,14 +222558,8 @@ module.exports = function drawDescendants(gd, cd, entry, slices, opts) { return nextOfPrevEntry; }; -},{"../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/drawing":682,"../../lib":795,"../../lib/svg_text_utils":820,"../sunburst/fx":1315,"../sunburst/helpers":1316,"../sunburst/plot":1320,"./constants":1339,"./partition":1346,"./style":1348,"@plotly/d3":58}],1343:[function(_dereq_,module,exports){ + 'use strict'; @@ -228269,45 +222584,28 @@ module.exports = { colorbar: _dereq_('../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../scatter/marker_colorbar":1216,"./attributes":1336,"./base_plot":1337,"./calc":1338,"./defaults":1340,"./layout_attributes":1344,"./layout_defaults":1345,"./plot":1347,"./style":1348}],1344:[function(_dereq_,module,exports){ + 'use strict'; module.exports = { treemapcolorway: { valType: 'colorlist', - editType: 'calc', - }, extendtreemapcolors: { valType: 'boolean', dflt: true, - editType: 'calc', - } }; -},{}],1334:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1345:[function(_dereq_,module,exports){ + 'use strict'; @@ -228322,14 +222620,8 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) { coerce('extendtreemapcolors'); }; -},{"../../lib":778,"./layout_attributes":1333}],1335:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"./layout_attributes":1344}],1346:[function(_dereq_,module,exports){ + 'use strict'; @@ -228428,18 +222720,12 @@ function flipTree(node, size, opts) { } } -},{"d3-hierarchy":161}],1336:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"d3-hierarchy":163}],1347:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var helpers = _dereq_('../sunburst/helpers'); @@ -229063,18 +223349,12 @@ function plotOne(gd, cd, element, transitionOpts) { } } -},{"../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../bar/constants":934,"../bar/plot":943,"../bar/style":946,"../bar/uniform_text":948,"../sunburst/helpers":1316,"./constants":1339,"./draw_ancestors":1341,"./draw_descendants":1342,"@plotly/d3":58}],1348:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Color = _dereq_('../../components/color'); var Lib = _dereq_('../../lib'); var helpers = _dereq_('../sunburst/helpers'); @@ -229165,14 +223445,8 @@ module.exports = { styleOne: styleOne }; -},{"../../components/color":643,"../../lib":778,"../bar/uniform_text":937,"../sunburst/helpers":1305,"d3":169}],1338:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../lib":795,"../bar/uniform_text":948,"../sunburst/helpers":1316,"@plotly/d3":58}],1349:[function(_dereq_,module,exports){ + 'use strict'; @@ -229186,43 +223460,33 @@ module.exports = { y0: boxAttrs.y0, name: extendFlat({}, boxAttrs.name, { - }), orientation: extendFlat({}, boxAttrs.orientation, { - }), bandwidth: { valType: 'number', min: 0, - editType: 'calc', - }, scalegroup: { valType: 'string', - dflt: '', editType: 'calc', - }, scalemode: { valType: 'enumerated', values: ['width', 'count'], dflt: 'width', - editType: 'calc', - }, spanmode: { valType: 'enumerated', values: ['soft', 'hard', 'manual'], dflt: 'soft', - editType: 'calc', - }, span: { valType: 'info_array', @@ -229230,42 +223494,32 @@ module.exports = { {valType: 'any', editType: 'calc'}, {valType: 'any', editType: 'calc'} ], - editType: 'calc', - }, line: { color: { valType: 'color', - editType: 'style', - }, width: { valType: 'number', - min: 0, dflt: 2, editType: 'style', - }, editType: 'plot' }, fillcolor: boxAttrs.fillcolor, points: extendFlat({}, boxAttrs.boxpoints, { - }), jitter: extendFlat({}, boxAttrs.jitter, { - }), pointpos: extendFlat({}, boxAttrs.pointpos, { - }), width: extendFlat({}, boxAttrs.width, { - }), marker: boxAttrs.marker, @@ -229277,38 +223531,28 @@ module.exports = { visible: { valType: 'boolean', dflt: false, - editType: 'plot', - }, width: { valType: 'number', min: 0, max: 1, dflt: 0.25, - editType: 'plot', - }, fillcolor: { valType: 'color', - editType: 'style', - }, line: { color: { valType: 'color', - editType: 'style', - }, width: { valType: 'number', min: 0, - editType: 'style', - }, editType: 'style' }, @@ -229319,22 +223563,16 @@ module.exports = { visible: { valType: 'boolean', dflt: false, - editType: 'plot', - }, color: { valType: 'color', - editType: 'style', - }, width: { valType: 'number', min: 0, - editType: 'style', - }, editType: 'plot' }, @@ -229343,9 +223581,7 @@ module.exports = { valType: 'enumerated', values: ['both', 'positive', 'negative'], dflt: 'both', - editType: 'calc', - }, offsetgroup: boxAttrs.offsetgroup, @@ -229359,20 +223595,12 @@ module.exports = { flags: ['violins', 'points', 'kde'], dflt: 'violins+points+kde', extras: ['all'], - editType: 'style', - } }; -},{"../../lib/extend":768,"../box/attributes":946}],1339:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib/extend":785,"../box/attributes":957}],1350:[function(_dereq_,module,exports){ + 'use strict'; @@ -229541,14 +223769,8 @@ function calcSpan(trace, cdi, valAxis, bandwidth) { return spanOut; } -},{"../../constants/numerical":753,"../../lib":778,"../../plots/cartesian/axes":828,"../box/calc":947,"./helpers":1342}],1340:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/numerical":770,"../../lib":795,"../../plots/cartesian/axes":845,"../box/calc":958,"./helpers":1353}],1351:[function(_dereq_,module,exports){ + 'use strict'; @@ -229584,14 +223806,8 @@ module.exports = function crossTraceCalc(gd, plotinfo) { } }; -},{"../box/cross_trace_calc":948}],1341:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../box/cross_trace_calc":959}],1352:[function(_dereq_,module,exports){ + 'use strict'; @@ -229645,14 +223861,8 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout if(!meanLineVisible) traceOut.meanline = {visible: false}; }; -},{"../../components/color":643,"../../lib":778,"../box/defaults":949,"./attributes":1338}],1342:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../lib":795,"../box/defaults":960,"./attributes":1349}],1353:[function(_dereq_,module,exports){ + 'use strict'; @@ -229718,14 +223928,8 @@ exports.getKdeValue = function(calcItem, trace, valueDist) { exports.extractVal = function(o) { return o.v; }; -},{"../../lib":778}],1343:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795}],1354:[function(_dereq_,module,exports){ + 'use strict'; @@ -229830,14 +224034,8 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode, hoverLay return closeData; }; -},{"../../lib":778,"../../plots/cartesian/axes":828,"../box/hover":951,"./helpers":1342}],1344:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../../plots/cartesian/axes":845,"../box/hover":962,"./helpers":1353}],1355:[function(_dereq_,module,exports){ + 'use strict'; @@ -229860,18 +224058,11 @@ module.exports = { basePlotModule: _dereq_('../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/cartesian":858,"../box/defaults":960,"../box/select":967,"../scatter/style":1222,"./attributes":1349,"./calc":1350,"./cross_trace_calc":1351,"./defaults":1352,"./hover":1354,"./layout_attributes":1356,"./layout_defaults":1357,"./plot":1358,"./style":1359}],1356:[function(_dereq_,module,exports){ + 'use strict'; @@ -229880,24 +224071,15 @@ var extendFlat = _dereq_('../../lib').extendFlat; module.exports = { violinmode: extendFlat({}, boxLayoutAttrs.boxmode, { - }), violingap: extendFlat({}, boxLayoutAttrs.boxgap, { - }), violingroupgap: extendFlat({}, boxLayoutAttrs.boxgroupgap, { - }) }; -},{"../../lib":778,"../box/layout_attributes":953}],1346:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../box/layout_attributes":964}],1357:[function(_dereq_,module,exports){ + 'use strict'; @@ -229912,18 +224094,12 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) { boxLayoutDefaults._supply(layoutIn, layoutOut, fullData, coerce, 'violin'); }; -},{"../../lib":778,"../box/layout_defaults":954,"./layout_attributes":1345}],1347:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../box/layout_defaults":965,"./layout_attributes":1356}],1358:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Lib = _dereq_('../../lib'); var Drawing = _dereq_('../../components/drawing'); @@ -230102,18 +224278,12 @@ module.exports = function plot(gd, plotinfo, cdViolins, violinLayer) { }); }; -},{"../../components/drawing":665,"../../lib":778,"../box/plot":955,"../scatter/line_points":1201,"./helpers":1342,"d3":169}],1348:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/drawing":682,"../../lib":795,"../box/plot":966,"../scatter/line_points":1212,"./helpers":1353,"@plotly/d3":58}],1359:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Color = _dereq_('../../components/color'); var stylePoints = _dereq_('../scatter/style').stylePoints; @@ -230157,14 +224327,8 @@ module.exports = function style(gd) { }); }; -},{"../../components/color":643,"../scatter/style":1211,"d3":169}],1349:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../scatter/style":1222,"@plotly/d3":58}],1360:[function(_dereq_,module,exports){ + 'use strict'; @@ -230187,17 +224351,13 @@ var attrs = module.exports = overrideAll(extendFlat({ spaceframe: { show: { valType: 'boolean', - dflt: false, - }, fill: { valType: 'number', - min: 0, max: 1, dflt: 1, - } }, @@ -230230,14 +224390,8 @@ colorScaleAttrs('', { attrs.x.editType = attrs.y.editType = attrs.z.editType = attrs.value.editType = 'calc+clearAxisTypes'; attrs.transforms = undefined; -},{"../../components/colorscale/attributes":650,"../../lib/extend":768,"../../plot_api/edit_types":810,"../../plots/attributes":824,"../isosurface/attributes":1123,"../surface/attributes":1311}],1350:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale/attributes":667,"../../lib/extend":785,"../../plot_api/edit_types":827,"../../plots/attributes":841,"../isosurface/attributes":1134,"../surface/attributes":1322}],1361:[function(_dereq_,module,exports){ + 'use strict'; @@ -230363,14 +224517,8 @@ function createVolumeTrace(scene, data) { module.exports = createVolumeTrace; -},{"../../components/colorscale":655,"../../lib/gl_format_color":774,"../../lib/str2rgbarray":802,"../../plots/gl3d/zip3":881,"../isosurface/convert":1125,"gl-mesh3d":309}],1351:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/colorscale":672,"../../lib/gl_format_color":791,"../../lib/str2rgbarray":819,"../../plots/gl3d/zip3":898,"../isosurface/convert":1136,"gl-mesh3d":309}],1362:[function(_dereq_,module,exports){ + 'use strict'; @@ -230389,14 +224537,8 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout opacityscaleDefaults(traceIn, traceOut, layout, coerce); }; -},{"../../lib":778,"../isosurface/defaults":1126,"../surface/defaults":1314,"./attributes":1349}],1352:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"../isosurface/defaults":1137,"../surface/defaults":1325,"./attributes":1360}],1363:[function(_dereq_,module,exports){ + 'use strict'; @@ -230415,18 +224557,11 @@ module.exports = { basePlotModule: _dereq_('../../plots/gl3d'), categories: ['gl3d', 'showLegend'], meta: { - } }; -},{"../../plots/gl3d":870,"../isosurface/calc":1124,"./attributes":1349,"./convert":1350,"./defaults":1351}],1353:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/gl3d":887,"../isosurface/calc":1135,"./attributes":1360,"./convert":1361,"./defaults":1362}],1364:[function(_dereq_,module,exports){ + 'use strict'; @@ -230445,18 +224580,15 @@ function directionAttrs(dirTxt) { color: extendFlat({}, barAttrs.marker.color, { arrayOk: false, editType: 'style', - }), line: { color: extendFlat({}, barAttrs.marker.line.color, { arrayOk: false, editType: 'style', - }), width: extendFlat({}, barAttrs.marker.line.width, { arrayOk: false, editType: 'style', - }), editType: 'style', }, @@ -230470,18 +224602,14 @@ module.exports = { measure: { valType: 'data_array', dflt: [], - editType: 'calc', - }, base: { valType: 'number', dflt: null, arrayOk: false, - editType: 'calc', - }, x: barAttrs.x, @@ -230511,10 +224639,8 @@ module.exports = { valType: 'flaglist', flags: ['label', 'text', 'initial', 'delta', 'final'], extras: ['none'], - editType: 'plot', arrayOk: false, - }, // TODO: incorporate `label` and `value` in the eventData texttemplate: texttemplateAttrs({editType: 'plot'}, { @@ -230552,16 +224678,12 @@ module.exports = { valType: 'enumerated', values: ['spanning', 'between'], dflt: 'between', - editType: 'plot', - }, visible: { valType: 'boolean', dflt: true, - editType: 'plot', - }, editType: 'plot' }, @@ -230570,14 +224692,8 @@ module.exports = { alignmentgroup: barAttrs.alignmentgroup }; -},{"../../components/color":643,"../../lib/extend":768,"../../plots/attributes":824,"../../plots/template_attributes":906,"../bar/attributes":921,"../scatter/attributes":1187,"./constants":1355}],1354:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../lib/extend":785,"../../plots/attributes":841,"../../plots/template_attributes":917,"../bar/attributes":932,"../scatter/attributes":1198,"./constants":1366}],1365:[function(_dereq_,module,exports){ + 'use strict'; @@ -230684,14 +224800,8 @@ module.exports = function calc(gd, trace) { return cd; }; -},{"../../constants/numerical":753,"../../lib":778,"../../plots/cartesian/align_period":825,"../../plots/cartesian/axes":828,"../scatter/calc_selection":1189}],1355:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../constants/numerical":770,"../../lib":795,"../../plots/cartesian/align_period":842,"../../plots/cartesian/axes":845,"../scatter/calc_selection":1200}],1366:[function(_dereq_,module,exports){ + 'use strict'; @@ -230703,14 +224813,8 @@ module.exports = { ] }; -},{}],1356:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1367:[function(_dereq_,module,exports){ + 'use strict'; @@ -230776,14 +224880,8 @@ module.exports = function crossTraceCalc(gd, plotinfo) { } }; -},{"../bar/cross_trace_calc":924}],1357:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../bar/cross_trace_calc":935}],1368:[function(_dereq_,module,exports){ + 'use strict'; @@ -230885,14 +224983,8 @@ module.exports = { crossTraceDefaults: crossTraceDefaults }; -},{"../../components/color":643,"../../constants/delta.js":747,"../../lib":778,"../bar/defaults":925,"../scatter/period_defaults":1207,"../scatter/xy_defaults":1214,"./attributes":1353}],1358:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../constants/delta.js":764,"../../lib":795,"../bar/defaults":936,"../scatter/period_defaults":1218,"../scatter/xy_defaults":1225,"./attributes":1364}],1369:[function(_dereq_,module,exports){ + 'use strict'; @@ -230912,14 +225004,8 @@ module.exports = function eventData(out, pt /* , trace, cd, pointNumber */) { return out; }; -},{}],1359:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1370:[function(_dereq_,module,exports){ + 'use strict'; @@ -231007,14 +225093,8 @@ function getTraceColor(trace, di) { else if(opacity(mlc) && mlw) return mlc; } -},{"../../components/color":643,"../../constants/delta.js":747,"../../plots/cartesian/axes":828,"../bar/hover":928}],1360:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../constants/delta.js":764,"../../plots/cartesian/axes":845,"../bar/hover":939}],1371:[function(_dereq_,module,exports){ + 'use strict'; @@ -231038,18 +225118,11 @@ module.exports = { basePlotModule: _dereq_('../../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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../plots/cartesian":858,"../bar/select":944,"./attributes":1364,"./calc":1365,"./cross_trace_calc":1367,"./defaults":1368,"./event_data":1369,"./hover":1370,"./layout_attributes":1372,"./layout_defaults":1373,"./plot":1374,"./style":1375}],1372:[function(_dereq_,module,exports){ + 'use strict'; @@ -231058,37 +225131,25 @@ module.exports = { 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(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1373:[function(_dereq_,module,exports){ + 'use strict'; @@ -231118,18 +225179,12 @@ module.exports = function(layoutIn, layoutOut, fullData) { } }; -},{"../../lib":778,"./layout_attributes":1361}],1363:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../lib":795,"./layout_attributes":1372}],1374:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Lib = _dereq_('../../lib'); var Drawing = _dereq_('../../components/drawing'); var BADNUM = _dereq_('../../constants/numerical').BADNUM; @@ -231249,18 +225304,12 @@ function getXY(di, xa, ya, isHorizontal) { return isHorizontal ? [s, p] : [p, s]; } -},{"../../components/drawing":665,"../../constants/numerical":753,"../../lib":778,"../bar/plot":932,"../bar/uniform_text":937,"d3":169}],1364:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/drawing":682,"../../constants/numerical":770,"../../lib":795,"../bar/plot":943,"../bar/uniform_text":948,"@plotly/d3":58}],1375:[function(_dereq_,module,exports){ + 'use strict'; -var d3 = _dereq_('d3'); +var d3 = _dereq_('@plotly/d3'); var Drawing = _dereq_('../../components/drawing'); var Color = _dereq_('../../components/color'); @@ -231310,14 +225359,8 @@ module.exports = { style: style }; -},{"../../components/color":643,"../../components/drawing":665,"../../constants/interactions":752,"../bar/style":935,"../bar/uniform_text":937,"d3":169}],1365:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../../components/color":660,"../../components/drawing":682,"../../constants/interactions":769,"../bar/style":946,"../bar/uniform_text":948,"@plotly/d3":58}],1376:[function(_dereq_,module,exports){ + 'use strict'; @@ -231335,9 +225378,7 @@ var attrs = exports.attributes = { enabled: { valType: 'boolean', dflt: true, - editType: 'calc', - }, groups: { // TODO: groupby should support string or array grouping this way too @@ -231347,40 +225388,30 @@ var attrs = exports.attributes = { noBlank: true, arrayOk: true, 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: true, - editType: 'calc', - }, editType: 'calc' }, @@ -231734,14 +225765,8 @@ function last(array, indices) { return array[indices[indices.length - 1]]; } -},{"../constants/numerical":753,"../lib":778,"../plot_api/plot_schema":816,"../plots/cartesian/axes":828,"./helpers":1368}],1366:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../constants/numerical":770,"../lib":795,"../plot_api/plot_schema":833,"../plots/cartesian/axes":845,"./helpers":1379}],1377:[function(_dereq_,module,exports){ + 'use strict'; @@ -231763,9 +225788,7 @@ exports.attributes = { enabled: { valType: 'boolean', dflt: true, - editType: 'calc', - }, target: { valType: 'string', @@ -231773,9 +225796,7 @@ exports.attributes = { noBlank: true, arrayOk: true, dflt: 'x', - editType: 'calc', - }, operation: { valType: 'enumerated', @@ -231784,23 +225805,17 @@ exports.attributes = { .concat(INTERVAL_OPS) .concat(SET_OPS), dflt: '=', - editType: 'calc', - }, value: { valType: 'any', dflt: 0, - editType: 'calc', - }, preservegaps: { valType: 'boolean', dflt: false, - editType: 'calc', - }, editType: 'calc' }; @@ -232012,14 +226027,8 @@ function getFilterFunc(opts, d2c, targetCalendar) { } } -},{"../constants/filter_ops":749,"../lib":778,"../plots/cartesian/axes":828,"../registry":911,"./helpers":1368}],1367:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../constants/filter_ops":766,"../lib":795,"../plots/cartesian/axes":845,"../registry":922,"./helpers":1379}],1378:[function(_dereq_,module,exports){ + 'use strict'; @@ -232036,37 +226045,27 @@ exports.attributes = { enabled: { valType: 'boolean', dflt: true, - editType: 'calc', - }, groups: { valType: 'data_array', dflt: [], - editType: 'calc', - }, nameformat: { valType: 'string', - editType: 'calc', - }, styles: { _isLinkedToArray: 'style', target: { valType: 'string', - editType: 'calc', - }, value: { valType: 'any', - dflt: {}, editType: 'calc', - _compareAsJSON: true }, editType: 'calc' @@ -232274,14 +226273,8 @@ function transformOne(trace, state) { return newData; } -},{"../lib":778,"../plot_api/plot_schema":816,"../plots/plots":891,"./helpers":1368}],1368:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../lib":795,"../plot_api/plot_schema":833,"../plots/plots":908,"./helpers":1379}],1379:[function(_dereq_,module,exports){ + 'use strict'; @@ -232300,14 +226293,8 @@ exports.pointsAccessorFunction = function(transforms, opts) { return originalPointsAccessor; }; -},{}],1369:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{}],1380:[function(_dereq_,module,exports){ + 'use strict'; @@ -232325,9 +226312,7 @@ exports.attributes = { enabled: { valType: 'boolean', dflt: true, - editType: 'calc', - }, target: { valType: 'string', @@ -232335,17 +226320,13 @@ exports.attributes = { noBlank: true, arrayOk: true, dflt: 'x', - editType: 'calc', - }, order: { valType: 'enumerated', values: ['ascending', 'descending'], dflt: 'ascending', - editType: 'calc', - }, editType: 'calc' }; @@ -232452,14 +226433,8 @@ function getSortFunc(opts, d2c) { } } -},{"../constants/numerical":753,"../lib":778,"../plots/cartesian/axes":828,"./helpers":1368}],1370:[function(_dereq_,module,exports){ -/** -* Copyright 2012-2020, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ +},{"../constants/numerical":770,"../lib":795,"../plots/cartesian/axes":845,"./helpers":1379}],1381:[function(_dereq_,module,exports){ + 'use strict';