{"version":3,"file":"WhereRow.cjs","sources":["../../../../src/components/visual-query-builder/WhereRow.tsx"],"sourcesContent":["import { injectGlobal } from '@emotion/css';\nimport { Builder, type Config, type ImmutableTree, Query, Utils } from '@react-awesome-query-builder/ui';\nimport { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { type SQLExpression } from '../../types';\n\nimport { emptyInitTree, raqbConfig } from './AwesomeQueryBuilder';\n\ninterface SQLBuilderWhereRowProps {\n  sql: SQLExpression;\n  onSqlChange: (sql: SQLExpression) => void;\n  config?: Partial<Config>;\n}\n\nexport function WhereRow({ sql, config, onSqlChange }: SQLBuilderWhereRowProps) {\n  const [tree, setTree] = useState<ImmutableTree>();\n  const configWithDefaults = useMemo(() => ({ ...raqbConfig, ...config }), [config]);\n\n  useEffect(() => {\n    // Set the initial tree\n    if (!tree) {\n      const initTree = Utils.checkTree(Utils.loadTree(sql.whereJsonTree ?? emptyInitTree), configWithDefaults);\n      setTree(initTree);\n    }\n  }, [configWithDefaults, sql.whereJsonTree, tree]);\n\n  useEffect(() => {\n    if (!sql.whereJsonTree) {\n      setTree(Utils.checkTree(Utils.loadTree(emptyInitTree), configWithDefaults));\n    }\n  }, [configWithDefaults, sql.whereJsonTree]);\n\n  const onTreeChange = useCallback(\n    (changedTree: ImmutableTree, config: Config) => {\n      setTree(changedTree);\n      const newSql = {\n        ...sql,\n        whereJsonTree: Utils.getTree(changedTree),\n        whereString: Utils.sqlFormat(changedTree, config),\n      };\n\n      onSqlChange(newSql);\n    },\n    [onSqlChange, sql]\n  );\n\n  if (!tree) {\n    return null;\n  }\n\n  return (\n    <Query\n      {...configWithDefaults}\n      value={tree}\n      onChange={onTreeChange}\n      renderBuilder={(props) => <Builder {...props} />}\n    />\n  );\n}\n\nfunction flex(direction: string) {\n  return `\n    display: flex;\n    gap: 8px;\n    flex-direction: ${direction};`;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-expressions\ninjectGlobal`\n  .group--header {\n    ${flex('row')}\n  }\n\n  .group-or-rule {\n    ${flex('column')}\n    .rule {\n      flex-direction: row;\n    }\n  }\n\n  .rule--body {\n    ${flex('row')}\n  }\n\n  .group--children {\n    ${flex('column')}\n  }\n\n  .group--conjunctions:empty {\n    display: none;\n  }\n`;\n"],"names":["useState","useMemo","raqbConfig","useEffect","Utils","emptyInitTree","useCallback","config","jsx","Query","Builder","injectGlobal"],"mappings":";;;;;;;;;;;AAcO,SAAS,QAAA,CAAS,EAAE,GAAA,EAAK,MAAA,EAAQ,aAAY,EAA4B;AAC9E,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIA,cAAA,EAAwB;AAChD,EAAA,MAAM,kBAAA,GAAqBC,aAAA,CAAQ,OAAO,EAAE,GAAGC,8BAAA,EAAY,GAAG,MAAA,EAAO,CAAA,EAAI,CAAC,MAAM,CAAC,CAAA;AAEjF,EAAAC,eAAA,CAAU,MAAM;AAlBlB,IAAA,IAAA,EAAA;AAoBI,IAAA,IAAI,CAAC,IAAA,EAAM;AACT,MAAA,MAAM,QAAA,GAAWC,QAAA,CAAM,SAAA,CAAUA,QAAA,CAAM,QAAA,CAAA,CAAS,SAAI,aAAA,KAAJ,IAAA,GAAA,EAAA,GAAqBC,iCAAa,CAAA,EAAG,kBAAkB,CAAA;AACvG,MAAA,OAAA,CAAQ,QAAQ,CAAA;AAAA,IAClB;AAAA,EACF,GAAG,CAAC,kBAAA,EAAoB,GAAA,CAAI,aAAA,EAAe,IAAI,CAAC,CAAA;AAEhD,EAAAF,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,IAAI,aAAA,EAAe;AACtB,MAAA,OAAA,CAAQC,SAAM,SAAA,CAAUA,QAAA,CAAM,SAASC,iCAAa,CAAA,EAAG,kBAAkB,CAAC,CAAA;AAAA,IAC5E;AAAA,EACF,CAAA,EAAG,CAAC,kBAAA,EAAoB,GAAA,CAAI,aAAa,CAAC,CAAA;AAE1C,EAAA,MAAM,YAAA,GAAeC,iBAAA;AAAA,IACnB,CAAC,aAA4BC,OAAAA,KAAmB;AAC9C,MAAA,OAAA,CAAQ,WAAW,CAAA;AACnB,MAAA,MAAM,MAAA,GAAS;AAAA,QACb,GAAG,GAAA;AAAA,QACH,aAAA,EAAeH,QAAA,CAAM,OAAA,CAAQ,WAAW,CAAA;AAAA,QACxC,WAAA,EAAaA,QAAA,CAAM,SAAA,CAAU,WAAA,EAAaG,OAAM;AAAA,OAClD;AAEA,MAAA,WAAA,CAAY,MAAM,CAAA;AAAA,IACpB,CAAA;AAAA,IACA,CAAC,aAAa,GAAG;AAAA,GACnB;AAEA,EAAA,IAAI,CAAC,IAAA,EAAM;AACT,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,uBACEC,cAAA;AAAA,IAACC,QAAA;AAAA,IAAA;AAAA,MACE,GAAG,kBAAA;AAAA,MACJ,KAAA,EAAO,IAAA;AAAA,MACP,QAAA,EAAU,YAAA;AAAA,MACV,eAAe,CAAC,KAAA,qBAAUD,cAAA,CAACE,UAAA,EAAA,EAAS,GAAG,KAAA,EAAO;AAAA;AAAA,GAChD;AAEJ;AAEA,SAAS,KAAK,SAAA,EAAmB;AAC/B,EAAA,OAAO;AAAA;AAAA;AAAA,oBAAA,EAGa,SAAS,CAAA,CAAA,CAAA;AAC/B;AAGAC,gBAAA;AAAA;AAAA,IAAA,EAEM,IAAA,CAAK,KAAK,CAAC;AAAA;;AAAA;AAAA,IAAA,EAIX,IAAA,CAAK,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA,IAAA,EAOd,IAAA,CAAK,KAAK,CAAC;AAAA;;AAAA;AAAA,IAAA,EAIX,IAAA,CAAK,QAAQ,CAAC;AAAA;;AAAA;AAAA;AAAA;AAAA,CAAA;;;;"}