@mathstack/viz 2.1.0 → 2.2.1
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/LICENSE +21 -21
- package/README.md +11 -11
- package/fesm2022/mathstack-viz.mjs +11024 -0
- package/fesm2022/mathstack-viz.mjs.map +1 -0
- package/package.json +18 -6
- 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,27 +0,0 @@
|
|
|
1
|
-
import { safeAssign } from '@mathstack/app-kit';
|
|
2
|
-
import { ValueUtilities } from '../../../../../core/utilities/values';
|
|
3
|
-
import {
|
|
4
|
-
DomainPadding,
|
|
5
|
-
DomainPaddingType,
|
|
6
|
-
PaddedDomainArguments,
|
|
7
|
-
} from '../domain-padding';
|
|
8
|
-
import { RoundUpToIntervalDomainPaddingOptions } from './round-to-interval-options';
|
|
9
|
-
|
|
10
|
-
export class RoundUpToIntervalDomainPadding extends DomainPadding {
|
|
11
|
-
readonly type: DomainPaddingType.roundInterval;
|
|
12
|
-
readonly interval: (maxValue: number) => number;
|
|
13
|
-
|
|
14
|
-
constructor(options: RoundUpToIntervalDomainPaddingOptions) {
|
|
15
|
-
super();
|
|
16
|
-
safeAssign(this, options);
|
|
17
|
-
this.type = DomainPaddingType.roundInterval;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
getPaddedValue(args: PaddedDomainArguments): number {
|
|
21
|
-
return ValueUtilities.getValueRoundedToInterval(
|
|
22
|
-
args.value,
|
|
23
|
-
this.interval(args.value),
|
|
24
|
-
args.valueType
|
|
25
|
-
);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { safeAssign } from '@mathstack/app-kit';
|
|
2
|
-
import { ValueUtilities } from '../../../../../core/utilities/values';
|
|
3
|
-
import {
|
|
4
|
-
DomainPadding,
|
|
5
|
-
DomainPaddingType,
|
|
6
|
-
PaddedDomainArguments,
|
|
7
|
-
} from '../domain-padding';
|
|
8
|
-
import { RoundUpToSigFigDomainPaddingOptions } from './round-to-sig-fig-options';
|
|
9
|
-
|
|
10
|
-
export class RoundUpToSigFigDomainPadding
|
|
11
|
-
extends DomainPadding
|
|
12
|
-
implements RoundUpToSigFigDomainPaddingOptions
|
|
13
|
-
{
|
|
14
|
-
readonly sigFigures: (d: number) => number;
|
|
15
|
-
readonly type: DomainPaddingType.roundUp;
|
|
16
|
-
|
|
17
|
-
constructor(options: RoundUpToSigFigDomainPaddingOptions) {
|
|
18
|
-
super();
|
|
19
|
-
safeAssign(this, options);
|
|
20
|
-
this.type = DomainPaddingType.roundUp;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
getPaddedValue(args: PaddedDomainArguments): number {
|
|
24
|
-
return ValueUtilities.getValueRoundedToNSignificantFigures(
|
|
25
|
-
args.value,
|
|
26
|
-
this.sigFigures(args.value),
|
|
27
|
-
args.valueType
|
|
28
|
-
);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
@@ -1,183 +0,0 @@
|
|
|
1
|
-
import { safeAssign } from '@mathstack/app-kit';
|
|
2
|
-
import { ScaleContinuousNumeric, scaleLinear } from 'd3';
|
|
3
|
-
import { DataDimensionBuilder } from '../../dimension-builder';
|
|
4
|
-
import { ConcreteDomainPadding } from './domain-padding/concrete-domain-padding';
|
|
5
|
-
import { PercentOverDomainPadding } from './domain-padding/percent-over/percent-over';
|
|
6
|
-
import { PixelDomainPadding } from './domain-padding/pixel/pixel';
|
|
7
|
-
import { RoundUpToIntervalDomainPadding } from './domain-padding/round-to-interval/round-to-interval';
|
|
8
|
-
import { RoundUpToSigFigDomainPadding } from './domain-padding/round-to-sig-fig/round-to-sig-fig';
|
|
9
|
-
import { NumberChartPositionDimension } from './number-chart-position';
|
|
10
|
-
|
|
11
|
-
const DEFAULT = {
|
|
12
|
-
_includeZeroInDomain: true,
|
|
13
|
-
_scaleFn: scaleLinear,
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
const DEFAULT_PADDING = {
|
|
17
|
-
pixels: 40,
|
|
18
|
-
percentOver: 0.1,
|
|
19
|
-
roundInterval: () => 1,
|
|
20
|
-
roundUp: () => 1,
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
export class NumberChartPositionDimensionBuilder<
|
|
24
|
-
Datum,
|
|
25
|
-
> extends DataDimensionBuilder<Datum, number> {
|
|
26
|
-
private _domain: [number, number];
|
|
27
|
-
private _formatSpecifier: string;
|
|
28
|
-
private _includeZeroInDomain: boolean;
|
|
29
|
-
private _domainPadding: ConcreteDomainPadding;
|
|
30
|
-
private _scaleFn: (
|
|
31
|
-
domain?: Iterable<number>,
|
|
32
|
-
range?: Iterable<number>
|
|
33
|
-
) => ScaleContinuousNumeric<number, number>;
|
|
34
|
-
|
|
35
|
-
constructor() {
|
|
36
|
-
super();
|
|
37
|
-
safeAssign(this, DEFAULT);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* OPTIONAL. Sets the domain of the scale.
|
|
42
|
-
*
|
|
43
|
-
* Should be in the form of [min, max].
|
|
44
|
-
*
|
|
45
|
-
* If not provided, the domain will be determined by the data.
|
|
46
|
-
*/
|
|
47
|
-
domain(domain: [number, number]): this;
|
|
48
|
-
domain(domain: null): this;
|
|
49
|
-
domain(domain: [number, number] | null): this {
|
|
50
|
-
if (domain === null) {
|
|
51
|
-
this._domain = undefined;
|
|
52
|
-
return this;
|
|
53
|
-
}
|
|
54
|
-
this._domain = domain;
|
|
55
|
-
return this;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* OPTIONAL. Sets a format specifier that will be applied to the value of this dimension for display purposes.
|
|
60
|
-
*/
|
|
61
|
-
formatSpecifier(formatSpecifier: string): this;
|
|
62
|
-
formatSpecifier(formatSpecifier: null): this;
|
|
63
|
-
formatSpecifier(formatSpecifier: string | null): this {
|
|
64
|
-
if (formatSpecifier === null) {
|
|
65
|
-
this._formatSpecifier = undefined;
|
|
66
|
-
return this;
|
|
67
|
-
}
|
|
68
|
-
this._formatSpecifier = formatSpecifier;
|
|
69
|
-
return this;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* OPTIONAL. Sets a boolean that indicates whether the domain of the dimension's scale should include zero.
|
|
74
|
-
*
|
|
75
|
-
* @default true
|
|
76
|
-
*/
|
|
77
|
-
includeZeroInDomain(includeZeroInDomain: boolean): this {
|
|
78
|
-
this._includeZeroInDomain = includeZeroInDomain;
|
|
79
|
-
return this;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* OPTIONAL. Adds additional space between data values and the edge of a chart by increasing the max value of the quantitative domain.
|
|
84
|
-
*
|
|
85
|
-
* For example, if the domain is [0, 100] and the percent is 0.1, the new domain will be [0, 110].
|
|
86
|
-
*
|
|
87
|
-
* @default 0.1
|
|
88
|
-
*/
|
|
89
|
-
domainPaddingPercentOver(
|
|
90
|
-
percentOver: number = DEFAULT_PADDING.percentOver
|
|
91
|
-
): this {
|
|
92
|
-
this._domainPadding = new PercentOverDomainPadding({
|
|
93
|
-
percentOver,
|
|
94
|
-
});
|
|
95
|
-
return this;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
/**
|
|
99
|
-
* OPTIONAL. Adds additional space between data values and the edge of a chart by increasing the max value of the quantitative domain so that it exceeds its original value by the specified number of pixels.
|
|
100
|
-
*
|
|
101
|
-
* @default 40
|
|
102
|
-
*/
|
|
103
|
-
domainPaddingPixels(numPixels: number = DEFAULT_PADDING.pixels): this {
|
|
104
|
-
this._domainPadding = new PixelDomainPadding({ numPixels });
|
|
105
|
-
return this;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* OPTIONAL. Adds additional space between data values and the edge of a chart by increasing the max value to a number that is rounded up to the specified interval.
|
|
110
|
-
*
|
|
111
|
-
* @default () => 1
|
|
112
|
-
*/
|
|
113
|
-
domainPaddingRoundUpToInterval(
|
|
114
|
-
interval: (d: number) => number = DEFAULT_PADDING.roundInterval
|
|
115
|
-
): this {
|
|
116
|
-
this._domainPadding = new RoundUpToIntervalDomainPadding({
|
|
117
|
-
interval,
|
|
118
|
-
});
|
|
119
|
-
return this;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
/**
|
|
123
|
-
* OPTIONAL. Adds additional space between data values and the edge of a chart by increasing the max value to a number that is rounded up to the specified number of significant figures.
|
|
124
|
-
*
|
|
125
|
-
* @default () => 1
|
|
126
|
-
*/
|
|
127
|
-
domainPaddingRoundUpToSigFig(
|
|
128
|
-
sigFigures: (d: number) => number = DEFAULT_PADDING.roundUp
|
|
129
|
-
): this {
|
|
130
|
-
this._domainPadding = new RoundUpToSigFigDomainPadding({
|
|
131
|
-
sigFigures,
|
|
132
|
-
});
|
|
133
|
-
return this;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
/**
|
|
137
|
-
* OPTIONAL. This is a D3 scale function that maps values from the dimension's domain to the dimension's range.
|
|
138
|
-
*
|
|
139
|
-
* @default d3.scaleLinear
|
|
140
|
-
*/
|
|
141
|
-
scaleFn(scaleFn: null): this;
|
|
142
|
-
scaleFn(
|
|
143
|
-
scaleFn: (
|
|
144
|
-
domain?: Iterable<number>,
|
|
145
|
-
range?: Iterable<number>
|
|
146
|
-
) => ScaleContinuousNumeric<number, number>
|
|
147
|
-
): this;
|
|
148
|
-
scaleFn(
|
|
149
|
-
scaleFn: (
|
|
150
|
-
domain?: Iterable<number>,
|
|
151
|
-
range?: Iterable<number>
|
|
152
|
-
) => ScaleContinuousNumeric<number, number>
|
|
153
|
-
): this {
|
|
154
|
-
if (scaleFn === null) {
|
|
155
|
-
this._scaleFn = undefined;
|
|
156
|
-
return this;
|
|
157
|
-
}
|
|
158
|
-
this._scaleFn = scaleFn;
|
|
159
|
-
return this;
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
/**
|
|
163
|
-
* @internal This method is not intended to be used by consumers of this library.
|
|
164
|
-
*
|
|
165
|
-
* @param dimensionName A user-intelligible name for the dimension being built. Used for error messages. Should be title cased.
|
|
166
|
-
*/
|
|
167
|
-
_build(dimensionName: string): NumberChartPositionDimension<Datum> {
|
|
168
|
-
this.validateBuilder(dimensionName);
|
|
169
|
-
return new NumberChartPositionDimension({
|
|
170
|
-
domain: this._domain,
|
|
171
|
-
formatFunction: this._formatFunction,
|
|
172
|
-
formatSpecifier: this._formatSpecifier,
|
|
173
|
-
includeZeroInDomain: this._includeZeroInDomain,
|
|
174
|
-
domainPadding: this._domainPadding,
|
|
175
|
-
scaleFn: this._scaleFn,
|
|
176
|
-
valueAccessor: this._valueAccessor,
|
|
177
|
-
});
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
private validateBuilder(dimensionName: string): void {
|
|
181
|
-
this.validateValueAccessor(dimensionName);
|
|
182
|
-
}
|
|
183
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { NumberDimensionOptions } from '../number-dimension/number-dimension-options';
|
|
2
|
-
import { ConcreteDomainPadding } from './domain-padding/concrete-domain-padding';
|
|
3
|
-
|
|
4
|
-
export interface NumberChartPositionDimensionOptions<
|
|
5
|
-
Datum,
|
|
6
|
-
> extends NumberDimensionOptions<Datum, number> {
|
|
7
|
-
domainPadding?: ConcreteDomainPadding;
|
|
8
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
import { NumberChartPositionDimension } from './number-chart-position';
|
|
3
|
-
import { NumberChartPositionDimensionBuilder } from './number-chart-position-builder';
|
|
4
|
-
|
|
5
|
-
describe('NumberChartPositionDimension', () => {
|
|
6
|
-
let dimension: NumberChartPositionDimension<number>;
|
|
7
|
-
beforeEach(() => {
|
|
8
|
-
dimension = new NumberChartPositionDimensionBuilder<number>()
|
|
9
|
-
.valueAccessor((d) => d)
|
|
10
|
-
._build('Test');
|
|
11
|
-
});
|
|
12
|
-
describe('setPropertiesFromData', () => {
|
|
13
|
-
beforeEach(() => {
|
|
14
|
-
spyOn(dimension as any, 'setValues');
|
|
15
|
-
spyOn(dimension as any, 'setDomain');
|
|
16
|
-
});
|
|
17
|
-
it('calls setValues once', () => {
|
|
18
|
-
dimension.setPropertiesFromData([1, 2, 3, 4, 5]);
|
|
19
|
-
expect((dimension as any).setValues).toHaveBeenCalledOnceWith([
|
|
20
|
-
1, 2, 3, 4, 5,
|
|
21
|
-
]);
|
|
22
|
-
});
|
|
23
|
-
it('calls setDomain once', () => {
|
|
24
|
-
dimension.setPropertiesFromData([1, 2, 3, 4, 5]);
|
|
25
|
-
expect((dimension as any).setDomain).toHaveBeenCalledTimes(1);
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
});
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { safeAssign } from '@mathstack/app-kit';
|
|
2
|
-
import { ScaleContinuousNumeric } from 'd3';
|
|
3
|
-
import { NumberDimension } from '../number-dimension/number-dimension';
|
|
4
|
-
import { ConcreteDomainPadding } from './domain-padding/concrete-domain-padding';
|
|
5
|
-
import { NumberChartPositionDimensionOptions } from './number-chart-position-options';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* A dimension that transforms number values into a position on a chart.
|
|
9
|
-
*
|
|
10
|
-
* This dimension is used for the positional dimensions of a chart, such as x and y. The resultant scale will confirm to the ScaleContinuousNumeric interface from @types/d3. The range of the scale will be a dimension from the chart.
|
|
11
|
-
*
|
|
12
|
-
* The generic is the type of the data that will be passed to the dimension.
|
|
13
|
-
*
|
|
14
|
-
* TESTABLE FUNCTIONALITY
|
|
15
|
-
*
|
|
16
|
-
* - It extracts values for the dimension from data.
|
|
17
|
-
* - tested in: bars.cy.ts, dots.cy.ts, lines.cy.ts, stacked-bars.cy.ts
|
|
18
|
-
* - It sets the domain of the dimension.
|
|
19
|
-
* - tested in: bars.cy.ts, dots.cy.ts, lines.cy.ts, stacked-bars.cy.ts
|
|
20
|
-
* - It creates and returns a scale from a range and the a padded domain if domain padding is provided.
|
|
21
|
-
* - tested in: quantitative-domain-padding.cy.ts
|
|
22
|
-
* - It creates and returns a scale from a range and the regular domain if domain padding is not provided.
|
|
23
|
-
* - tested in: bars.cy.ts, dots.cy.ts, lines.cy.ts, stacked-bars.cy.ts
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
|
-
export class NumberChartPositionDimension<Datum>
|
|
27
|
-
extends NumberDimension<Datum>
|
|
28
|
-
implements NumberChartPositionDimensionOptions<Datum>
|
|
29
|
-
{
|
|
30
|
-
readonly domainPadding?: ConcreteDomainPadding;
|
|
31
|
-
readonly scaleFn: (
|
|
32
|
-
domain?: Iterable<number>,
|
|
33
|
-
range?: Iterable<number>
|
|
34
|
-
) => ScaleContinuousNumeric<number, number>;
|
|
35
|
-
|
|
36
|
-
constructor(options: NumberChartPositionDimensionOptions<Datum>) {
|
|
37
|
-
super('number');
|
|
38
|
-
safeAssign(this, options);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
setPropertiesFromData(data: Datum[]): void {
|
|
42
|
-
this.setValues(data);
|
|
43
|
-
this.setDomain();
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
getScaleFromRange(range: [number, number]) {
|
|
47
|
-
const domain = this.domainPadding
|
|
48
|
-
? this.getPaddedQuantitativeDomain(range)
|
|
49
|
-
: this.calculatedDomain;
|
|
50
|
-
return this.scaleFn().domain(domain).range(range);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
private getPaddedQuantitativeDomain(
|
|
54
|
-
range: [number, number]
|
|
55
|
-
): [number, number] {
|
|
56
|
-
return this.domainPadding.getPaddedDomain(
|
|
57
|
-
this.calculatedDomain,
|
|
58
|
-
this.scaleFn,
|
|
59
|
-
range
|
|
60
|
-
);
|
|
61
|
-
}
|
|
62
|
-
}
|
package/src/lib/data-dimensions/continuous-quantitative/number-dimension/number-dimension-options.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { ScaleContinuousNumeric } from 'd3';
|
|
2
|
-
import { DataDimensionOptions } from '../../dimension-options';
|
|
3
|
-
|
|
4
|
-
export interface NumberDimensionOptions<
|
|
5
|
-
Datum,
|
|
6
|
-
Range,
|
|
7
|
-
> extends DataDimensionOptions<Datum, number> {
|
|
8
|
-
domain: [number, number];
|
|
9
|
-
formatSpecifier: string;
|
|
10
|
-
includeZeroInDomain: boolean;
|
|
11
|
-
scaleFn: (
|
|
12
|
-
domain?: Iterable<number>,
|
|
13
|
-
range?: Iterable<Range>
|
|
14
|
-
) => ScaleContinuousNumeric<Range, Range>;
|
|
15
|
-
}
|
package/src/lib/data-dimensions/continuous-quantitative/number-dimension/number-dimension.spec.ts
DELETED
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
2
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
3
|
-
import { NumberDimension } from './number-dimension';
|
|
4
|
-
|
|
5
|
-
class ConcreteNumberDimension<Datum> extends NumberDimension<Datum> {
|
|
6
|
-
setPropertiesFromData(data: Datum[], ...args: any): void {
|
|
7
|
-
return;
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
describe('NumberDimension', () => {
|
|
12
|
-
let dimension: ConcreteNumberDimension<number>;
|
|
13
|
-
beforeEach(() => {
|
|
14
|
-
dimension = new ConcreteNumberDimension<number>('number');
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
describe('setDomain', () => {
|
|
18
|
-
let calcSpy: jasmine.Spy;
|
|
19
|
-
beforeEach(() => {
|
|
20
|
-
calcSpy = spyOn(dimension as any, 'getCalculatedDomain').and.returnValue([
|
|
21
|
-
10, 50,
|
|
22
|
-
]);
|
|
23
|
-
spyOn(dimension as any, 'setDomainIncludesZero');
|
|
24
|
-
});
|
|
25
|
-
describe('user did not specify domain', () => {
|
|
26
|
-
beforeEach(() => {
|
|
27
|
-
dimension.values = [1, 2, 3, 4, 5];
|
|
28
|
-
});
|
|
29
|
-
describe('valuesOverride is defined', () => {
|
|
30
|
-
beforeEach(() => {
|
|
31
|
-
dimension.setDomain([20, 80]);
|
|
32
|
-
});
|
|
33
|
-
it('calls getCalculatedDomain once with correct value', () => {
|
|
34
|
-
expect(
|
|
35
|
-
(dimension as any).getCalculatedDomain
|
|
36
|
-
).toHaveBeenCalledOnceWith([20, 80]);
|
|
37
|
-
});
|
|
38
|
-
it('sets calculatedDomain to the return value of getCalculatedDomain', () => {
|
|
39
|
-
expect((dimension as any).calculatedDomain).toEqual([10, 50]);
|
|
40
|
-
});
|
|
41
|
-
it('calls setDomainIncludesZero once', () => {
|
|
42
|
-
expect(
|
|
43
|
-
(dimension as any).setDomainIncludesZero
|
|
44
|
-
).toHaveBeenCalledTimes(1);
|
|
45
|
-
});
|
|
46
|
-
});
|
|
47
|
-
describe('valuesOverride is not defined', () => {
|
|
48
|
-
beforeEach(() => {
|
|
49
|
-
dimension.setDomain();
|
|
50
|
-
});
|
|
51
|
-
it('calls getCalculatedDomain once with correct value', () => {
|
|
52
|
-
expect(
|
|
53
|
-
(dimension as any).getCalculatedDomain
|
|
54
|
-
).toHaveBeenCalledOnceWith([1, 5]);
|
|
55
|
-
});
|
|
56
|
-
it('sets calculatedDomain to the return value of getCalculatedDomain', () => {
|
|
57
|
-
expect((dimension as any).calculatedDomain).toEqual([10, 50]);
|
|
58
|
-
});
|
|
59
|
-
it('calls setDomainIncludesZero once', () => {
|
|
60
|
-
expect(
|
|
61
|
-
(dimension as any).setDomainIncludesZero
|
|
62
|
-
).toHaveBeenCalledTimes(1);
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
});
|
|
66
|
-
describe('user specified domain', () => {
|
|
67
|
-
describe('valuesOverride is defined', () => {
|
|
68
|
-
beforeEach(() => {
|
|
69
|
-
(dimension as any).domain = [5, 1];
|
|
70
|
-
dimension.setDomain([20, 80]);
|
|
71
|
-
});
|
|
72
|
-
it('calls getCalculatedDomain once with correct value', () => {
|
|
73
|
-
expect(
|
|
74
|
-
(dimension as any).getCalculatedDomain
|
|
75
|
-
).toHaveBeenCalledOnceWith([5, 1]);
|
|
76
|
-
});
|
|
77
|
-
it('sets calculatedDomain to the return value of getCalculatedDomain', () => {
|
|
78
|
-
expect((dimension as any).calculatedDomain).toEqual([10, 50]);
|
|
79
|
-
});
|
|
80
|
-
it('calls setDomainIncludesZero once', () => {
|
|
81
|
-
expect(
|
|
82
|
-
(dimension as any).setDomainIncludesZero
|
|
83
|
-
).toHaveBeenCalledTimes(1);
|
|
84
|
-
});
|
|
85
|
-
});
|
|
86
|
-
describe('valuesOverride is not defined', () => {
|
|
87
|
-
beforeEach(() => {
|
|
88
|
-
(dimension as any).domain = [5, 1];
|
|
89
|
-
dimension.setDomain();
|
|
90
|
-
});
|
|
91
|
-
it('calls getCalculatedDomain once with correct value', () => {
|
|
92
|
-
expect(
|
|
93
|
-
(dimension as any).getCalculatedDomain
|
|
94
|
-
).toHaveBeenCalledOnceWith([5, 1]);
|
|
95
|
-
});
|
|
96
|
-
it('sets calculatedDomain to the return value of getCalculatedDomain', () => {
|
|
97
|
-
expect((dimension as any).calculatedDomain).toEqual([10, 50]);
|
|
98
|
-
});
|
|
99
|
-
it('calls setDomainIncludesZero once', () => {
|
|
100
|
-
expect(
|
|
101
|
-
(dimension as any).setDomainIncludesZero
|
|
102
|
-
).toHaveBeenCalledTimes(1);
|
|
103
|
-
});
|
|
104
|
-
});
|
|
105
|
-
});
|
|
106
|
-
});
|
|
107
|
-
|
|
108
|
-
describe('getCalculatedDomain', () => {
|
|
109
|
-
describe('includeZeroInDomain is true', () => {
|
|
110
|
-
beforeEach(() => {
|
|
111
|
-
(dimension as any).includeZeroInDomain = true;
|
|
112
|
-
});
|
|
113
|
-
it('returns a domain that includes zero, case: both values are positive', () => {
|
|
114
|
-
const result = (dimension as any).getCalculatedDomain([1, 5]);
|
|
115
|
-
expect(result).toEqual([0, 5]);
|
|
116
|
-
});
|
|
117
|
-
it('returns a domain that includes zero, case: both values are negative', () => {
|
|
118
|
-
const result = (dimension as any).getCalculatedDomain([-5, -1]);
|
|
119
|
-
expect(result).toEqual([-5, 0]);
|
|
120
|
-
});
|
|
121
|
-
it('returns a domain that includes zero, case: one value is negative and one is positive', () => {
|
|
122
|
-
const result = (dimension as any).getCalculatedDomain([-5, 5]);
|
|
123
|
-
expect(result).toEqual([-5, 5]);
|
|
124
|
-
});
|
|
125
|
-
});
|
|
126
|
-
it('returns the input domain if includeZeroInDomain is false', () => {
|
|
127
|
-
(dimension as any).includeZeroInDomain = false;
|
|
128
|
-
const result = (dimension as any).getCalculatedDomain([20, 80]);
|
|
129
|
-
expect(result).toEqual([20, 80]);
|
|
130
|
-
});
|
|
131
|
-
});
|
|
132
|
-
|
|
133
|
-
describe('setDomainIncludesZero', () => {
|
|
134
|
-
it('sets domainIncludesZero to true if zero is in the domain', () => {
|
|
135
|
-
(dimension as any).calculatedDomain = [0, 5];
|
|
136
|
-
(dimension as any).setDomainIncludesZero();
|
|
137
|
-
expect((dimension as any).domainIncludesZero).toBeTrue();
|
|
138
|
-
});
|
|
139
|
-
it('sets domainIncludesZero to true if zero is in the domain', () => {
|
|
140
|
-
(dimension as any).calculatedDomain = [-5, 5];
|
|
141
|
-
(dimension as any).setDomainIncludesZero();
|
|
142
|
-
expect((dimension as any).domainIncludesZero).toBeTrue();
|
|
143
|
-
});
|
|
144
|
-
it('sets domainIncludesZero to true if zero is in the domain', () => {
|
|
145
|
-
(dimension as any).calculatedDomain = [-5, 0];
|
|
146
|
-
(dimension as any).setDomainIncludesZero();
|
|
147
|
-
expect((dimension as any).domainIncludesZero).toBeTrue();
|
|
148
|
-
});
|
|
149
|
-
it('sets domainIncludesZero to false if zero is not in the domain', () => {
|
|
150
|
-
(dimension as any).calculatedDomain = [-5, -1];
|
|
151
|
-
(dimension as any).setDomainIncludesZero();
|
|
152
|
-
expect((dimension as any).domainIncludesZero).toBeFalse();
|
|
153
|
-
});
|
|
154
|
-
});
|
|
155
|
-
});
|
package/src/lib/data-dimensions/continuous-quantitative/number-dimension/number-dimension.ts
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { max, min } from 'd3';
|
|
2
|
-
import { isNumber } from '../../../core/utilities/type-guards';
|
|
3
|
-
import { DataDimension } from '../../dimension';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* An abstract dimension that for dimensions whose input values are numbers. It assumes that the domain is two numbers.
|
|
7
|
-
*
|
|
8
|
-
* The generic is the type of the data that will be passed to the dimension.
|
|
9
|
-
*
|
|
10
|
-
* TESTABLE FUNCTIONALITY
|
|
11
|
-
*
|
|
12
|
-
* - The domain will be the user=provided domain if the user provides a domain.
|
|
13
|
-
* - tested in: number-dimension.spec.ts
|
|
14
|
-
* - The domain will be [min, max] of values if the user does not provide a domain.
|
|
15
|
-
* - tested in: number-dimension.spec.ts
|
|
16
|
-
* - The domain will include 0 if includeZeroInDomain is true.
|
|
17
|
-
* - tested in: number-dimension.spec.ts
|
|
18
|
-
* - domainIncludesZero will be true if 0 is in the domain.
|
|
19
|
-
* - tested in: number-dimension.spec.ts
|
|
20
|
-
*/
|
|
21
|
-
export abstract class NumberDimension<Datum> extends DataDimension<
|
|
22
|
-
Datum,
|
|
23
|
-
number
|
|
24
|
-
> {
|
|
25
|
-
protected calculatedDomain: [number, number];
|
|
26
|
-
readonly domain: [number, number];
|
|
27
|
-
domainIncludesZero: boolean;
|
|
28
|
-
readonly formatSpecifier: string;
|
|
29
|
-
readonly includeZeroInDomain: boolean;
|
|
30
|
-
|
|
31
|
-
setDomain(valuesOverride?: [number, number]) {
|
|
32
|
-
const extents: [number, number] =
|
|
33
|
-
this.domain === undefined
|
|
34
|
-
? valuesOverride || [min(this.values), max(this.values)]
|
|
35
|
-
: this.domain;
|
|
36
|
-
this.calculatedDomain = this.getCalculatedDomain(extents);
|
|
37
|
-
this.setDomainIncludesZero();
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
protected getCalculatedDomain(domain: [number, number]): [number, number] {
|
|
41
|
-
return this.includeZeroInDomain
|
|
42
|
-
? [min([domain[0], 0]), max([domain[1], 0])]
|
|
43
|
-
: domain;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
protected setDomainIncludesZero() {
|
|
47
|
-
this.domainIncludesZero =
|
|
48
|
-
this.calculatedDomain[0] <= 0 && 0 <= this.calculatedDomain[1];
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
// returns false if data is undefined or null or not a number
|
|
52
|
-
// for some charts this may be fine
|
|
53
|
-
// original intended use case: d3Line can only handle defined values
|
|
54
|
-
isValidValue(x: unknown): boolean {
|
|
55
|
-
return isNumber(x);
|
|
56
|
-
}
|
|
57
|
-
}
|