vitess.io/vitess@v0.16.2/web/vtadmin/src/components/charts/chartOptions.ts (about)

     1  /**
     2   * Copyright 2021 The Vitess Authors.
     3   *
     4   * Licensed under the Apache License, Version 2.0 (the "License");
     5   * you may not use this file except in compliance with the License.
     6   * You may obtain a copy of the License at
     7   *
     8   *     http://www.apache.org/licenses/LICENSE-2.0
     9   *
    10   * Unless required by applicable law or agreed to in writing, software
    11   * distributed under the License is distributed on an "AS IS" BASIS,
    12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13   * See the License for the specific language governing permissions and
    14   * limitations under the License.
    15   */
    16  import Highcharts from 'highcharts';
    17  
    18  export const mergeOptions = (
    19      o: Highcharts.Options | undefined,
    20      ...opts: (Highcharts.Options | undefined)[]
    21  ): Highcharts.Options => {
    22      return Highcharts.merge({}, DEFAULT_OPTIONS, o, ...opts);
    23  };
    24  
    25  /**
    26   * Default options applicable to all Highcharts charts.
    27   * Individual chart instances can override any/all of these
    28   * default options with `mergeOptions`.
    29   */
    30  export const DEFAULT_OPTIONS: Highcharts.Options = {
    31      chart: {
    32          animation: false,
    33          // Enable styled mode by default, so we can use our existing CSS variables.
    34          // See https://www.highcharts.com/docs/chart-design-and-style/style-by-css
    35          styledMode: true,
    36      },
    37      credits: {
    38          enabled: false,
    39      },
    40      plotOptions: {
    41          series: {
    42              animation: false,
    43          },
    44      },
    45      time: {
    46          useUTC: false,
    47      },
    48      // Using Highcharts' built in `title` property is not recommended.
    49      // In most cases, using a regular heading element like <h2>
    50      // adjacent to the chart is more flexible and consistent,
    51      // since we can't apply layout-type rules like line-height or margin.
    52      title: {
    53          text: undefined,
    54      },
    55  };