{"version":3,"file":"templateVars.cjs","sources":["../../../src/types/templateVars.ts"],"sourcesContent":["import { LoadingState } from './data';\nimport { MetricFindValue } from './datasource';\nimport { DataSourceRef } from './query';\n\nexport type VariableType = TypedVariableModel['type'];\n\n/** @deprecated Use TypedVariableModel instead */\nexport interface VariableModel {\n  type: VariableType;\n  name: string;\n  label?: string;\n}\n\nexport type TypedVariableModel =\n  | QueryVariableModel\n  | AdHocVariableModel\n  | GroupByVariableModel\n  | ConstantVariableModel\n  | DataSourceVariableModel\n  | IntervalVariableModel\n  | TextBoxVariableModel\n  | CustomVariableModel\n  | UserVariableModel\n  | OrgVariableModel\n  | DashboardVariableModel\n  | SnapshotVariableModel\n  | SwitchVariableModel;\n\nexport enum VariableRefresh {\n  never, // removed from the UI\n  onDashboardLoad,\n  onTimeRangeChanged,\n}\n\nexport type VariableRegexApplyTo = 'value' | 'text';\n\nexport enum VariableSort {\n  disabled,\n  alphabeticalAsc,\n  alphabeticalDesc,\n  numericalAsc,\n  numericalDesc,\n  alphabeticalCaseInsensitiveAsc,\n  alphabeticalCaseInsensitiveDesc,\n  naturalAsc,\n  naturalDesc,\n}\n\nexport enum VariableHide {\n  dontHide,\n  hideLabel,\n  hideVariable,\n  inControlsMenu,\n}\n\nexport interface AdHocVariableFilter {\n  key: string;\n  operator: string;\n  value: string;\n  values?: string[];\n  origin?: 'dashboard' | string;\n  /** @deprecated  */\n  condition?: string;\n}\n\nexport interface AdHocVariableModel extends BaseVariableModel {\n  type: 'adhoc';\n  datasource: DataSourceRef | null;\n  filters: AdHocVariableFilter[];\n  /**\n   * Filters that are always applied to the lookup of keys. Not shown in the AdhocFilterBuilder UI.\n   */\n  baseFilters?: AdHocVariableFilter[];\n  /**\n   * Static keys that override any dynamic keys from the datasource.\n   */\n  defaultKeys?: MetricFindValue[];\n  allowCustomValue?: boolean;\n}\n\nexport interface GroupByVariableModel extends VariableWithOptions {\n  type: 'groupby';\n  datasource: DataSourceRef | null;\n  multi: true;\n  allowCustomValue?: boolean;\n  defaultValue?: VariableOption;\n}\n\nexport interface VariableOption {\n  selected: boolean;\n  text: string | string[];\n  value: string | string[];\n  isNone?: boolean;\n  properties?: Record<string, any>;\n}\n\nexport interface IntervalVariableModel extends VariableWithOptions {\n  type: 'interval';\n  auto: boolean;\n  auto_min: string;\n  auto_count: number;\n  refresh: VariableRefresh;\n}\n\nexport interface CustomVariableModel extends VariableWithMultiSupport {\n  type: 'custom';\n  valuesFormat?: 'csv' | 'json';\n}\n\nexport interface DataSourceVariableModel extends VariableWithMultiSupport {\n  type: 'datasource';\n  regex: string;\n  refresh: VariableRefresh;\n}\n\nexport interface QueryVariableModel extends VariableWithMultiSupport {\n  type: 'query';\n  datasource: DataSourceRef | null;\n  definition: string;\n  sort: VariableSort;\n  queryValue?: string;\n  query: any;\n  regex: string;\n  regexApplyTo?: VariableRegexApplyTo;\n  refresh: VariableRefresh;\n  staticOptions?: VariableOption[];\n  staticOptionsOrder?: 'before' | 'after' | 'sorted';\n}\n\nexport interface TextBoxVariableModel extends VariableWithOptions {\n  type: 'textbox';\n  originalQuery: string | null;\n}\n\nexport interface ConstantVariableModel extends VariableWithOptions {\n  type: 'constant';\n}\n\nexport interface SwitchVariableModel extends VariableWithOptions {\n  type: 'switch';\n}\n\nexport interface VariableWithMultiSupport extends VariableWithOptions {\n  multi: boolean;\n  includeAll: boolean;\n  allValue?: string | null;\n  allowCustomValue?: boolean;\n}\n\nexport interface VariableWithOptions extends BaseVariableModel {\n  current: VariableOption | Record<string, never>;\n  options: VariableOption[];\n  query: string;\n}\n\nexport interface DashboardProps {\n  name: string;\n  uid: string;\n  toString: () => string;\n}\n\nexport interface DashboardVariableModel extends SystemVariable<DashboardProps> {}\n\nexport interface OrgProps {\n  name: string;\n  id: number;\n  toString: () => string;\n}\n\nexport interface OrgVariableModel extends SystemVariable<OrgProps> {}\n\nexport interface UserProps {\n  login: string;\n  id: number;\n  email?: string;\n  toString: () => string;\n}\n\nexport interface UserVariableModel extends SystemVariable<UserProps> {}\n\nexport interface SystemVariable<TProps extends { toString: () => string }> extends BaseVariableModel {\n  type: 'system';\n  current: { value: TProps };\n}\n\nexport interface BaseVariableModel {\n  name: string;\n  label?: string;\n  id: string;\n  type: VariableType;\n  rootStateKey: string | null;\n  global: boolean;\n  hide: VariableHide;\n  skipUrlSync: boolean;\n  index: number;\n  state: LoadingState;\n  error: any | null;\n  description: string | null;\n  usedInRepeat?: boolean;\n}\n\nexport interface SnapshotVariableModel extends VariableWithOptions {\n  type: 'snapshot';\n  query: string;\n}\n"],"names":["VariableRefresh","VariableSort","VariableHide"],"mappings":";;;;;AA4BO,IAAK,eAAA,qBAAAA,gBAAAA,KAAL;AACL,EAAAA,gBAAAA,CAAAA,gBAAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAA;AACA,EAAAA,gBAAAA,CAAAA,gBAAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,iBAAA;AACA,EAAAA,gBAAAA,CAAAA,gBAAAA,CAAA,oBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,oBAAA;AAHU,EAAA,OAAAA,gBAAAA;AAAA,CAAA,EAAA,eAAA,IAAA,EAAA;AAQL,IAAK,YAAA,qBAAAC,aAAAA,KAAL;AACL,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAA;AACA,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,iBAAA;AACA,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,kBAAA;AACA,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAA;AACA,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAA;AACA,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,gCAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gCAAA;AACA,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,iCAAA,CAAA,GAAA,CAAA,CAAA,GAAA,iCAAA;AACA,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAA;AACA,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAA;AATU,EAAA,OAAAA,aAAAA;AAAA,CAAA,EAAA,YAAA,IAAA,EAAA;AAYL,IAAK,YAAA,qBAAAC,aAAAA,KAAL;AACL,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAA;AACA,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAA;AACA,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAA;AACA,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAA;AAJU,EAAA,OAAAA,aAAAA;AAAA,CAAA,EAAA,YAAA,IAAA,EAAA;;;;;;"}