{"version":3,"file":"getNativeElementProps.js","sourceRoot":"../src/","sources":["getNativeElementProps.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,eAAe,EACf,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,qBAAqB,EACrB,cAAc,GACf,MAAM,cAAc,CAAC;AAGtB,IAAM,gBAAgB,GAA2C;IAC/D,KAAK,EAAE,eAAe;IACtB,KAAK,EAAE,eAAe;IACtB,KAAK,EAAE,eAAe;IACtB,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,YAAY;IAChB,CAAC,EAAE,gBAAgB;IACnB,MAAM,EAAE,gBAAgB;IACxB,KAAK,EAAE,eAAe;IACtB,QAAQ,EAAE,kBAAkB;IAC5B,MAAM,EAAE,gBAAgB;IACxB,MAAM,EAAE,gBAAgB;IACxB,KAAK,EAAE,eAAe;IACtB,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,YAAY;IAChB,QAAQ,EAAE,kBAAkB;IAC5B,GAAG,EAAE,aAAa;IAClB,IAAI,EAAE,cAAc;IACpB,MAAM,EAAE,gBAAgB;IACxB,GAAG,EAAE,aAAa;CACnB,CAAC;AAEF;;;;;;GAMG;AACH,8DAA8D;AAC9D,MAAM,UAAU,qBAAqB,CACnC,OAAe,EACf,KAAS,EACT,iBAA4B;IAE5B,IAAM,gBAAgB,GAAG,CAAC,OAAO,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAI,qBAAqB,CAAC;IAEzF,OAAO,cAAc,CAAC,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;AACpE,CAAC","sourcesContent":["import {\n  labelProperties,\n  audioProperties,\n  videoProperties,\n  olProperties,\n  liProperties,\n  anchorProperties,\n  buttonProperties,\n  inputProperties,\n  textAreaProperties,\n  selectProperties,\n  optionProperties,\n  tableProperties,\n  trProperties,\n  thProperties,\n  tdProperties,\n  colGroupProperties,\n  colProperties,\n  formProperties,\n  iframeProperties,\n  imgProperties,\n  htmlElementProperties,\n  getNativeProps,\n} from './properties';\nimport * as React from 'react';\n\nconst nativeElementMap: Record<string, Record<string, number>> = {\n  label: labelProperties,\n  audio: audioProperties,\n  video: videoProperties,\n  ol: olProperties,\n  li: liProperties,\n  a: anchorProperties,\n  button: buttonProperties,\n  input: inputProperties,\n  textarea: textAreaProperties,\n  select: selectProperties,\n  option: optionProperties,\n  table: tableProperties,\n  tr: trProperties,\n  th: thProperties,\n  td: tdProperties,\n  colGroup: colGroupProperties,\n  col: colProperties,\n  form: formProperties,\n  iframe: iframeProperties,\n  img: imgProperties,\n};\n\n/**\n * Given an element tagname and user props, filters the props to only allowed props for the given\n * element type.\n * @param tagName - Tag name (e.g. \"div\")\n * @param props - Props object\n * @param excludedPropNames - List of props to disallow\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getNativeElementProps<TAttributes extends React.HTMLAttributes<any>>(\n  tagName: string,\n  props: {},\n  excludedPropNames?: string[],\n): TAttributes {\n  const allowedPropNames = (tagName && nativeElementMap[tagName]) || htmlElementProperties;\n\n  return getNativeProps(props, allowedPropNames, excludedPropNames);\n}\n"]}