@mathstack/viz 2.1.0 → 2.2.0
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/fesm2022/mathstack-viz.mjs +11024 -0
- package/fesm2022/mathstack-viz.mjs.map +1 -0
- package/package.json +14 -5
- package/types/mathstack-viz.d.ts +5830 -0
- package/CHANGELOG.md +0 -0
- package/cypress/fixtures/example.json +0 -5
- package/cypress/fixtures/usMap.json +0 -13511
- package/cypress/support/commands.ts +0 -104
- package/cypress/support/component-index.html +0 -12
- package/cypress/support/component.ts +0 -33
- package/cypress.config.ts +0 -9
- package/karma.conf.js +0 -62
- package/ng-package.json +0 -8
- package/project.json +0 -97
- package/src/.eslintrc.json +0 -35
- package/src/.prettierrc +0 -31
- package/src/lib/axes/base/config/xy-axis-builder.ts +0 -68
- package/src/lib/axes/base/config/xy-axis-config.ts +0 -35
- package/src/lib/axes/base/config/xy-axis-options.ts +0 -11
- package/src/lib/axes/base/xy-axis-base.spec.ts +0 -114
- package/src/lib/axes/base/xy-axis-base.ts +0 -305
- package/src/lib/axes/base/xy-axis-domain-lines.cy.ts +0 -511
- package/src/lib/axes/baseline/axis-baseline-builder.ts +0 -77
- package/src/lib/axes/baseline/axis-baseline-options.ts +0 -4
- package/src/lib/axes/baseline/axis-baseline.ts +0 -11
- package/src/lib/axes/grid/grid-builder.ts +0 -74
- package/src/lib/axes/grid/grid-config.ts +0 -13
- package/src/lib/axes/grid/grid-options.ts +0 -7
- package/src/lib/axes/index.ts +0 -40
- package/src/lib/axes/label/axis-label-builder.ts +0 -140
- package/src/lib/axes/label/axis-label-options.ts +0 -12
- package/src/lib/axes/label/axis-label.ts +0 -18
- package/src/lib/axes/label/axis-labels.cy.ts +0 -303
- package/src/lib/axes/ordinal/ordinal-axis-config.ts +0 -31
- package/src/lib/axes/ordinal/ordinal-axis.spec.ts +0 -30
- package/src/lib/axes/ordinal/ordinal-axis.ts +0 -26
- package/src/lib/axes/quantitative/quantitative-axis-config.ts +0 -39
- package/src/lib/axes/quantitative/quantitative-axis-ticks.cy.ts +0 -748
- package/src/lib/axes/quantitative/quantitative-axis.spec.ts +0 -537
- package/src/lib/axes/quantitative/quantitative-axis.ts +0 -191
- package/src/lib/axes/ticks/tick-wrap/tick-wrap-builder.ts +0 -141
- package/src/lib/axes/ticks/tick-wrap/tick-wrap-options.ts +0 -11
- package/src/lib/axes/ticks/tick-wrap/tick-wrap.cy.ts +0 -360
- package/src/lib/axes/ticks/tick-wrap/tick-wrap.ts +0 -21
- package/src/lib/axes/ticks/ticks-builder.ts +0 -370
- package/src/lib/axes/ticks/ticks-options.ts +0 -24
- package/src/lib/axes/ticks/ticks.ts +0 -33
- package/src/lib/axes/x/x-axis-config.ts +0 -48
- package/src/lib/axes/x/x-axis.spec.ts +0 -90
- package/src/lib/axes/x/x-axis.ts +0 -109
- package/src/lib/axes/x-ordinal/x-ordinal-axis-builder.ts +0 -75
- package/src/lib/axes/x-ordinal/x-ordinal-axis-config.ts +0 -27
- package/src/lib/axes/x-ordinal/x-ordinal-axis.component.ts +0 -33
- package/src/lib/axes/x-quantitative/x-quantitative-axis-builder.ts +0 -74
- package/src/lib/axes/x-quantitative/x-quantitative-axis-config.ts +0 -32
- package/src/lib/axes/x-quantitative/x-quantitative-axis.component.ts +0 -40
- package/src/lib/axes/xy-axis.module.ts +0 -20
- package/src/lib/axes/y/y-axis-config.ts +0 -47
- package/src/lib/axes/y/y-axis.spec.ts +0 -92
- package/src/lib/axes/y/y-axis.ts +0 -161
- package/src/lib/axes/y-ordinal/y-ordinal-axis-builder.ts +0 -76
- package/src/lib/axes/y-ordinal/y-ordinal-axis-config.ts +0 -29
- package/src/lib/axes/y-ordinal/y-ordinal-axis.component.ts +0 -33
- package/src/lib/axes/y-quantitative-axis/y-quantitative-axis-builder.ts +0 -74
- package/src/lib/axes/y-quantitative-axis/y-quantitative-axis-config.ts +0 -34
- package/src/lib/axes/y-quantitative-axis/y-quantitative-axis.component.ts +0 -40
- package/src/lib/bars/bars.component.scss +0 -0
- package/src/lib/bars/bars.component.spec.ts +0 -1470
- package/src/lib/bars/bars.component.ts +0 -717
- package/src/lib/bars/bars.cy.ts +0 -829
- package/src/lib/bars/bars.module.ts +0 -9
- package/src/lib/bars/config/backgrounds/bars-backgrounds-builder.ts +0 -51
- package/src/lib/bars/config/backgrounds/bars-backgrounds-options.ts +0 -4
- package/src/lib/bars/config/backgrounds/bars-backgrounds.ts +0 -11
- package/src/lib/bars/config/bars-builder.ts +0 -340
- package/src/lib/bars/config/bars-config.spec.ts +0 -132
- package/src/lib/bars/config/bars-config.ts +0 -70
- package/src/lib/bars/config/bars-dimensions.ts +0 -29
- package/src/lib/bars/config/bars-options.ts +0 -20
- package/src/lib/bars/config/labels/bars-labels-builder.ts +0 -89
- package/src/lib/bars/config/labels/bars-labels-options.ts +0 -6
- package/src/lib/bars/config/labels/bars-labels.cy.ts +0 -781
- package/src/lib/bars/config/labels/bars-labels.ts +0 -13
- package/src/lib/bars/events/actions/bars-click-actions.ts +0 -23
- package/src/lib/bars/events/actions/bars-hover-actions.ts +0 -43
- package/src/lib/bars/events/actions/bars-hover-move-actions.ts +0 -21
- package/src/lib/bars/events/bars-events.directive.spec.ts +0 -186
- package/src/lib/bars/events/bars-events.directive.ts +0 -235
- package/src/lib/bars/events/bars-interaction-output.ts +0 -17
- package/src/lib/bars/events/bars-tooltip-positioner.ts +0 -24
- package/src/lib/bars/index.ts +0 -18
- package/src/lib/charts/chart/chart-scaling.cy.ts +0 -323
- package/src/lib/charts/chart/chart.component.html +0 -45
- package/src/lib/charts/chart/chart.component.scss +0 -37
- package/src/lib/charts/chart/chart.component.ts +0 -243
- package/src/lib/charts/chart/chart.token.ts +0 -4
- package/src/lib/charts/chart/chart.ts +0 -5
- package/src/lib/charts/chart/config/chart-builder.ts +0 -194
- package/src/lib/charts/chart/config/chart-config.ts +0 -21
- package/src/lib/charts/chart/config/chart-options.ts +0 -11
- package/src/lib/charts/chart.module.ts +0 -10
- package/src/lib/charts/index.ts +0 -9
- package/src/lib/charts/map-chart/map-chart.component.scss +0 -0
- package/src/lib/charts/map-chart/map-chart.component.spec.ts +0 -35
- package/src/lib/charts/map-chart/map-chart.component.ts +0 -61
- package/src/lib/charts/xy-chart/xy-chart.component.spec.ts +0 -34
- package/src/lib/charts/xy-chart/xy-chart.component.ts +0 -65
- package/src/lib/core/common-behaviors/constructor.ts +0 -7
- package/src/lib/core/index.ts +0 -11
- package/src/lib/core/pipes/resize-chart-height.pipe.spec.ts +0 -23
- package/src/lib/core/pipes/resize-chart-height.pipe.ts +0 -20
- package/src/lib/core/styles/_spacing.scss +0 -4
- package/src/lib/core/types/layout.ts +0 -28
- package/src/lib/core/types/scale.ts +0 -6
- package/src/lib/core/types/utility.ts +0 -11
- package/src/lib/core/types/values.ts +0 -10
- package/src/lib/core/utilities/colors.spec.ts +0 -57
- package/src/lib/core/utilities/colors.ts +0 -42
- package/src/lib/core/utilities/fill-utilities.spec.ts +0 -25
- package/src/lib/core/utilities/fill-utilities.ts +0 -21
- package/src/lib/core/utilities/type-guards.spec.ts +0 -55
- package/src/lib/core/utilities/type-guards.ts +0 -33
- package/src/lib/core/utilities/value-format.ts +0 -21
- package/src/lib/core/utilities/values.spec.ts +0 -954
- package/src/lib/core/utilities/values.ts +0 -189
- package/src/lib/data-dimensions/continuous-quantitative/date-chart-position/date-chart-position-builder.ts +0 -105
- package/src/lib/data-dimensions/continuous-quantitative/date-chart-position/date-chart-position-options.ts +0 -24
- package/src/lib/data-dimensions/continuous-quantitative/date-chart-position/date-chart-position.spec.ts +0 -66
- package/src/lib/data-dimensions/continuous-quantitative/date-chart-position/date-chart-position.ts +0 -72
- package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/concrete-domain-padding.ts +0 -10
- package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/domain-padding.ts +0 -76
- package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/domain-test-utility.ts +0 -130
- package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/percent-over/percent-over-options.ts +0 -3
- package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/percent-over/percent-over.ts +0 -37
- package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/pixel/pixel-options.ts +0 -3
- package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/pixel/pixel.ts +0 -73
- package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/quantitative-domain-padding.cy.ts +0 -978
- package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/round-to-interval/round-to-interval-options.ts +0 -3
- package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/round-to-interval/round-to-interval.ts +0 -27
- package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/round-to-sig-fig/round-to-sig-fig-options.ts +0 -3
- package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/round-to-sig-fig/round-to-sig-fig.ts +0 -30
- package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/number-chart-position-builder.ts +0 -183
- package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/number-chart-position-options.ts +0 -8
- package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/number-chart-position.spec.ts +0 -28
- package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/number-chart-position.ts +0 -62
- package/src/lib/data-dimensions/continuous-quantitative/number-dimension/number-dimension-options.ts +0 -15
- package/src/lib/data-dimensions/continuous-quantitative/number-dimension/number-dimension.spec.ts +0 -155
- package/src/lib/data-dimensions/continuous-quantitative/number-dimension/number-dimension.ts +0 -57
- package/src/lib/data-dimensions/continuous-quantitative/number-visual-value/number-visual-value-builder.ts +0 -166
- package/src/lib/data-dimensions/continuous-quantitative/number-visual-value/number-visual-value-options.ts +0 -10
- package/src/lib/data-dimensions/continuous-quantitative/number-visual-value/number-visual-value.spec.ts +0 -34
- package/src/lib/data-dimensions/continuous-quantitative/number-visual-value/number-visual-value.ts +0 -57
- package/src/lib/data-dimensions/dimension-builder.ts +0 -45
- package/src/lib/data-dimensions/dimension-options.ts +0 -12
- package/src/lib/data-dimensions/dimension.ts +0 -30
- package/src/lib/data-dimensions/index.ts +0 -31
- package/src/lib/data-dimensions/ordinal/ordinal-chart-position/ordinal-chart-position-builder.ts +0 -122
- package/src/lib/data-dimensions/ordinal/ordinal-chart-position/ordinal-chart-position-options.ts +0 -12
- package/src/lib/data-dimensions/ordinal/ordinal-chart-position/ordinal-chart-position.spec.ts +0 -83
- package/src/lib/data-dimensions/ordinal/ordinal-chart-position/ordinal-chart-position.ts +0 -101
- package/src/lib/data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value-builder.ts +0 -108
- package/src/lib/data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value-options.ts +0 -12
- package/src/lib/data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value.cy.ts +0 -384
- package/src/lib/data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value.spec.ts +0 -63
- package/src/lib/data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value.ts +0 -79
- package/src/lib/data-export/data-export-config.ts +0 -98
- package/src/lib/data-export/data-export.spec.ts +0 -33
- package/src/lib/data-export/data-export.ts +0 -87
- package/src/lib/data-export/index.ts +0 -2
- package/src/lib/dots/config/dots-builder.ts +0 -442
- package/src/lib/dots/config/dots-config.spec.ts +0 -123
- package/src/lib/dots/config/dots-config.ts +0 -81
- package/src/lib/dots/config/dots-options.ts +0 -32
- package/src/lib/dots/dots.component.scss +0 -0
- package/src/lib/dots/dots.component.spec.ts +0 -143
- package/src/lib/dots/dots.component.ts +0 -291
- package/src/lib/dots/dots.cy.ts +0 -594
- package/src/lib/dots/dots.module.ts +0 -9
- package/src/lib/dots/events/actions/dots-hover-actions.ts +0 -19
- package/src/lib/dots/events/actions/dots-hover-move-actions.ts +0 -38
- package/src/lib/dots/events/dots-events.directive.ts +0 -214
- package/src/lib/dots/events/dots-interaction-output.ts +0 -15
- package/src/lib/dots/events/dots-tooltip-positioner.ts +0 -24
- package/src/lib/dots/index.ts +0 -10
- package/src/lib/events/events.directive.ts +0 -184
- package/src/lib/events/events.types.ts +0 -57
- package/src/lib/events/index.ts +0 -4
- package/src/lib/events/interaction-output.ts +0 -34
- package/src/lib/events/tooltip-positioner.ts +0 -15
- package/src/lib/fill-definitions/fill-definitions.ts +0 -4
- package/src/lib/fill-definitions/index.ts +0 -1
- package/src/lib/geographies/config/geographies-builder.ts +0 -224
- package/src/lib/geographies/config/geographies-config.spec.ts +0 -100
- package/src/lib/geographies/config/geographies-config.ts +0 -81
- package/src/lib/geographies/config/geographies-options.ts +0 -37
- package/src/lib/geographies/config/layers/attribute-data-layer/attribute-data-layer-builder.ts +0 -212
- package/src/lib/geographies/config/layers/attribute-data-layer/attribute-data-layer-options.ts +0 -26
- package/src/lib/geographies/config/layers/attribute-data-layer/attribute-data-layer.spec.ts +0 -119
- package/src/lib/geographies/config/layers/attribute-data-layer/attribute-data-layer.ts +0 -148
- package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/attribute-data/attribute-data-dimension-builder.ts +0 -65
- package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/attribute-data/attribute-data-dimension-options.ts +0 -15
- package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/attribute-data/attribute-data-dimension.ts +0 -32
- package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/attribute-data-bin-enums.ts +0 -10
- package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/attribute-data-bin-types.ts +0 -15
- package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/calculated-bins/calculated-bins-builder.ts +0 -18
- package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/calculated-bins/calculated-bins-options.ts +0 -8
- package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/calculated-bins/calculated-bins.spec.ts +0 -60
- package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/calculated-bins/calculated-bins.ts +0 -34
- package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/categorical-bins/categorical-bins-builder.ts +0 -46
- package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/categorical-bins/categorical-bins-options.ts +0 -8
- package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/categorical-bins/categorical-bins.cy.ts +0 -437
- package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/categorical-bins/categorical-bins.spec.ts +0 -105
- package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/categorical-bins/categorical-bins.ts +0 -54
- package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/custom-breaks/custom-breaks-bins-builder.ts +0 -65
- package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/custom-breaks/custom-breaks-bins-options.ts +0 -9
- package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/custom-breaks/custom-breaks-bins.spec.ts +0 -82
- package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/custom-breaks/custom-breaks-bins.ts +0 -81
- package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/custom-breaks/custom-breaks.cy.ts +0 -378
- package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-frequencies-bins/equal-frequencies-bins-builder.ts +0 -50
- package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-frequencies-bins/equal-frequencies-bins-options.ts +0 -8
- package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-frequencies-bins/equal-frequencies-bins.cy.ts +0 -362
- package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-frequencies-bins/equal-frequencies-bins.spec.ts +0 -72
- package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-frequencies-bins/equal-frequencies-bins.ts +0 -56
- package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-value-ranges-bins/equal-value-ranges-bins-builder.ts +0 -60
- package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-value-ranges-bins/equal-value-ranges-bins-options.ts +0 -9
- package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-value-ranges-bins/equal-value-ranges-bins.cy.ts +0 -307
- package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-value-ranges-bins/equal-value-ranges-bins.spec.ts +0 -104
- package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-value-ranges-bins/equal-value-ranges-bins.ts +0 -89
- package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/no-bins/no-bins-builder.ts +0 -62
- package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/no-bins/no-bins-options.ts +0 -8
- package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/no-bins/no-bins.cy.ts +0 -265
- package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/no-bins/no-bins.spec.ts +0 -42
- package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/no-bins/no-bins.ts +0 -42
- package/src/lib/geographies/config/layers/geographies-layer/geographies-layer-builder.ts +0 -116
- package/src/lib/geographies/config/layers/geographies-layer/geographies-layer-options.ts +0 -20
- package/src/lib/geographies/config/layers/geographies-layer/geographies-layer.ts +0 -104
- package/src/lib/geographies/config/layers/geojson-properties-layer/geojson-properties-layer-builder.ts +0 -111
- package/src/lib/geographies/config/layers/geojson-properties-layer/geojson-properties-layer-options.ts +0 -19
- package/src/lib/geographies/config/layers/geojson-properties-layer/geojson-properties-layer.spec.ts +0 -41
- package/src/lib/geographies/config/layers/geojson-properties-layer/geojson-properties-layer.ts +0 -67
- package/src/lib/geographies/config/layers/labels/geographies-labels-builder.ts +0 -269
- package/src/lib/geographies/config/layers/labels/geographies-labels-options.ts +0 -45
- package/src/lib/geographies/config/layers/labels/geographies-labels.ts +0 -38
- package/src/lib/geographies/events/actions/geographies-click-actions.ts +0 -21
- package/src/lib/geographies/events/actions/geographies-hover-actions.ts +0 -17
- package/src/lib/geographies/events/actions/geographies-hover-move-actions.ts +0 -19
- package/src/lib/geographies/events/geographies-events.directive.spec.ts +0 -225
- package/src/lib/geographies/events/geographies-events.directive.ts +0 -235
- package/src/lib/geographies/events/geographies-interaction-output.ts +0 -17
- package/src/lib/geographies/events/geographies-tooltip-positioner.ts +0 -23
- package/src/lib/geographies/geographies-feature.ts +0 -16
- package/src/lib/geographies/geographies.component.html +0 -1
- package/src/lib/geographies/geographies.component.scss +0 -0
- package/src/lib/geographies/geographies.component.spec.ts +0 -148
- package/src/lib/geographies/geographies.component.ts +0 -318
- package/src/lib/geographies/geographies.cy.ts +0 -640
- package/src/lib/geographies/geographies.module.ts +0 -9
- package/src/lib/geographies/index.ts +0 -32
- package/src/lib/grouped-bars/config/grouped-bars-builder.ts +0 -66
- package/src/lib/grouped-bars/config/grouped-bars-config.ts +0 -41
- package/src/lib/grouped-bars/config/grouped-bars-options.ts +0 -9
- package/src/lib/grouped-bars/events/grouped-bars-events.directive.ts +0 -221
- package/src/lib/grouped-bars/grouped-bars.component.scss +0 -0
- package/src/lib/grouped-bars/grouped-bars.component.spec.ts +0 -25
- package/src/lib/grouped-bars/grouped-bars.component.ts +0 -94
- package/src/lib/grouped-bars/grouped-bars.module.ts +0 -9
- package/src/lib/grouped-bars/index.ts +0 -10
- package/src/lib/image-download/image-download-config.ts +0 -57
- package/src/lib/image-download/image-download-enums.ts +0 -7
- package/src/lib/image-download/image-download-options.ts +0 -14
- package/src/lib/image-download/image-download.service.ts +0 -70
- package/src/lib/image-download/index.ts +0 -4
- package/src/lib/lines/config/area-fills/area-fills-builder.ts +0 -87
- package/src/lib/lines/config/area-fills/area-fills-options.ts +0 -8
- package/src/lib/lines/config/area-fills/area-fills.ts +0 -14
- package/src/lib/lines/config/lines-builder.ts +0 -242
- package/src/lib/lines/config/lines-config.spec.ts +0 -52
- package/src/lib/lines/config/lines-config.ts +0 -96
- package/src/lib/lines/config/lines-options.ts +0 -19
- package/src/lib/lines/config/stroke/lines-stroke-builder.ts +0 -135
- package/src/lib/lines/config/stroke/lines-stroke-options.ts +0 -6
- package/src/lib/lines/config/stroke/lines-stroke.ts +0 -15
- package/src/lib/lines/events/actions/lines-click-actions.ts +0 -17
- package/src/lib/lines/events/actions/lines-hover-move-actions.ts +0 -113
- package/src/lib/lines/events/actions/lines-marker-click-actions.ts +0 -29
- package/src/lib/lines/events/lines-events.directive.spec.ts +0 -152
- package/src/lib/lines/events/lines-events.directive.ts +0 -310
- package/src/lib/lines/events/lines-interaction-output.ts +0 -17
- package/src/lib/lines/events/lines-tooltip-positioner.ts +0 -24
- package/src/lib/lines/index.ts +0 -17
- package/src/lib/lines/lines.component.scss +0 -0
- package/src/lib/lines/lines.component.spec.ts +0 -95
- package/src/lib/lines/lines.component.ts +0 -425
- package/src/lib/lines/lines.cy.ts +0 -738
- package/src/lib/lines/lines.module.ts +0 -9
- package/src/lib/map-legend/continuous-legend/continuous-legend.component.html +0 -28
- package/src/lib/map-legend/continuous-legend/continuous-legend.component.scss +0 -76
- package/src/lib/map-legend/continuous-legend/continuous-legend.component.spec.ts +0 -61
- package/src/lib/map-legend/continuous-legend/continuous-legend.component.ts +0 -82
- package/src/lib/map-legend/discontinuous-legend/discontinuous-legend.component.html +0 -40
- package/src/lib/map-legend/discontinuous-legend/discontinuous-legend.component.scss +0 -141
- package/src/lib/map-legend/discontinuous-legend/discontinuous-legend.component.spec.ts +0 -75
- package/src/lib/map-legend/discontinuous-legend/discontinuous-legend.component.ts +0 -57
- package/src/lib/map-legend/index.ts +0 -2
- package/src/lib/map-legend/map-legend-base.spec.ts +0 -190
- package/src/lib/map-legend/map-legend-base.ts +0 -99
- package/src/lib/map-legend/map-legend.component.html +0 -24
- package/src/lib/map-legend/map-legend.component.scss +0 -0
- package/src/lib/map-legend/map-legend.component.spec.ts +0 -125
- package/src/lib/map-legend/map-legend.component.ts +0 -80
- package/src/lib/map-legend/map-legend.module.ts +0 -8
- package/src/lib/marks/aux-marks/aux-marks.ts +0 -18
- package/src/lib/marks/aux-marks/config/aux-marks-builder.ts +0 -25
- package/src/lib/marks/aux-marks/config/aux-marks-config.ts +0 -6
- package/src/lib/marks/config/marks-config.ts +0 -14
- package/src/lib/marks/config/marks-options.ts +0 -9
- package/src/lib/marks/index.ts +0 -15
- package/src/lib/marks/map-marks/map-aux-marks/map-aux-marks.spec.ts +0 -74
- package/src/lib/marks/map-marks/map-aux-marks/map-aux-marks.ts +0 -40
- package/src/lib/marks/map-marks/map-primary-marks/map-primary-marks.spec.ts +0 -79
- package/src/lib/marks/map-marks/map-primary-marks/map-primary-marks.ts +0 -63
- package/src/lib/marks/marks.ts +0 -39
- package/src/lib/marks/primary-marks/config/primary-marks-builder.ts +0 -75
- package/src/lib/marks/primary-marks/config/primary-marks-config.ts +0 -9
- package/src/lib/marks/primary-marks/primary-marks-base.spec.ts +0 -58
- package/src/lib/marks/primary-marks/primary-marks.ts +0 -43
- package/src/lib/marks/xy-marks/xy-aux-marks/xy-aux-marks.ts +0 -40
- package/src/lib/marks/xy-marks/xy-marks-config.ts +0 -5
- package/src/lib/marks/xy-marks/xy-marks.ts +0 -10
- package/src/lib/marks/xy-marks/xy-primary-marks/xy-primary-marks-config.ts +0 -7
- package/src/lib/marks/xy-marks/xy-primary-marks/xy-primary-marks.spec.ts +0 -186
- package/src/lib/marks/xy-marks/xy-primary-marks/xy-primary-marks.ts +0 -72
- package/src/lib/point-markers/index.ts +0 -3
- package/src/lib/point-markers/point-markers-builder.ts +0 -93
- package/src/lib/point-markers/point-markers-options.ts +0 -6
- package/src/lib/point-markers/point-markers.ts +0 -13
- package/src/lib/quantitative-rules/config/labels/quantitative-rules-labels-builder.ts +0 -162
- package/src/lib/quantitative-rules/config/labels/quantitative-rules-labels-options.ts +0 -17
- package/src/lib/quantitative-rules/config/labels/quantitative-rules-labels.ts +0 -26
- package/src/lib/quantitative-rules/config/quantitative-rules-builder.ts +0 -134
- package/src/lib/quantitative-rules/config/quantitative-rules-config.ts +0 -21
- package/src/lib/quantitative-rules/config/quantitative-rules-dimensions.ts +0 -20
- package/src/lib/quantitative-rules/config/quantitative-rules-options.ts +0 -13
- package/src/lib/quantitative-rules/index.ts +0 -6
- package/src/lib/quantitative-rules/quantitative-rules.component.scss +0 -3
- package/src/lib/quantitative-rules/quantitative-rules.component.spec.ts +0 -50
- package/src/lib/quantitative-rules/quantitative-rules.component.ts +0 -224
- package/src/lib/quantitative-rules/quantitative-rules.cy.ts +0 -549
- package/src/lib/quantitative-rules/quantitative-rules.module.ts +0 -8
- package/src/lib/stacked-area/config/stacked-area-builder.ts +0 -264
- package/src/lib/stacked-area/config/stacked-area-config.spec.ts +0 -107
- package/src/lib/stacked-area/config/stacked-area-config.ts +0 -109
- package/src/lib/stacked-area/config/stacked-area-options.ts +0 -28
- package/src/lib/stacked-area/events/actions/stacked-area-hover-move-actions.ts +0 -17
- package/src/lib/stacked-area/events/stacked-area-events.directive.spec.ts +0 -168
- package/src/lib/stacked-area/events/stacked-area-events.directive.ts +0 -272
- package/src/lib/stacked-area/events/stacked-area-interaction-output.ts +0 -33
- package/src/lib/stacked-area/events/stacked-area-tooltip-positioner.ts +0 -37
- package/src/lib/stacked-area/index.ts +0 -7
- package/src/lib/stacked-area/stacked-area.component.scss +0 -0
- package/src/lib/stacked-area/stacked-area.component.spec.ts +0 -41
- package/src/lib/stacked-area/stacked-area.component.ts +0 -241
- package/src/lib/stacked-area/stacked-area.module.ts +0 -9
- package/src/lib/stacked-bars/config/stacked-bars-builder.ts +0 -109
- package/src/lib/stacked-bars/config/stacked-bars-config.spec.ts +0 -122
- package/src/lib/stacked-bars/config/stacked-bars-config.ts +0 -79
- package/src/lib/stacked-bars/config/stacked-bars-options.ts +0 -16
- package/src/lib/stacked-bars/events/actions/stacked-bars-click-actions.ts +0 -23
- package/src/lib/stacked-bars/events/actions/stacked-bars-hover-actions.ts +0 -22
- package/src/lib/stacked-bars/events/actions/stacked-bars-hover-move-actions.ts +0 -21
- package/src/lib/stacked-bars/events/stacked-bars-events.directive.spec.ts +0 -266
- package/src/lib/stacked-bars/events/stacked-bars-events.directive.ts +0 -240
- package/src/lib/stacked-bars/index.ts +0 -10
- package/src/lib/stacked-bars/stacked-bars.component.scss +0 -0
- package/src/lib/stacked-bars/stacked-bars.component.spec.ts +0 -25
- package/src/lib/stacked-bars/stacked-bars.component.ts +0 -158
- package/src/lib/stacked-bars/stacked-bars.module.ts +0 -9
- package/src/lib/stroke/base/stroke-base-options.ts +0 -7
- package/src/lib/stroke/base/stroke-base.ts +0 -9
- package/src/lib/stroke/index.ts +0 -5
- package/src/lib/stroke/stroke-builder.ts +0 -103
- package/src/lib/stroke/stroke-options.ts +0 -5
- package/src/lib/stroke/stroke.ts +0 -12
- package/src/lib/svg-text-wrap/index.ts +0 -3
- package/src/lib/svg-text-wrap/svg-text-wrap-builder.ts +0 -105
- package/src/lib/svg-text-wrap/svg-text-wrap-options.ts +0 -8
- package/src/lib/svg-text-wrap/svg-text-wrap.ts +0 -137
- package/src/lib/testing/data/continent-population-year-data.ts +0 -126
- package/src/lib/testing/data/country-area-continent.ts +0 -59
- package/src/lib/testing/data/state-population-income-year-data.ts +0 -123
- package/src/lib/testing/stubs/bars.component.stub.ts +0 -12
- package/src/lib/testing/stubs/chart.component.stub.ts +0 -6
- package/src/lib/testing/stubs/click.directive.stub.ts +0 -15
- package/src/lib/testing/stubs/core/destroy-ref.stub.ts +0 -9
- package/src/lib/testing/stubs/core/overlay-ref.stub.ts +0 -13
- package/src/lib/testing/stubs/core/overlay.stub.ts +0 -8
- package/src/lib/testing/stubs/event.directive.stub.ts +0 -10
- package/src/lib/testing/stubs/hover-move.directive.stub.ts +0 -17
- package/src/lib/testing/stubs/hover.directive.stub.ts +0 -14
- package/src/lib/testing/stubs/input-event.directive.stub.ts +0 -9
- package/src/lib/testing/stubs/lines.component.stub.ts +0 -13
- package/src/lib/testing/stubs/map-aux-marks.stub.ts +0 -10
- package/src/lib/testing/stubs/map-chart.component.stub.ts +0 -3
- package/src/lib/testing/stubs/map-legend-content.stub.ts +0 -16
- package/src/lib/testing/stubs/map-legend.component.stub.ts +0 -10
- package/src/lib/testing/stubs/map-primary-marks.stub.ts +0 -16
- package/src/lib/testing/stubs/ordinal-axis.stub.ts +0 -18
- package/src/lib/testing/stubs/primary-marks.stub.ts +0 -18
- package/src/lib/testing/stubs/quantitative-axis.stub.ts +0 -18
- package/src/lib/testing/stubs/services/main.service.stub.ts +0 -5
- package/src/lib/testing/stubs/services/utilities.service.stub.ts +0 -7
- package/src/lib/testing/stubs/stacked-area.component.stub.ts +0 -13
- package/src/lib/testing/stubs/x-axis.stub.ts +0 -10
- package/src/lib/testing/stubs/xy-axis.class.stub.ts +0 -20
- package/src/lib/testing/stubs/xy-axis.stub.ts +0 -44
- package/src/lib/testing/stubs/xy-chart.component.stub.ts +0 -5
- package/src/lib/testing/stubs/xy-data-marks.stub.ts +0 -15
- package/src/lib/testing/stubs/y-axis.stub.ts +0 -15
- package/src/lib/tooltips/config/tooltip.ts +0 -11
- package/src/lib/tooltips/html-tooltip/config/html-tooltip-builder.ts +0 -134
- package/src/lib/tooltips/html-tooltip/config/html-tooltip-config.ts +0 -21
- package/src/lib/tooltips/html-tooltip/config/html-tooltip-options.ts +0 -12
- package/src/lib/tooltips/html-tooltip/config/position/tooltip-position-builder.ts +0 -191
- package/src/lib/tooltips/html-tooltip/config/position/tooltip-position.ts +0 -42
- package/src/lib/tooltips/html-tooltip/config/size/tooltip-size-builder.ts +0 -75
- package/src/lib/tooltips/html-tooltip/config/size/tooltip-size-options.ts +0 -8
- package/src/lib/tooltips/html-tooltip/config/size/tooltip-size.ts +0 -15
- package/src/lib/tooltips/html-tooltip/html-tooltip.directive.spec.ts +0 -537
- package/src/lib/tooltips/html-tooltip/html-tooltip.directive.ts +0 -210
- package/src/lib/tooltips/html-tooltip/html-tooltip.module.ts +0 -16
- package/src/lib/tooltips/html-tooltip/tooltip-triangle/tooltip-triangle.component.html +0 -41
- package/src/lib/tooltips/html-tooltip/tooltip-triangle/tooltip-triangle.component.scss +0 -63
- package/src/lib/tooltips/html-tooltip/tooltip-triangle/tooltip-triangle.component.ts +0 -19
- package/src/lib/tooltips/index.ts +0 -11
- package/src/lib/tooltips/svg-tooltip/config/svg-tooltip.ts +0 -5
- package/src/lib/xy-background/index.ts +0 -2
- package/src/lib/xy-background/xy-background.component.html +0 -10
- package/src/lib/xy-background/xy-background.component.scss +0 -0
- package/src/lib/xy-background/xy-background.component.spec.ts +0 -24
- package/src/lib/xy-background/xy-background.component.ts +0 -19
- package/src/lib/xy-background/xy-background.module.ts +0 -8
- package/src/public-api.ts +0 -26
- package/src/test.ts +0 -15
- package/tsconfig.doc.json +0 -4
- package/tsconfig.json +0 -20
- package/tsconfig.lib.json +0 -23
- package/tsconfig.lib.prod.json +0 -10
- package/tsconfig.spec.json +0 -10
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
import { safeAssign } from '@mathstack/app-kit';
|
|
2
|
-
import { ScaleContinuousNumeric, scaleLinear } from 'd3';
|
|
3
|
-
import { VisualValue } from '../../../core';
|
|
4
|
-
import { DataDimensionBuilder } from '../../dimension-builder';
|
|
5
|
-
import { NumberVisualValueDimension } from './number-visual-value';
|
|
6
|
-
|
|
7
|
-
const DEFAULT = {
|
|
8
|
-
_includeZeroInDomain: false,
|
|
9
|
-
_scaleFn: scaleLinear,
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
export class NumberVisualValueDimensionBuilder<
|
|
13
|
-
Datum,
|
|
14
|
-
Range extends VisualValue,
|
|
15
|
-
> extends DataDimensionBuilder<Datum, number> {
|
|
16
|
-
private _domain: [number, number];
|
|
17
|
-
private _formatSpecifier: string;
|
|
18
|
-
private _includeZeroInDomain: boolean;
|
|
19
|
-
private _range: [Range, Range];
|
|
20
|
-
private _scale: (value: number) => Range;
|
|
21
|
-
private _scaleFn: (
|
|
22
|
-
domain?: Iterable<number>,
|
|
23
|
-
range?: Iterable<Range>
|
|
24
|
-
) => ScaleContinuousNumeric<Range, Range>;
|
|
25
|
-
|
|
26
|
-
constructor() {
|
|
27
|
-
super();
|
|
28
|
-
safeAssign(this, DEFAULT);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* OPTIONAL. Sets the domain of the scale.
|
|
33
|
-
*
|
|
34
|
-
* Should be in the form of [min, max].
|
|
35
|
-
*
|
|
36
|
-
* If not provided, the domain will be determined by the data.
|
|
37
|
-
*/
|
|
38
|
-
domain(domain: null): this;
|
|
39
|
-
domain(domain: [number, number]): this;
|
|
40
|
-
domain(domain: [number, number]): this {
|
|
41
|
-
if (domain === null) {
|
|
42
|
-
this._domain = undefined;
|
|
43
|
-
return this;
|
|
44
|
-
}
|
|
45
|
-
this._domain = domain;
|
|
46
|
-
return this;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* OPTIONAL. Sets a format specifier that will be applied to the value of this dimension for display purposes.
|
|
51
|
-
*/
|
|
52
|
-
formatSpecifier(formatSpecifier: null): this;
|
|
53
|
-
formatSpecifier(formatSpecifier: string): this;
|
|
54
|
-
formatSpecifier(formatSpecifier: string): this {
|
|
55
|
-
if (formatSpecifier === null) {
|
|
56
|
-
this._formatSpecifier = undefined;
|
|
57
|
-
return this;
|
|
58
|
-
}
|
|
59
|
-
this._formatSpecifier = formatSpecifier;
|
|
60
|
-
return this;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* OPTIONAL. Sets a boolean that indicates whether the domain of the dimension's scale should include zero.
|
|
65
|
-
*
|
|
66
|
-
* @default false
|
|
67
|
-
*/
|
|
68
|
-
includeZeroInDomain(includeZeroInDomain: boolean): this {
|
|
69
|
-
this._includeZeroInDomain = includeZeroInDomain;
|
|
70
|
-
return this;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* OPTIONAL. Sets a range of visual values that will be the output from D3 scale linear.
|
|
75
|
-
*
|
|
76
|
-
* If not provided, a scale must be provided.
|
|
77
|
-
*
|
|
78
|
-
* For example, this could be a range of colors or sizes.
|
|
79
|
-
*
|
|
80
|
-
* To have all marks use the same visual value, use an array with a single element.
|
|
81
|
-
*/
|
|
82
|
-
range(range: null): this;
|
|
83
|
-
range(range: [Range, Range]): this;
|
|
84
|
-
range(range: [Range, Range]): this {
|
|
85
|
-
if (range === null) {
|
|
86
|
-
this._range = undefined;
|
|
87
|
-
return this;
|
|
88
|
-
}
|
|
89
|
-
this._range = range;
|
|
90
|
-
return this;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
/**
|
|
94
|
-
* OPTIONAL. This is a D3 scale function that maps values from the dimension's domain to the dimension's range.
|
|
95
|
-
*
|
|
96
|
-
* If the user provides a custom scale function through the `scale` method, this will be ignored.
|
|
97
|
-
*
|
|
98
|
-
* @default d3.scaleLinear
|
|
99
|
-
*/
|
|
100
|
-
scaleFn(scaleFn: null): this;
|
|
101
|
-
scaleFn(
|
|
102
|
-
scaleFn: (
|
|
103
|
-
domain?: Iterable<number>,
|
|
104
|
-
range?: Iterable<Range>
|
|
105
|
-
) => ScaleContinuousNumeric<Range, Range>
|
|
106
|
-
): this;
|
|
107
|
-
scaleFn(
|
|
108
|
-
scaleFn: (
|
|
109
|
-
domain?: Iterable<number>,
|
|
110
|
-
range?: Iterable<Range>
|
|
111
|
-
) => ScaleContinuousNumeric<Range, Range>
|
|
112
|
-
): this {
|
|
113
|
-
if (scaleFn === null) {
|
|
114
|
-
this._scaleFn = undefined;
|
|
115
|
-
return this;
|
|
116
|
-
}
|
|
117
|
-
this._scaleFn = scaleFn;
|
|
118
|
-
return this;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
/**
|
|
122
|
-
* OPTIONAL. Allows a user to set a completely custom scale that transforms the value returned by this dimension's valueAccessor into a visual value (string or number).
|
|
123
|
-
*
|
|
124
|
-
* If not provided, a range must be provided.
|
|
125
|
-
*
|
|
126
|
-
* If provided, this will override any values provided to domain, range, and scaleFn.
|
|
127
|
-
*/
|
|
128
|
-
scale(scale: null): this;
|
|
129
|
-
scale(scale: (value: number) => Range): this;
|
|
130
|
-
scale(scale: (value: number) => Range): this {
|
|
131
|
-
if (scale === null) {
|
|
132
|
-
this._scale = undefined;
|
|
133
|
-
return this;
|
|
134
|
-
}
|
|
135
|
-
this._scale = scale;
|
|
136
|
-
return this;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
/**
|
|
140
|
-
* @internal This method is not intended to be used by consumers of this library.
|
|
141
|
-
*
|
|
142
|
-
* @param dimensionName A user-intelligible name for the dimension being built. Used for error messages. Should be title cased.
|
|
143
|
-
*/
|
|
144
|
-
_build(dimensionName: string): NumberVisualValueDimension<Datum, Range> {
|
|
145
|
-
this.validateBuilder(dimensionName);
|
|
146
|
-
return new NumberVisualValueDimension({
|
|
147
|
-
domain: this._domain,
|
|
148
|
-
formatFunction: this._formatFunction,
|
|
149
|
-
formatSpecifier: this._formatSpecifier,
|
|
150
|
-
includeZeroInDomain: this._includeZeroInDomain,
|
|
151
|
-
range: this._range,
|
|
152
|
-
scaleFn: this._scaleFn,
|
|
153
|
-
scale: this._scale,
|
|
154
|
-
valueAccessor: this._valueAccessor,
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
private validateBuilder(dimensionName: string): void {
|
|
159
|
-
this.validateValueAccessor(dimensionName);
|
|
160
|
-
if (!this._range && !this._scale) {
|
|
161
|
-
throw new Error(
|
|
162
|
-
`${dimensionName} Dimension: Either a range or a scale must be provided.`
|
|
163
|
-
);
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { VisualValue } from '../../../core/types/values';
|
|
2
|
-
import { NumberDimensionOptions } from '../number-dimension/number-dimension-options';
|
|
3
|
-
|
|
4
|
-
export interface NumberVisualValueDimensionOptions<
|
|
5
|
-
Datum,
|
|
6
|
-
Range extends VisualValue,
|
|
7
|
-
> extends NumberDimensionOptions<Datum, Range> {
|
|
8
|
-
range: [Range, Range];
|
|
9
|
-
scale: (value: number) => Range;
|
|
10
|
-
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
import { NumberVisualValueDimension } from './number-visual-value';
|
|
3
|
-
import { NumberVisualValueDimensionBuilder } from './number-visual-value-builder';
|
|
4
|
-
|
|
5
|
-
describe('NumberVisualValueDimension', () => {
|
|
6
|
-
let dimension: NumberVisualValueDimension<number, number>;
|
|
7
|
-
beforeEach(() => {
|
|
8
|
-
dimension = new NumberVisualValueDimensionBuilder<number, number>()
|
|
9
|
-
.valueAccessor((d) => d)
|
|
10
|
-
.range([0, 100])
|
|
11
|
-
._build('Test');
|
|
12
|
-
});
|
|
13
|
-
describe('setPropertiesFromData', () => {
|
|
14
|
-
beforeEach(() => {
|
|
15
|
-
spyOn(dimension as any, 'setValues');
|
|
16
|
-
spyOn(dimension as any, 'setDomain');
|
|
17
|
-
spyOn(dimension as any, 'setScale');
|
|
18
|
-
});
|
|
19
|
-
it('calls setValues once', () => {
|
|
20
|
-
dimension.setPropertiesFromData([1, 2, 3, 4, 5]);
|
|
21
|
-
expect((dimension as any).setValues).toHaveBeenCalledOnceWith([
|
|
22
|
-
1, 2, 3, 4, 5,
|
|
23
|
-
]);
|
|
24
|
-
});
|
|
25
|
-
it('calls setDomain once', () => {
|
|
26
|
-
dimension.setPropertiesFromData([1, 2, 3, 4, 5]);
|
|
27
|
-
expect((dimension as any).setDomain).toHaveBeenCalledTimes(1);
|
|
28
|
-
});
|
|
29
|
-
it('calls setScale once', () => {
|
|
30
|
-
dimension.setPropertiesFromData([1, 2, 3, 4, 5]);
|
|
31
|
-
expect((dimension as any).setScale).toHaveBeenCalledTimes(1);
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
});
|
package/src/lib/data-dimensions/continuous-quantitative/number-visual-value/number-visual-value.ts
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { safeAssign } from '@mathstack/app-kit';
|
|
2
|
-
import { ScaleContinuousNumeric } from 'd3';
|
|
3
|
-
import { VisualValue } from '../../../core';
|
|
4
|
-
import { NumberDimension } from '../number-dimension/number-dimension';
|
|
5
|
-
import { NumberVisualValueDimensionOptions } from './number-visual-value-options';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* A dimension that transforms number values into a value of type number or string.
|
|
9
|
-
*
|
|
10
|
-
* This dimension is intended to be used to set a visual property of an element in a chart.
|
|
11
|
-
*
|
|
12
|
-
* The first generic is the type of the data that will be passed to the dimension. The second generic is the type of the range of the scale / the output value.
|
|
13
|
-
*
|
|
14
|
-
* TESTABLE FUNCTIONALITY
|
|
15
|
-
*
|
|
16
|
-
* - It extracts values for the dimension from data.
|
|
17
|
-
* - tested in: dots.cy.ts
|
|
18
|
-
* - It sets the domain of the dimension.
|
|
19
|
-
* - tested in: dots.cy.ts
|
|
20
|
-
* - It set the scale from the calculated domain and the user-provided range of the user does not provide a scale.
|
|
21
|
-
* - tested in: dots.cy.ts
|
|
22
|
-
*/
|
|
23
|
-
|
|
24
|
-
export class NumberVisualValueDimension<
|
|
25
|
-
Datum,
|
|
26
|
-
Range extends VisualValue,
|
|
27
|
-
> extends NumberDimension<Datum> {
|
|
28
|
-
readonly range: [Range, Range];
|
|
29
|
-
private scale: (value: number) => Range;
|
|
30
|
-
readonly scaleFn: (
|
|
31
|
-
domain?: Iterable<number>,
|
|
32
|
-
range?: Iterable<Range>
|
|
33
|
-
) => ScaleContinuousNumeric<Range, Range>;
|
|
34
|
-
|
|
35
|
-
constructor(options: NumberVisualValueDimensionOptions<Datum, Range>) {
|
|
36
|
-
super('number');
|
|
37
|
-
safeAssign(this, options);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
getScale(): (value: number) => Range {
|
|
41
|
-
return this.scale;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
setPropertiesFromData(data: Datum[]): void {
|
|
45
|
-
this.setValues(data);
|
|
46
|
-
this.setDomain();
|
|
47
|
-
this.setScale();
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
private setScale(): void {
|
|
51
|
-
if (this.scale === undefined) {
|
|
52
|
-
this.scale = this.scaleFn()
|
|
53
|
-
.domain(this.calculatedDomain)
|
|
54
|
-
.range(this.range);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { DataValue } from '../core/types/values';
|
|
2
|
-
|
|
3
|
-
export abstract class DataDimensionBuilder<
|
|
4
|
-
Datum,
|
|
5
|
-
TDataValue extends DataValue,
|
|
6
|
-
> {
|
|
7
|
-
protected _formatFunction: (d: Datum) => string;
|
|
8
|
-
protected _valueAccessor: (d: Datum) => TDataValue;
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* OPTIONAL. Sets a function that will be applied to the value of this dimension for display purposes.
|
|
12
|
-
*
|
|
13
|
-
* If provided, this function will be used instead of the format specifier (available only for quantitative dimensions)
|
|
14
|
-
*/
|
|
15
|
-
formatFunction(formatFunction: null): this;
|
|
16
|
-
formatFunction(formatFunction: (d: Datum) => string): this;
|
|
17
|
-
formatFunction(formatFunction: ((d: Datum) => string) | null): this {
|
|
18
|
-
if (formatFunction === null) {
|
|
19
|
-
this._formatFunction = undefined;
|
|
20
|
-
return this;
|
|
21
|
-
}
|
|
22
|
-
this._formatFunction = formatFunction;
|
|
23
|
-
return this;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Sets a user-provided method that extracts the value for this dimension from a datum.
|
|
28
|
-
*
|
|
29
|
-
* REQUIRED. for quantitative dimensions.
|
|
30
|
-
*
|
|
31
|
-
* OPTIONAL. for categorical and ordinal dimensions, though if not provided, the properties of those dimensions cannot reflect the data values.
|
|
32
|
-
*/
|
|
33
|
-
valueAccessor(valueAccessor: (d: Datum) => TDataValue): this {
|
|
34
|
-
this._valueAccessor = valueAccessor;
|
|
35
|
-
return this;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
protected validateValueAccessor(dimensionName: string): void {
|
|
39
|
-
if (!this._valueAccessor) {
|
|
40
|
-
throw new Error(
|
|
41
|
-
`${dimensionName} Dimension: valueAccessor is required. Please use method 'valueAccessor' to set it.`
|
|
42
|
-
);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { DataValue } from '../core/types/values';
|
|
2
|
-
|
|
3
|
-
export interface DataDimensionOptions<Datum, TDataValue extends DataValue> {
|
|
4
|
-
/**
|
|
5
|
-
* A function that will be applied to the value of this dimension for display purposes. If provided, this function will be used instead of the format specifier (available only for quantitative dimensions)
|
|
6
|
-
*/
|
|
7
|
-
formatFunction: (d: Datum) => string;
|
|
8
|
-
/**
|
|
9
|
-
* A user-provided method that extracts the value for this dimension from a datum. If the dimension is continuous (number of Date), a user *must* provide this method.
|
|
10
|
-
*/
|
|
11
|
-
valueAccessor: (d: Datum) => TDataValue;
|
|
12
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { map } from 'd3';
|
|
2
|
-
import { DataValue } from '../core/types/values';
|
|
3
|
-
import { DataDimensionOptions } from './dimension-options';
|
|
4
|
-
|
|
5
|
-
export abstract class DataDimension<
|
|
6
|
-
Datum,
|
|
7
|
-
TDataValue extends DataValue,
|
|
8
|
-
> implements DataDimensionOptions<Datum, TDataValue> {
|
|
9
|
-
readonly dimensionType: 'number' | 'ordinal' | 'date';
|
|
10
|
-
readonly formatFunction: (d: Datum) => string;
|
|
11
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
12
|
-
readonly valueAccessor: (d: Datum) => TDataValue;
|
|
13
|
-
/**
|
|
14
|
-
* An array of values for this dimension, extracted from the data using the value accessor.
|
|
15
|
-
* @see {@link valueAccessor}
|
|
16
|
-
*/
|
|
17
|
-
values: TDataValue[];
|
|
18
|
-
|
|
19
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
20
|
-
abstract setPropertiesFromData(data: Datum[], ...args: any): void;
|
|
21
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
22
|
-
protected abstract setDomain(...args: any): void;
|
|
23
|
-
protected setValues(data: Datum[]): void {
|
|
24
|
-
this.values = map(data, this.valueAccessor);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
constructor(dimensionType: 'number' | 'ordinal' | 'date') {
|
|
28
|
-
this.dimensionType = dimensionType;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
export * from '../fill-definitions/fill-definitions';
|
|
2
|
-
export * from './continuous-quantitative/date-chart-position/date-chart-position';
|
|
3
|
-
export * from './continuous-quantitative/date-chart-position/date-chart-position-builder';
|
|
4
|
-
export * from './continuous-quantitative/date-chart-position/date-chart-position-options';
|
|
5
|
-
export * from './continuous-quantitative/number-chart-position/domain-padding/concrete-domain-padding';
|
|
6
|
-
export * from './continuous-quantitative/number-chart-position/domain-padding/domain-padding';
|
|
7
|
-
export * from './continuous-quantitative/number-chart-position/domain-padding/percent-over/percent-over';
|
|
8
|
-
export * from './continuous-quantitative/number-chart-position/domain-padding/percent-over/percent-over-options';
|
|
9
|
-
export * from './continuous-quantitative/number-chart-position/domain-padding/pixel/pixel';
|
|
10
|
-
export * from './continuous-quantitative/number-chart-position/domain-padding/pixel/pixel-options';
|
|
11
|
-
export * from './continuous-quantitative/number-chart-position/domain-padding/round-to-interval/round-to-interval';
|
|
12
|
-
export * from './continuous-quantitative/number-chart-position/domain-padding/round-to-interval/round-to-interval-options';
|
|
13
|
-
export * from './continuous-quantitative/number-chart-position/domain-padding/round-to-sig-fig/round-to-sig-fig';
|
|
14
|
-
export * from './continuous-quantitative/number-chart-position/domain-padding/round-to-sig-fig/round-to-sig-fig-options';
|
|
15
|
-
export * from './continuous-quantitative/number-chart-position/number-chart-position';
|
|
16
|
-
export * from './continuous-quantitative/number-chart-position/number-chart-position-builder';
|
|
17
|
-
export * from './continuous-quantitative/number-chart-position/number-chart-position-options';
|
|
18
|
-
export * from './continuous-quantitative/number-dimension/number-dimension';
|
|
19
|
-
export * from './continuous-quantitative/number-dimension/number-dimension-options';
|
|
20
|
-
export * from './continuous-quantitative/number-visual-value/number-visual-value';
|
|
21
|
-
export * from './continuous-quantitative/number-visual-value/number-visual-value-builder';
|
|
22
|
-
export * from './continuous-quantitative/number-visual-value/number-visual-value-options';
|
|
23
|
-
export * from './dimension';
|
|
24
|
-
export * from './dimension-builder';
|
|
25
|
-
export * from './dimension-options';
|
|
26
|
-
export * from './ordinal/ordinal-chart-position/ordinal-chart-position';
|
|
27
|
-
export * from './ordinal/ordinal-chart-position/ordinal-chart-position-builder';
|
|
28
|
-
export * from './ordinal/ordinal-chart-position/ordinal-chart-position-options';
|
|
29
|
-
export * from './ordinal/ordinal-visual-value/ordinal-visual-value';
|
|
30
|
-
export * from './ordinal/ordinal-visual-value/ordinal-visual-value-builder';
|
|
31
|
-
export * from './ordinal/ordinal-visual-value/ordinal-visual-value-options';
|
package/src/lib/data-dimensions/ordinal/ordinal-chart-position/ordinal-chart-position-builder.ts
DELETED
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
import { safeAssign } from '@mathstack/app-kit';
|
|
2
|
-
import { DataValue } from '../../../core/types/values';
|
|
3
|
-
import { DataDimensionBuilder } from '../../dimension-builder';
|
|
4
|
-
import { OrdinalChartPositionDimension } from './ordinal-chart-position';
|
|
5
|
-
|
|
6
|
-
const DEFAULT = {
|
|
7
|
-
_align: 0.5,
|
|
8
|
-
_paddingInner: 0.1,
|
|
9
|
-
_paddingOuter: 0.1,
|
|
10
|
-
_valueAccessor: (d, i) => i,
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
export class OrdinalChartPositionDimensionBuilder<
|
|
14
|
-
Datum,
|
|
15
|
-
Domain extends DataValue,
|
|
16
|
-
> extends DataDimensionBuilder<Datum, Domain> {
|
|
17
|
-
private _align: number;
|
|
18
|
-
private _domain: Domain[];
|
|
19
|
-
private _paddingInner: number;
|
|
20
|
-
private _paddingOuter: number;
|
|
21
|
-
|
|
22
|
-
constructor() {
|
|
23
|
-
super();
|
|
24
|
-
safeAssign(this, DEFAULT);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* OPTIONAL. Sets the alignment of the ordinal scale and is provided to [D3's align method](https://d3js.org/d3-scale/band#band_align)
|
|
29
|
-
*
|
|
30
|
-
* The value must be between 0 and 1.
|
|
31
|
-
*
|
|
32
|
-
* @default 0.5.
|
|
33
|
-
*/
|
|
34
|
-
align(align: null): this;
|
|
35
|
-
align(align: number): this;
|
|
36
|
-
align(align: number): this {
|
|
37
|
-
if (align === null) {
|
|
38
|
-
this._align = DEFAULT._align;
|
|
39
|
-
return this;
|
|
40
|
-
}
|
|
41
|
-
this._align = align;
|
|
42
|
-
return this;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* OPTIONAL. Sets an array of ordinal values that will be used to define the domain of the scale.
|
|
47
|
-
*
|
|
48
|
-
* If not provided, the domain will be determined by the data.
|
|
49
|
-
*/
|
|
50
|
-
domain(domain: null): this;
|
|
51
|
-
domain(domain: Domain[]): this;
|
|
52
|
-
domain(domain: Domain[]): this {
|
|
53
|
-
if (domain === null) {
|
|
54
|
-
this._domain = undefined;
|
|
55
|
-
return this;
|
|
56
|
-
}
|
|
57
|
-
this._domain = domain;
|
|
58
|
-
return this;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* OPTIONAL. Sets the inner padding of the ordinal scale and is provided to [D3's paddingInner method](https://d3js.org/d3-scale/band#band_paddingInner)
|
|
63
|
-
*
|
|
64
|
-
* Will have no effect if the scale is a point scale.
|
|
65
|
-
*
|
|
66
|
-
* The value must be between 0 and 1.
|
|
67
|
-
*
|
|
68
|
-
* @default 0.1.
|
|
69
|
-
*/
|
|
70
|
-
paddingInner(paddingInner: null): this;
|
|
71
|
-
paddingInner(paddingInner: number): this;
|
|
72
|
-
paddingInner(paddingInner: number): this {
|
|
73
|
-
if (paddingInner === null) {
|
|
74
|
-
this._paddingInner = DEFAULT._paddingInner;
|
|
75
|
-
return this;
|
|
76
|
-
}
|
|
77
|
-
this._paddingInner = paddingInner;
|
|
78
|
-
return this;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* OPTIONAL. Sets the outer padding of the ordinal scale and is provided to [D3's paddingOuter method](https://d3js.org/d3-scale/band#band_paddingOuter)
|
|
83
|
-
*
|
|
84
|
-
* The value must be between 0 and 1.
|
|
85
|
-
*
|
|
86
|
-
* @default 0.1.
|
|
87
|
-
*/
|
|
88
|
-
paddingOuter(paddingOuter: null): this;
|
|
89
|
-
paddingOuter(paddingOuter: number): this;
|
|
90
|
-
paddingOuter(paddingOuter: number): this {
|
|
91
|
-
if (paddingOuter === null) {
|
|
92
|
-
this._paddingOuter = DEFAULT._paddingOuter;
|
|
93
|
-
return this;
|
|
94
|
-
}
|
|
95
|
-
this._paddingOuter = paddingOuter;
|
|
96
|
-
return this;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* @internal This method is not intended to be used by consumers of this library.
|
|
101
|
-
*
|
|
102
|
-
* @param dimensionName A user-intelligible name for the dimension being built. Used for error messages. Should be title cased.
|
|
103
|
-
*/
|
|
104
|
-
_build(
|
|
105
|
-
scaleType: 'band' | 'point',
|
|
106
|
-
dimensionName: string
|
|
107
|
-
): OrdinalChartPositionDimension<Datum, Domain> {
|
|
108
|
-
this.validateDimension(dimensionName);
|
|
109
|
-
return new OrdinalChartPositionDimension(scaleType, {
|
|
110
|
-
align: this._align,
|
|
111
|
-
domain: this._domain,
|
|
112
|
-
formatFunction: this._formatFunction,
|
|
113
|
-
paddingInner: this._paddingInner,
|
|
114
|
-
paddingOuter: this._paddingOuter,
|
|
115
|
-
valueAccessor: this._valueAccessor,
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
private validateDimension(dimensionName: string): void {
|
|
120
|
-
this.validateValueAccessor(dimensionName);
|
|
121
|
-
}
|
|
122
|
-
}
|
package/src/lib/data-dimensions/ordinal/ordinal-chart-position/ordinal-chart-position-options.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { DataValue } from '../../../core/types/values';
|
|
2
|
-
import { DataDimensionOptions } from '../../dimension-options';
|
|
3
|
-
|
|
4
|
-
export interface OrdinalChartPositionDimensionOptions<
|
|
5
|
-
Datum,
|
|
6
|
-
Domain extends DataValue,
|
|
7
|
-
> extends DataDimensionOptions<Datum, Domain> {
|
|
8
|
-
align: number;
|
|
9
|
-
domain: Domain[];
|
|
10
|
-
paddingInner: number;
|
|
11
|
-
paddingOuter: number;
|
|
12
|
-
}
|
package/src/lib/data-dimensions/ordinal/ordinal-chart-position/ordinal-chart-position.spec.ts
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
import { OrdinalChartPositionDimension } from './ordinal-chart-position';
|
|
3
|
-
import { OrdinalChartPositionDimensionBuilder } from './ordinal-chart-position-builder';
|
|
4
|
-
|
|
5
|
-
const data = [
|
|
6
|
-
{ value: 1, category: 'a' },
|
|
7
|
-
{ value: 2, category: 'b' },
|
|
8
|
-
{ value: 3, category: 'c' },
|
|
9
|
-
{ value: 4, category: 'a' },
|
|
10
|
-
{ value: 5, category: 'b' },
|
|
11
|
-
];
|
|
12
|
-
|
|
13
|
-
describe('OrdinalChartPositionDimension', () => {
|
|
14
|
-
let dimension: OrdinalChartPositionDimension<
|
|
15
|
-
{ value: number; category: string },
|
|
16
|
-
string
|
|
17
|
-
>;
|
|
18
|
-
beforeEach(() => {
|
|
19
|
-
dimension = new OrdinalChartPositionDimensionBuilder<
|
|
20
|
-
{ value: number; category: string },
|
|
21
|
-
string
|
|
22
|
-
>()
|
|
23
|
-
.valueAccessor((d) => d.category)
|
|
24
|
-
._build('band', 'Test');
|
|
25
|
-
});
|
|
26
|
-
describe('setPropertiesFromData', () => {
|
|
27
|
-
beforeEach(() => {
|
|
28
|
-
spyOn(dimension as any, 'setValues');
|
|
29
|
-
spyOn(dimension as any, 'setDomain');
|
|
30
|
-
});
|
|
31
|
-
it('calls setValues once', () => {
|
|
32
|
-
dimension.setPropertiesFromData(data, false);
|
|
33
|
-
expect((dimension as any).setValues).toHaveBeenCalledOnceWith(data);
|
|
34
|
-
});
|
|
35
|
-
it('calls initDomain once', () => {
|
|
36
|
-
dimension.setPropertiesFromData(data, false);
|
|
37
|
-
expect((dimension as any).setDomain).toHaveBeenCalledOnceWith(false);
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
describe('setDomain()', () => {
|
|
42
|
-
describe('when user specifies a domain', () => {
|
|
43
|
-
beforeEach(() => {
|
|
44
|
-
(dimension as any).domain = ['e', 'f', 'g', 'e'];
|
|
45
|
-
});
|
|
46
|
-
it('sets the domain to the unique values in user specified domain in the provided order, and ignores values from data', () => {
|
|
47
|
-
dimension.setPropertiesFromData(data, false);
|
|
48
|
-
expect((dimension as any)._calculatedDomain).toEqual(['e', 'f', 'g']);
|
|
49
|
-
});
|
|
50
|
-
describe('when reverseDomain is true', () => {
|
|
51
|
-
it('sets the domain to the unique values in user specified domain in reverse order, and ignores values from data', () => {
|
|
52
|
-
dimension.setPropertiesFromData(data, true);
|
|
53
|
-
expect((dimension as any)._calculatedDomain).toEqual(['g', 'f', 'e']);
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
|
-
});
|
|
57
|
-
describe('when user does not specify a domain', () => {
|
|
58
|
-
it('sets the domain to the unique values in the data in the provided order', () => {
|
|
59
|
-
dimension.setPropertiesFromData(data, false);
|
|
60
|
-
expect((dimension as any)._calculatedDomain).toEqual(['a', 'b', 'c']);
|
|
61
|
-
});
|
|
62
|
-
describe('when reverseDomain is true', () => {
|
|
63
|
-
it('sets the domain to the unique values in the data in reverse order', () => {
|
|
64
|
-
dimension.setPropertiesFromData(data, true);
|
|
65
|
-
expect((dimension as any)._calculatedDomain).toEqual(['c', 'b', 'a']);
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
describe('domainIncludes()', () => {
|
|
72
|
-
it('correctly sets internSetDomain and domainIncludes returns correct value', () => {
|
|
73
|
-
(dimension as any).domain = ['c', 'd', 'b', 'a', 'd'];
|
|
74
|
-
dimension.setPropertiesFromData(data, false);
|
|
75
|
-
expect(dimension.domainIncludes('a')).toEqual(true);
|
|
76
|
-
});
|
|
77
|
-
it('correctly sets internSetDomain and domainIncludes returns correct value - scenario 2', () => {
|
|
78
|
-
(dimension as any).domain = ['c', 'd', 'b', 'a', 'd'];
|
|
79
|
-
dimension.setPropertiesFromData(data, false);
|
|
80
|
-
expect(dimension.domainIncludes('z')).toEqual(false);
|
|
81
|
-
});
|
|
82
|
-
});
|
|
83
|
-
});
|