import type { LassoToolsMode, LassoToolsModesMapping } from '../types'
import {
  DrawPolygonIcon,
  DrawSquareIcon,
  DrawCircleIcon,
  DrawLassoIcon,
  SelectToolIcon,
} from './icons'
import type { LassoToolsComponentProps } from './types'
import type { RequiredDeep } from 'type-fest'

export const LASSO_TOOLS_LABELS: NonNullable<
  RequiredDeep<LassoToolsComponentProps['labels']>
> = {
  action: {
    tooltip: {
      active: 'Click on the map to draw your spatial filter',
      inactive: 'Click on the map to draw your spatial filter',
    },
  },
  chip: {
    tooltip: {
      active: 'Hide drawing',
      inactive: 'Show drawing',
    },
  },
  options: {
    mode: {
      title: 'Choose a drawing tool',
      options: {
        circle: 'Circle',
        lasso: 'Lasso tool',
        polygon: 'Polygon',
        rectangle: 'Rectangle',
        edit: 'Edit feature',
      },
    },
    layerFilters: 'Layer filters',
  },
  noData: {
    title: 'Spatial filter not applied',
    description:
      'Select a drawing or editing tool and click on the map to define your spatial filter',
  },
  actions: {
    toggleAll: {
      active: 'Hide all',
      inactive: 'Show all',
    },
    deleteAll: 'Remove all',
  },
} as const

export const DEFAULT_LASSO_TOOLS_MODES_MAPPING: LassoToolsModesMapping<LassoToolsMode> =
  {
    polygon: {
      icon: <DrawPolygonIcon />,
    },
    rectangle: {
      icon: <DrawSquareIcon />,
    },
    circle: {
      icon: <DrawCircleIcon />,
    },
    lasso: {
      icon: <DrawLassoIcon />,
    },
    edit: {
      icon: <SelectToolIcon />,
    },
  } as const
