@unovis/ts 1.1.1-beta.7 → 1.1.1-beta.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/area/config.d.ts +25 -0
- package/components/area/config.js +16 -0
- package/components/area/config.js.map +1 -0
- package/components/area/index.d.ts +19 -0
- package/components/area/index.js +102 -0
- package/components/area/index.js.map +1 -0
- package/components/area/style.d.ts +3 -0
- package/{src/components/area/style.ts → components/area/style.js} +10 -9
- package/components/area/style.js.map +1 -0
- package/components/area/types.d.ts +6 -0
- package/components/axis/config.d.ts +71 -0
- package/components/axis/config.js +32 -0
- package/components/axis/config.js.map +1 -0
- package/components/axis/index.d.ts +44 -0
- package/components/axis/index.js +305 -0
- package/components/axis/index.js.map +1 -0
- package/components/axis/style.d.ts +9 -0
- package/{src/components/axis/style.ts → components/axis/style.js} +22 -27
- package/components/axis/style.js.map +1 -0
- package/components/axis/types.d.ts +4 -0
- package/components/axis/types.js +8 -0
- package/components/axis/types.js.map +1 -0
- package/components/brush/config.d.ts +42 -0
- package/components/brush/config.js +24 -0
- package/components/brush/config.js.map +1 -0
- package/components/brush/index.d.ts +28 -0
- package/components/brush/index.js +199 -0
- package/components/brush/index.js.map +1 -0
- package/components/brush/style.d.ts +5 -0
- package/{src/components/brush/style.ts → components/brush/style.js} +14 -15
- package/components/brush/style.js.map +1 -0
- package/components/brush/types.d.ts +7 -0
- package/components/brush/types.js +8 -0
- package/components/brush/types.js.map +1 -0
- package/components/bullet-legend/config.d.ts +34 -0
- package/components/bullet-legend/config.js +16 -0
- package/components/bullet-legend/config.js.map +1 -0
- package/components/bullet-legend/index.d.ts +19 -0
- package/components/bullet-legend/index.js +79 -0
- package/components/bullet-legend/index.js.map +1 -0
- package/components/bullet-legend/style.d.ts +6 -0
- package/{src/components/bullet-legend/style.ts → components/bullet-legend/style.js} +16 -18
- package/components/bullet-legend/style.js.map +1 -0
- package/components/bullet-legend/types.d.ts +7 -0
- package/components/bullet-legend/types.js +2 -0
- package/components/bullet-legend/types.js.map +1 -0
- package/components/chord-diagram/config.d.ts +44 -0
- package/components/chord-diagram/config.js +25 -0
- package/components/chord-diagram/config.js.map +1 -0
- package/components/chord-diagram/index.d.ts +42 -0
- package/components/chord-diagram/index.js +305 -0
- package/components/chord-diagram/index.js.map +1 -0
- package/components/chord-diagram/modules/label.d.ts +8 -0
- package/components/chord-diagram/modules/label.js +115 -0
- package/components/chord-diagram/modules/label.js.map +1 -0
- package/components/chord-diagram/modules/link.d.ts +21 -0
- package/components/chord-diagram/modules/link.js +63 -0
- package/components/chord-diagram/modules/link.js.map +1 -0
- package/components/chord-diagram/modules/node.d.ts +17 -0
- package/components/chord-diagram/modules/node.js +52 -0
- package/components/chord-diagram/modules/node.js.map +1 -0
- package/components/chord-diagram/style.d.ts +13 -0
- package/{src/components/chord-diagram/style.ts → components/chord-diagram/style.js} +30 -39
- package/components/chord-diagram/style.js.map +1 -0
- package/components/chord-diagram/types.d.ts +58 -0
- package/components/chord-diagram/types.js +8 -0
- package/components/chord-diagram/types.js.map +1 -0
- package/components/crosshair/config.d.ts +43 -0
- package/components/crosshair/config.js +19 -0
- package/components/crosshair/config.js.map +1 -0
- package/components/crosshair/index.d.ts +35 -0
- package/components/crosshair/index.js +183 -0
- package/components/crosshair/index.js.map +1 -0
- package/components/crosshair/style.d.ts +4 -0
- package/{src/components/crosshair/style.ts → components/crosshair/style.js} +12 -12
- package/components/crosshair/style.js.map +1 -0
- package/components/crosshair/types.d.ts +13 -0
- package/components/crosshair/types.js +2 -0
- package/components/crosshair/types.js.map +1 -0
- package/components/donut/config.d.ts +59 -0
- package/components/donut/config.js +28 -0
- package/components/donut/config.js.map +1 -0
- package/components/donut/index.d.ts +21 -0
- package/components/donut/index.js +107 -0
- package/components/donut/index.js.map +1 -0
- package/components/donut/modules/arc.d.ts +10 -0
- package/components/donut/modules/arc.js +59 -0
- package/components/donut/modules/arc.js.map +1 -0
- package/components/donut/style.d.ts +7 -0
- package/{src/components/donut/style.ts → components/donut/style.js} +18 -20
- package/components/donut/style.js.map +1 -0
- package/components/donut/types.d.ts +20 -0
- package/components/flow-legend/config.d.ts +29 -0
- package/components/flow-legend/config.js +18 -0
- package/components/flow-legend/config.js.map +1 -0
- package/components/flow-legend/index.d.ts +16 -0
- package/components/flow-legend/index.js +75 -0
- package/components/flow-legend/index.js.map +1 -0
- package/components/flow-legend/style.d.ts +8 -0
- package/{src/components/flow-legend/style.ts → components/flow-legend/style.js} +21 -25
- package/components/flow-legend/style.js.map +1 -0
- package/components/flow-legend/types.d.ts +9 -0
- package/components/flow-legend/types.js +8 -0
- package/components/flow-legend/types.js.map +1 -0
- package/components/free-brush/config.d.ts +45 -0
- package/components/free-brush/config.js +24 -0
- package/components/free-brush/config.js.map +1 -0
- package/components/free-brush/index.d.ts +20 -0
- package/components/free-brush/index.js +192 -0
- package/components/free-brush/index.js.map +1 -0
- package/components/free-brush/style.d.ts +4 -0
- package/{src/components/free-brush/style.ts → components/free-brush/style.js} +12 -12
- package/components/free-brush/style.js.map +1 -0
- package/components/free-brush/types.d.ts +7 -0
- package/components/free-brush/types.js +9 -0
- package/components/free-brush/types.js.map +1 -0
- package/components/graph/config.d.ts +238 -0
- package/components/graph/config.js +84 -0
- package/components/graph/config.js.map +1 -0
- package/components/graph/index.d.ts +126 -0
- package/components/graph/index.js +656 -0
- package/components/graph/index.js.map +1 -0
- package/components/graph/modules/layout-helpers.d.ts +21 -0
- package/components/graph/modules/layout-helpers.js +69 -0
- package/components/graph/modules/layout-helpers.js.map +1 -0
- package/components/graph/modules/layout.d.ts +10 -0
- package/components/graph/modules/layout.js +399 -0
- package/components/graph/modules/layout.js.map +1 -0
- package/components/graph/modules/link/helper.d.ts +25 -0
- package/components/graph/modules/link/helper.js +74 -0
- package/components/graph/modules/link/helper.js.map +1 -0
- package/components/graph/modules/link/index.d.ts +11 -0
- package/components/graph/modules/link/index.js +212 -0
- package/components/graph/modules/link/index.js.map +1 -0
- package/components/graph/modules/link/style.d.ts +15 -0
- package/{src/components/graph/modules/link/style.ts → components/graph/modules/link/style.js} +34 -45
- package/components/graph/modules/link/style.js.map +1 -0
- package/components/graph/modules/node/helper.d.ts +21 -0
- package/components/graph/modules/node/helper.js +126 -0
- package/components/graph/modules/node/helper.js.map +1 -0
- package/components/graph/modules/node/index.d.ts +11 -0
- package/components/graph/modules/node/index.js +252 -0
- package/components/graph/modules/node/index.js.map +1 -0
- package/components/graph/modules/node/style.d.ts +24 -0
- package/{src/components/graph/modules/node/style.ts → components/graph/modules/node/style.js} +52 -72
- package/components/graph/modules/node/style.js.map +1 -0
- package/components/graph/modules/panel/helper.d.ts +18 -0
- package/components/graph/modules/panel/helper.js +111 -0
- package/components/graph/modules/panel/helper.js.map +1 -0
- package/components/graph/modules/panel/index.d.ts +7 -0
- package/components/graph/modules/panel/index.js +98 -0
- package/components/graph/modules/panel/index.js.map +1 -0
- package/components/graph/modules/panel/style.d.ts +14 -0
- package/{src/components/graph/modules/panel/style.ts → components/graph/modules/panel/style.js} +32 -42
- package/components/graph/modules/panel/style.js.map +1 -0
- package/components/graph/modules/shape.d.ts +6 -0
- package/components/graph/modules/shape.js +80 -0
- package/components/graph/modules/shape.js.map +1 -0
- package/components/graph/modules/zoom-levels.d.ts +6 -0
- package/components/graph/modules/zoom-levels.js +10 -0
- package/components/graph/modules/zoom-levels.js.map +1 -0
- package/components/graph/style.d.ts +6 -0
- package/components/graph/style.js +66 -0
- package/components/graph/style.js.map +1 -0
- package/components/graph/types.d.ts +125 -0
- package/components/graph/types.js +30 -0
- package/components/graph/types.js.map +1 -0
- package/components/grouped-bar/config.d.ts +36 -0
- package/components/grouped-bar/config.js +20 -0
- package/components/grouped-bar/config.js.map +1 -0
- package/components/grouped-bar/index.d.ts +32 -0
- package/components/grouped-bar/index.js +249 -0
- package/components/grouped-bar/index.js.map +1 -0
- package/components/grouped-bar/style.d.ts +5 -0
- package/{src/components/grouped-bar/style.ts → components/grouped-bar/style.js} +14 -15
- package/components/grouped-bar/style.js.map +1 -0
- package/components/leaflet-flow-map/config.d.ts +46 -0
- package/components/leaflet-flow-map/config.js +25 -0
- package/components/leaflet-flow-map/config.js.map +1 -0
- package/components/leaflet-flow-map/index.d.ts +52 -0
- package/components/leaflet-flow-map/index.js +220 -0
- package/components/leaflet-flow-map/index.js.map +1 -0
- package/components/leaflet-flow-map/renderer-utils.d.ts +5 -0
- package/components/leaflet-flow-map/renderer-utils.js +15 -0
- package/components/leaflet-flow-map/renderer-utils.js.map +1 -0
- package/components/leaflet-flow-map/renderer.d.ts +26 -0
- package/components/leaflet-flow-map/renderer.js +117 -0
- package/components/leaflet-flow-map/renderer.js.map +1 -0
- package/components/leaflet-flow-map/shaders.d.ts +2 -0
- package/{src/components/leaflet-flow-map/shaders.ts → components/leaflet-flow-map/shaders.js} +7 -4
- package/components/leaflet-flow-map/shaders.js.map +1 -0
- package/components/leaflet-flow-map/types.d.ts +23 -0
- package/components/leaflet-map/config.d.ts +193 -0
- package/components/leaflet-map/config.js +71 -0
- package/components/leaflet-map/config.js.map +1 -0
- package/components/leaflet-map/index.d.ts +130 -0
- package/components/leaflet-map/index.js +690 -0
- package/components/leaflet-map/index.js.map +1 -0
- package/components/leaflet-map/leaflet.css.js +5 -0
- package/components/leaflet-map/leaflet.css.js.map +1 -0
- package/components/leaflet-map/modules/clusterBackground.d.ts +5 -0
- package/components/leaflet-map/modules/clusterBackground.js +27 -0
- package/components/leaflet-map/modules/clusterBackground.js.map +1 -0
- package/components/leaflet-map/modules/donut.d.ts +3 -0
- package/components/leaflet-map/modules/donut.js +25 -0
- package/components/leaflet-map/modules/donut.js.map +1 -0
- package/components/leaflet-map/modules/map.d.ts +14 -0
- package/components/leaflet-map/modules/map.js +154 -0
- package/components/leaflet-map/modules/map.js.map +1 -0
- package/components/leaflet-map/modules/node.d.ts +9 -0
- package/components/leaflet-map/modules/node.js +162 -0
- package/components/leaflet-map/modules/node.js.map +1 -0
- package/components/leaflet-map/modules/selectionRing.d.ts +7 -0
- package/components/leaflet-map/modules/selectionRing.js +41 -0
- package/components/leaflet-map/modules/selectionRing.js.map +1 -0
- package/components/leaflet-map/modules/utils.d.ts +50 -0
- package/components/leaflet-map/modules/utils.js +210 -0
- package/components/leaflet-map/modules/utils.js.map +1 -0
- package/{src/components → components}/leaflet-map/renderer/leaflet-maplibre-gl.js +78 -76
- package/components/leaflet-map/renderer/leaflet-maplibre-gl.js.map +1 -0
- package/components/leaflet-map/renderer/map-style.d.ts +4 -0
- package/components/leaflet-map/renderer/map-style.js +15 -0
- package/components/leaflet-map/renderer/map-style.js.map +1 -0
- package/components/leaflet-map/renderer/mapboxgl/mapboxgl-dark-theme.json.js +40 -0
- package/components/leaflet-map/renderer/mapboxgl/mapboxgl-dark-theme.json.js.map +1 -0
- package/components/leaflet-map/renderer/mapboxgl/mapboxgl-light-theme.json.js +40 -0
- package/components/leaflet-map/renderer/mapboxgl/mapboxgl-light-theme.json.js.map +1 -0
- package/components/leaflet-map/renderer/mapboxgl/mapboxgl-settings.json.js +4981 -0
- package/components/leaflet-map/renderer/mapboxgl/mapboxgl-settings.json.js.map +1 -0
- package/components/leaflet-map/renderer/mapboxgl-layer.d.ts +8 -0
- package/components/leaflet-map/renderer/mapboxgl-layer.js +27 -0
- package/components/leaflet-map/renderer/mapboxgl-layer.js.map +1 -0
- package/components/leaflet-map/renderer/mapboxgl-utils.d.ts +4 -0
- package/components/leaflet-map/renderer/mapboxgl-utils.js +39 -0
- package/components/leaflet-map/renderer/mapboxgl-utils.js.map +1 -0
- package/{src/components → components}/leaflet-map/renderer/maplibre-gl.css.js +4 -2
- package/components/leaflet-map/renderer/maplibre-gl.css.js.map +1 -0
- package/components/leaflet-map/style.d.ts +52 -0
- package/components/leaflet-map/style.js +183 -0
- package/components/leaflet-map/style.js.map +1 -0
- package/components/leaflet-map/types.d.ts +75 -0
- package/components/leaflet-map/types.js +15 -0
- package/components/leaflet-map/types.js.map +1 -0
- package/components/line/config.d.ts +30 -0
- package/components/line/config.js +17 -0
- package/components/line/config.js.map +1 -0
- package/components/line/index.d.ts +27 -0
- package/components/line/index.js +152 -0
- package/components/line/index.js.map +1 -0
- package/components/line/style.d.ts +6 -0
- package/{src/components/line/style.ts → components/line/style.js} +16 -18
- package/components/line/style.js.map +1 -0
- package/components/line/types.d.ts +12 -0
- package/components/nested-donut/config.d.ts +59 -0
- package/components/nested-donut/config.js +19 -0
- package/components/nested-donut/config.js.map +1 -0
- package/components/nested-donut/index.d.ts +38 -0
- package/components/nested-donut/index.js +133 -0
- package/components/nested-donut/index.js.map +1 -0
- package/components/nested-donut/modules/arc.d.ts +17 -0
- package/components/nested-donut/modules/arc.js +50 -0
- package/components/nested-donut/modules/arc.js.map +1 -0
- package/components/nested-donut/modules/label.d.ts +7 -0
- package/components/nested-donut/modules/label.js +34 -0
- package/components/nested-donut/modules/label.js.map +1 -0
- package/components/nested-donut/style.d.ts +26 -0
- package/components/nested-donut/style.js +70 -0
- package/components/nested-donut/style.js.map +1 -0
- package/components/nested-donut/types.d.ts +24 -0
- package/components/nested-donut/types.js +11 -0
- package/components/nested-donut/types.js.map +1 -0
- package/components/sankey/config.d.ts +162 -0
- package/components/sankey/config.js +65 -0
- package/components/sankey/config.js.map +1 -0
- package/components/sankey/index.d.ts +59 -0
- package/components/sankey/index.js +306 -0
- package/components/sankey/index.js.map +1 -0
- package/components/sankey/modules/label.d.ts +23 -0
- package/components/sankey/modules/label.js +168 -0
- package/components/sankey/modules/label.js.map +1 -0
- package/components/sankey/modules/link.d.ts +14 -0
- package/components/sankey/modules/link.js +108 -0
- package/components/sankey/modules/link.js.map +1 -0
- package/components/sankey/modules/node.d.ts +10 -0
- package/components/sankey/modules/node.js +156 -0
- package/components/sankey/modules/node.js.map +1 -0
- package/components/sankey/style.d.ts +20 -0
- package/{src/components/sankey/style.ts → components/sankey/style.js} +44 -60
- package/components/sankey/style.js.map +1 -0
- package/components/sankey/types.d.ts +84 -0
- package/components/sankey/types.js +34 -0
- package/components/sankey/types.js.map +1 -0
- package/components/scatter/config.d.ts +44 -0
- package/components/scatter/config.js +23 -0
- package/components/scatter/config.js.map +1 -0
- package/components/scatter/index.d.ts +28 -0
- package/components/scatter/index.js +167 -0
- package/components/scatter/index.js.map +1 -0
- package/components/scatter/modules/point.d.ts +7 -0
- package/components/scatter/modules/point.js +86 -0
- package/components/scatter/modules/point.js.map +1 -0
- package/components/scatter/modules/utils.d.ts +11 -0
- package/components/scatter/modules/utils.js +112 -0
- package/components/scatter/modules/utils.js.map +1 -0
- package/components/scatter/style.d.ts +5 -0
- package/{src/components/scatter/style.ts → components/scatter/style.js} +14 -15
- package/components/scatter/style.js.map +1 -0
- package/components/scatter/types.d.ts +19 -0
- package/components/stacked-bar/config.d.ts +38 -0
- package/components/stacked-bar/config.js +20 -0
- package/components/stacked-bar/config.js.map +1 -0
- package/components/stacked-bar/index.d.ts +28 -0
- package/components/stacked-bar/index.js +208 -0
- package/components/stacked-bar/index.js.map +1 -0
- package/components/stacked-bar/style.d.ts +5 -0
- package/{src/components/stacked-bar/style.ts → components/stacked-bar/style.js} +14 -15
- package/components/stacked-bar/style.js.map +1 -0
- package/components/stacked-bar/types.d.ts +5 -0
- package/components/timeline/config.d.ts +43 -0
- package/components/timeline/config.js +24 -0
- package/components/timeline/config.js.map +1 -0
- package/components/timeline/index.d.ts +41 -0
- package/components/timeline/index.js +244 -0
- package/components/timeline/index.js.map +1 -0
- package/components/timeline/style.d.ts +13 -0
- package/{src/components/timeline/style.ts → components/timeline/style.js} +30 -39
- package/components/timeline/style.js.map +1 -0
- package/components/tooltip/config.d.ts +68 -0
- package/components/tooltip/config.js +20 -0
- package/components/tooltip/config.js.map +1 -0
- package/components/tooltip/index.d.ts +36 -0
- package/components/tooltip/index.js +184 -0
- package/components/tooltip/index.js.map +1 -0
- package/{src/components → components}/tooltip/style.js +14 -11
- package/components/tooltip/style.js.map +1 -0
- package/components/topojson-map/config.d.ts +99 -0
- package/components/topojson-map/config.js +42 -0
- package/components/topojson-map/config.js.map +1 -0
- package/components/topojson-map/index.d.ts +52 -0
- package/components/topojson-map/index.js +355 -0
- package/components/topojson-map/index.js.map +1 -0
- package/components/topojson-map/style.d.ts +11 -0
- package/{src/components/topojson-map/style.ts → components/topojson-map/style.js} +26 -33
- package/components/topojson-map/style.js.map +1 -0
- package/components/topojson-map/types.d.ts +78 -0
- package/components/topojson-map/types.js +80 -0
- package/components/topojson-map/types.js.map +1 -0
- package/components/topojson-map/utils.d.ts +3 -0
- package/components/topojson-map/utils.js +30 -0
- package/components/topojson-map/utils.js.map +1 -0
- package/components/vis-controls/config.d.ts +12 -0
- package/components/vis-controls/config.js +13 -0
- package/components/vis-controls/config.js.map +1 -0
- package/components/vis-controls/index.d.ts +14 -0
- package/components/vis-controls/index.js +52 -0
- package/components/vis-controls/index.js.map +1 -0
- package/components/vis-controls/style.d.ts +11 -0
- package/{src/components/vis-controls/style.ts → components/vis-controls/style.js} +27 -34
- package/components/vis-controls/style.js.map +1 -0
- package/components/vis-controls/types.d.ts +13 -0
- package/components/vis-controls/types.js +8 -0
- package/components/vis-controls/types.js.map +1 -0
- package/components/xy-labels/config.d.ts +48 -0
- package/components/xy-labels/config.js +25 -0
- package/components/xy-labels/config.js.map +1 -0
- package/components/xy-labels/index.d.ts +15 -0
- package/components/xy-labels/index.js +87 -0
- package/components/xy-labels/index.js.map +1 -0
- package/components/xy-labels/modules/label.d.ts +9 -0
- package/components/xy-labels/modules/label.js +107 -0
- package/components/xy-labels/modules/label.js.map +1 -0
- package/components/xy-labels/style.d.ts +5 -0
- package/{src/components/xy-labels/style.ts → components/xy-labels/style.js} +14 -15
- package/components/xy-labels/style.js.map +1 -0
- package/components/xy-labels/types.d.ts +23 -0
- package/components/xy-labels/types.js +9 -0
- package/components/xy-labels/types.js.map +1 -0
- package/components.d.ts +51 -0
- package/components.js +29 -0
- package/components.js.map +1 -0
- package/containers/single-container/config.d.ts +12 -0
- package/containers/single-container/config.js +12 -0
- package/containers/single-container/config.js.map +1 -0
- package/containers/single-container/index.d.ts +19 -0
- package/containers/single-container/index.js +128 -0
- package/containers/single-container/index.js.map +1 -0
- package/containers/xy-container/config.d.ts +99 -0
- package/containers/xy-container/config.js +30 -0
- package/containers/xy-container/config.js.map +1 -0
- package/containers/xy-container/index.d.ts +34 -0
- package/containers/xy-container/index.js +330 -0
- package/containers/xy-container/index.js.map +1 -0
- package/containers.d.ts +6 -0
- package/containers.js +4 -0
- package/containers.js.map +1 -0
- package/core/component/config.d.ts +58 -0
- package/core/component/config.js +14 -0
- package/core/component/config.js.map +1 -0
- package/core/component/index.d.ts +43 -0
- package/core/component/index.js +118 -0
- package/core/component/index.js.map +1 -0
- package/core/component/types.d.ts +2 -0
- package/core/component/types.js +2 -0
- package/core/component/types.js.map +1 -0
- package/core/config/index.d.ts +3 -0
- package/core/config/index.js +16 -0
- package/core/config/index.js.map +1 -0
- package/core/container/config.d.ts +48 -0
- package/core/container/config.js +29 -0
- package/core/container/config.js.map +1 -0
- package/core/container/index.d.ts +26 -0
- package/core/container/index.js +106 -0
- package/core/container/index.js.map +1 -0
- package/core/xy-component/config.d.ts +38 -0
- package/core/xy-component/config.js +20 -0
- package/core/xy-component/config.js.map +1 -0
- package/core/xy-component/index.d.ts +27 -0
- package/core/xy-component/index.js +74 -0
- package/core/xy-component/index.js.map +1 -0
- package/data-models/core.d.ts +6 -0
- package/data-models/core.js +14 -0
- package/data-models/core.js.map +1 -0
- package/data-models/graph.d.ts +24 -0
- package/data-models/graph.js +107 -0
- package/data-models/graph.js.map +1 -0
- package/data-models/map-graph.d.ts +21 -0
- package/data-models/map-graph.js +62 -0
- package/data-models/map-graph.js.map +1 -0
- package/data-models/map.d.ts +5 -0
- package/data-models/map.js +12 -0
- package/data-models/map.js.map +1 -0
- package/data-models/series.d.ts +6 -0
- package/data-models/series.js +19 -0
- package/data-models/series.js.map +1 -0
- package/index.d.ts +7 -0
- package/index.js +55 -0
- package/index.js.map +1 -0
- package/maps/china-provinces.json.js +140373 -0
- package/maps/fr-regions.json.js +14162 -0
- package/maps/germany-regions.json.js +35760 -0
- package/maps/ind-regions.json.js +290584 -0
- package/maps/uk-regions.json.js +96233 -0
- package/maps/us-counties.json.js +206318 -0
- package/maps/us-states.json.js +16345 -0
- package/maps/world-110m-alpha.json.js +251366 -0
- package/maps/world-simple.json.js +89428 -0
- package/maps/world-simplest.json.js +28175 -0
- package/maps.d.ts +60 -0
- package/maps.js +23 -0
- package/package.json +1 -1
- package/styles/colors.d.ts +7 -0
- package/styles/colors.js +24 -0
- package/styles/colors.js.map +1 -0
- package/styles/index.d.ts +7 -0
- package/styles/index.js +38 -0
- package/styles/index.js.map +1 -0
- package/styles/sizes.d.ts +2 -0
- package/{src/styles/sizes.ts → styles/sizes.js} +8 -6
- package/styles/sizes.js.map +1 -0
- package/types/accessor.d.ts +5 -0
- package/types/accessor.js +2 -0
- package/types/accessor.js.map +1 -0
- package/types/component.d.ts +13 -0
- package/types/component.js +14 -0
- package/types/component.js.map +1 -0
- package/types/curve.d.ts +40 -0
- package/types/curve.js +46 -0
- package/types/curve.js.map +1 -0
- package/types/data.d.ts +7 -0
- package/types/data.js +2 -0
- package/types/data.js.map +1 -0
- package/types/direction.d.ts +6 -0
- package/types/direction.js +10 -0
- package/types/direction.js.map +1 -0
- package/types/graph.d.ts +35 -0
- package/types/graph.js +2 -0
- package/types/graph.js.map +1 -0
- package/types/map.d.ts +4 -0
- package/types/map.js +2 -0
- package/types/map.js.map +1 -0
- package/types/misc.d.ts +8 -0
- package/types/position.d.ts +20 -0
- package/types/position.js +27 -0
- package/types/position.js.map +1 -0
- package/types/scale.d.ts +23 -0
- package/types/scale.js +27 -0
- package/types/scale.js.map +1 -0
- package/types/shape.d.ts +7 -0
- package/types/shape.js +11 -0
- package/types/shape.js.map +1 -0
- package/types/spacing.d.ts +6 -0
- package/types/spacing.js +2 -0
- package/types/spacing.js.map +1 -0
- package/types/svg.d.ts +18 -0
- package/types/svg.js +22 -0
- package/types/svg.js.map +1 -0
- package/types/symbol.d.ts +18 -0
- package/types/symbol.js +24 -0
- package/types/symbol.js.map +1 -0
- package/types/text.d.ts +47 -0
- package/types/text.js +26 -0
- package/types/text.js.map +1 -0
- package/types.d.ts +27 -0
- package/types.js +30 -0
- package/types.js.map +1 -0
- package/utils/color.d.ts +10 -0
- package/utils/color.js +32 -0
- package/utils/color.js.map +1 -0
- package/utils/d3.d.ts +3 -0
- package/utils/d3.js +16 -0
- package/utils/d3.js.map +1 -0
- package/utils/data.d.ts +45 -0
- package/utils/data.js +274 -0
- package/utils/data.js.map +1 -0
- package/utils/html.d.ts +1 -0
- package/utils/html.js +16 -0
- package/utils/html.js.map +1 -0
- package/utils/map.d.ts +2 -0
- package/utils/map.js +20 -0
- package/utils/map.js.map +1 -0
- package/utils/misc.d.ts +9 -0
- package/utils/misc.js +47 -0
- package/utils/misc.js.map +1 -0
- package/utils/path.d.ts +23 -0
- package/utils/path.js +144 -0
- package/utils/path.js.map +1 -0
- package/utils/scale.d.ts +1 -0
- package/utils/style.d.ts +6 -0
- package/utils/style.js +24 -0
- package/utils/style.js.map +1 -0
- package/utils/svg.d.ts +3 -0
- package/utils/text.d.ts +139 -0
- package/utils/text.js +443 -0
- package/utils/text.js.map +1 -0
- package/utils/type.d.ts +5 -0
- package/declaration.d.ts +0 -1
- package/index.ts +0 -1
- package/licences.txt +0 -43
- package/maps.ts +0 -1
- package/rollup.config.js +0 -71
- package/rules/ts-getter-setter.js +0 -35
- package/src/components/area/config.ts +0 -29
- package/src/components/area/index.ts +0 -133
- package/src/components/area/types.ts +0 -2
- package/src/components/axis/config.ts +0 -76
- package/src/components/axis/index.ts +0 -363
- package/src/components/axis/types.ts +0 -4
- package/src/components/brush/config.ts +0 -51
- package/src/components/brush/index.ts +0 -233
- package/src/components/brush/types.ts +0 -8
- package/src/components/bullet-legend/config.ts +0 -38
- package/src/components/bullet-legend/index.ts +0 -104
- package/src/components/bullet-legend/types.ts +0 -7
- package/src/components/chord-diagram/config.ts +0 -53
- package/src/components/chord-diagram/index.ts +0 -401
- package/src/components/chord-diagram/modules/label.ts +0 -155
- package/src/components/chord-diagram/modules/link.ts +0 -91
- package/src/components/chord-diagram/modules/node.ts +0 -80
- package/src/components/chord-diagram/types.ts +0 -68
- package/src/components/crosshair/config.ts +0 -48
- package/src/components/crosshair/index.ts +0 -220
- package/src/components/crosshair/types.ts +0 -15
- package/src/components/donut/config.ts +0 -65
- package/src/components/donut/index.ts +0 -148
- package/src/components/donut/modules/arc.ts +0 -86
- package/src/components/donut/types.ts +0 -17
- package/src/components/flow-legend/config.ts +0 -31
- package/src/components/flow-legend/index.ts +0 -103
- package/src/components/flow-legend/types.ts +0 -10
- package/src/components/free-brush/config.ts +0 -54
- package/src/components/free-brush/index.ts +0 -207
- package/src/components/free-brush/types.ts +0 -8
- package/src/components/graph/config.ts +0 -280
- package/src/components/graph/index.ts +0 -809
- package/src/components/graph/modules/layout-helpers.ts +0 -96
- package/src/components/graph/modules/layout.ts +0 -502
- package/src/components/graph/modules/link/helper.ts +0 -105
- package/src/components/graph/modules/link/index.ts +0 -302
- package/src/components/graph/modules/node/helper.ts +0 -162
- package/src/components/graph/modules/node/index.ts +0 -343
- package/src/components/graph/modules/panel/helper.ts +0 -160
- package/src/components/graph/modules/panel/index.ts +0 -137
- package/src/components/graph/modules/shape.ts +0 -108
- package/src/components/graph/modules/zoom-levels.ts +0 -6
- package/src/components/graph/style.ts +0 -72
- package/src/components/graph/types.ts +0 -152
- package/src/components/grouped-bar/config.ts +0 -40
- package/src/components/grouped-bar/index.ts +0 -325
- package/src/components/leaflet-flow-map/config.ts +0 -60
- package/src/components/leaflet-flow-map/index.ts +0 -279
- package/src/components/leaflet-flow-map/renderer-utils.ts +0 -14
- package/src/components/leaflet-flow-map/renderer.ts +0 -146
- package/src/components/leaflet-flow-map/types.ts +0 -18
- package/src/components/leaflet-map/config.ts +0 -234
- package/src/components/leaflet-map/index.ts +0 -808
- package/src/components/leaflet-map/leaflet.css +0 -625
- package/src/components/leaflet-map/modules/clusterBackground.ts +0 -34
- package/src/components/leaflet-map/modules/donut.ts +0 -37
- package/src/components/leaflet-map/modules/map.ts +0 -178
- package/src/components/leaflet-map/modules/node.ts +0 -208
- package/src/components/leaflet-map/modules/selectionRing.ts +0 -63
- package/src/components/leaflet-map/modules/utils.ts +0 -290
- package/src/components/leaflet-map/renderer/map-style.ts +0 -24
- package/src/components/leaflet-map/renderer/mapboxgl/mapboxgl-dark-theme.json +0 -35
- package/src/components/leaflet-map/renderer/mapboxgl/mapboxgl-light-theme.json +0 -35
- package/src/components/leaflet-map/renderer/mapboxgl/mapboxgl-settings.json +0 -2185
- package/src/components/leaflet-map/renderer/mapboxgl-layer.ts +0 -43
- package/src/components/leaflet-map/renderer/mapboxgl-utils.ts +0 -40
- package/src/components/leaflet-map/style.ts +0 -217
- package/src/components/leaflet-map/types.ts +0 -75
- package/src/components/line/config.ts +0 -34
- package/src/components/line/index.ts +0 -188
- package/src/components/line/types.ts +0 -3
- package/src/components/nested-donut/config.ts +0 -75
- package/src/components/nested-donut/index.ts +0 -176
- package/src/components/nested-donut/modules/arc.ts +0 -78
- package/src/components/nested-donut/modules/label.ts +0 -63
- package/src/components/nested-donut/style.ts +0 -82
- package/src/components/nested-donut/types.ts +0 -29
- package/src/components/sankey/config.ts +0 -195
- package/src/components/sankey/index.ts +0 -387
- package/src/components/sankey/modules/label.ts +0 -228
- package/src/components/sankey/modules/link.ts +0 -141
- package/src/components/sankey/modules/node.ts +0 -221
- package/src/components/sankey/types.ts +0 -95
- package/src/components/scatter/config.ts +0 -49
- package/src/components/scatter/index.ts +0 -220
- package/src/components/scatter/modules/point.ts +0 -123
- package/src/components/scatter/modules/utils.ts +0 -150
- package/src/components/scatter/types.ts +0 -21
- package/src/components/stacked-bar/config.ts +0 -42
- package/src/components/stacked-bar/index.ts +0 -267
- package/src/components/stacked-bar/types.ts +0 -5
- package/src/components/timeline/config.ts +0 -49
- package/src/components/timeline/index.ts +0 -302
- package/src/components/tooltip/config.ts +0 -69
- package/src/components/tooltip/index.ts +0 -220
- package/src/components/topojson-map/config.ts +0 -124
- package/src/components/topojson-map/index.ts +0 -436
- package/src/components/topojson-map/types.ts +0 -123
- package/src/components/topojson-map/utils.ts +0 -29
- package/src/components/vis-controls/config.ts +0 -16
- package/src/components/vis-controls/index.ts +0 -68
- package/src/components/vis-controls/types.ts +0 -14
- package/src/components/xy-labels/config.ts +0 -56
- package/src/components/xy-labels/index.ts +0 -109
- package/src/components/xy-labels/modules/label.ts +0 -140
- package/src/components/xy-labels/types.ts +0 -26
- package/src/components.ts +0 -56
- package/src/containers/single-container/config.ts +0 -15
- package/src/containers/single-container/index.ts +0 -150
- package/src/containers/xy-container/config.ts +0 -112
- package/src/containers/xy-container/index.ts +0 -407
- package/src/containers.ts +0 -6
- package/src/core/component/config.ts +0 -61
- package/src/core/component/index.ts +0 -154
- package/src/core/component/types.ts +0 -9
- package/src/core/config/index.ts +0 -12
- package/src/core/container/config.ts +0 -56
- package/src/core/container/index.ts +0 -136
- package/src/core/xy-component/config.ts +0 -46
- package/src/core/xy-component/index.ts +0 -90
- package/src/data-models/core.ts +0 -15
- package/src/data-models/graph.ts +0 -138
- package/src/data-models/map-graph.ts +0 -72
- package/src/data-models/map.ts +0 -18
- package/src/data-models/series.ts +0 -16
- package/src/index.ts +0 -7
- package/src/maps/china-provinces.json +0 -1
- package/src/maps/fr-regions.json +0 -1
- package/src/maps/germany-regions.json +0 -1
- package/src/maps/ind-regions.json +0 -1
- package/src/maps/uk-regions.json +0 -1
- package/src/maps/us-counties.json +0 -1
- package/src/maps/us-states.json +0 -1
- package/src/maps/world-110m-alpha.json +0 -1
- package/src/maps/world-simple.json +0 -1
- package/src/maps/world-simplest.json +0 -1
- package/src/maps.ts +0 -34
- package/src/styles/colors.ts +0 -28
- package/src/styles/index.ts +0 -38
- package/src/types/accessor.ts +0 -5
- package/src/types/component.ts +0 -15
- package/src/types/curve.ts +0 -62
- package/src/types/data.ts +0 -5
- package/src/types/direction.ts +0 -6
- package/src/types/graph.ts +0 -40
- package/src/types/map.ts +0 -5
- package/src/types/misc.ts +0 -10
- package/src/types/position.ts +0 -23
- package/src/types/scale.ts +0 -47
- package/src/types/shape.ts +0 -7
- package/src/types/spacing.ts +0 -6
- package/src/types/svg.ts +0 -32
- package/src/types/symbol.ts +0 -21
- package/src/types/text.ts +0 -71
- package/src/types.ts +0 -31
- package/src/utils/color.ts +0 -41
- package/src/utils/d3.ts +0 -15
- package/src/utils/data.ts +0 -328
- package/src/utils/html.ts +0 -13
- package/src/utils/map.ts +0 -29
- package/src/utils/misc.ts +0 -54
- package/src/utils/path.ts +0 -196
- package/src/utils/scale.ts +0 -1
- package/src/utils/style.ts +0 -37
- package/src/utils/svg.ts +0 -49
- package/src/utils/text.ts +0 -529
- package/src/utils/type.ts +0 -9
- package/tsconfig.json +0 -29
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import { brush as brush$1, brushY, brushX } from 'd3-brush';
|
|
2
|
+
import { XYComponentCore } from '../../core/xy-component/index.js';
|
|
3
|
+
import { isNumber, clamp } from '../../utils/data.js';
|
|
4
|
+
import { smartTransition } from '../../utils/d3.js';
|
|
5
|
+
import { FreeBrushMode } from './types.js';
|
|
6
|
+
import { FreeBrushConfig } from './config.js';
|
|
7
|
+
import * as style from './style.js';
|
|
8
|
+
import { brush, hide } from './style.js';
|
|
9
|
+
|
|
10
|
+
class FreeBrush extends XYComponentCore {
|
|
11
|
+
constructor(config) {
|
|
12
|
+
super();
|
|
13
|
+
this.config = new FreeBrushConfig();
|
|
14
|
+
this._firstRender = true;
|
|
15
|
+
if (config)
|
|
16
|
+
this.config.init(config);
|
|
17
|
+
this.brush = this.g
|
|
18
|
+
.append('g')
|
|
19
|
+
.attr('class', brush);
|
|
20
|
+
}
|
|
21
|
+
_render(customDuration) {
|
|
22
|
+
var _a, _b, _c, _d;
|
|
23
|
+
const { config } = this;
|
|
24
|
+
const xScale = this.xScale;
|
|
25
|
+
const yScale = this.yScale;
|
|
26
|
+
const duration = isNumber(customDuration) ? customDuration : config.duration;
|
|
27
|
+
if (this._firstRender)
|
|
28
|
+
this.brush.classed(hide, this._firstRender && config.autoHide);
|
|
29
|
+
// Sometimes Brush stops emitting 'start' and 'end' events. Possible explanation:
|
|
30
|
+
// "... mouseup will only fire when performed within the browser, which can lead to losing track of the button state."
|
|
31
|
+
// https://stackoverflow.com/a/48970682
|
|
32
|
+
//
|
|
33
|
+
// D3 code related to the problem:
|
|
34
|
+
// https://github.com/d3/d3-brush/blob/ec2bce6f15074a9ead7f9a84c61335be51c123a3/src/brush.js#L301
|
|
35
|
+
//
|
|
36
|
+
// We're clearing brush's event emitter state to force it to get re-initialized
|
|
37
|
+
// Caveat of this solution: If you're doing a brush selection and a render happens
|
|
38
|
+
// (e.g. due to a data or config update), it'll reset the brush.
|
|
39
|
+
//
|
|
40
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
41
|
+
// @ts-ignore
|
|
42
|
+
if (this.brush.node().__brush)
|
|
43
|
+
this.brush.node().__brush.emitter = undefined;
|
|
44
|
+
this.brushBehaviour = this._getBrushBehaviour(config.mode);
|
|
45
|
+
this.brushBehaviour
|
|
46
|
+
.handleSize(config.handleWidth)
|
|
47
|
+
.extent([[0, 0], [this._width, this._height]])
|
|
48
|
+
.on('start', this._onBrushStart.bind(this))
|
|
49
|
+
.on('brush', this._onBrushMove.bind(this))
|
|
50
|
+
.on('end', this._onBrushEnd.bind(this));
|
|
51
|
+
this.brush
|
|
52
|
+
.call(this.brushBehaviour);
|
|
53
|
+
// Calculate the brush range from configured selection and apply it
|
|
54
|
+
let brushRange;
|
|
55
|
+
switch (config.mode) {
|
|
56
|
+
case FreeBrushMode.XY: {
|
|
57
|
+
const xSelectionRange = this._dataRangeToPixelRange([(_a = config.selection) === null || _a === void 0 ? void 0 : _a[0][0], (_b = config.selection) === null || _b === void 0 ? void 0 : _b[0][1]], xScale);
|
|
58
|
+
const ySelectionRange = this._dataRangeToPixelRange([(_c = config.selection) === null || _c === void 0 ? void 0 : _c[1][0], (_d = config.selection) === null || _d === void 0 ? void 0 : _d[1][1]], yScale, true);
|
|
59
|
+
brushRange = (xSelectionRange && ySelectionRange) ? [[xSelectionRange[0], ySelectionRange[0]], [xSelectionRange[1], ySelectionRange[1]]] : null;
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
case FreeBrushMode.X:
|
|
63
|
+
case FreeBrushMode.Y:
|
|
64
|
+
default: {
|
|
65
|
+
const scale = config.mode === FreeBrushMode.Y ? yScale : xScale;
|
|
66
|
+
brushRange = this._dataRangeToPixelRange(config.selection, scale, config.mode === FreeBrushMode.Y);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
smartTransition(this.brush, duration)
|
|
70
|
+
.call(this.brushBehaviour.move, brushRange) // Sets up the brush and calls brush events
|
|
71
|
+
.on('end interrupt', () => { this._firstRender = false; });
|
|
72
|
+
if (!duration)
|
|
73
|
+
this._firstRender = false;
|
|
74
|
+
}
|
|
75
|
+
_onBrush(event) {
|
|
76
|
+
var _a, _b, _c, _d;
|
|
77
|
+
const { config } = this;
|
|
78
|
+
const userDriven = !!(event === null || event === void 0 ? void 0 : event.sourceEvent);
|
|
79
|
+
// Selection from the brush events is in Screen Space (pixels)
|
|
80
|
+
// In case of two dimensional brush is comes as [ [xMinPx, yMinPx], [xMaxPx, yMaxPx] ],
|
|
81
|
+
// while in the config we'll be storing it as [ [xMin, xMax], [yMin, yMax] ]
|
|
82
|
+
const s = (event === null || event === void 0 ? void 0 : event.selection);
|
|
83
|
+
if (!this._isSelectionValid(s)) {
|
|
84
|
+
config.selection = null;
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
// Convert the raw brush selection from pixels to data units, store it in the config and trigger the onBrush callback
|
|
88
|
+
let selectedDomain;
|
|
89
|
+
switch (config.mode) {
|
|
90
|
+
case FreeBrushMode.XY: {
|
|
91
|
+
const xSelection = this._pixelRangeToDataRange([s[0][0], s[1][0]], this.xScale, (_b = (_a = config.selectionMinLength) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : config.selectionMinLength);
|
|
92
|
+
const ySelection = this._pixelRangeToDataRange([s[0][1], s[1][1]], this.yScale, (_d = (_c = config.selectionMinLength) === null || _c === void 0 ? void 0 : _c[1]) !== null && _d !== void 0 ? _d : config.selectionMinLength, true);
|
|
93
|
+
selectedDomain = (xSelection && ySelection) ? [
|
|
94
|
+
[xSelection === null || xSelection === void 0 ? void 0 : xSelection[0], xSelection === null || xSelection === void 0 ? void 0 : xSelection[1]],
|
|
95
|
+
[ySelection === null || ySelection === void 0 ? void 0 : ySelection[0], ySelection === null || ySelection === void 0 ? void 0 : ySelection[1]],
|
|
96
|
+
] : null;
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
99
|
+
case FreeBrushMode.Y: {
|
|
100
|
+
selectedDomain = this._pixelRangeToDataRange(s, this.yScale, config.selectionMinLength, true);
|
|
101
|
+
break;
|
|
102
|
+
}
|
|
103
|
+
case FreeBrushMode.X:
|
|
104
|
+
default: {
|
|
105
|
+
selectedDomain = this._pixelRangeToDataRange(s, this.xScale, config.selectionMinLength);
|
|
106
|
+
break;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
if (selectedDomain === null || selectedDomain[0] === null || selectedDomain[1] === null) {
|
|
110
|
+
this.brush.call(this.brushBehaviour.move, null);
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
config.selection = selectedDomain;
|
|
114
|
+
if (!this._firstRender)
|
|
115
|
+
config.onBrush(selectedDomain, event, userDriven);
|
|
116
|
+
}
|
|
117
|
+
_pixelRangeToDataRange(selectionInPixels, scale, constraint, reversed) {
|
|
118
|
+
const selectedDomain = selectionInPixels.map(n => scale.invert(n));
|
|
119
|
+
if (reversed)
|
|
120
|
+
selectedDomain.reverse();
|
|
121
|
+
const domain = scale.domain();
|
|
122
|
+
const domainLength = Math.abs(domain[1] - domain[0]);
|
|
123
|
+
const selectionLength = Math.abs(selectedDomain[1] - selectedDomain[0]);
|
|
124
|
+
if (constraint >= domainLength) {
|
|
125
|
+
console.warn('Unovis | FreeBrush: Configured domain constraint is bigger than the brush domain');
|
|
126
|
+
}
|
|
127
|
+
if ((selectionLength < constraint) && (constraint < domainLength))
|
|
128
|
+
return null;
|
|
129
|
+
else
|
|
130
|
+
return selectedDomain;
|
|
131
|
+
}
|
|
132
|
+
_dataRangeToPixelRange(selectionInDataUnits, scale, reversed) {
|
|
133
|
+
var _a, _b;
|
|
134
|
+
if (!selectionInDataUnits)
|
|
135
|
+
return null;
|
|
136
|
+
const range = scale.range();
|
|
137
|
+
const s = [...selectionInDataUnits];
|
|
138
|
+
if (reversed) {
|
|
139
|
+
range.reverse();
|
|
140
|
+
s.reverse();
|
|
141
|
+
}
|
|
142
|
+
const selectionMin = clamp((_a = scale(s[0])) !== null && _a !== void 0 ? _a : 0, range[0], range[1]);
|
|
143
|
+
const selectionMax = clamp((_b = scale(s[1])) !== null && _b !== void 0 ? _b : 0, range[0], range[1]);
|
|
144
|
+
return (selectionMax - selectionMin) ? [selectionMin, selectionMax] : null;
|
|
145
|
+
}
|
|
146
|
+
_isSelectionValid(s) {
|
|
147
|
+
const { config } = this;
|
|
148
|
+
if (config.mode === FreeBrushMode.XY) {
|
|
149
|
+
return s && Array.isArray(s[0]) && Array.isArray(s[1]);
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
return s && isNumber(s[0]) && isNumber(s[1]);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
_getBrushBehaviour(mode) {
|
|
156
|
+
switch (mode) {
|
|
157
|
+
case FreeBrushMode.X: return brushX();
|
|
158
|
+
case FreeBrushMode.Y: return brushY();
|
|
159
|
+
default: return brush$1();
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
_onBrushStart(event) {
|
|
163
|
+
var _a;
|
|
164
|
+
const { config } = this;
|
|
165
|
+
const userDriven = !!(event === null || event === void 0 ? void 0 : event.sourceEvent);
|
|
166
|
+
this._onBrush(event);
|
|
167
|
+
if (config.autoHide && userDriven)
|
|
168
|
+
this.brush.classed(hide, false);
|
|
169
|
+
if (!this._firstRender)
|
|
170
|
+
(_a = config.onBrushStart) === null || _a === void 0 ? void 0 : _a.call(config, config.selection, event, userDriven);
|
|
171
|
+
}
|
|
172
|
+
_onBrushMove(event) {
|
|
173
|
+
var _a;
|
|
174
|
+
const { config } = this;
|
|
175
|
+
this._onBrush(event);
|
|
176
|
+
if (!this._firstRender)
|
|
177
|
+
(_a = config.onBrushMove) === null || _a === void 0 ? void 0 : _a.call(config, config.selection, event, !!(event === null || event === void 0 ? void 0 : event.sourceEvent));
|
|
178
|
+
}
|
|
179
|
+
_onBrushEnd(event) {
|
|
180
|
+
var _a;
|
|
181
|
+
const { config } = this;
|
|
182
|
+
this._onBrush(event);
|
|
183
|
+
if (config.autoHide)
|
|
184
|
+
this.brush.classed(hide, true);
|
|
185
|
+
if (!this._firstRender)
|
|
186
|
+
(_a = config.onBrushEnd) === null || _a === void 0 ? void 0 : _a.call(config, config.selection, event, !!(event === null || event === void 0 ? void 0 : event.sourceEvent));
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
FreeBrush.selectors = style;
|
|
190
|
+
|
|
191
|
+
export { FreeBrush };
|
|
192
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/free-brush/index.ts"],"sourcesContent":["import { Selection } from 'd3-selection'\nimport { brush, BrushBehavior, brushX, brushY, D3BrushEvent } from 'd3-brush'\nimport { XYComponentCore } from 'core/xy-component'\nimport { clamp, isNumber } from 'utils/data'\nimport { smartTransition } from 'utils/d3'\n\n// Types\nimport { ContinuousScale } from 'types/scale'\nimport { FreeBrushMode, FreeBrushSelection, FreeBrushSelectionInPixels } from './types'\n\n// Config\nimport { FreeBrushConfig, FreeBrushConfigInterface } from './config'\n\n// Styles\nimport * as s from './style'\n\nexport class FreeBrush<Datum> extends XYComponentCore<Datum, FreeBrushConfig<Datum>, FreeBrushConfigInterface<Datum>> {\n static selectors = s\n config: FreeBrushConfig<Datum> = new FreeBrushConfig()\n private brush: Selection<SVGGElement, unknown, SVGGElement, unknown>\n private brushBehaviour: BrushBehavior<unknown>\n private _firstRender = true\n\n constructor (config: FreeBrushConfigInterface<Datum>) {\n super()\n if (config) this.config.init(config)\n\n this.brush = this.g\n .append('g')\n .attr('class', s.brush)\n }\n\n _render (customDuration?: number): void {\n const { config } = this\n const xScale = this.xScale\n const yScale = this.yScale\n const duration = isNumber(customDuration) ? customDuration : config.duration\n\n if (this._firstRender) this.brush.classed(s.hide, this._firstRender && config.autoHide)\n\n // Sometimes Brush stops emitting 'start' and 'end' events. Possible explanation:\n // \"... mouseup will only fire when performed within the browser, which can lead to losing track of the button state.\"\n // https://stackoverflow.com/a/48970682\n //\n // D3 code related to the problem:\n // https://github.com/d3/d3-brush/blob/ec2bce6f15074a9ead7f9a84c61335be51c123a3/src/brush.js#L301\n //\n // We're clearing brush's event emitter state to force it to get re-initialized\n // Caveat of this solution: If you're doing a brush selection and a render happens\n // (e.g. due to a data or config update), it'll reset the brush.\n //\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n if (this.brush.node().__brush) this.brush.node().__brush.emitter = undefined\n\n this.brushBehaviour = this._getBrushBehaviour(config.mode)\n\n this.brushBehaviour\n .handleSize(config.handleWidth)\n .extent([[0, 0], [this._width, this._height]])\n .on('start', this._onBrushStart.bind(this))\n .on('brush', this._onBrushMove.bind(this))\n .on('end', this._onBrushEnd.bind(this))\n\n this.brush\n .call(this.brushBehaviour)\n\n // Calculate the brush range from configured selection and apply it\n let brushRange: FreeBrushSelectionInPixels\n switch (config.mode) {\n case FreeBrushMode.XY: {\n const xSelectionRange = this._dataRangeToPixelRange([config.selection?.[0][0], config.selection?.[0][1]], xScale)\n const ySelectionRange = this._dataRangeToPixelRange([config.selection?.[1][0], config.selection?.[1][1]], yScale, true)\n brushRange = (xSelectionRange && ySelectionRange) ? [[xSelectionRange[0], ySelectionRange[0]], [xSelectionRange[1], ySelectionRange[1]]] : null\n break\n }\n case FreeBrushMode.X:\n case FreeBrushMode.Y:\n default: {\n const scale = config.mode === FreeBrushMode.Y ? yScale : xScale\n brushRange = this._dataRangeToPixelRange(config.selection as [number, number], scale, config.mode === FreeBrushMode.Y)\n }\n }\n\n smartTransition(this.brush, duration)\n .call(this.brushBehaviour.move, brushRange) // Sets up the brush and calls brush events\n .on('end interrupt', () => { this._firstRender = false })\n\n if (!duration) this._firstRender = false\n }\n\n private _onBrush (event: D3BrushEvent<unknown>): void {\n const { config } = this\n const userDriven = !!event?.sourceEvent\n\n // Selection from the brush events is in Screen Space (pixels)\n // In case of two dimensional brush is comes as [ [xMinPx, yMinPx], [xMaxPx, yMaxPx] ],\n // while in the config we'll be storing it as [ [xMin, xMax], [yMin, yMax] ]\n const s = (event?.selection) as FreeBrushSelectionInPixels\n if (!this._isSelectionValid(s)) {\n config.selection = null\n return\n }\n\n // Convert the raw brush selection from pixels to data units, store it in the config and trigger the onBrush callback\n let selectedDomain: FreeBrushSelection\n switch (config.mode) {\n case FreeBrushMode.XY: {\n const xSelection = this._pixelRangeToDataRange([s[0][0], s[1][0]], this.xScale, config.selectionMinLength?.[0] ?? config.selectionMinLength)\n const ySelection = this._pixelRangeToDataRange([s[0][1], s[1][1]], this.yScale, config.selectionMinLength?.[1] ?? config.selectionMinLength, true)\n selectedDomain = (xSelection && ySelection) ? [\n [xSelection?.[0], xSelection?.[1]],\n [ySelection?.[0], ySelection?.[1]],\n ] : null\n break\n }\n case FreeBrushMode.Y: {\n selectedDomain = this._pixelRangeToDataRange(s as [number, number], this.yScale, config.selectionMinLength, true)\n break\n }\n case FreeBrushMode.X:\n default: {\n selectedDomain = this._pixelRangeToDataRange(s as [number, number], this.xScale, config.selectionMinLength)\n break\n }\n }\n\n if (selectedDomain === null || selectedDomain[0] === null || selectedDomain[1] === null) {\n this.brush.call(this.brushBehaviour.move, null)\n return\n }\n\n config.selection = selectedDomain\n if (!this._firstRender) config.onBrush(selectedDomain, event, userDriven)\n }\n\n private _pixelRangeToDataRange (selectionInPixels: [number, number], scale: ContinuousScale, constraint: number, reversed?: boolean): [number, number] | null {\n const selectedDomain = selectionInPixels.map(n => scale.invert(n)) as [number, number]\n if (reversed) selectedDomain.reverse()\n\n const domain = scale.domain() as [number, number]\n const domainLength = Math.abs(domain[1] - domain[0])\n const selectionLength = Math.abs(selectedDomain[1] - selectedDomain[0])\n\n if (constraint >= domainLength) {\n console.warn('Unovis | FreeBrush: Configured domain constraint is bigger than the brush domain')\n }\n\n if ((selectionLength < constraint) && (constraint < domainLength)) return null\n else return selectedDomain\n }\n\n private _dataRangeToPixelRange (selectionInDataUnits: [number, number], scale: ContinuousScale, reversed?: boolean): [number, number] | null {\n if (!selectionInDataUnits) return null\n\n const range = scale.range()\n const s = [...selectionInDataUnits]\n if (reversed) {\n range.reverse()\n s.reverse()\n }\n const selectionMin = clamp(scale(s[0]) ?? 0, range[0], range[1])\n const selectionMax = clamp(scale(s[1]) ?? 0, range[0], range[1])\n return (selectionMax - selectionMin) ? [selectionMin, selectionMax] : null\n }\n\n private _isSelectionValid (s: FreeBrushSelection | FreeBrushSelectionInPixels): boolean {\n const { config } = this\n\n if (config.mode === FreeBrushMode.XY) {\n return s && Array.isArray(s[0]) && Array.isArray(s[1])\n } else {\n return s && isNumber(s[0]) && isNumber(s[1])\n }\n }\n\n private _getBrushBehaviour (mode: FreeBrushMode): BrushBehavior<unknown> {\n switch (mode) {\n case FreeBrushMode.X: return brushX()\n case FreeBrushMode.Y: return brushY()\n default: return brush()\n }\n }\n\n private _onBrushStart (event: D3BrushEvent<unknown>): void {\n const { config } = this\n const userDriven = !!event?.sourceEvent\n this._onBrush(event)\n if (config.autoHide && userDriven) this.brush.classed(s.hide, false)\n if (!this._firstRender) config.onBrushStart?.(config.selection, event, userDriven)\n }\n\n private _onBrushMove (event: D3BrushEvent<unknown>): void {\n const { config } = this\n\n this._onBrush(event)\n if (!this._firstRender) config.onBrushMove?.(config.selection, event, !!event?.sourceEvent)\n }\n\n private _onBrushEnd (event: D3BrushEvent<unknown>): void {\n const { config } = this\n\n this._onBrush(event)\n if (config.autoHide) this.brush.classed(s.hide, true)\n if (!this._firstRender) config.onBrushEnd?.(config.selection, event, !!event?.sourceEvent)\n }\n}\n"],"names":["s.brush","s.hide","brush","s"],"mappings":"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"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { css, injectGlobal } from '@emotion/css'
|
|
1
|
+
import { css, injectGlobal } from '@emotion/css';
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
const root = css `
|
|
4
4
|
label: free-brush-component;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export const variables = injectGlobal`
|
|
5
|
+
`;
|
|
6
|
+
const variables = injectGlobal `
|
|
8
7
|
:root {
|
|
9
8
|
--vis-free-brush-selection-fill-color: #0b1640;
|
|
10
9
|
--vis-free-brush-selection-fill-opacity: 0.4;
|
|
@@ -22,9 +21,8 @@ export const variables = injectGlobal`
|
|
|
22
21
|
--vis-free-brush-selection-stroke-color: var(--vis-dark-free-brush-selection-stroke-color);
|
|
23
22
|
--vis-free-brush-handle-fill-color: var(--vis-dark-free-brush-selection-fill-color);
|
|
24
23
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
export const brush = css`
|
|
24
|
+
`;
|
|
25
|
+
const brush = css `
|
|
28
26
|
label: brush;
|
|
29
27
|
fill: none;
|
|
30
28
|
stroke: none;
|
|
@@ -41,10 +39,12 @@ export const brush = css`
|
|
|
41
39
|
fill: var(--vis-free-brush-handle-fill-color);
|
|
42
40
|
stroke: var(--vis-free-brush-handle-stroke-color);
|
|
43
41
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
export const hide = css`
|
|
42
|
+
`;
|
|
43
|
+
const hide = css `
|
|
47
44
|
.selection, .handle {
|
|
48
45
|
display: none;
|
|
49
46
|
}
|
|
50
|
-
|
|
47
|
+
`;
|
|
48
|
+
|
|
49
|
+
export { brush, hide, root, variables };
|
|
50
|
+
//# sourceMappingURL=style.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style.js","sources":["../../../src/components/free-brush/style.ts"],"sourcesContent":["import { css, injectGlobal } from '@emotion/css'\n\nexport const root = css`\n label: free-brush-component;\n`\n\nexport const variables = injectGlobal`\n :root {\n --vis-free-brush-selection-fill-color: #0b1640;\n --vis-free-brush-selection-fill-opacity: 0.4;\n --vis-free-brush-selection-stroke-color: #acb2b9;\n --vis-free-brush-handle-fill-color: #6d778c;\n --vis-free-brush-handle-stroke-color: none;\n\n --vis-dark-free-brush-selection-fill-color: #344174;\n --vis-dark-free-brush-selection-stroke-color: #0b1640;\n --vis-dark-free-brush-handle-fill-color: #6d778c;\n }\n\n body.theme-dark ${`.${root}`} {\n --vis-free-brush-selection-fill-color: var(--vis-dark-free-brush-selection-fill-color);\n --vis-free-brush-selection-stroke-color: var(--vis-dark-free-brush-selection-stroke-color);\n --vis-free-brush-handle-fill-color: var(--vis-dark-free-brush-selection-fill-color);\n }\n`\n\nexport const brush = css`\n label: brush;\n fill: none;\n stroke: none;\n\n .selection {\n fill: var(--vis-free-brush-selection-fill-color);\n fill-opacity: var(--vis-free-brush-selection-fill-opacity);\n stroke: var(--vis-free-brush-selection-stroke-color);\n stroke-width: 0;\n stroke-opacity: 0;\n }\n\n .handle {\n fill: var(--vis-free-brush-handle-fill-color);\n stroke: var(--vis-free-brush-handle-stroke-color);\n }\n`\n\nexport const hide = css`\n .selection, .handle {\n display: none;\n }\n`\n"],"names":[],"mappings":";;AAEO,MAAM,IAAI,GAAG,GAAG,CAAA,CAAA;;EAEtB;AAEM,MAAM,SAAS,GAAG,YAAY,CAAA,CAAA;;;;;;;;;;;;;AAajB,kBAAA,EAAA,CAAA,CAAA,EAAI,IAAI,CAAE,CAAA,CAAA;;;;;EAK7B;AAEM,MAAM,KAAK,GAAG,GAAG,CAAA,CAAA;;;;;;;;;;;;;;;;;EAiBvB;AAEM,MAAM,IAAI,GAAG,GAAG,CAAA,CAAA;;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../src/components/free-brush/types.ts"],"sourcesContent":["export type FreeBrushSelection = [number, number] | [[number, number], [number, number]];\nexport type FreeBrushSelectionInPixels = FreeBrushSelection\n\nexport enum FreeBrushMode {\n X = 'x',\n Y = 'y',\n XY = 'xy',\n}\n"],"names":[],"mappings":"IAGY,cAIX;AAJD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,GAAA,CAAA,GAAA,GAAO,CAAA;AACP,IAAA,aAAA,CAAA,GAAA,CAAA,GAAA,GAAO,CAAA;AACP,IAAA,aAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACX,CAAC,EAJW,aAAa,KAAb,aAAa,GAIxB,EAAA,CAAA,CAAA;;;;"}
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
import { ComponentConfigInterface, ComponentConfig } from "../../core/component/config";
|
|
2
|
+
import { TrimMode } from "../../types/text";
|
|
3
|
+
import { GraphInputLink, GraphInputNode } from "../../types/graph";
|
|
4
|
+
import { BooleanAccessor, ColorAccessor, NumericAccessor, StringAccessor, GenericAccessor } from "../../types/accessor";
|
|
5
|
+
import { GraphLayoutType, GraphCircleLabel, GraphLinkStyle, GraphLinkArrowStyle, GraphPanelConfig, GraphForceLayoutSettings, GraphElkLayoutSettings, GraphNodeShape } from './types';
|
|
6
|
+
export interface GraphConfigInterface<N extends GraphInputNode, L extends GraphInputLink> extends ComponentConfigInterface {
|
|
7
|
+
/** Zoom level constraints. Default: [0.35, 1.25] */
|
|
8
|
+
zoomScaleExtent?: [number, number];
|
|
9
|
+
/** Disable zooming. Default: `false` */
|
|
10
|
+
disableZoom?: boolean;
|
|
11
|
+
/** Disable node dragging. Default: `false` */
|
|
12
|
+
disableDrag?: boolean;
|
|
13
|
+
/** Interval to re-render the graph when zooming. Default: `100` */
|
|
14
|
+
zoomThrottledUpdateNodeThreshold?: number;
|
|
15
|
+
/** Zoom event callback. Default: `undefined` */
|
|
16
|
+
onZoom?: (zoomScale: number, zoomScaleExtent: number) => void;
|
|
17
|
+
/** Type of the graph layout. Default: `GraphLayoutType.Force` */
|
|
18
|
+
layoutType?: GraphLayoutType | string;
|
|
19
|
+
/** Fit the graph to container on data or config updates, or on container resize. Default: `true` */
|
|
20
|
+
layoutAutofit?: boolean;
|
|
21
|
+
/** Tolerance constant defining whether the graph should be fitted to container
|
|
22
|
+
* (on data or config update, or container resize) after a zoom / pan interaction or not.
|
|
23
|
+
* `0` — Stop fitting after any pan or zoom
|
|
24
|
+
* `Number.POSITIVE_INFINITY` — Always fit
|
|
25
|
+
* Default: `8.0` */
|
|
26
|
+
layoutAutofitTolerance?: number;
|
|
27
|
+
/** Place non-connected nodes at the bottom of the graph. Default: `false` */
|
|
28
|
+
layoutNonConnectedAside?: boolean;
|
|
29
|
+
/** Node group accessor function.
|
|
30
|
+
* Only for `GraphLayoutType.Parallel`, `GraphLayoutType.ParallelHorizontal` and `GraphLayoutType.Concentric` layouts.
|
|
31
|
+
* Default: `node => node.group` */
|
|
32
|
+
layoutNodeGroup?: StringAccessor<N>;
|
|
33
|
+
/** Order of the layout groups.
|
|
34
|
+
* Only for `GraphLayoutType.Parallel`, `GraphLayoutType.ParallelHorizontal` and `GraphLayoutType.Concentric` layouts.
|
|
35
|
+
* Default: `[]` */
|
|
36
|
+
layoutGroupOrder?: string[];
|
|
37
|
+
/** Sets the number of nodes in a sub-group after which they'll continue on the next column (or row if `layoutType` is
|
|
38
|
+
* `GraphLayoutType.ParallelHorizontal`).
|
|
39
|
+
* Only for `GraphLayoutType.Parallel` and `GraphLayoutType.ParallelHorizontal` layouts.
|
|
40
|
+
* Default: `6` */
|
|
41
|
+
layoutParallelNodesPerColumn?: number;
|
|
42
|
+
/** Node sub-group accessor function.
|
|
43
|
+
* Only for `GraphLayoutType.Parallel` and `GraphLayoutType.ParallelHorizontal` layouts.
|
|
44
|
+
* Default: `node => node.subgroup` */
|
|
45
|
+
layoutParallelNodeSubGroup?: StringAccessor<N>;
|
|
46
|
+
/** Number of sub-groups per row (or column if `layoutType` is `GraphLayoutType.ParallelHorizontal`) in a group.
|
|
47
|
+
* Only for `GraphLayoutType.Parallel` and `GraphLayoutType.ParallelHorizontal` layouts.
|
|
48
|
+
* Default: `1` */
|
|
49
|
+
layoutParallelSubGroupsPerRow?: number;
|
|
50
|
+
/** Spacing between groups.
|
|
51
|
+
* Only for `GraphLayoutType.Parallel` and `GraphLayoutType.ParallelHorizontal` layouts.
|
|
52
|
+
* Default: `undefined` */
|
|
53
|
+
layoutParallelGroupSpacing?: number;
|
|
54
|
+
/** Set a group by name to have priority in sorting the graph links.
|
|
55
|
+
* Only for `GraphLayoutType.Parallel` and `GraphLayoutType.ParallelHorizontal` layouts.
|
|
56
|
+
* Default: `undefined` */
|
|
57
|
+
layoutParallelSortConnectionsByGroup?: string;
|
|
58
|
+
/** Force Layout settings, see the `d3-force` package for more details */
|
|
59
|
+
forceLayoutSettings?: GraphForceLayoutSettings;
|
|
60
|
+
/** Darge Layout settings, see the `dagrejs` package
|
|
61
|
+
* for more details: https://github.com/dagrejs/dagre/wiki#configuring-the-layout
|
|
62
|
+
*/
|
|
63
|
+
dagreLayoutSettings?: {
|
|
64
|
+
/** Direction for rank node. `TB`, `BT`, `LR`, or `RL`. Default: `BT` */
|
|
65
|
+
rankdir: string;
|
|
66
|
+
/** Type of algorithm to assigns a rank to each node in the input graph.
|
|
67
|
+
* `network-simplex`, `tight-tree` or `longest-path`.
|
|
68
|
+
* Default: `longest-path` */
|
|
69
|
+
ranker: string;
|
|
70
|
+
/** Other configurable Dagre settings. https://github.com/dagrejs/dagre/wiki */
|
|
71
|
+
[key: string]: any;
|
|
72
|
+
};
|
|
73
|
+
/** ELK layout options, see the `elkjs` package for more details: https://github.com/kieler/elkjs.
|
|
74
|
+
* If you want to specify custom layout option for each node group, you can provide an accessor function that
|
|
75
|
+
* receives group name ('root' for the top-level configuration) as the first argument and returns an object containing
|
|
76
|
+
* layout options. Default: `undefined`
|
|
77
|
+
*/
|
|
78
|
+
layoutElkSettings?: GenericAccessor<GraphElkLayoutSettings, string> | undefined;
|
|
79
|
+
/** Array of accessor functions to define nested node groups for the ELK Layered layout.
|
|
80
|
+
* E.g.: `[n => n.group, n => n.subGroup]`.
|
|
81
|
+
* Default: `undefined` */
|
|
82
|
+
layoutElkNodeGroups?: StringAccessor<N>[];
|
|
83
|
+
/** Link width accessor function ot constant value. Default: `1` */
|
|
84
|
+
linkWidth?: NumericAccessor<L>;
|
|
85
|
+
/** Link style accessor function or constant value. Default: `GraphLinkStyle.Solid` */
|
|
86
|
+
linkStyle?: GenericAccessor<GraphLinkStyle, L>;
|
|
87
|
+
/** Link band width accessor function or constant value. Default: `0` */
|
|
88
|
+
linkBandWidth?: NumericAccessor<L>;
|
|
89
|
+
/** Link arrow accessor function or constant value. Default: `undefined` */
|
|
90
|
+
linkArrow?: GenericAccessor<GraphLinkArrowStyle, L> | undefined;
|
|
91
|
+
/** Link stroke color accessor function or constant value. Default: `undefined` */
|
|
92
|
+
linkStroke?: ColorAccessor<L>;
|
|
93
|
+
/** Link disabled state accessor function or constant value. Default: `false` */
|
|
94
|
+
linkDisabled?: BooleanAccessor<L>;
|
|
95
|
+
/** Link flow animation accessor function or constant value. Default: `false` */
|
|
96
|
+
linkFlow?: BooleanAccessor<L>;
|
|
97
|
+
/** Animation duration of the flow (traffic) circles. Default: `20000` */
|
|
98
|
+
linkFlowAnimDuration?: number;
|
|
99
|
+
/** Size of the moving particles that represent traffic flow. Default: `2` */
|
|
100
|
+
linkFlowParticleSize?: number;
|
|
101
|
+
/** Link label accessor function or constant value. Default: `undefined` */
|
|
102
|
+
linkLabel?: GenericAccessor<GraphCircleLabel, L> | undefined;
|
|
103
|
+
/** Shift label along the link center a little bit to avoid overlap with the link arrow. Default: `true` */
|
|
104
|
+
linkLabelShiftFromCenter?: BooleanAccessor<L>;
|
|
105
|
+
/** Spacing between neighboring links. Default: `8` */
|
|
106
|
+
linkNeighborSpacing?: number;
|
|
107
|
+
/** Set selected link by its unique id. Default: `undefined` */
|
|
108
|
+
selectedLinkId?: number | string;
|
|
109
|
+
/** Node size accessor function or constant value. Default: `30` */
|
|
110
|
+
nodeSize?: NumericAccessor<N>;
|
|
111
|
+
/** Node stroke width accessor function or constant value. Default: `3` */
|
|
112
|
+
nodeStrokeWidth?: NumericAccessor<N>;
|
|
113
|
+
/** Node shape accessor function or constant value. Default: `GraphNodeShape.Circle` */
|
|
114
|
+
nodeShape?: GenericAccessor<GraphNodeShape | string, N>;
|
|
115
|
+
/** Node gauge outline accessor function or constant value in the range [0,100]. Default: `0` */
|
|
116
|
+
nodeGaugeValue?: NumericAccessor<N>;
|
|
117
|
+
/** Node gauge outline fill color accessor function or constant value. Default: `undefined` */
|
|
118
|
+
nodeGaugeFill?: ColorAccessor<N>;
|
|
119
|
+
/** Animation duration of the node gauge outline. Default: `1500` */
|
|
120
|
+
nodeGaugeAnimDuration?: number;
|
|
121
|
+
/** Node central icon accessor function or constant value. Default: `node => node.icon` */
|
|
122
|
+
nodeIcon?: StringAccessor<N>;
|
|
123
|
+
/** Node central icon size accessor function or constant value. Default: `undefined` */
|
|
124
|
+
nodeIconSize?: NumericAccessor<N>;
|
|
125
|
+
/** Node label accessor function or constant value. Default: `node => node.label` */
|
|
126
|
+
nodeLabel?: StringAccessor<N>;
|
|
127
|
+
/** Defines whether to trim the node labels or not. Default: `true` */
|
|
128
|
+
nodeLabelTrim?: BooleanAccessor<N>;
|
|
129
|
+
/** Node label trimming mode. Default: `TrimMode.Middle` */
|
|
130
|
+
nodeLabelTrimMode?: GenericAccessor<TrimMode | string, N>;
|
|
131
|
+
/** Node label maximum allowed text length above which the label will be trimmed. Default: `15` */
|
|
132
|
+
nodeLabelTrimLength?: NumericAccessor<N>;
|
|
133
|
+
/** Node sub-label accessor function or constant value: Default: `''` */
|
|
134
|
+
nodeSubLabel?: StringAccessor<N>;
|
|
135
|
+
/** Defines whether to trim the node sub-labels or not. Default: `true` */
|
|
136
|
+
nodeSubLabelTrim?: BooleanAccessor<N>;
|
|
137
|
+
/** Node sub-label trimming mode. Default: `TrimMode.Middle` */
|
|
138
|
+
nodeSubLabelTrimMode?: GenericAccessor<TrimMode | string, N>;
|
|
139
|
+
/** Node sub-label maximum allowed text length above which the label will be trimmed. Default: `15` */
|
|
140
|
+
nodeSubLabelTrimLength?: NumericAccessor<N>;
|
|
141
|
+
/** Node circular side labels accessor function. The function should return an array of GraphCircleLabel objects. Default: `undefined` */
|
|
142
|
+
nodeSideLabels?: GenericAccessor<GraphCircleLabel[], N>;
|
|
143
|
+
/** Node bottom icon accessor function. Default: `undefined` */
|
|
144
|
+
nodeBottomIcon?: StringAccessor<N>;
|
|
145
|
+
/** Node disabled state accessor function or constant value. Default: `false` */
|
|
146
|
+
nodeDisabled?: BooleanAccessor<N>;
|
|
147
|
+
/** Node fill color accessor function or constant value. Default: `node => node.fill` */
|
|
148
|
+
nodeFill?: ColorAccessor<N>;
|
|
149
|
+
/** Node stroke color accessor function or constant value. Default: `node => node.stroke` */
|
|
150
|
+
nodeStroke?: ColorAccessor<N>;
|
|
151
|
+
/** Sorting function to determine node placement. Default: `undefined` */
|
|
152
|
+
nodeSort?: ((a: N, b: N) => number);
|
|
153
|
+
/** Specify the initial position for entering nodes as [x, y]. Default: `undefined` */
|
|
154
|
+
nodeEnterPosition?: GenericAccessor<[number, number], N> | undefined;
|
|
155
|
+
/** Specify the initial scale for entering nodes in the range [0,1]. Default: `0.75` */
|
|
156
|
+
nodeEnterScale?: NumericAccessor<N> | undefined;
|
|
157
|
+
/** Specify the destination position for exiting nodes as [x, y]. Default: `undefined` */
|
|
158
|
+
nodeExitPosition?: GenericAccessor<[number, number], N> | undefined;
|
|
159
|
+
/** Specify the destination scale for exiting nodes in the range [0,1]. Default: `0.75` */
|
|
160
|
+
nodeExitScale?: NumericAccessor<N> | undefined;
|
|
161
|
+
/** Set selected node by unique id. Default: `undefined` */
|
|
162
|
+
selectedNodeId?: number | string;
|
|
163
|
+
/** Panels configuration. An array of `GraphPanelConfig` objects. Default: `[]` */
|
|
164
|
+
panels?: GraphPanelConfig[] | undefined;
|
|
165
|
+
}
|
|
166
|
+
export declare class GraphConfig<N extends GraphInputNode, L extends GraphInputLink> extends ComponentConfig implements GraphConfigInterface<N, L> {
|
|
167
|
+
duration: number;
|
|
168
|
+
zoomScaleExtent: [number, number];
|
|
169
|
+
disableZoom: boolean;
|
|
170
|
+
disableDrag: boolean;
|
|
171
|
+
zoomThrottledUpdateNodeThreshold: number;
|
|
172
|
+
onZoom: any;
|
|
173
|
+
layoutType: GraphLayoutType;
|
|
174
|
+
layoutAutofit: boolean;
|
|
175
|
+
layoutAutofitTolerance: number;
|
|
176
|
+
layoutNonConnectedAside: boolean;
|
|
177
|
+
layoutGroupOrder: any[];
|
|
178
|
+
layoutParallelSubGroupsPerRow: number;
|
|
179
|
+
layoutParallelNodesPerColumn: number;
|
|
180
|
+
layoutParallelGroupSpacing: any;
|
|
181
|
+
layoutParallelSortConnectionsByGroup: any;
|
|
182
|
+
layoutNodeGroup: (n: N) => string;
|
|
183
|
+
layoutParallelNodeSubGroup: (n: N) => string;
|
|
184
|
+
forceLayoutSettings: {
|
|
185
|
+
linkDistance: number;
|
|
186
|
+
linkStrength: number;
|
|
187
|
+
charge: number;
|
|
188
|
+
forceXStrength: number;
|
|
189
|
+
forceYStrength: number;
|
|
190
|
+
};
|
|
191
|
+
dagreLayoutSettings: {
|
|
192
|
+
rankdir: string;
|
|
193
|
+
ranker: string;
|
|
194
|
+
};
|
|
195
|
+
layoutElkSettings: GenericAccessor<GraphElkLayoutSettings, string> | undefined;
|
|
196
|
+
layoutElkNodeGroups: StringAccessor<N>[] | undefined;
|
|
197
|
+
linkFlowAnimDuration: number;
|
|
198
|
+
linkFlowParticleSize: number;
|
|
199
|
+
linkWidth: number;
|
|
200
|
+
linkStyle: GraphLinkStyle;
|
|
201
|
+
linkBandWidth: number;
|
|
202
|
+
linkArrow: any;
|
|
203
|
+
linkStroke: any;
|
|
204
|
+
linkFlow: boolean;
|
|
205
|
+
linkLabel: any;
|
|
206
|
+
linkLabelShiftFromCenter: boolean;
|
|
207
|
+
linkNeighborSpacing: number;
|
|
208
|
+
linkDisabled: boolean;
|
|
209
|
+
selectedLinkId: any;
|
|
210
|
+
nodeGaugeAnimDuration: number;
|
|
211
|
+
nodeSize: number;
|
|
212
|
+
nodeStrokeWidth: number;
|
|
213
|
+
nodeShape: GraphNodeShape;
|
|
214
|
+
nodeGaugeValue: number;
|
|
215
|
+
nodeIcon: (n: N) => string;
|
|
216
|
+
nodeIconSize: any;
|
|
217
|
+
nodeLabel: (n: N) => string;
|
|
218
|
+
nodeLabelTrim: boolean;
|
|
219
|
+
nodeLabelTrimLength: number;
|
|
220
|
+
nodeLabelTrimMode: TrimMode;
|
|
221
|
+
nodeSubLabel: string;
|
|
222
|
+
nodeSubLabelTrim: boolean;
|
|
223
|
+
nodeSubLabelTrimLength: number;
|
|
224
|
+
nodeSubLabelTrimMode: TrimMode;
|
|
225
|
+
nodeSideLabels: any;
|
|
226
|
+
nodeBottomIcon: any;
|
|
227
|
+
nodeDisabled: boolean;
|
|
228
|
+
nodeFill: (n: N) => string;
|
|
229
|
+
nodeGaugeFill: any;
|
|
230
|
+
nodeStroke: (n: N) => string;
|
|
231
|
+
nodeEnterPosition: any;
|
|
232
|
+
nodeEnterScale: number;
|
|
233
|
+
nodeExitPosition: any;
|
|
234
|
+
nodeExitScale: number;
|
|
235
|
+
nodeSort: any;
|
|
236
|
+
selectedNodeId: any;
|
|
237
|
+
panels: GraphPanelConfig[] | undefined;
|
|
238
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { ComponentConfig } from '../../core/component/config.js';
|
|
2
|
+
import { TrimMode } from '../../types/text.js';
|
|
3
|
+
import { GraphLayoutType, GraphLinkStyle, GraphNodeShape } from './types.js';
|
|
4
|
+
|
|
5
|
+
/* eslint-disable dot-notation */
|
|
6
|
+
class GraphConfig extends ComponentConfig {
|
|
7
|
+
constructor() {
|
|
8
|
+
super(...arguments);
|
|
9
|
+
this.duration = 1000;
|
|
10
|
+
this.zoomScaleExtent = [0.35, 1.25];
|
|
11
|
+
this.disableZoom = false;
|
|
12
|
+
this.disableDrag = false;
|
|
13
|
+
this.zoomThrottledUpdateNodeThreshold = 100;
|
|
14
|
+
this.onZoom = undefined;
|
|
15
|
+
this.layoutType = GraphLayoutType.Force;
|
|
16
|
+
this.layoutAutofit = true;
|
|
17
|
+
this.layoutAutofitTolerance = 8.0;
|
|
18
|
+
this.layoutNonConnectedAside = false;
|
|
19
|
+
this.layoutGroupOrder = [];
|
|
20
|
+
this.layoutParallelSubGroupsPerRow = 1;
|
|
21
|
+
this.layoutParallelNodesPerColumn = 6;
|
|
22
|
+
this.layoutParallelGroupSpacing = undefined;
|
|
23
|
+
this.layoutParallelSortConnectionsByGroup = undefined;
|
|
24
|
+
this.layoutNodeGroup = (n) => n['group'];
|
|
25
|
+
this.layoutParallelNodeSubGroup = (n) => n['subgroup'];
|
|
26
|
+
this.forceLayoutSettings = {
|
|
27
|
+
linkDistance: 60,
|
|
28
|
+
linkStrength: 0.45,
|
|
29
|
+
charge: -500,
|
|
30
|
+
forceXStrength: 0.15,
|
|
31
|
+
forceYStrength: 0.25,
|
|
32
|
+
};
|
|
33
|
+
this.dagreLayoutSettings = {
|
|
34
|
+
rankdir: 'BT',
|
|
35
|
+
ranker: 'longest-path',
|
|
36
|
+
};
|
|
37
|
+
this.layoutElkSettings = undefined;
|
|
38
|
+
this.layoutElkNodeGroups = undefined;
|
|
39
|
+
this.linkFlowAnimDuration = 20000;
|
|
40
|
+
this.linkFlowParticleSize = 2;
|
|
41
|
+
this.linkWidth = 1;
|
|
42
|
+
this.linkStyle = GraphLinkStyle.Solid;
|
|
43
|
+
this.linkBandWidth = 0;
|
|
44
|
+
this.linkArrow = undefined;
|
|
45
|
+
this.linkStroke = undefined;
|
|
46
|
+
this.linkFlow = false;
|
|
47
|
+
this.linkLabel = undefined;
|
|
48
|
+
this.linkLabelShiftFromCenter = true;
|
|
49
|
+
this.linkNeighborSpacing = 8;
|
|
50
|
+
this.linkDisabled = false;
|
|
51
|
+
this.selectedLinkId = undefined;
|
|
52
|
+
this.nodeGaugeAnimDuration = 1500;
|
|
53
|
+
this.nodeSize = 30;
|
|
54
|
+
this.nodeStrokeWidth = 3;
|
|
55
|
+
this.nodeShape = GraphNodeShape.Circle;
|
|
56
|
+
this.nodeGaugeValue = 0;
|
|
57
|
+
this.nodeIcon = (n) => n['icon'];
|
|
58
|
+
this.nodeIconSize = undefined;
|
|
59
|
+
this.nodeLabel = (n) => n['label'];
|
|
60
|
+
this.nodeLabelTrim = true;
|
|
61
|
+
this.nodeLabelTrimLength = 15;
|
|
62
|
+
this.nodeLabelTrimMode = TrimMode.Middle;
|
|
63
|
+
this.nodeSubLabel = '';
|
|
64
|
+
this.nodeSubLabelTrim = true;
|
|
65
|
+
this.nodeSubLabelTrimLength = 15;
|
|
66
|
+
this.nodeSubLabelTrimMode = TrimMode.Middle;
|
|
67
|
+
this.nodeSideLabels = undefined;
|
|
68
|
+
this.nodeBottomIcon = undefined;
|
|
69
|
+
this.nodeDisabled = false;
|
|
70
|
+
this.nodeFill = (n) => n['fill'];
|
|
71
|
+
this.nodeGaugeFill = undefined;
|
|
72
|
+
this.nodeStroke = (n) => n['stroke'];
|
|
73
|
+
this.nodeEnterPosition = undefined;
|
|
74
|
+
this.nodeEnterScale = 0.75;
|
|
75
|
+
this.nodeExitPosition = undefined;
|
|
76
|
+
this.nodeExitScale = 0.75;
|
|
77
|
+
this.nodeSort = undefined;
|
|
78
|
+
this.selectedNodeId = undefined;
|
|
79
|
+
this.panels = undefined;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export { GraphConfig };
|
|
84
|
+
//# sourceMappingURL=config.js.map
|