/**
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */
import { DASHBOARD_FILTER_SCOPE_GLOBAL } from 'src/dashboard/reducers/dashboardFilters';
import { filterId } from './mockSliceEntities';

export const emptyFilters = {};

export const dashboardFilters = {
  [filterId]: {
    chartId: filterId,
    componentId: 'CHART-rwDfbGqeEn',
    directPathToFilter: [
      'ROOT_ID',
      'TABS-VPEX_c476g',
      'TAB-PMJyKM1yB',
      'TABS-YdylzDMTMQ',
      'TAB-O9AaU9FT0',
      'ROW-l6PrlhwSjh',
      'CHART-rwDfbGqeEn',
    ],
    scopes: {
      region: DASHBOARD_FILTER_SCOPE_GLOBAL,
      gender: DASHBOARD_FILTER_SCOPE_GLOBAL,
    },
    isDateFilter: false,
    isInstantFilter: true,
    columns: {
      region: ['a', 'b'],
    },
    labels: {
      region: 'region',
    },
  },
};
