PageSourceSearch

https://hypi.ai/assets/js/2a4abf3d.756c94e8.js

js hypi.ai collected 2026-10-05 12:05:53 UTC 63,666 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8376],{38651:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>h,contentTitle:()=>o,default:()=>x,frontMatter:()=>i,metadata:()=>d,toc:()=>c});var s=r(85893),l=r(11151),t=r(74866),a=r(85162);const i={id:"arcql",title:"ArcQL filtering",sidebar_label:"ArcQL filtering",slug:"/lowcode/arcql"},o=void 0,d={id:"lowcode/arcql",title:"ArcQL filtering",description:"Hypi offers a powerful query language as part of its platform. ArcQL works as a filter to select data to process upon. ArcQL statements are used along with query functions like find.You will be able to make your own ArcQL statements as they are easy to construct. ArcQL is very much SQL-like. If you understand SQL, you will write the ArcQL statements just by guessing at it.",source:"@site/src/markdown/lowcode/arcql.md",sourceDirName:"lowcode",slug:"/lowcode/arcql",permalink:"/docs/lowcode/arcql",draft:!1,unlisted:!1,editUrl:"https://github.com/hypi-universe/website/tree/main/packages/create-docusaurus/templates/shared/src/markdown/lowcode/arcql.md",tags:[],version:"current",frontMatter:{id:"arcql",title:"ArcQL filtering",sidebar_label:"ArcQL filtering",slug:"/lowcode/arcql"},sidebar:"docs",previous:{title:"Delete Data",permalink:"/docs/lowcode/delete-data"},next:{title:"References",permalink:"/docs/lowcode/references"}},h={},c=[{value:"Sort Query",id:"sort-query",level:3},{value:"SORT EXAMPLE 1",id:"sort-example-1",level:4},{value:"SORT EXAMPLE 2",id:"sort-example-2",level:4},{value:"Term Query",id:"term-query",level:3},{value:"TERM QUERY EXAMPLE 1",id:"term-query-example-1",level:4},{value:"TERM QUERY EXAMPLE 2",id:"term-query-example-2",level:4},{value:"TERM QUERY EXAMPLE 3",id:"term-query-example-3",level:4},{value:"Phrase Query",id:"phrase-query",level:3},{value:"PHRASE QUERY EXAMPLE 1",id:"phrase-query-example-1",level:4},{value:"PHRASE QUERY EXAMPLE 2",id:"phrase-query-example-2",level:4},{value:"EXIST",id:"exist",level:3},{value:"NOT EXIST",id:"not-exist",level:3},{value:"Prefix Query",id:"prefix-query",level:3},{value:"PREFIX QUERY EXAMPLE 1",id:"prefix-query-example-1",level:4},{value:"Wildcard Query",id:"wildcard-query",level:3},{value:"WILDCARD QUERY EXAMPLE 1",id:"wildcard-query-example-1",level:4},{value:"WILDCARD QUERY EXAMPLE 2",id:"wildcard-query-example-2",level:4},{value:"Range Query",id:"range-query",level:3},{value:"RANGE QUERY EXAMPLE 1",id:"range-query-example-1",level:4},{value:"RANGE QUERY EXAMPLE 2",id:"range-query-example-2",level:4},{value:"RANGE QUERY EXAMPLE 3",id:"range-query-example-3",level:4},{value:"Match All Query",id:"match-all-query",level:3},{value:"Comparison Query",id:"comparison-query",level:3},{value:"COMPARISON QUERY EXAMPLE 1",id:"comparison-query-example-1",level:4},{value:"COMPARISON QUERY EXAMPLE 2",id:"comparison-query-example-2",level:4},{value:"COMPARISON QUERY EXAMPLE 3",id:"comparison-query-example-3",level:4},{value:"Geo Location",id:"geo-location",level:3},{value:"TYPE IN-FIELD IN Queries",id:"type-in-field-in-queries",level:3},{value:"TYPE IN",id:"type-in",level:4},{value:"FIELD IN",id:"field-in",level:4}];function u(e){const n={a:"a",admonition:"admonition",blockquote:"blockquote",code:"code",em:"em",h3:"h3",h4:"h4",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,l.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(n.p,{children:["Hypi offers a powerful query language as part of its platform. ",(0,s.jsx)(n.code,{children:"ArcQL"})," works as a filter to select data to process upon. ArcQL statements are used along with query functions like ",(0,s.jsx)(n.code,{children:"find"}),".You will be able to make your own ArcQL statements as they are easy to construct. ",(0,s.jsx)(n.code,{children:"ArcQL"})," is very much SQL-like. If you understand SQL, you will write the ArcQL statements just by guessing at it."]}),"\n",(0,s.jsxs)(n.p,{children:["We will frame ",(0,s.jsx)(n.code,{children:"AcrQL"})," queries to get data from the below schema."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",children:"type\xa0Author\xa0{\n    name:\xa0String\n    age:\xa0Int\n    bestbook:\xa0Bo
1ok\n    booklist(...):\xa0[Book!]\n}\n\ntype\xa0Book\xa0{\n    title:\xa0String\n    authorid:\xa0Int\n    price:\xa0Float\n}\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Insert the following data in the table ",(0,s.jsx)(n.code,{children:"Author"}),". Know more about Insert ",(0,s.jsx)(n.a,{href:"/docs/lowcode/create-data",children:"here"}),"."]}),"\n",(0,s.jsx)(n.admonition,{type:"note",children:(0,s.jsx)(n.p,{children:"For illustration purpose, the data is demonstrated in the form of table."})}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"hypi.id"}),(0,s.jsx)(n.th,{children:"name"}),(0,s.jsx)(n.th,{children:"age"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Author1"})}),(0,s.jsx)(n.td,{children:"Dan Brown"}),(0,s.jsx)(n.td,{children:"56"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Author2"})}),(0,s.jsx)(n.td,{children:"Paulo Coelho"}),(0,s.jsx)(n.td,{children:"70"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Author3"})}),(0,s.jsx)(n.td,{children:"Sudha Murti"}),(0,s.jsx)(n.td,{children:"70"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Author4"})}),(0,s.jsx)(n.td,{children:"Agatha christie"}),(0,s.jsx)(n.td,{children:"null"})]})]})]}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"booklist"}),(0,s.jsx)(n.th,{}),(0,s.jsx)(n.th,{}),(0,s.jsx)(n.th,{})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"hypi.id"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"title"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"price"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"authorid"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Author1Book1"}),(0,s.jsx)(n.td,{children:"Da Vinci Code"}),(0,s.jsx)(n.td,{children:"12.99"}),(0,s.jsx)(n.td,{children:"1"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Author1Book2"}),(0,s.jsx)(n.td,{children:"The Last Symbol"}),(0,s.jsx)(n.td,{children:"10"}),(0,s.jsx)(n.td,{children:"1"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Author1Book3"}),(0,s.jsx)(n.td,{children:"Inferno"}),(0,s.jsx)(n.td,{children:"5.99"}),(0,s.jsx)(n.td,{children:"1"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Author2Book1"}),(0,s.jsx)(n.td,{children:"Alchemist"}),(0,s.jsx)(n.td,{children:"5.99"}),(0,s.jsx)(n.td,{children:"2"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Author2Book2"}),(0,s.jsx)(n.td,{children:"Warriors of light"}),(0,s.jsx)(n.td,{children:"12.99"}),(0,s.jsx)(n.td,{children:"2"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Author3Book1"}),(0,s.jsx)(n.td,{children:"Wise and Otherwise"}),(0,s.jsx)(n.td,{children:"3.99"}),(0,s.jsx)(n.td,{children:"3"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Author3Book2"}),(0,s.jsx)(n.td,{children:"How I taught my GrandMother to Read"}),(0,s.jsx)(n.td,{children:"2.99"}),(0,s.jsx)(n.td,{children:"3"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"null"}),(0,s.jsx)(n.td,{children:"null"}),(0,s.jsx)(n.td,{children:"null"}),(0,s.jsx)(n.td,{children:"null"})]})]})]}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:"Let's get inside the ArcQL query statements one by one."}),"\n"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#sort-query",children:"Sort Query"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#term-query",children:"Term Query"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#phrase-query",children:"Phrase Query"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#exist",children:"EXIST"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#not-exist",children:"NOT EXIST"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#prefix-query",children:"Prefix Query"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#wildcard-query",children:"Wildcard Query"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#range-query",children:"Range Query"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#match-all-query",children:"Match All Query"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#geo-location",children:"Geo Location"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#type-in-field-in-queries",children:"Type In-Field In Queries"})}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}
1),"\n",(0,s.jsx)(n.h3,{id:"sort-query",children:"Sort Query"}),"\n",(0,s.jsx)(n.p,{children:"To sort data in ascending or descending order, use the SORT clause."}),"\n",(0,s.jsx)(n.p,{children:"Example:"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"{arcql: fieldName SORT hypi.created ASC|DESC}"})}),"\n",(0,s.jsx)(n.p,{children:"You may frame a query like this:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"SORT a"}),"\n",(0,s.jsx)(n.li,{children:"SORT a ASC"}),"\n",(0,s.jsx)(n.li,{children:"SORT a DESC"}),"\n",(0,s.jsx)(n.li,{children:"SORT a, b.c DESC, c"}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Here, ",(0,s.jsx)(n.code,{children:"a"})," is the field name. ",(0,s.jsx)(n.code,{children:"b"})," is an object and ",(0,s.jsx)(n.code,{children:"c"})," is the field in object b."]}),"\n",(0,s.jsxs)(n.admonition,{type:"info",children:[(0,s.jsx)(n.p,{children:"If ASC/DESC order is not specified, hypi performs DESC order by default."}),(0,s.jsxs)(n.admonition,{type:"info",children:[(0,s.jsx)(n.p,{children:"Let\u2019s consider few examples with the inserted data:"}
1),(0,s.jsx)(n.h4,{id:"sort-example-1",children:"SORT EXAMPLE 1"}),(0,s.jsxs)(n.p,{children:["Query Statement:\n",(0,s.jsx)(n.code,{children:'arcql: "* SORT title ASC"'})]}),(0,s.jsxs)(t.Z,{defaultValue:"query",values:[{label:"GraphQL Query",value:"query"},{label:"Response",value:"response"}],children:[(0,s.jsx)(a.Z,{value:"query",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",children:'{\n find(type: Book, arcql: "* SORT title ASC") {\n     edges {\n         node {\n         ... on Book {\n             title\n             }\n         }\n     cursor\n     }\n  }\n}\n'})})}),(0,s.jsx)(a.Z,{value:"response",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n "data": {\n     "find": {\n         "edges": [\n             {\n                 "node": {\n                     "title": "Alchemist"\n                 },\n                 "cursor": "Author2Book1"\n             },\n             {\n                 "node": {\n                 "title": "Da Vinci Code"\n                 },\n                 "cursor": "Author1Book1"\n             },\n             {\n                 "node": {\n                 "title": "How I taught my GrandMother to Read"\n                 },\n                 "cursor": "Author3Book2"\n             },\n             {\n                 "node": {\n                 "title": "Inferno"\n                 },\n                 "cursor": "Author1Book3"\n             },\n             {\n                 "node": {\n                 "title": "The Last Symbol"\n                 },\n                 "cursor": "Author1Book2"\n             },\n             {\n                 "node": {\n                 "title": "Warriors of light"\n                 },\n                 "cursor": "Author2Book2"\n             },\n             {\n                 "node": {\n                 "title": "Wise and Otherwise"\n                 },\n                 "cursor": "Author3Book1"\n             }\n             ]\n         }\n     }\n}\n'})})})]}
1),(0,s.jsx)(n.h4,{id:"sort-example-2",children:"SORT EXAMPLE 2"}),(0,s.jsxs)(n.p,{children:["Query Statement:\n",(0,s.jsx)(n.code,{children:'arcql: "* SORT price DESC"'})]}),(0,s.jsxs)(t.Z,{defaultValue:"query",values:[{label:"GraphQL Query",value:"query"},{label:"Response",value:"response"}],children:[(0,s.jsx)(a.Z,{value:"query",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",children:' find(type: Book, arcql: "* SORT price DESC") {\n     edges {\n         node {\n             ... on Book {\n             price\n             }\n         }\n         cursor\n         }\n     }\n}\n'})})}),(0,s.jsx)(a.Z,{value:"response",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n "data": {\n         "find": {\n             "edges": [\n                 {\n                     "node": {\n                     "price": 12.99\n                     },\n                     "cursor": "Author1Book1"\n                 },\n                 {\n                     "node": {\n                     "price": 12.99\n                     },\n                     "cursor": "Author2Book2"\n                 },\n                 {\n                     "node": {\n                     "price": 10\n                     },\n                     "cursor": "Author1Book2"\n                 },\n                 {\n                     "node": {\n                     "price": 5.99\n                     },\n                     "cursor": "Author2Book1"\n                 },\n                 {\n                     "node": {\n                     "price": 5.99\n                     },\n                     "cursor": "Author1Book3"\n                 },\n                 {\n                     "node": {\n                     "price": 3.99\n                     },\n                     "cursor": "Author3Book1"\n                 },\n                 {\n                     "node": {\n                     "price": 2.99\n                     },\n                     "cursor": "Author3Book2"\n                 }\n             ]\n         }\n     }\n}\n'})})})]}),(0,s.jsx)(n.hr,{}),(0,s.jsx)(n.h3,{id:"term-query",children:"Term Query"}),(0,s.jsx)(n.p,{children:"A term query is a simple filter asking to return results that match the provided value exactly. It searches for the record that contains the data mentioned in the arcql statement. E.g."}),(0,s.jsx)(n.p,{children:"You may frame a query like this:"}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"a = 'some string'"}),"\n",(0,s.jsx)(n.li,{children:"a = 123"}),"\n",(0,s.jsx)(n.li,{children:"a = 'some string' OR 123 AND 'abc'"}),"\n"]}),(0,s.jsx)(n.p,{children:"Boolean Logic is possible on all query types. As specified in the third statement, AND and OR logic can be utilized to get specific records."}),(0,s.jsx)(n.h4,{id:"term-query-example-1",children:"TERM QUERY EXAMPLE 1"}),(0,s.jsxs)(n.p,{children:["Query Statement:\n",(0,s.jsx)(n.code,{children:"arcql: \"title='Wise and Otherwise'\""})]}),(0,s.jsxs)(t.Z,{defaultValue:"query",values:[{label:"GraphQL Query",value:"query"},{label:"Response",value:"response"}],children:[(0,s.jsx)(a.Z,{value:"query",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",children:"{\n  find(type: Book, arcql: \"title='Wise and Otherwise'\") {\n    edges {\n      node {\n        ... on Book {\n          price\n          authorid\n        }\n      }\n      cursor\n    }\n  }\n}\n\n"})})}),(0,s.jsx)(a.Z,{value:"response",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n  "data": {\n    "find": {\n      "edges": [\n        {\n          "node": {\n            "price": 3.99,\n            "authorid": 3\n          },\n          "cursor": "Author3Book1"\n        }\n      ]\n    }\n  }\n}\n'})})})]}),(0,s.jsx)(n.h4,{id:"term-query-example-2",children:"TERM QUERY EXAMPLE 2"}),(0,s.jsxs)(n.p,{children:["Query Statement:\n",(0,s.jsx)(n.code,{children:"price=5.99 AND authorid = 2"})]}),(0,s.jsxs)(t.Z,{defaultValue:"query",values:[{label:"GraphQL Query",value:"query"},{label:"Response",value:"response"}],children:[(0,s.jsx)(a.Z,{value:"query",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",children:'{\n  find(type: Book, arcql: "price=5.99 AND authorid = 2") {\n    edges {\n      node {\n        ... on Book {\n          price\n          authorid\n          title\n        }\n      }\n      cursor\n    }\n  }\n}\n\n'})})}),(0,s.jsx)(a.Z,{value:"response",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n  "data": {\n    "find": {\n      "edges": [\n        {\n          "node": {\n            "price": 5.99,\n            "authorid": 2,\n            "title": "Alchemist"\n          }
1,\n          "cursor": "Author2Book1"\n        }\n      ]\n    }\n  }\n}\n'})})})]}),(0,s.jsx)(n.h4,{id:"term-query-example-3",children:"TERM QUERY EXAMPLE 3"}),(0,s.jsxs)(n.p,{children:["Query Statement:\n",(0,s.jsx)(n.code,{children:"(price=5.99 AND authorid = 1) OR authorid = 2"})]}),(0,s.jsxs)(t.Z,{defaultValue:"query",values:[{label:"GraphQL Query",value:"query"},{label:"Response",value:"response"}],children:[(0,s.jsx)(a.Z,{value:"query",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",children:'{\n  find(type: Book, arcql: "(price=5.99 AND authorid = 1) OR authorid = 2") {\n    edges {\n      node {\n        ... on Book {\n          price\n          authorid\n          title\n        }\n      }\n      cursor\n    }\n  }\n}\n'})})}),(0,s.jsx)(a.Z,{value:"response",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n  "data": {\n    "find": {\n      "edges": [\n        {\n          "node": {\n            "price": 5.99,\n            "authorid": 1,\n            "title": "Inferno"\n          },\n          "cursor": "Author1Book3"\n        },\n        {\n          "node": {\n            "price": 5.99,\n            "authorid": 2,\n            "title": "Alchemist"\n          },\n          "cursor": "Author2Book1"\n        },\n        {\n          "node": {\n            "price": 12.99,\n            "authorid": 2,\n            "title": "Warriors of light"\n          },\n          "cursor": "Author2Book2"\n        }\n      ]\n    }\n  }\n}\n'})})})]}),(0,s.jsx)(n.hr,{}),(0,s.jsx)(n.h3,{id:"phrase-query",children:"Phrase Query"}),(0,s.jsx)(n.p,{children:"Phrase query searches for the individual words or exact phrases from the data. It is similar to a search engine that searches the phrase through various web pages."}),(0,s.jsx)(n.p,{children:"You may frame a query like this:"}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"a ~ 'some string'"}),"\n",(0,s.jsx)(n.li,{children:"a ~ 123"}),"\n",(0,s.jsx)(n.li,{children:"a ~ 'some string' OR 123"}),"\n"]}),(0,s.jsxs)(n.p,{children:["Here ",(0,s.jsx)(n.code,{children:"a"})," is any field from the data type. Consider the third statement. Here, the query returns data from the ",(0,s.jsx)(n.code,{children:"a"})," field which has strings \u2018some\u2019 or \u2018 string\u2019 or integer 123."]}),(0,s.jsx)(n.h4,{id:"phrase-query-example-1",children:"PHRASE QUERY EXAMPLE 1"}),(0,s.jsxs)(n.p,{children:["Query Statement:\n",(0,s.jsx)(n.code,{children:"name ~ 'sudha'"})]}),(0,s.jsxs)(t.Z,{defaultValue:"query",values:[{label:"GraphQL Query",value:"query"},{label:"Response",value:"response"}],children:[(0,s.jsx)(a.Z,{value:"query",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",children:"{\n  find(type: Author, arcql: \"name ~ 'sudha'\" ) {\n    edges {\n      node {\n        ... on Author {\n          name\n        }\n      }\n      cursor\n    }\n  }\n}\n"})})}),(0,s.jsx)(a.Z,{value:"response",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n  "data": {\n    "find": {\n      "edges": [\n        {\n          "node": {\n            "name": "Sudha Murti"\n          },\n          "cursor": "Author3"\n        }\n      ]\n    }\n  }\n}\n'})})})]}),(0,s.jsx)(n.h4,{id:"phrase-query-example-2",children:"PHRASE QUERY EXAMPLE 2"}),(0,s.jsxs)(n.p,{children:["Query Statement:\n",(0,s.jsx)(n.code,{children:"name ~ 'sudha' OR age ~ 56"})]}),(0,s.jsxs)(t.Z,{defaultValue:"query",values:[{label:"GraphQL Query",value:"query"},{label:"Response",value:"response"}],children:[(0,s.jsx)(a.Z,{value:"query",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",children:"{\n  find(type: Author, arcql: \"name ~ 'sudha' OR age ~ 56\" ) {\n    edges {\n      node {\n        ... on Author {\n          name\n        }\n      }\n      cursor\n    }\n  }\n}\n"})})}),(0,s.jsx)(a.Z,{value:"response",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n  "data": {\n    "find": {\n      "edges": [\n        {\n          "node": {\n            "name": "Dan Brown"\n          }
1,\n          "cursor": "Author1"\n        },\n        {\n          "node": {\n            "name": "Sudha Murti"\n          },\n          "cursor": "Author3"\n        }\n      ]\n    }\n  }\n}\n'})})})]}),(0,s.jsx)(n.hr,{}),(0,s.jsx)(n.h3,{id:"exist",children:"EXIST"}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"EXIST a"}),"\n"]}),(0,s.jsxs)(n.p,{children:["This query returns records that have non-null data in the field ",(0,s.jsx)(n.code,{children:"a"}),"."]}),(0,s.jsxs)(t.Z,{defaultValue:"query",values:[{label:"GraphQL Query",value:"query"},{label:"Response",value:"response"}],children:[(0,s.jsx)(a.Z,{value:"query",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",children:'{\n  find(type: Author, arcql: "EXIST age") {\n    edges {\n      node {\n        ... on Author {\n         name\n         age\n        }\n      }\n      cursor\n    }\n  }\n}\n'})})}),(0,s.jsx)(a.Z,{value:"response",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n  "data": {\n    "find": {\n      "edges": [\n        {\n          "node": {\n            "name": "Dan Brown",\n            "age": 56\n          },\n          "cursor": "Author1"\n        },\n        {\n          "node": {\n            "name": "Paulo Coelho",\n            "age": 70\n          },\n          "cursor": "Author2"\n        },\n        {\n          "node": {\n            "name": "Sudha Murti",\n            "age": 70\n          },\n          "cursor": "Author3"\n        }\n        \n      ]\n    }\n  }\n}\n'})})})]}),(0,s.jsx)(n.hr,{}),(0,s.jsx)(n.h3,{id:"not-exist",children:"NOT EXIST"}),(0,s.jsxs)(n.p,{children:["This query returns records that have null data in the field ",(0,s.jsx)(n.code,{children:"a"}),"."]}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"NOT EXIST a"}),"\n"]}),(0,s.jsxs)(t.Z,{defaultValue:"query",values:[{label:"GraphQL Query",value:"query"},{label:"Response",value:"response"}],children:[(0,s.jsx)(a.Z,{value:"query",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",children:'{\n  find(type: Author, arcql: "NOT EXIST age") {\n    edges {\n      node {\n        ... on Author {\n         name\n         age\n        }\n      }\n      cursor\n    }\n  }\n}\n'})})}),(0,s.jsx)(a.Z,{value:"response",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n  "data": {\n    "find": {\n      "edges": [\n\t{\n          "node": {\n            "name": "Agatha christie",\n            "age": null\n           },\n          "cursor": "Author4"\n        }\n      ]\n    }\n  }\n}\n'})})})]}),(0,s.jsx)(n.hr,{}),(0,s.jsx)(n.h3,{id:"prefix-query",children:"Prefix Query"}),(0,s.jsx)(n.p,{children:"A prefix query returns records that have data starting with the prefix stated in the query."}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"a ^ 123"}),"\n",(0,s.jsx)(n.li,{children:"a ^ 'some string' OR 123"}),"\n"]}),(0,s.jsxs)(n.p,{children:["The last statement returns the records from the field ",(0,s.jsx)(n.code,{children:"a"})," that start with \u2018some string\u2019 or \u2018123\u2019"]}),(0,s.jsx)(n.h4,{id:"prefix-query-example-1",children:"PREFIX QUERY EXAMPLE 1"}),(0,s.jsxs)(n.p,{children:["Query Statement:\n",(0,s.jsx)(n.code,{children:"name ^ 'Paulo' OR age ^ 5"})]}),(0,s.jsxs)(t.Z,{defaultValue:"query",values:[{label:"GraphQL Query",value:"query"},{label:"Response",value:"response"}],children:[(0,s.jsx)(a.Z,{value:"query",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",children:"{\n  find(type: Author, arcql: \"name ^ 'Paulo' OR age ^ 5\" ) {\n    edges {\n      node {\n        ... on Author {\n          name\n        }\n      }\n      cursor\n    }\n  }\n}\n"})})}),(0,s.jsx)(a.Z,{value:"response",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n  "data": {\n    "find": {\n      "edges": [\n        {\n          "node": {\n            "name": "Dan Brown"\n          },\n          "cursor": "Author1"\n        },\n        {\n          "node": {\n            "name": "Paulo Coelho"\n          }
1,\n          "cursor": "Author2"\n        }\n      ]\n    }\n  }\n}\n'})})})]}),(0,s.jsx)(n.hr,{}),(0,s.jsx)(n.h3,{id:"wildcard-query",children:"Wildcard Query"}),(0,s.jsxs)(n.p,{children:["A wildcard character is used to substitute one or more characters in a string. A wildcard query treats ",(0,s.jsx)(n.code,{children:"*"})," and ",(0,s.jsx)(n.code,{children:"?"})," as special characters. .\xa0",(0,s.jsx)(n.code,{children:"*"}),"Means match anything from this point onwards. ",(0,s.jsx)(n.code,{children:"?"}),"\xa0Means match any single character at this position"]}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"a * 'some*'"}),"\n",(0,s.jsx)(n.li,{children:"a * 123"}),"\n",(0,s.jsx)(n.li,{children:"a * 'string_?' OR 123"}),"\n"]}),(0,s.jsx)(n.p,{children:"The first statement searches words with \u2018some\u2019 like someone, somewhere, something, etc. Third sting searches phrases with 'string_?'. The question mark may carry any alphabet, number, or symbol."}),(0,s.jsx)(n.h4,{id:"wildcard-query-example-1",children:"WILDCARD QUERY EXAMPLE 1"}),(0,s.jsxs)(n.p,{children:["Query Statement:\n",(0,s.jsx)(n.code,{children:"name * 'P*'"})]}),(0,s.jsxs)(t.Z,{defaultValue:"query",values:[{label:"GraphQL Query",value:"query"},{label:"Response",value:"response"}],children:[(0,s.jsx)(a.Z,{value:"query",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",children:"{\n  find(type: Author, arcql: \"name * 'P*'\" ) {\n    edges {\n      node {\n        ... on Author {\n          name\n        }\n      }\n      cursor\n    }\n  }\n}\n"})})}),(0,s.jsx)(a.Z,{value:"response",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n  "data": {\n    "find": {\n      "edges": [\n        {\n          "node": {\n            "name": "Paulo Coelho"\n          },\n          "cursor": "Author2"\n        }\n      ]\n    }\n  }\n}\n\n'})})})]}),(0,s.jsx)(n.hr,{}),(0,s.jsx)(n.h4,{id:"wildcard-query-example-2",children:"WILDCARD QUERY EXAMPLE 2"}),(0,s.jsxs)(n.p,{children:["Query Statement:\n",(0,s.jsx)(n.code,{children:"age * '?6'"})]}),(0,s.jsxs)(t.Z,{defaultValue:"query",values:[{label:"GraphQL Query",value:"query"},{label:"Response",value:"response"}],children:[(0,s.jsx)(a.Z,{value:"query",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",children:"{\n  find(type: Author, arcql: \"age * '?6'\" ) {\n    edges {\n      node {\n        ... on Author {\n          name\n        }\n      }\n      cursor\n    }\n  }\n}\n"})})}),(0,s.jsx)(a.Z,{value:"response",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n  "data": {\n    "find": {\n      "edges": [\n        {\n          "node": {\n            "name": "Dan Brown"\n          },\n          "cursor": "Author1"\n        }\n      ]\n    }\n  }\n}\n'})})})]}),(0,s.jsx)(n.hr,{}),(0,s.jsx)(n.h3,{id:"range-query",children:"Range Query"}),(0,s.jsx)(n.p,{children:"Range queries search for the content that falls within given range."}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"a IN (0, 1] => \xa0left inclusive => including 1, excluding 0"}),"\n",(0,s.jsx)(n.li,{children:"a IN [0, 1) => right inclusive => excluding 1, including 0"}),"\n",(0,s.jsx)(n.li,{children:"a IN (0, 1) => exclusive => not including 0 or 1, only those in between"}),"\n",(0,s.jsx)(n.li,{children:"a IN [0, 1] => inclusive => including both 0, 1 and everything in between"}),"\n"]}),(0,s.jsx)(n.p,{children:"You may use boolean logic to combine search e.g."}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"a IN [0, 1 OR 5,10 AND 10, 11)"}),"\n"]}),(0,s.jsx)(n.p,{children:"Range query also works for strings"}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"a IN ['America', 'Jamaica')"}),"\n"]}),(0,s.jsx)(n.p,{children:"The strings work in alphabetical order. The query returns the values that start with a letter between \u2018A\u2019 and \u2018J\u2019."}),(0,s.jsx)(n.h4,{id:"range-query-example-1",children:"RANGE QUERY EXAMPLE 1"}),(0,s.jsxs)(n.p,{children:["Query Statement:\n",(0,s.jsx)(n.code,{children:"age IN (50, 70)"})]}),(0,s.jsxs)(t.Z,{defaultValue:"query",values:[{label:"GraphQL Query",value:"query"},{label:"Response",value:"response"}],children:[(0,s.jsx)(a.Z,{value:"query",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",children:'{\n  find(type: Author, arcql: "age IN (50, 70)") {\n    edges {\n      node {\n        ... on Author {\n          name\n        }\n      }\n      cursor\n    }\n  }\n}\n'})})}),(0,s.jsx)(a.Z,{value:"response",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n  "data": {\n    "find": {\n      "edges": [\n        {\n          "node": {\n            "name": "Dan Brown"\n          }
1,\n          "cursor": "Author1"\n        }\n      ]\n    }\n  }\n}\n'})})})]}),(0,s.jsx)(n.h4,{id:"range-query-example-2",children:"RANGE QUERY EXAMPLE 2"}),(0,s.jsxs)(n.p,{children:["Query Statement:\n",(0,s.jsx)(n.code,{children:"age IN (50, 70]"})]}),(0,s.jsxs)(t.Z,{defaultValue:"query",values:[{label:"GraphQL Query",value:"query"},{label:"Response",value:"response"}],children:[(0,s.jsx)(a.Z,{value:"query",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",children:'{\n  find(type: Author, arcql: "age IN (50, 70]") {\n    edges {\n      node {\n        ... on Author {\n          name\n        }\n      }\n      cursor\n    }\n  }\n}    \n'})})}),(0,s.jsx)(a.Z,{value:"response",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n  "data": {\n    "find": {\n      "edges": [\n        {\n          "node": {\n            "name": "Dan Brown"\n          },\n          "cursor": "Author1"\n        },\n        {\n          "node": {\n            "name": "Paulo Coelho"\n          },\n          "cursor": "Author2"\n        },\n        {\n          "node": {\n            "name": "Sudha Murti"\n          },\n          "cursor": "Author3"\n        }\n      ]\n    }\n  }\n}\n'})})})]}),(0,s.jsx)(n.h4,{id:"range-query-example-3",children:"RANGE QUERY EXAMPLE 3"}),(0,s.jsxs)(n.p,{children:["Query Statement:\n",(0,s.jsx)(n.code,{children:"title IN ['Da Vinci Code','Inferno']"})]}),(0,s.jsxs)(t.Z,{defaultValue:"query",values:[{label:"GraphQL Query",value:"query"},{label:"Response",value:"response"}],children:[(0,s.jsx)(a.Z,{value:"query",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",children:"{\n  find(type: Book, arcql: \"title IN ['Da Vinci Code','Inferno']\") {\n    edges {\n      node {\n        ... on Book {\n          title\n        }\n      }\n      cursor\n    }\n  }\n}\n"})})}),(0,s.jsx)(a.Z,{value:"response",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n  "data": {\n    "find": {\n      "edges": [\n        {\n          "node": {\n            "title": "Da Vinci Code"\n          },\n          "cursor": "Author1Book1"\n        },\n        {\n          "node": {\n            "title": "Inferno"\n          },\n          "cursor": "Author1Book3"\n        },\n        {\n          "node": {\n            "title": "How I taught my GrandMother to Read"\n          },\n          "cursor": "Author3Book2"\n        }\n      ]\n    }\n  }\n}\n'})})})]}),(0,s.jsx)(n.hr,{}),(0,s.jsx)(n.h3,{id:"match-all-query",children:"Match All Query"}),(0,s.jsxs)(n.p,{children:["A match all query is a query with the value ",(0,s.jsx)(n.strong,{children:"\u201c*\u201d"}),". It returns all the data from all the fields."]}),(0,s.jsxs)(t.Z,{defaultValue:"query",values:[{label:"GraphQL Query",value:"query"},{label:"Response",value:"response"}],children:[(0,s.jsx)(a.Z,{value:"query",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",children:'{\n  find(type: Author, arcql: "*" ) {\n    edges {\n      node {\n        ... on Author {\n          name\n        }\n      }\n      cursor\n    }\n  }\n}\n'})})}),(0,s.jsx)(a.Z,{value:"response",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n  "data": {\n    "find": {\n      "edges": [\n        {\n          "node": {\n            "name": "Dan Brown"\n          },\n          "cursor": "Author1"\n        },\n        {\n          "node": {\n            "name": "Paulo Coelho"\n          },\n          "cursor": "Author2"\n        },\n        {\n          "node": {\n            "name": "Sudha Murti"\n          },\n          "cursor": "Author3"\n        },\n        {\n          "node": {\n            "name": "Agatha christie"\n          },\n          "cursor": "Author4"\n        }\n      ]\n    }\n  }\n}\n'})})})]}),(0,s.jsx)(n.hr,{}),(0,s.jsx)(n.h3,{id:"comparison-query",children:"Comparison Query"}),(0,s.jsxs)(n.p,{children:["Comparison Operators compares the content in a field to a constant value.  ",(0,s.jsx)(n.code,{children:"< , >, <=,>=, !"})," are some of the common comparison operators. They work with integers, floats as well as strings. They can be combined with logical operators to get desired results."]}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"a < 20"}),"\n",(0,s.jsx)(n.li,{children:"a > 'S'"}),"\n",(0,s.jsx)(n.li,{children:"a <= 10 AND a >=30"}),"\n",(0,s.jsx)(n.li,{children:"a != 10"}),"\n"]}),(0,s.jsx)(n.h4,{id:"comparison-query-example-1",children:"COMPARISON QUERY EXAMPLE 1"}),(0,s.jsxs)(n.p,{children:["Query Statement:\n",(0,s.jsx)(n.code,{children:"age > 60"})]}),(0,s.jsxs)(t.Z,{defaultValue:"query",values:[{label:"GraphQL Query",value:"query"},{label:"Response",value:"response"}],children:[(0,s.jsx)(a.Z,{value:"query",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",children:'{\n  find(type: Author, arcql: "age > 60") {\n    edges {\n      node {\n        ... on Author {\n          name\n          age\n        }\n      }\n      cursor\n    }\n  }\n}\n'})})}),(0,s.jsx)(a.Z,{value:"response",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n  "data": {\n    "find": {\n      "edges": [\n        {\n          "node": {\n            "name": "Paulo Coelho",\n            "age": 70\n          }
1,\n          "cursor": "01FG1G5G325TJ3TYRHXN153ZYR"\n        },\n        {\n          "node": {\n            "name": "Sudha Murti",\n            "age": 70\n          },\n          "cursor": "01FG1G5G3AJFW1KW0Z5XV3H29Z"\n        }\n      ]\n    }\n  }\n}\n'})})})]}),(0,s.jsx)(n.h4,{id:"comparison-query-example-2",children:"COMPARISON QUERY EXAMPLE 2"}),(0,s.jsxs)(n.p,{children:["Query Statement:\n",(0,s.jsx)(n.code,{children:"name < 'P'"})]}),(0,s.jsxs)(t.Z,{defaultValue:"query",values:[{label:"GraphQL Query",value:"query"},{label:"Response",value:"response"}],children:[(0,s.jsx)(a.Z,{value:"query",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",children:"{\n  find(type: Author, arcql: \"name < 'P'\") {\n    edges {\n      node {\n        ... on Author {\n          name\n        }\n      }\n      cursor\n    }\n  }\n}\n"})})}),(0,s.jsx)(a.Z,{value:"response",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n  "data": {\n    "find": {\n      "edges": [\n        {\n          "node": {\n            "name": "Dan Brown"\n          },\n          "cursor": "01FG1G5G2JDDCHW7CBTCGVS039"\n        }\n      ]\n    }\n  }\n}\n'})})})]}),(0,s.jsx)(n.h4,{id:"comparison-query-example-3",children:"COMPARISON QUERY EXAMPLE 3"}),(0,s.jsxs)(n.p,{children:["Query Statement:\n",(0,s.jsx)(n.code,{children:"title != 'Alchemist' AND price <= 5.99"})]}),(0,s.jsxs)(t.Z,{defaultValue:"query",values:[{label:"GraphQL Query",value:"query"},{label:"Response",value:"response"}],children:[(0,s.jsx)(a.Z,{value:"query",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",children:"{\n  find(type: Book, arcql: \"title != 'Alchemist' AND price <= 5.99\") {\n    edges {\n      node {\n        ... on Book {\n          title\n          price\n        }\n      }\n      cursor\n    }\n  }\n}\n"})})}),(0,s.jsx)(a.Z,{value:"response",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n  "data": {\n    "find": {\n      "edges": [\n        {\n          "node": {\n            "title": "Inferno",\n            "price": 5.99\n          },\n          "cursor": "01FG1G5G2WJYYCMM16N0SNJ6SJ"\n        },\n        {\n          "node": {\n            "title": "Wise and Otherwise",\n            "price": 3.99\n          },\n          "cursor": "01FG1G5G3C0MFJV38RQAZC9EHJ"\n        },\n        {\n          "node": {\n            "title": "How I taught my GrandMother to Read",\n            "price": 2.99\n          },\n          "cursor": "01FG1G5G3PYND0J77G2T2264WZ"\n        }\n      ]\n    }\n  }\n}\n'})})})]}),(0,s.jsx)(n.h3,{id:"geo-location",children:"Geo Location"}),(0,s.jsx)(n.p,{children:"Hypi allows developers to get location data within a radius of a point defined by longitude and latitude."}),(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"geo(latitude, longitude, radius, latitudeFieldName, longitudeFieldName)"})}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"latitude"}),": defined in radians by\xa0latitude * Pi / 180"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"longitude"}),": defined in radians by\xa0longitude * Pi / 180"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"radius"}),": defined in kilometers, for example, 0.5 stands for 500 meters"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"latitudeFieldName"}),": The name of GraphQL type latitude field"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"longitudeFieldName"}),": The name of GraphQL type longitude field"]}),"\n"]}),(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"latitudeFieldName"}),"\xa0and\xa0",(0,s.jsx)(n.code,{children:"longitudeFieldName"}),"\xa0give the developers the flexibility to use any float/double decimal point numbers as the source of latitude and longitude. For example, assume that you define a type\xa0GPS\xa0 in your Ap
1p schema as follows:"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:"type GPS {\n x: Float\n y: Float\n}\n"})}),(0,s.jsxs)(n.p,{children:["Now,\xa0",(0,s.jsx)(n.code,{children:"latitudeFieldName"}),"\xa0should be set to\xa0x and ",(0,s.jsx)(n.code,{children:"longitudeFieldName"}),"\xa0should be set to\xa0y."]}),(0,s.jsx)(n.p,{children:"To query the locations within a radius of 500 meters of a point, degrees(31.9913129, 34.8661077) are converted to radians(0.55835, 0.60852)."}),(0,s.jsxs)(n.p,{children:["Insert data in GPS. Remember x and y values are in\xa0",(0,s.jsx)(n.strong,{children:"radians"}),"\xa0not degrees."]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:"mutation {\n upsert(\n     values: {\n         GPS: [\n             {x: 0.55835374214, y: 0.6084901767 }\n             {x: 0.55835374214, y: 0.6084901767 }\n             {x: -0.41167494186, y: -0.81812175344 }\n             {x: -0.41786913283, y: -0.80969561972 }\n             {x: -0.41776046165, y: -0.81033767224 }\n             {x: 0.89901594913, y: -0.002154727644 }\n             {x: 0.89938548071, y: -0.0022373637481 }\n             {x: 0.90000538675, y: -0.0027382086662 }\n             {x: 0.55843351241, y: 0.60848146576 }\n             {x: 0.55769501648, y: 0.60841038723 }\n             { x: 0.55831914971, y: 0.60843128929 }\n             ]\n         }\n     ) {\n     id\n     }\n}\n"})}),(0,s.jsx)(n.p,{children:"Now we can locate the objects within a given radius."}),(0,s.jsxs)(t.Z,{defaultValue:"query",values:[{label:"GraphQL Query",value:"query"},{label:"Response",value:"response"}],children:[(0,s.jsx)(a.Z,{value:"query",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",children:"{\n find(type: GPS, arcql: \"geo(0.55835374214,0.60852837672,0.5,'x','y')\") {\n     edges {\n         node {\n         ... on GPS {\n                     x\n                     y\n                 }\n             }\n         }\n     }\n}\n"})})}),(0,s.jsx)(a.Z,{value:"response",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n "data": {\n     "find": {\n         "edges": [\n             {\n             "node": {\n                 "x": 0.55835374214,\n                 "y": 0.6084901767\n                 }\n             },\n             {\n                 "node": {\n                 "x": 0.55835374214,\n                 "y": 0.6084901767\n                 }\n             }\n         ]\n     }\n   }\n}\n'})})})]}),(0,s.jsx)(n.h3,{id:"type-in-field-in-queries",children:"TYPE IN-FIELD IN Queries"}),(0,s.jsxs)(n.p,{children:["Both forms of queries ",(0,s.jsx)(n.code,{children:"<fieldExr> TYPE IN"}),"\xa0and\xa0",(0,s.jsx)(n.code,{children:"<fieldExpr> FIELD IN"}),"\xa0are translated to SQL sub-queries with the\xa0",(0,s.jsx)(n.code,{children:"IN"}),"\xa0clause. These forms of queries act only on scalar fields."]}),(0,s.jsx)(n.p,{children:"We will go through examples to understand working on these two clauses."}),(0,s.jsx)(n.h4,{id:"type-in",children:"TYPE IN"}),(0,s.jsxs)(n.p,{children:["Consider a question for Author data.:  ",(0,s.jsx)(n.strong,{children:"What are the books by Author2"}),"?"]}),(0,s.jsx)(n.p,{children:"The simple ArcQL query to select Author2 could be"}),(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"type: Author, arcql:  \u201chypi.id=\u2019Author2\u2019\u201d"})}),(0,s.jsx)(n.p,{children:"This query would fetch the records (booklist) for Author2. But what if table \u2018Book\u2019 contains some books with \u2018Author2\u2019. The data from the Book table would not be fetched by the above query. Here, TYPEIN would come to the rescue."}),(0,s.jsxs)(n.p,{children:["TYPE IN would perform a ",(0,s.jsx)(n.code,{children:"SELF JOIN"})," on Book table and select the data with matching Author Name (Author2)."]}),(0,s.jsxs)(n.p,{children:["Now, let\u2019s enter another field ",(0,s.jsx)(n.code,{children:"authorinfo"})," in the Book type which holds information of an author for a particular book. So our schema has been modified like this."]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",children:"type Book\xa0{\n    hypi:\xa0Hypi\n    title:\xa0String\n    authorid:\xa0Int\n    price:\xa0Float\n    authorinfo:\xa0Author\n}\n\ntype Author\xa0{\n    hypi:\xa0Hypi\n    name:\xa0String\n    age:\xa0Int\n    booklist(...):\xa0[Book!]\n}\n"})}),(0,s.jsx)(n.p,{children:"Consider we have the following data in the Author and Book table."}),(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Author"})}),(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"hypi.id"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"age"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Author1"})}),(0,s.jsx)(n.td,{children:"Dan Brown"}),(0,s.jsx)(n.td,{children:"56"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Author2"})}),(0,s.jsx)(n.td,{children:"Paulo Coelho"}),(0,s.jsx)(n.td,{children:"70"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Author3"})}),(0,s.jsx)(n.td,{children:"Sudha Murti"}),(0,s.jsx)(n.td,{children:"70"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Author4"})}),(0,s.jsx)(n.td,{children:"Agatha christie"}),(0,s.jsx)(n.td,{children:"null"})]})]})]}),(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Booklist"}),(0,s.jsx)(n.th,{style:{textAlign:"right"}}),(0,s.jsx)(n.th,{}),(0,s.jsx)(n.th,{}),(0,s.jsx)(n.th,{})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"hypi.id book"})}),(0,s.jsx)(n.td,{style:{textAlign:"right"},children:(0,s.jsx)(n.strong,{children:"title"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"price"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"authorid"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"authorinfo"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{}),(0,s.jsx)(n.td,{style:{textAlign:"right"}}),(0,s.jsx)(n.td,{}),(0,s.jsx)(n.td,{}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"name"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Author1Book1"})}),(0,s.jsx)(n.td,{style:{textAlign:"right"},children:"Da Vinci Code"}),(0,s.jsx)(n.td,{children:"13"}),(0,s.jsx)(n.td,{children:"1"}),(0,s.jsx)(n.td,{children:"Dan Brown"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Author1Book2"})}),(0,s.jsx)(n.td,{style:{textAlign:"right"},children:"The Last Symbol"}),(0,s.jsx)(n.td,{children:"10"}),(0,s.jsx)(n.td,{children:"1"}),(0,s.jsx)(n.td,{children:"Dan Brown"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Author1Book3"})}),(0,s.jsx)(n.td,{style:{textAlign:"right"},children:"Inferno"}),(0,s.jsx)(n.td,{children:"5.99"}),(0,s.jsx)(n.td,{children:"1"}),(0,s.jsx)(n.td,{children:"Dan Brown"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Author2Book1"})}),(0,s.jsx)(n.td,{style:{textAlign:"right"},children:"Alchemist"}),(0,s.jsx)(n.td,{children:"5.99"}),(0,s.jsx)(n.td,{children:"2"}),(0,s.jsx)(n.td,{children:"Paulo Coelho"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Author2Book2"})}),(0,s.jsx)(n.td,{style:{textAlign:"right"},children:"Warriors of light"}),(0,s.jsx)(n.td,{children:"13"}),(0,s.jsx)(n.td,{children:"2"}),(0,s.jsx)(n.td,{children:"Paulo Coelho"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Author3Book1"})}),(0,s.jsx)(n.td,{style:{textAlign:"right"},children:"Wise and Otherwise"}),(0,s.jsx)(n.td,{children:"3.99"}),(0,s.jsx)(n.td,{children:"3"}),(0,s.jsx)(n.td,{children:"Sudha Murti"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Author3Book2"})}),(0,s.jsx)(n.td,{style:{textAlign:"right"},children:"How I taught my GrandMother to Read"}),(0,s.jsx)(n.td,{children:"2.99"}),(0,s.jsx)(n.td,{children:"3"}),(0,s.jsx)(n.td,{children:"Sudha Murti"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Null"}),(0,s.jsx)(n.td,{style:{textAlign:"right"},children:"Null"}),(0,s.jsx)(n.td,{children:"null"}),(0,s.jsx)(n.td,{children:"Null"}),(0,s.jsx)(n.td,{})]})]})]}),(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Book"})}),(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"hypi.id"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"title"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"price"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"authorid"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"authorinfo"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{}),(0,s.jsx)(n.td,{}),(0,s.jsx)(n.td,{}),(0,s.jsx)(n.td,{}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"name"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Book1"})}),(0,s.jsx)(n.td,{children:"Hamlet"}),(0,s.jsx)(n.td,{children:"-"}),(0,s.jsx)(n.td,{children:"-"}),(0,s.jsx)(n.td,{children:"Shakespeare"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Book2"})}),(0,s.jsx)(n.td,{children:"Like the flowing river"}),(0,s.jsx)(n.td,{children:"-"}),(0,s.jsx)(n.td,{children:"-"}),(0,s.jsx)(n.td,{children:"Paulo Coelho"})]})]})]}
1),(0,s.jsx)(n.p,{children:"Now we will combine data from Author and Book with TYPE IN query below."}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-javascript",children:"authorinfo.name TYPE IN Author:\nbooklist.authorinfo.name WHERE hypi.id = 'Author2'\n"})}),(0,s.jsxs)(n.p,{children:["In the above ArcQL query, Book table performs ",(0,s.jsx)(n.code,{children:"SELF JOIN"})," combining all the author names (left parameter). Then it performs sub query with ",(0,s.jsx)(n.code,{children:"IN"})," clause and selects the data of Author2(right parameter) . The matching data with the Author name (Paulo Coelho) gets selected."]}),(0,s.jsx)(n.p,{children:"Let\u2019s look into the entire query and results."}),(0,s.jsxs)(t.Z,{defaultValue:"query",values:[{label:"GraphQL Query",value:"query"},{label:"Response",value:"response"}],children:[(0,s.jsx)(a.Z,{value:"query",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",children:"{\n  find(type: Book, arcql: \"authorinfo.name TYPE IN Author:booklist.authorinfo.name WHERE hypi.id = 'Author2'\") {\n    edges {\n      node {\n        ... on Book {\n         title\n          authorinfo{\n            name          \n          }\n        }\n      }\n      cursor\n    }\n  }\n}\n"})})}),(0,s.jsx)(a.Z,{value:"response",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n "data": {\n     "find": {\n         "edges": [\n             {\n                 "node": {\n                     "title": "Alchemist",\n                     "authorinfo": {\n                         "name": "Paulo Coelho"\n                     }\n                 },\n                 "cursor": "Author2Book1"\n             },\n\n             {\n                 "node": {\n                     "title": "Warriors of light",\n                     "authorinfo": {\n                     "name": "Paulo Coelho"\n                     }\n                 },\n                 "cursor": "Author2Book2"\n             },\n             {\n                 "node": {\n                     "title": "Like the flowing river",\n                     "authorinfo": {\n                     "name": "Paulo Coelho"\n                     }\n                 },\n                 "cursor": "Book2"\n                 }\n             ]\n         }\n     }\n}\n'})})})]}),(0,s.jsxs)(n.p,{children:["Thus we get books by ",(0,s.jsx)(n.code,{children:"Author2"})," from both tables using ",(0,s.jsx)(n.code,{children:"TYPE IN"}),". Frame your own query using TYPE IN."]}),(0,s.jsx)(n.h4,{id:"field-in",children:"FIELD IN"}),(0,s.jsx)(n.p,{children:"Consider below question for Author data."}),(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:(0,s.jsx)(n.strong,{children:"What are the books by Author2 as well as books by other authors?"})})}),(0,s.jsx)(n.p,{children:"Simply searching the Author table or Book table will not give us entire list."}),(0,s.jsxs)(n.p,{children:["Let\u2019s use ",(0,s.jsx)(n.code,{children:"FIELD IN"})," to get results!"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",children:"arql: \u201chypi.id != 'Author2' AND Author:booklist.authorinfo.name FIELD IN Author:booklist.authorinfo.name WHERE hypi.id = 'Author2'\u201d\n"})}),(0,s.jsx)(n.p,{children:"The query says:"}),(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["Find the names of authors from the booklist where id is Author2 ( Author",":booklist",".authorinfo.name WHERE hypi.id = 'Author2'\u201d)"]}),"\n",(0,s.jsxs)(n.li,{children:["Find the names of all the authors from booklist (Author",":booklist",".authorinfo.name)"]}),"\n",(0,s.jsx)(n.li,{children:"Return all matching authors except Author2"}),"\n"]}),(0,s.jsxs)(n.p,{children:["First the query will perform self join on Books table to get all the author names excluding Author2 from left hand side. Then it does a SQL\xa0",(0,s.jsx)(n.code,{children:"IN"}),"\xa0on the results of the query on the right hand side.\xa0"]}),(0,s.jsx)(n.p,{children:"Here Names of Author1, 2 and 3 are the common author names from both 
1sides. Author4 would be skipped from the list. So this list returns all the books (Books by Author2 as well as books not written by Author2)."}),(0,s.jsxs)(t.Z,{defaultValue:"query",values:[{label:"GraphQL Query",value:"query"},{label:"Response",value:"response"}],children:[(0,s.jsx)(a.Z,{value:"query",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",children:"{\n find(type: Book, arcql: \"hypi.id != 'Author2' AND Author:booklist.authorinfo.name FIELD IN Author:booklist.authorinfo.name WHERE hypi.id = 'Author2'\") {\n     edges {\n         node {\n             ... on Book {\n                 title\n                 authorinfo{\n                     name\n                 }\n             }\n         }\n         cursor\n         }\n     }\n}\n"})})}),(0,s.jsx)(a.Z,{value:"response",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n "data": {\n     "find": {\n         "edges": [\n             {\n                 "node": {\n                 "title": "Da Vinci Code",\n                 "authorinfo": {\n                         "name": "Dan Brown"\n                     }\n                 },\n                 "cursor": "Author1Book1"\n             },\n             {\n                 "node": {\n                 "title": "The Last Symbol",\n                 "authorinfo": {\n                     "name": "Dan Brown"\n                 }\n                 },\n                 "cursor": "Author1Book2"\n             },\n             {\n                 "node": {\n                 "title": "Inferno",\n                 "authorinfo": {\n                 "name": "Dan Brown"\n                 }\n                 },\n                 "cursor": "Author1Book3"\n             },\n             {\n                 "node": {\n                 "title": "Alchemist",\n                 "authorinfo": {\n                 "name": "Paulo Coelho"\n                 }\n                 },\n                 "cursor": "Author2Book1"\n             },\n             {\n                 "node": {\n                 "title": "Warriors of light",\n                 "authorinfo": {\n                     "name": "Paulo Coelho"\n                 }\n                 },\n                 "cursor": "Author2Book2"\n             },\n             {\n                 "node": {\n                 "title": "Wise and Otherwise",\n                 "authorinfo": {\n                 "name": "Sudha Murti"\n                 }\n                 },\n                 "cursor": "Author3Book1"\n             },\n             {\n                 "node": {\n                 "title": "How I taught my GrandMother to Read",\n                 "authorinfo": {\n                 "name": "Sudha Murti"\n                 }\n                 },\n                 "cursor": "Author3Book2"\n             },\n\n             {\n                 "node": {\n                 "title": "Hamlet",\n                 "authorinfo": {\n                 "name": "Shakespeare"\n                 }\n                 },\n                 "cursor": "Book1"\n             },\n\n             {\n                 "node": {\n                 "title": "Like the flowing river",\n                 "authorinfo": {\n                 "name": "Paulo Coelho"\n                 }\n                 },\n                 "cursor": "Book2"\n                 }\n             ]\n         }\n     }\n}\n'})})})]}),(0,s.jsx)(n.admonition,{title:"Read More...",type:"note",children:(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://hypi.dev/t/how-to-sort-the-data-using-arcql/101",children:"How to sort the data using ArcQL"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://hypi.dev/t/how-to-search-the-exact-data-using-arcql-term-query/100",children:"How to search the exact data using ArcQL term query"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://hypi.dev/t/how-to-search-a-phrase-from-the-data-using-arcql/99",children:"How to search a phrase from the data using ArcQL"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://hypi.dev/t/how-to-search-null-data-in-a-field-using-arcql/97",children:"How to search null data in a field using ArcQL"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://hypi.dev/t/how-to-search-non-null-d
1ata-in-a-field-using-arcql/98",children:"How to search non-null data in a field using ArcQL"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://hypi.dev/t/how-to-search-data-with-a-prefix-using-arcql/95",children:"How to search data with a prefix using ArcQL"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://hypi.dev/t/how-to-use-the-wildcards-with-arcql/88",children:"How to use the wildcards with ArcQL"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://hypi.dev/t/how-to-search-the-data-within-a-given-range/87",children:"How to search the data within a given range"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://hypi.dev/t/how-to-retrieve-all-the-records-using-arcql/94",children:"How to retrieve all the records using ArcQL"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://hypi.dev/t/how-to-compare-values-using-arcql/93",children:"How to compare values using ArcQL"})}),"\n"]})})]})]})]})}function x(e={}){const{wrapper:n}={...(0,l.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(u,{...e})}):u(e)}},85162:(e,n,r)=>{r.d(n,{Z:()=>a});r(67294);var s=r(86010);const l={tabItem:"tabItem_Ymn6"};var t=r(85893);function a({children:e,hidden:n,className:r}){return(0,t.jsx)("div",{role:"tabpanel",className:(0,s.Z)(l.tabItem,r),hidden:n,children:e})}},74866:(e,n,r)=>{r.d(n,{Z:()=>b});var s=r(67294),l=r(86010),t=r(968),a=r(16550),i=r(20469),o=r(91980),d=r(67392),h=r(50012);function c(e){return s.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,s.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function u(e){const{values:n,children:r}=e;return(0,s.useMemo)((()=>{const e=n??function(e){return c(e).map((({props:{value:e,label:n,attributes:r,default:s}})=>({value:e,label:n,attributes:r,default:s})))}(r);return function(e){const n=(0,d.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,r])}function x({value:e,tabValues:n}){return n.some((n=>n.value===e))}function j({queryString:e=!1,groupId:n}){const r=(0,a.k6)(),l=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:e,groupId:n});return[(0,o._X)(l),(0,s.useCallback)((e=>{if(!l)return;const n=new URLSearchParams(r.location.search);n.set(l,e),r.replace({...r.location,search:n.toString()})}),[l,r])]}function p(e){const{defaultValue:n,queryString:r=!1,groupId:l}=e,t=u(e),[a,o]=(0,s.useState)((()=>function({defaultValue:e,tabValues:n}){if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!x({value:e,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:n,tabValues:t}))),[d,c]=j({queryString:r,groupId:l}),[p,m]=function({groupId:e}){const n=function(e){return e?`docusaurus.tab.${e}`:null}(e),[r,l]=(0,h.Nk)(n);return[r,(0,s.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:l}),g=(()=>{const e=d??p;return x({value:e,tabValues:t})?e:null})();(0,i.Z)((()=>{g&&o(g)}),[g]);return{selectedValue:a,selectValue:(0,s.useCallback)((e=>{if(!x({value:e,tabValues:t}))throw new Error(`Can't select invalid tab value=${e}`);o(e),c(e),m(e)}),[c,m,t]),tabValues:t}}var m=r(72389);const g={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var y=r(85893);function f({className:e,block:n,selectedValue:r,selectValue:s,tabValues:a}){const i=[],{blockElementScrollPositionUntilNextRender:o}=(0,t.o5)(),d=e=>{const n=e.currentTarget,l=i.indexOf(n),t=a[l].value;t!==r&&(o(n),s(t))}
1,h=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const r=i.indexOf(e.currentTarget)+1;n=i[r]??i[0];break}case"ArrowLeft":{const r=i.indexOf(e.currentTarget)-1;n=i[r]??i[i.length-1];break}}n?.focus()};return(0,y.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},e),children:a.map((({value:e,label:n,attributes:s})=>(0,y.jsx)("li",{role:"tab",tabIndex:r===e?0:-1,"aria-selected":r===e,ref:e=>i.push(e),onKeyDown:h,onClick:d,...s,className:(0,l.Z)("tabs__item",g.tabItem,s?.className,{"tabs__item--active":r===e}),children:n??e},e)))})}function v({lazy:e,children:n,selectedValue:r}){const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){const e=l.find((e=>e.props.value===r));return e?(0,s.cloneElement)(e,{className:"margin-top--md"}):null}return(0,y.jsx)("div",{className:"margin-top--md",children:l.map(((e,n)=>(0,s.cloneElement)(e,{key:n,hidden:e.props.value!==r})))})}function A(e){const n=p(e);return(0,y.jsxs)("div",{className:(0,l.Z)("tabs-container",g.tabList),children:[(0,y.jsx)(f,{...e,...n}),(0,y.jsx)(v,{...e,...n})]})}function b(e){const n=(0,m.Z)();return(0,y.jsx)(A,{...e,children:c(e.children)},String(n))}},11151:(e,n,r)=>{r.d(n,{Z:()=>i,a:()=>a});var s=r(67294);const l={},t=s.createContext(l);function a(e){const n=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:a(e.components),s.createElement(t.Provider,{value:n},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.