{"version":3,"file":"predicates.cjs","sources":["../../../../src/transformations/matchers/predicates.ts"],"sourcesContent":["import { Field, DataFrame, FieldType } from '../../types/dataFrame';\nimport { FieldMatcherInfo, MatcherConfig, FrameMatcherInfo } from '../../types/transformations';\nimport { getFieldMatcher, fieldMatchers, getFrameMatchers, frameMatchers } from '../matchers';\n\nimport { MatcherID } from './ids';\n\nconst anyFieldMatcher: FieldMatcherInfo<MatcherConfig[]> = {\n  id: MatcherID.anyMatch,\n  name: 'Any',\n  description: 'Any child matches (OR)',\n  excludeFromPicker: true,\n  defaultOptions: [], // empty array\n\n  get: (options: MatcherConfig[]) => {\n    const children = options.map((option) => {\n      return getFieldMatcher(option);\n    });\n    return (field: Field, frame: DataFrame, allFrames: DataFrame[]) => {\n      for (const child of children) {\n        if (child(field, frame, allFrames)) {\n          return true;\n        }\n      }\n      return false;\n    };\n  },\n\n  getOptionsDisplayText: (options: MatcherConfig[]) => {\n    let text = '';\n    for (const sub of options) {\n      if (text.length > 0) {\n        text += ' OR ';\n      }\n      const matcher = fieldMatchers.get(sub.id);\n      text += matcher.getOptionsDisplayText ? matcher.getOptionsDisplayText(sub) : matcher.name;\n    }\n    return text;\n  },\n};\n\nconst anyFrameMatcher: FrameMatcherInfo<MatcherConfig[]> = {\n  id: MatcherID.anyMatch,\n  name: 'Any',\n  description: 'Any child matches (OR)',\n  excludeFromPicker: true,\n  defaultOptions: [], // empty array\n\n  get: (options: MatcherConfig[]) => {\n    const children = options.map((option) => {\n      return getFrameMatchers(option);\n    });\n    return (frame: DataFrame) => {\n      for (const child of children) {\n        if (child(frame)) {\n          return true;\n        }\n      }\n      return false;\n    };\n  },\n\n  getOptionsDisplayText: (options: MatcherConfig[]) => {\n    let text = '';\n    for (const sub of options) {\n      if (text.length > 0) {\n        text += ' OR ';\n      }\n      const matcher = frameMatchers.get(sub.id);\n      text += matcher.getOptionsDisplayText ? matcher.getOptionsDisplayText(sub) : matcher.name;\n    }\n    return text;\n  },\n};\n\nconst allFieldsMatcher: FieldMatcherInfo<MatcherConfig[]> = {\n  id: MatcherID.allMatch,\n  name: 'All',\n  description: 'Everything matches (AND)',\n  excludeFromPicker: true,\n  defaultOptions: [], // empty array\n\n  get: (options: MatcherConfig[]) => {\n    const children = options.map((option) => {\n      return getFieldMatcher(option);\n    });\n    return (field: Field, frame: DataFrame, allFrames: DataFrame[]) => {\n      for (const child of children) {\n        if (!child(field, frame, allFrames)) {\n          return false;\n        }\n      }\n      return true;\n    };\n  },\n\n  getOptionsDisplayText: (options: MatcherConfig[]) => {\n    let text = '';\n    for (const sub of options) {\n      if (text.length > 0) {\n        text += ' AND ';\n      }\n      const matcher = fieldMatchers.get(sub.id); // Ugho what about frame\n      text += matcher.getOptionsDisplayText ? matcher.getOptionsDisplayText(sub) : matcher.name;\n    }\n    return text;\n  },\n};\n\nconst allFramesMatcher: FrameMatcherInfo<MatcherConfig[]> = {\n  id: MatcherID.allMatch,\n  name: 'All',\n  description: 'Everything matches (AND)',\n  excludeFromPicker: true,\n  defaultOptions: [], // empty array\n\n  get: (options: MatcherConfig[]) => {\n    const children = options.map((option) => {\n      return getFrameMatchers(option);\n    });\n    return (frame: DataFrame) => {\n      for (const child of children) {\n        if (!child(frame)) {\n          return false;\n        }\n      }\n      return true;\n    };\n  },\n\n  getOptionsDisplayText: (options: MatcherConfig[]) => {\n    let text = '';\n    for (const sub of options) {\n      if (text.length > 0) {\n        text += ' AND ';\n      }\n      const matcher = frameMatchers.get(sub.id);\n      text += matcher.getOptionsDisplayText ? matcher.getOptionsDisplayText(sub) : matcher.name;\n    }\n    return text;\n  },\n};\n\nconst notFieldMatcher: FieldMatcherInfo<MatcherConfig> = {\n  id: MatcherID.invertMatch,\n  name: 'NOT',\n  description: 'Inverts other matchers',\n  excludeFromPicker: true,\n\n  get: (option: MatcherConfig) => {\n    const check = getFieldMatcher(option);\n    return (field: Field, frame: DataFrame, allFrames: DataFrame[]) => {\n      return !check(field, frame, allFrames);\n    };\n  },\n\n  getOptionsDisplayText: (options: MatcherConfig) => {\n    const matcher = fieldMatchers.get(options.id);\n    const text = matcher.getOptionsDisplayText ? matcher.getOptionsDisplayText(options.options) : matcher.name;\n    return 'NOT ' + text;\n  },\n};\n\nconst notFrameMatcher: FrameMatcherInfo<MatcherConfig> = {\n  id: MatcherID.invertMatch,\n  name: 'NOT',\n  description: 'Inverts other matchers',\n  excludeFromPicker: true,\n\n  get: (option: MatcherConfig) => {\n    const check = getFrameMatchers(option);\n    return (frame: DataFrame) => {\n      return !check(frame);\n    };\n  },\n\n  getOptionsDisplayText: (options: MatcherConfig) => {\n    const matcher = frameMatchers.get(options.id);\n    const text = matcher.getOptionsDisplayText ? matcher.getOptionsDisplayText(options.options) : matcher.name;\n    return 'NOT ' + text;\n  },\n};\n\nexport const alwaysFieldMatcher = (field: Field) => {\n  return true;\n};\n\nconst alwaysFrameMatcher = (frame: DataFrame) => {\n  return true;\n};\n\nconst neverFieldMatcher = (field: Field) => {\n  return false;\n};\n\nexport const notTimeFieldMatcher = (field: Field) => {\n  return field.type !== FieldType.time;\n};\n\nconst neverFrameMatcher = (frame: DataFrame) => {\n  return false;\n};\n\nconst alwaysFieldMatcherInfo: FieldMatcherInfo = {\n  id: MatcherID.alwaysMatch,\n  name: 'All Fields',\n  description: 'Always Match',\n\n  get: (_option) => {\n    return alwaysFieldMatcher;\n  },\n\n  getOptionsDisplayText: (_options) => {\n    return 'Always';\n  },\n};\n\nconst alwaysFrameMatcherInfo: FrameMatcherInfo = {\n  id: MatcherID.alwaysMatch,\n  name: 'All Frames',\n  description: 'Always Match',\n\n  get: (_option) => {\n    return alwaysFrameMatcher;\n  },\n\n  getOptionsDisplayText: (_options) => {\n    return 'Always';\n  },\n};\n\nconst neverFieldMatcherInfo: FieldMatcherInfo = {\n  id: MatcherID.neverMatch,\n  name: 'No Fields',\n  description: 'Never Match',\n  excludeFromPicker: true,\n\n  get: (_option) => {\n    return neverFieldMatcher;\n  },\n\n  getOptionsDisplayText: (_options) => {\n    return 'Never';\n  },\n};\n\nconst neverFrameMatcherInfo: FrameMatcherInfo = {\n  id: MatcherID.neverMatch,\n  name: 'No Frames',\n  description: 'Never Match',\n\n  get: (_option) => {\n    return neverFrameMatcher;\n  },\n\n  getOptionsDisplayText: (_options) => {\n    return 'Never';\n  },\n};\n\nexport function getFieldPredicateMatchers(): FieldMatcherInfo[] {\n  return [anyFieldMatcher, allFieldsMatcher, notFieldMatcher, alwaysFieldMatcherInfo, neverFieldMatcherInfo];\n}\n\nexport function getFramePredicateMatchers(): FrameMatcherInfo[] {\n  return [anyFrameMatcher, allFramesMatcher, notFrameMatcher, alwaysFrameMatcherInfo, neverFrameMatcherInfo];\n}\n"],"names":["MatcherID","getFieldMatcher","fieldMatchers","getFrameMatchers","frameMatchers","FieldType"],"mappings":"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"}