File

libs/d3/src/lib/helper/range-calculations.service.ts

Index

Methods

Methods

Public bufferRange
bufferRange(range: MinMaxRange, factor: number)

Buffers the range with a given factor.

Parameters :
Name Type Optional Default value Description
range MinMaxRange No

range to be buffered

factor number No 0.1
Returns : MinMaxRange
Public mergeRanges
mergeRanges(rangeOne: MinMaxRange, rangeTwo: MinMaxRange)

Merge two ranges to one

Parameters :
Name Type Optional
rangeOne MinMaxRange No
rangeTwo MinMaxRange No
Returns : MinMaxRange
Public setDefaultExtendIfUndefined
setDefaultExtendIfUndefined(range: MinMaxRange)

Sets range to default interval of -1 to 1, if min and max of range are not set.

Parameters :
Name Type Optional Description
range MinMaxRange No

range to be set

Returns : MinMaxRange
import { Injectable } from '@angular/core';
import { MinMaxRange } from '@helgoland/core';

@Injectable({
  providedIn: 'root'
})
export class RangeCalculationsService {

  /**
   * Buffers the range with a given factor.
   * @param range {MinMaxRange} range to be buffered
   * @param factor {number}
   */
  public bufferRange(range: MinMaxRange, factor: number = 0.1): MinMaxRange {
    const offset = (range.max - range.min) * factor;
    range.max = range.max + offset;
    range.min = range.min - offset;
    return range;
  }

  /**
   * Merge two ranges to one
   * @param rangeOne {MinMaxRange}
   * @param rangeTwo {MinMaxRange}
   */
  public mergeRanges(rangeOne: MinMaxRange, rangeTwo: MinMaxRange): MinMaxRange {
    const calcMin = Math.min(rangeOne.min !== undefined ? rangeOne.min : Number.POSITIVE_INFINITY, rangeTwo.min !== undefined ? rangeTwo.min : Number.POSITIVE_INFINITY);
    const calcMax = Math.max(rangeOne.max !== undefined ? rangeOne.max : Number.NEGATIVE_INFINITY, rangeTwo.max !== undefined ? rangeTwo.max : Number.NEGATIVE_INFINITY);

    return {
      min: calcMin === Number.POSITIVE_INFINITY ? undefined : calcMin,
      max: calcMax === Number.NEGATIVE_INFINITY ? undefined : calcMax
    };
  }

  /**
   * Sets range to default interval of -1 to 1, if min and max of range are not set.
   * @param range {MinMaxRange} range to be set
   */
  public setDefaultExtendIfUndefined(range: MinMaxRange): MinMaxRange {
    let min = -1;
    let max = 1;
    if (range !== undefined && range !== null) {
      if (range.min !== range.max) {
        min = range.min;
        max = range.max;
      } else {
        min += range.min;
        max += range.max;
      }
    }
    return { min, max };
  }

}

result-matching ""

    No results matching ""