import { Group, Stack } from '@mantine/core'; import { Select } from '/@/renderer/components/select'; import { FilterGroupType } from '/@/renderer/types'; import { AnimatePresence, motion } from 'framer-motion'; import { RiAddLine, RiMore2Line } from 'react-icons/ri'; import { Button } from '/@/renderer/components/button'; import { DropdownMenu } from '/@/renderer/components/dropdown-menu'; import { QueryBuilderOption } from '/@/renderer/components/query-builder/query-builder-option'; export type AdvancedFilterGroup = { children: AdvancedFilterGroup[]; rules: AdvancedFilterRule[]; type: FilterGroupType; uniqueId: string; }; export type AdvancedFilterRule = { field?: string | null; operator?: string | null; uniqueId: string; value?: string | number | Date | undefined | null | any; }; const FILTER_GROUP_OPTIONS_DATA = [ { label: 'Match all', value: 'all', }, { label: 'Match any', value: 'any', }, ]; // const queryJson = [ // { // any: [{ is: { loved: true } }, { gt: { rating: 3 } }], // }, // { inTheRange: { year: [1981, 1990] } }, // ]; // const parseQuery = (query: Record[]) => { // // for (const ruleset in query) { // // // console.log('key', key); // // // console.log('query[key]', query[key]); // // // console.log('Object.keys(query[key])', Object.keys(query[key])); // // // console.log('Object.values(query[key])', Object.values(query[key])); // // // console.log('Object.entries(query[key])', Object.entries(query[key])); // // const keys = Object.keys(query[ruleset]); // // } // const res = flatMapDeep(query, flatten); // console.log('res', res); // return res; // }; // const OperatorSelect = ({ value, onChange }: any) => { // const handleChange = (e: any) => { // onChange(e); // }; // return ( // Add rule group {level > 0 && ( Remove rule group )} {rules.map((rule: AdvancedFilterRule, i: number) => ( ))} {group && ( {group.map((group: AdvancedFilterGroup, index: number) => ( ))} )} ); };