@flexkit/studio 0.0.6 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/asset-65455B7V.js +2 -0
- package/dist/{asset-F2SF5UHA.js.map → asset-65455B7V.js.map} +1 -1
- package/dist/astro.d.ts +68 -0
- package/dist/astro.js +42 -0
- package/dist/boolean-3ZHXDPHB.js +2 -0
- package/dist/{boolean-IUJXXA2D.js.map → boolean-3ZHXDPHB.js.map} +1 -1
- package/dist/chunk-2RBOTHKE.js +2 -0
- package/dist/{chunk-7ZFZY5R4.js.map → chunk-2RBOTHKE.js.map} +1 -1
- package/dist/chunk-2WWU4XFO.js +2 -0
- package/dist/chunk-2WWU4XFO.js.map +1 -0
- package/dist/chunk-4PHVU7DD.js +2 -0
- package/dist/{chunk-WEMBNSFH.js.map → chunk-4PHVU7DD.js.map} +1 -1
- package/dist/chunk-5ES3TTSY.js +2 -0
- package/dist/{chunk-OBWXS7PQ.js.map → chunk-5ES3TTSY.js.map} +1 -1
- package/dist/chunk-5MTVN77Y.js +2 -0
- package/dist/chunk-5MTVN77Y.js.map +1 -0
- package/dist/chunk-64KAF6GA.js +2 -0
- package/dist/chunk-64KAF6GA.js.map +1 -0
- package/dist/chunk-7YBJLUUE.js +3 -0
- package/dist/chunk-7YBJLUUE.js.map +1 -0
- package/dist/chunk-AXB7FQV2.js +2 -0
- package/dist/{chunk-A6DNMUGW.js.map → chunk-AXB7FQV2.js.map} +1 -1
- package/dist/chunk-AYKEFG4H.js +2 -0
- package/dist/chunk-AYKEFG4H.js.map +1 -0
- package/dist/chunk-BUWJY7WB.js +127 -0
- package/dist/chunk-D5N42D57.js +2 -0
- package/dist/chunk-D5N42D57.js.map +1 -0
- package/dist/chunk-HIMN6EYJ.js +2 -0
- package/dist/chunk-HIMN6EYJ.js.map +1 -0
- package/dist/chunk-HZZZBJEZ.js +2 -0
- package/dist/chunk-HZZZBJEZ.js.map +1 -0
- package/dist/chunk-K5CEPNVI.js +2 -0
- package/dist/{chunk-G3L524HS.js.map → chunk-K5CEPNVI.js.map} +1 -1
- package/dist/chunk-M6EIBKCQ.js +2 -0
- package/dist/{chunk-GHV46F5V.js.map → chunk-M6EIBKCQ.js.map} +1 -1
- package/dist/chunk-MOR653JA.js +2 -0
- package/dist/chunk-MOR653JA.js.map +1 -0
- package/dist/chunk-NJN7EGGK.js +2 -0
- package/dist/{chunk-PAAKWKLA.js.map → chunk-NJN7EGGK.js.map} +1 -1
- package/dist/chunk-OOYWOWHR.js +2 -0
- package/dist/{chunk-Z37UM6ED.js.map → chunk-OOYWOWHR.js.map} +1 -1
- package/dist/chunk-OTQ3BR2A.js +2 -0
- package/dist/chunk-OTQ3BR2A.js.map +1 -0
- package/dist/chunk-OX6FVDUT.js +2 -0
- package/dist/{chunk-UTZ7XOUK.js.map → chunk-OX6FVDUT.js.map} +1 -1
- package/dist/chunk-RMSYYUQM.js +2 -0
- package/dist/{chunk-OV2SJGU3.js.map → chunk-RMSYYUQM.js.map} +1 -1
- package/dist/chunk-ZOBZU47M.js +2 -0
- package/dist/chunk-ZOBZU47M.js.map +1 -0
- package/dist/core-handler-B07aYFJi.d.ts +17 -0
- package/dist/datetime-XX4YBITU.js +2 -0
- package/dist/{datetime-GOUY7ZJZ.js.map → datetime-XX4YBITU.js.map} +1 -1
- package/dist/editor-VSCVCAL4.js +2 -0
- package/dist/{editor-IK2CNBJV.js.map → editor-VSCVCAL4.js.map} +1 -1
- package/dist/index.css +874 -863
- package/dist/index.d.ts +64 -9
- package/dist/index.js +346 -13
- package/dist/index.js.map +1 -1
- package/dist/logo-LB22KTDD.js +3 -0
- package/dist/{logo-4JW3ZQGP.js.map → logo-LB22KTDD.js.map} +1 -1
- package/dist/{ssr.d.ts → nextjs.d.ts} +2 -15
- package/dist/nextjs.js +63 -0
- package/dist/project-selector-4G4WL2XQ.js +2 -0
- package/dist/{project-selector-6UNKDUFP.js.map → project-selector-4G4WL2XQ.js.map} +1 -1
- package/dist/search-CKPEOD77.js +2 -0
- package/dist/{search-XZ52MCGA.js.map → search-CKPEOD77.js.map} +1 -1
- package/dist/switch-FU7XZ34K.js +2 -0
- package/dist/{switch-GWTYDHPW.js.map → switch-FU7XZ34K.js.map} +1 -1
- package/dist/tanstack-start.d.ts +99 -0
- package/dist/tanstack-start.js +137 -0
- package/dist/text-DFG6LLN6.js +2 -0
- package/dist/{text-OSJFNY7L.js.map → text-DFG6LLN6.js.map} +1 -1
- package/dist/text-LNFBPXBT.js +2 -0
- package/dist/{text-Y2ITNUWV.js.map → text-LNFBPXBT.js.map} +1 -1
- package/dist/textarea-XFHA5IEI.js +2 -0
- package/dist/{textarea-J6THGASV.js.map → textarea-XFHA5IEI.js.map} +1 -1
- package/dist/{types-RVyP_Twi.d.ts → types.d-CH6seXQw.d.ts} +108 -1
- package/dist/ui.d.ts +1 -2
- package/dist/ui.js +1 -1
- package/dist/ui.js.map +1 -1
- package/dist/user-nav-5LW5USDZ.js +2 -0
- package/dist/{user-nav-MAMF3XX5.js.map → user-nav-5LW5USDZ.js.map} +1 -1
- package/package.json +32 -11
- package/dist/asset-F2SF5UHA.js +0 -2
- package/dist/boolean-IUJXXA2D.js +0 -2
- package/dist/chunk-2DBX42KN.js +0 -2
- package/dist/chunk-2DBX42KN.js.map +0 -1
- package/dist/chunk-7ZFZY5R4.js +0 -2
- package/dist/chunk-A6DNMUGW.js +0 -2
- package/dist/chunk-EQ3526ET.js +0 -2
- package/dist/chunk-EQ3526ET.js.map +0 -1
- package/dist/chunk-G3L524HS.js +0 -2
- package/dist/chunk-GHV46F5V.js +0 -2
- package/dist/chunk-GXUHAW3R.js +0 -2
- package/dist/chunk-GXUHAW3R.js.map +0 -1
- package/dist/chunk-JB2CLKHS.js +0 -2
- package/dist/chunk-JB2CLKHS.js.map +0 -1
- package/dist/chunk-JNAHBJHF.js +0 -2
- package/dist/chunk-JNAHBJHF.js.map +0 -1
- package/dist/chunk-LEEJFMT6.js +0 -2
- package/dist/chunk-LEEJFMT6.js.map +0 -1
- package/dist/chunk-NM3JPB46.js +0 -2
- package/dist/chunk-NM3JPB46.js.map +0 -1
- package/dist/chunk-OBDHNFM5.js +0 -2
- package/dist/chunk-OBDHNFM5.js.map +0 -1
- package/dist/chunk-OBWXS7PQ.js +0 -2
- package/dist/chunk-OJCXEL7M.js +0 -2
- package/dist/chunk-OJCXEL7M.js.map +0 -1
- package/dist/chunk-OTLHY3ST.js +0 -2
- package/dist/chunk-OTLHY3ST.js.map +0 -1
- package/dist/chunk-OV2SJGU3.js +0 -2
- package/dist/chunk-PAAKWKLA.js +0 -2
- package/dist/chunk-RUXKF224.js +0 -2
- package/dist/chunk-RUXKF224.js.map +0 -1
- package/dist/chunk-SHVY2WXV.js +0 -3
- package/dist/chunk-SHVY2WXV.js.map +0 -1
- package/dist/chunk-TKD36DLT.js +0 -2
- package/dist/chunk-TKD36DLT.js.map +0 -1
- package/dist/chunk-UTZ7XOUK.js +0 -2
- package/dist/chunk-UZTABGUM.js +0 -334
- package/dist/chunk-UZTABGUM.js.map +0 -1
- package/dist/chunk-VVAW7U22.js +0 -2
- package/dist/chunk-VVAW7U22.js.map +0 -1
- package/dist/chunk-W632YC7D.js +0 -2
- package/dist/chunk-W632YC7D.js.map +0 -1
- package/dist/chunk-WEMBNSFH.js +0 -2
- package/dist/chunk-Z37UM6ED.js +0 -2
- package/dist/chunk-ZUOOAEAL.js +0 -2
- package/dist/chunk-ZUOOAEAL.js.map +0 -1
- package/dist/data-grid/index.d.ts +0 -59
- package/dist/data-grid/index.js +0 -4
- package/dist/data-grid/index.js.map +0 -1
- package/dist/datetime-GOUY7ZJZ.js +0 -2
- package/dist/editor-IK2CNBJV.js +0 -2
- package/dist/logo-4JW3ZQGP.js +0 -3
- package/dist/project-selector-6UNKDUFP.js +0 -2
- package/dist/search-XZ52MCGA.js +0 -2
- package/dist/ssr.js +0 -3
- package/dist/ssr.js.map +0 -1
- package/dist/switch-GWTYDHPW.js +0 -2
- package/dist/text-OSJFNY7L.js +0 -2
- package/dist/text-Y2ITNUWV.js +0 -2
- package/dist/textarea-J6THGASV.js +0 -2
- package/dist/types.d-DEo8bqfV.d.ts +0 -110
- package/dist/user-nav-MAMF3XX5.js +0 -2
package/dist/chunk-UZTABGUM.js
DELETED
|
@@ -1,334 +0,0 @@
|
|
|
1
|
-
import {a as a$6}from'./chunk-OTLHY3ST.js';import {a as a$1}from'./chunk-GHV46F5V.js';import {a as a$2}from'./chunk-2DBX42KN.js';import {a}from'./chunk-WEMBNSFH.js';import {b}from'./chunk-OBDHNFM5.js';import {a as a$3}from'./chunk-OBWXS7PQ.js';import {a as a$5,b as b$1,e as e$1,f,c,g}from'./chunk-OJCXEL7M.js';import {e,h,f as f$1}from'./chunk-NM3JPB46.js';import {b as b$2}from'./chunk-LEEJFMT6.js';import {a as a$4}from'./chunk-A6DNMUGW.js';import {createContext,useReducer,useContext,useState,useEffect,useRef}from'react';import {filter,propEq,find,omit,pick,toPairs,uniqBy,props}from'ramda';import {jsx,jsxs}from'react/jsx-runtime';import {v4}from'uuid';import {gql}from'@apollo/client';import {useApolloClient,useMutation}from'@apollo/client/react';import {ServerError}from'@apollo/client/errors';import {useReactTable,getFacetedUniqueValues,getFacetedRowModel,getSortedRowModel,getPaginationRowModel,getFilteredRowModel,getCoreRowModel,flexRender}from'@tanstack/react-table';import {useVirtualizer}from'@tanstack/react-virtual';var pt=createContext([]),mt=createContext(()=>{});function Tt(t,e){let i=e.type;switch(e._id||(e._id=Date.now().toString()),i){case "DeleteEntity":return uniqBy(props(["type","_id"]),[...t,e]);case "AddEntity":return uniqBy(props(["type","_id"]),[...t,e]);case "EditEntity":return uniqBy(props(["type","_id"]),[...t,e]);case "EditRelationship":return uniqBy(props(["type","_id"]),[...t,e]);case "AlertDialog":return uniqBy(props(["type","_id"]),[...t,e]);case "Dismiss":return t.filter(r=>r._id!==e._id);default:throw Error(`Unknown action: ${i}`)}}function Nt({children:t}){let[e,i]=useReducer(Tt,[]);return jsx(pt.Provider,{value:e,children:jsx(mt.Provider,{value:i,children:t})})}function te(){return useContext(pt)}function ee(){return useContext(mt)}var Dt=["id","string"],kt=["date","datetime","duration","time"];function le(t,e,i){let r="(where: $where, options: $options)",u=M(i,t),s=u?.name??t,a=u?.attributes??[],p=`$where: ${s}Where, $options: ${s}Options`;if(!u)throw new Error(`Entity '${s}' not found in the schema`);if(a.length===0)throw new Error(`Entity '${s}' has no attributes defined in the schema`);let c=C("global",a).join(`
|
|
2
|
-
`),o=O(a),n=C(["local"],a),d=n.reduce((l,E)=>`${l}
|
|
3
|
-
${E} {
|
|
4
|
-
_id
|
|
5
|
-
default
|
|
6
|
-
}
|
|
7
|
-
`,""),m=n.reduce((l,E)=>`${l}
|
|
8
|
-
${E} {
|
|
9
|
-
_id
|
|
10
|
-
default
|
|
11
|
-
${e}
|
|
12
|
-
}
|
|
13
|
-
`,""),h=e==="default"?d:m,b=o.reduce((l,E)=>`${l}
|
|
14
|
-
${E} {
|
|
15
|
-
_id
|
|
16
|
-
originalFilename
|
|
17
|
-
mimeType
|
|
18
|
-
path
|
|
19
|
-
size
|
|
20
|
-
height
|
|
21
|
-
width
|
|
22
|
-
lqip
|
|
23
|
-
}
|
|
24
|
-
`,""),g=filter(propEq("relationship","scope"))(a).reduce((l,E)=>{let D=find(propEq(E.relationship?.entity,"name"))(i)?.attributes.reduce(($,f)=>{let A=e==="default"?"":`${e}
|
|
25
|
-
`;if(f.dataType==="asset")return `${$}
|
|
26
|
-
${f.name} {
|
|
27
|
-
_id
|
|
28
|
-
originalFilename
|
|
29
|
-
mimeType
|
|
30
|
-
path
|
|
31
|
-
size
|
|
32
|
-
height
|
|
33
|
-
width
|
|
34
|
-
lqip
|
|
35
|
-
}
|
|
36
|
-
`;if(f.scope==="local")return `${$}
|
|
37
|
-
${f.name} {
|
|
38
|
-
_id
|
|
39
|
-
default
|
|
40
|
-
${A}
|
|
41
|
-
}
|
|
42
|
-
`;if(f.scope==="relationship"){let S=find(propEq(f.relationship?.entity,"name"))(i),I=find(propEq(f.relationship?.field,"name"))(S?.attributes??[]).scope==="local"?`{
|
|
43
|
-
_id
|
|
44
|
-
default
|
|
45
|
-
${A}}
|
|
46
|
-
`:"";if(f.relationship?.mode==="single")return `${$}
|
|
47
|
-
${f.name} {
|
|
48
|
-
${f.relationship.field} ${I}}
|
|
49
|
-
`;if(f.relationship?.field)return `${$}
|
|
50
|
-
${f.name} (options: {limit: 25, offset: 0}) {
|
|
51
|
-
${f.relationship.field} ${I}}
|
|
52
|
-
`}return `${$}
|
|
53
|
-
${f.name}
|
|
54
|
-
`},"");return `${E.name}Aggregate {
|
|
55
|
-
count
|
|
56
|
-
}${l}
|
|
57
|
-
${E.name} (options: {limit: 25, offset: 0}) { _id ${D??""}}
|
|
58
|
-
`},"");return {queryEntityName:t,query:`query getEntity(${p}) {
|
|
59
|
-
${t}Aggregate {
|
|
60
|
-
count
|
|
61
|
-
}
|
|
62
|
-
${t}${r} {
|
|
63
|
-
_id
|
|
64
|
-
${c} ${h} ${b} ${g}}
|
|
65
|
-
}
|
|
66
|
-
`}}function ue(t,e,i,r){let s=M(r,t)?.attributes??[];if(s.length===0)return {count:0,results:[]};let{count:a}=i[`${t}Aggregate`],p=i[t],c=(n,d)=>{let m=d.name;return n.slice(0,3).map(h=>d.scope==="local"?h[m]?.[e]??h[m].default:h[m]).join(", ")},o=p.map(n=>{let{_id:d}=n,m=C("global",s).reduce((g,l)=>({...g,[l]:n[l]}),{}),h=C("local",s).reduce((g,l)=>{let E=n[l];return {...g,[l]:E?.[e]?E[e]:E?.default}},{}),b=O(s).reduce((g,l)=>({...g,[l]:n[l]}),{}),y=C(["relationship"],s).reduce((g,l)=>{let R=find(propEq(l,"name"))(s).relationship?.entity??"",D=find(propEq(R,"name"))(r),$=Pt(D?.attributes??[]),f=$?.name??"",A=$?.scope??"global",S=n[l];if(!f)throw new Error(`There is an error in the schema for the relationship attribute "${l}"`);if(Array.isArray(S))return {...g,[l]:c(S,$)};let k=A==="global"?S?.[f]:S?.[f]?.[e]??S?.[f]?.default;return {...g,[l]:k}},{});return {_id:d,...m,...h,...b,...y}});return {count:a,results:o}}function ce(t,e,i,r){let s=M(r,t)?.attributes??[];if(s.length===0)return {count:0,results:[]};let{count:a}=i[`${t}Aggregate`],c=i[t].map(o=>{let n=C("global",s).reduce((b,y)=>({...b,[y]:{value:o[y],disabled:false,scope:"default",_id:""}}),{}),d=C("local",s).reduce((b,y)=>{let g=find(propEq(y,"name"))(s),l=o[y];return {...b,[y]:{value:l?_t(l,e):null,disabled:!!(l&&l[e]===null&&g.scope==="local"&&e!=="default"),scope:e,_id:l?l._id:null}}},{}),m=O(s).reduce((b,y)=>({...b,[y]:{value:o[y],disabled:false,scope:"default",_id:""}}),{}),h=C(["relationship"],s).reduce((b,y)=>{let g=o[y],l=g?._id,E=o[`${y}Aggregate`].count;return {...b,[y]:{count:E,_id:l,value:g,disabled:false,scope:e}}},{});return {...n,...d,...m,...h}});return {count:a,results:c}}function _t(t,e){return Array.isArray(t)?t.reduce((i,r)=>{if(r[e]??r.default){let u={_id:r._id,disabled:r.scope===null&&e!=="default",scope:e,value:r[e]??r.default};i.push(u);}return i},[]):t[e]??t.default??null}function de(t,e,i,r,u,s){let a=M(r,t),p=a?.name??t,c=a?.attributes??[],o=U(t);if(c.length===0)return "";let n=X(c,s),d=Y(c,n),m=xt(e,c,n,i),h=vt(e,c,n),b=Ft(c,u,n),y=t,g=K(r,t,i);return `mutation updateEntity($where: ${p}Where) {
|
|
67
|
-
update${o}(
|
|
68
|
-
where: $where
|
|
69
|
-
update: {${d}${m}${h}${b}
|
|
70
|
-
}
|
|
71
|
-
) {
|
|
72
|
-
${y} {
|
|
73
|
-
_id
|
|
74
|
-
${g} }
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
`}function X(t,e){let i=t.map(u=>u.isEditable===false?u.name:"").filter(Boolean),r=omit(i,e);return pick(t.map(u=>u.name),r)}function C(t,e){return Array.isArray(t)?t.reduce((r,u)=>r.concat(C(u,e)),[]):e.filter(r=>r.scope===t&&r.inputType!=="asset").map(r=>r.name)}function O(t){return filter(propEq("asset","dataType"))(t).map(i=>i.name)}function Y(t,e){let i=pick(C("global",t),e);return toPairs(i).reduce((u,[s,a])=>{let p=find(propEq(s,"name"))(t),c=G(p.dataType,a?.value??null);return `${u}
|
|
78
|
-
${s}: ${c}`},"")}function vt(t,e,i){let r=pick(O(e),i);return toPairs(r).reduce((a,[p,c])=>{let o=c.value,n=o?.path?`"${o.path}"`:"null",d=o?.size?o.size:"null",m=o?.mimeType?`"${o.mimeType}"`:"null",h=o?.originalFilename?`"${o.originalFilename}"`:"null",b=o?.height?o.height:"null",y=o?.width?o.width:"null",g=o?.lqip?`"${o.lqip}"`:"null";return n?c.value?._id?`${a}
|
|
79
|
-
${p}: {
|
|
80
|
-
update: {
|
|
81
|
-
node: {
|
|
82
|
-
mimeType: ${m}
|
|
83
|
-
originalFilename: ${h}
|
|
84
|
-
path: ${n}
|
|
85
|
-
size: ${d}
|
|
86
|
-
height: ${b}
|
|
87
|
-
width: ${y}
|
|
88
|
-
lqip: ${g}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
}`:`${a}
|
|
92
|
-
${p}: {
|
|
93
|
-
create: {
|
|
94
|
-
node: {
|
|
95
|
-
_id: "${t}:${p}"
|
|
96
|
-
mimeType: ${m}
|
|
97
|
-
originalFilename: ${h}
|
|
98
|
-
path: ${n}
|
|
99
|
-
size: ${d}
|
|
100
|
-
height: ${b}
|
|
101
|
-
width: ${y}
|
|
102
|
-
lqip: ${g}
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
}`:a},"")}function xt(t,e,i,r){let u=pick(C("local",e),i);return toPairs(u).reduce((p,[c,o])=>{let n=find(propEq(c,"name"))(e),{dataType:d}=n,m=o.disabled||Array.isArray(o.value)?"null":G(d,o.value);return o._id?`${p}
|
|
106
|
-
${c}: {
|
|
107
|
-
update: {
|
|
108
|
-
node: {
|
|
109
|
-
${r}: ${m}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}`:m?`${p}
|
|
113
|
-
${c}: {
|
|
114
|
-
create: {
|
|
115
|
-
node: {
|
|
116
|
-
_id: "${t}:${c}"
|
|
117
|
-
_type: "${d}"
|
|
118
|
-
${r}: ${m}
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}`:p},"")}function Ft(t,e,i){let r=pick(C("relationship",t),i);return toPairs(r).reduce((a,[p,c])=>{let o=find(propEq(p,"name"))(t),{inputType:n,relationship:d}=o;if(n==="relationship"&&d?.mode==="single"){let m=`disconnect: {
|
|
122
|
-
where: {
|
|
123
|
-
node: {
|
|
124
|
-
_id: "${e[p]._id??""}"
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
`,h=`connect: {
|
|
129
|
-
where: {
|
|
130
|
-
node: {
|
|
131
|
-
_id: "${c._id??""}"
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
`;return `${a}
|
|
136
|
-
${p}: {
|
|
137
|
-
${h} ${m} }`}if(n==="relationship"&&d?.mode==="multiple"){let m=c.relationships?.disconnect?.reduce((l,E)=>`${l} {
|
|
138
|
-
node: {
|
|
139
|
-
_id: "${E}"
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
`,""),b=(c.relationships?.connect??[]).reduce((l,E)=>`${l} {
|
|
143
|
-
_id: "${E._id}"
|
|
144
|
-
}
|
|
145
|
-
`,""),y=m?`disconnect: {
|
|
146
|
-
where: {
|
|
147
|
-
OR: [
|
|
148
|
-
${m} ]
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
`:"",g=b?`connect: {
|
|
152
|
-
where: {
|
|
153
|
-
node: {
|
|
154
|
-
OR: [
|
|
155
|
-
${b} ]
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
`:"";return `${a}
|
|
160
|
-
${p}: {
|
|
161
|
-
${y} ${g} }`}return `${a}
|
|
162
|
-
`},"")}function G(t,e){return kt.includes(t)?e?.toString().replace(/"/g,'\\"')?`"${e?.toString().replace(/"/g,'\\"')}"`:null:Dt.includes(t)?`"${e?.toString().replace(/"/g,'\\"')??"null"}"`:e?.toString()??null}function K(t,e,i){let u=M(t,e)?.attributes??[],s=C("global",u),a=C("local",u),p=C("relationship",u),c=s.reduce((o,n)=>`${o}${n}
|
|
163
|
-
`,"");return c+=a.reduce((o,n)=>`${o} ${n} {
|
|
164
|
-
_id
|
|
165
|
-
${i}
|
|
166
|
-
}
|
|
167
|
-
`,""),c+=p.reduce((o,n)=>{let d=find(propEq(n,"name"))(u),m=d?.relationship?.mode??"single",h=d?.relationship?.entity??"",y=find(propEq(h,"name"))(t)?.attributes??[],g=d?.relationship?.field??"[invalid_relationship_field_name_in_schema]",E=find(propEq(g,"name"))(y).scope,R="";if(m==="single"&&(E==="global"&&(R=` ${n} {
|
|
168
|
-
_id
|
|
169
|
-
${g}
|
|
170
|
-
}
|
|
171
|
-
`),E==="local"&&(R=` ${n} {
|
|
172
|
-
_id
|
|
173
|
-
${g} {
|
|
174
|
-
_id
|
|
175
|
-
default
|
|
176
|
-
${i}
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
`)),m==="multiple"&&y.length){let D=y.reduce(($,f)=>{if(f.scope==="local")return `${$} ${f.name} {
|
|
180
|
-
_id
|
|
181
|
-
default
|
|
182
|
-
${i}
|
|
183
|
-
}
|
|
184
|
-
`;if(f.scope==="relationship"){let A=i==="default"?"":`${i}
|
|
185
|
-
`,S=find(propEq(f.relationship?.entity,"name"))(t),I=find(propEq(f.relationship?.field,"name"))(S?.attributes??[]).scope==="local"?`{
|
|
186
|
-
_id
|
|
187
|
-
default
|
|
188
|
-
${A}}
|
|
189
|
-
`:"";if(f.relationship?.mode==="single")return `${$} ${f.name} {
|
|
190
|
-
${f.relationship.field} ${I}}
|
|
191
|
-
`;if(f.relationship?.field)return `${$} ${f.name} (options: {limit: 25, offset: 0}) {
|
|
192
|
-
${f.relationship.field} ${I}}
|
|
193
|
-
`}return f.inputType==="asset"?`${$} ${f.name} {
|
|
194
|
-
_id
|
|
195
|
-
originalFilename
|
|
196
|
-
mimeType
|
|
197
|
-
path
|
|
198
|
-
size
|
|
199
|
-
height
|
|
200
|
-
width
|
|
201
|
-
lqip
|
|
202
|
-
}
|
|
203
|
-
`:`${$} ${f.name}
|
|
204
|
-
`},"");R=` ${n}Aggregate {
|
|
205
|
-
count
|
|
206
|
-
}
|
|
207
|
-
${n} (options: {limit: 25, offset: 0}) {
|
|
208
|
-
${D} }
|
|
209
|
-
`;}return `${o}${R}`},""),c}function pe(t,e,i){let r=find(propEq(t,"name"))(e),u=r?.attributes??[],s=U(r?.plural??""),a=Vt(u,i);return t==="_asset"?`mutation deleteEntity($where: ${t}Where) {
|
|
210
|
-
delete_assets(
|
|
211
|
-
where: $where
|
|
212
|
-
) {
|
|
213
|
-
nodesDeleted
|
|
214
|
-
relationshipsDeleted
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
`:`mutation deleteEntity($where: ${t}Where) {
|
|
218
|
-
delete${s}(
|
|
219
|
-
where: $where
|
|
220
|
-
${a?` delete: {
|
|
221
|
-
${a}
|
|
222
|
-
}
|
|
223
|
-
`:""} ) {
|
|
224
|
-
nodesDeleted
|
|
225
|
-
relationshipsDeleted
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
`}function Vt(t,e){return C("local",t).reduce((u,s)=>`${u}
|
|
229
|
-
${s}: {
|
|
230
|
-
where: {
|
|
231
|
-
node: {
|
|
232
|
-
_id: "${e}:${s}"
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
}`,"")}function me(t,e,i,r){let u=M(e,t),s=u?.attributes??[],a=U(u?.plural??"");if(s.length===0)return "";let p=X(s,i),c=Y(s,p),o=Mt(s,p,"default",r),n=It(s,p),d=t,m=K(e,d,"default");return `mutation {
|
|
236
|
-
create${a}(
|
|
237
|
-
input: [{
|
|
238
|
-
_id: "${r}" ${c} ${o}
|
|
239
|
-
${n}
|
|
240
|
-
}]
|
|
241
|
-
) {
|
|
242
|
-
${d} {
|
|
243
|
-
${m} }
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
`}function Mt(t,e,i,r){let u=pick(C("local",t),e);return toPairs(u).reduce((p,[c,o])=>{if(!o?.value)return p;let n=find(propEq(c,"name"))(t),d=Array.isArray(o.value)?"null":G(n.dataType,o.value);return `${p}
|
|
247
|
-
${c}: {
|
|
248
|
-
create: {
|
|
249
|
-
node: {
|
|
250
|
-
_id: "${r}:${c}"
|
|
251
|
-
_type: "${n.dataType}"
|
|
252
|
-
${i}: ${d}
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
}`},"")}function It(t,e){let i=pick(C("relationship",t),e);return toPairs(i).reduce((s,[a,p])=>{let c=find(propEq(a,"name"))(t),{inputType:o,relationship:n}=c;if(o==="relationship"&&n?.mode==="single"){let h=`connect: {
|
|
256
|
-
where: {
|
|
257
|
-
node: {
|
|
258
|
-
_id: "${p._id??""}"
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
`;return `${s}
|
|
263
|
-
${a}: {
|
|
264
|
-
${h} }`}let d=o==="relationship"&&n?.mode==="multiple",m=Array.isArray(p.relationships?.connect)&&p.relationships.connect.length>0;if(d&&m){let b=(p.relationships?.connect??[]).reduce((g,l)=>`${g} {
|
|
265
|
-
_id: "${l._id}"
|
|
266
|
-
}
|
|
267
|
-
`,""),y=b?`connect: {
|
|
268
|
-
where: {
|
|
269
|
-
node: {
|
|
270
|
-
OR: [
|
|
271
|
-
${b} ]
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
`:"";return `${s}
|
|
276
|
-
${a}: {
|
|
277
|
-
${y} }`}return `${s}
|
|
278
|
-
`},"")}function Pt(t){return t.find(e=>e.isPrimary)??t[0]}function ge({attributeName:t,relatedEntityName:e,scope:i,schema:r}){let u="(where: $where, options: $options)",s=find(propEq(e,"name"))(r),a=s?.attributes??[],p=`$where: ${e}Where, $options: ${e}Options`,c=s?.plural??"";if(a.length===0)return {queryEntityName:"",query:""};let o=C("global",a).join(`
|
|
279
|
-
`),n=C(["local"],a),d=n.reduce((g,l)=>`${g}
|
|
280
|
-
${l} {
|
|
281
|
-
_id
|
|
282
|
-
default
|
|
283
|
-
}
|
|
284
|
-
`,""),m=n.reduce((g,l)=>`${g}
|
|
285
|
-
${l} {
|
|
286
|
-
_id
|
|
287
|
-
default
|
|
288
|
-
${i}
|
|
289
|
-
}
|
|
290
|
-
`,""),h=i==="default"?d:m,y=filter(propEq("relationship","scope"))(a).reduce((g,l)=>{let R=find(propEq(l.relationship?.entity,"name"))(r)?.attributes.reduce((D,$)=>{let f=i==="default"?"":`${i}
|
|
291
|
-
`;if($.scope==="local")return `${D}
|
|
292
|
-
${$.name} {
|
|
293
|
-
_id
|
|
294
|
-
default
|
|
295
|
-
${f}}
|
|
296
|
-
`;if($.scope==="relationship"){let A=find(propEq($.relationship?.entity,"name"))(r),k=find(propEq($.relationship?.field,"name"))(A?.attributes??[]).scope==="local"?`{
|
|
297
|
-
_id
|
|
298
|
-
default
|
|
299
|
-
${f}}
|
|
300
|
-
`:"";if($.relationship?.mode==="single")return `${D}
|
|
301
|
-
${$.name} {
|
|
302
|
-
${$.relationship.field} ${k}}
|
|
303
|
-
`;if($.relationship?.field)return `${D}
|
|
304
|
-
${$.name} (options: {limit: 25, offset: 0}) {
|
|
305
|
-
${$.relationship.field} ${k}}
|
|
306
|
-
`}return `${D}
|
|
307
|
-
${$.name}
|
|
308
|
-
`},"");return `${g}
|
|
309
|
-
${l.name} (options: {limit: 25, offset: 0}) { _id ${R??""}}
|
|
310
|
-
`},"");return {queryEntityName:c,query:`query getEntity(${p}) {
|
|
311
|
-
${t}Aggregate(where: $where) {
|
|
312
|
-
count
|
|
313
|
-
}
|
|
314
|
-
${c}${u} {
|
|
315
|
-
_id
|
|
316
|
-
${o} ${h} ${y} }
|
|
317
|
-
}
|
|
318
|
-
`}}function gt(t){let e$1=e.attributes,i=U(e.plural),r=v4(),u=X(e$1,t),s=Y(e$1,u),a=e.plural,p=K([e,f$1],a,"default");return `mutation {
|
|
319
|
-
create${i}(
|
|
320
|
-
input: [{
|
|
321
|
-
_id: "${r}" ${s} }]
|
|
322
|
-
) {
|
|
323
|
-
${a} {
|
|
324
|
-
${p} }
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
`}var U=t=>t.charAt(0).toUpperCase()+t.slice(1);function M(t,e$1){return e$1==="_assets"?e:find(propEq(e$1,"plural"))(t)}function zt(t){return t?"cause"in t:false}function yt(t){if(!t)return null;if(ServerError.is(t))return t;if(zt(t)){let e=t.cause;if(ServerError.is(e))return e}return null}function ht(t){if(!t)return null;try{return JSON.parse(t)}catch{return null}}function we(){let t=useApolloClient();return async e=>{let i=gt(e);await t.mutate({mutation:gql`
|
|
328
|
-
${i}
|
|
329
|
-
`});}}function Te(){let[t,e]=useState(false),[i,r]=useState(gql`
|
|
330
|
-
mutation updateEntity($any: Any) {
|
|
331
|
-
any
|
|
332
|
-
}
|
|
333
|
-
`),[u,s]=useState({}),[a,{data:p,loading:c,error:o}]=useMutation(i,u),n=yt(o),{isProjectDisabled:d,isProjectReadOnly:m}=(()=>{if(n?.statusCode===403){let h=ht(n.bodyText);if(h&&typeof h.code=="string"){if(h.code==="PROJECT_PAUSED")return {isProjectDisabled:true,isProjectReadOnly:false};if(h.code==="READ_ONLY_MODE")return {isProjectDisabled:false,isProjectReadOnly:true}}return {isProjectDisabled:true,isProjectReadOnly:false}}return {isProjectDisabled:false,isProjectReadOnly:false}})();return useEffect(()=>{t&&(a(),e(false));},[t,a]),[e,r,s,{data:p,loading:c,error:o,isProjectDisabled:d,isProjectReadOnly:m}]}function At({value:t}){return !t||!t.split(",").length?null:jsx("div",{className:"fk-flex fk-flex-wrap fk-gap-1 fk-max-w-full truncate",children:t.split(",").map(e=>jsx(b$2,{className:"fk-px-2.5 fk-py-0 fk-font-normal fk-text-[0.6875rem] fk-leading-4",variant:"secondary",children:e},e))})}function ze({attributesSchema:t,checkboxSelect:e,actionsComponent:i}){let{getContributionPointConfig:r}=h(),u={datetime:"datetime",editor:"editor",asset:"asset",number:"text",relationship:"text",select:"text",switch:"boolean",text:"text",textarea:"text"},s={boolean:a$1,date:a,datetime:a$3,editor:b,asset:a$2,number:a,relationship:a,select:a,switch:a$1,text:a,textarea:a,tags:At},a$4=t.map(n=>{let d=n.previewType??u[n.inputType],m=r("previewFields",[d])?.[0]?.component??s[d]??s.text;if(n.isHidden)return null;let h=d==="tags";return {accessorKey:n.name,filterFn:(b,y,g)=>h?true:(Array.isArray(g)?g:[g]).includes(b.getValue(y)),header:()=>jsx("div",{className:"fk-flex fk-items-center",children:n.label}),cell:({row:b})=>jsx(m,{value:b.getValue(n.name)}),enableSorting:false,enableHiding:true,size:n.options?.size??150}}).filter(n=>n!==null),p={id:"actions",cell:({row:n})=>i?i(n):null,size:80},c={id:"select",cell:({row:n,table:d})=>jsx(a$6,{"aria-label":"Select row",checked:n.getIsSelected(),onCheckedChange:m=>{d.toggleAllPageRowsSelected(false),n.toggleSelected(!!m);}}),enableSorting:false,enableHiding:false,size:50},o={id:"select",header:({table:n})=>jsx(a$6,{"aria-label":"Select all",checked:n.getIsAllPageRowsSelected()||n.getIsSomePageRowsSelected()&&"indeterminate",onCheckedChange:d=>{n.toggleAllPageRowsSelected(!!d);}}),cell:({row:n})=>jsx(a$6,{"aria-label":"Select row",checked:n.getIsSelected(),onCheckedChange:d=>{n.toggleSelected(!!d);}}),enableSorting:false,enableHiding:false,size:50};return [...e==="single"?[c]:[],...e==="multiple"?[o]:[],...i?[p]:[],...a$4]}function He({classNames:t,columns:e,data:i,initialSelectionState:r,onEntitySelectionChange:u,onScroll:s,pageSize:a,rowAdditionState:p,rowDeletionState:c$1,toolbarComponent:o}){let n=useRef(null),[d,m]=useState(r??{}),[h,b]=useState({}),[y,g$1]=useState([]),[l,E]=useState([]),R=useReactTable({data:i,columns:e,state:{sorting:l,columnVisibility:h,rowSelection:d,columnFilters:y},initialState:{pagination:{pageSize:a??25}},enableRowSelection:true,onRowSelectionChange:f$1,onSortingChange:E,onColumnFiltersChange:g$1,onColumnVisibilityChange:b,getCoreRowModel:getCoreRowModel(),getFilteredRowModel:getFilteredRowModel(),getPaginationRowModel:getPaginationRowModel(),getSortedRowModel:getSortedRowModel(),getFacetedRowModel:getFacetedRowModel(),getFacetedUniqueValues:getFacetedUniqueValues(),getRowId:A=>A._id,manualPagination:true,meta:{getRowBackground:A=>Gt(A,c$1,p)}}),{rows:D}=R.getRowModel(),$=useVirtualizer({count:D.length,estimateSize:()=>45,getScrollElement:()=>n.current,measureElement:typeof window<"u"&&navigator.userAgent.includes("Firefox")?A=>A.getBoundingClientRect().height:void 0,overscan:5});function f$1(A){let S=Object.keys(typeof A=="function"?A(d):A);m(A),u?.(S);}return jsxs("div",{className:a$4("fk-w-full fk-h-full fk-space-y-4",t?.wrapper),children:[o&&o(R),jsxs(a$5,{className:a$4("fk-grid fk-pb-[5rem]",t?.table),onScroll:s,ref:n,children:[jsx(b$1,{className:"fk-grid",children:R.getHeaderGroups().map(A=>jsx(e$1,{className:"fk-flex fk-w-full",children:A.headers.map(S=>jsx(f,{className:a$4("fk-flex fk-items-center",S.column.id==="actions"&&"fk-pl-0"),colSpan:S.colSpan,style:S.getSize()?{width:`${S.getSize().toString()}px`}:{},children:S.isPlaceholder?null:flexRender(S.column.columnDef.header,S.getContext())},S.id))},A.id))}),jsx(c,{className:"fk-grid fk-relative",style:{height:`${$.getTotalSize().toString()}px`},children:$.getVirtualItems().length?$.getVirtualItems().map(A=>{let S=D[A.index];return jsx(e$1,{className:`${R.options.meta.getRowBackground(S)} fk-flex fk-absolute fk-w-full ${t?.row??""}`,"data-index":A.index,"data-state":S.getIsSelected()&&"selected",ref:$.measureElement,style:{transform:`translateY(${A.start.toString()}px)`},children:S.getVisibleCells().map(k=>jsx(g,{className:a$4("fk-flex fk-items-center fk-truncate",k.column.id==="actions"&&"!fk-pl-0"),style:{width:k.column.getSize()},children:flexRender(k.column.columnDef.cell,k.getContext())},k.id))},A.key)}):jsx(e$1,{children:jsx(g,{className:"fk-h-24 fk-text-center",colSpan:e.length,children:"No results."})})})]})]})}function Gt(t,e,i){return e?.includes(t.original._id)?"fk-bg-row-removed hover:fk-bg-row-removed-hover":i?.some(r=>r._id===t.original._id)?"fk-bg-row-added hover:fk-bg-row-added-hover":""}export{yt as a,ht as b,Nt as c,te as d,ee as e,le as f,ue as g,ce as h,de as i,pe as j,me as k,ge as l,M as m,we as n,Te as o,ze as p,He as q};//# sourceMappingURL=chunk-UZTABGUM.js.map
|
|
334
|
-
//# sourceMappingURL=chunk-UZTABGUM.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/entities/actions-context.tsx","../src/graphql-client/queries.ts","../src/graphql-client/error-utils.ts","../src/graphql-client/use-entity-mutation.ts","../src/data-grid/preview-components/tags.tsx","../src/data-grid/columns.tsx","../src/data-grid/data-table.tsx"],"names":["ActionsContext","createContext","EntityDispatchContext","actionsReducer","actions","action","actionType","uniqBy","props","item","ActionsProvider","children","entityActions","dispatchEntityActions","useReducer","jsx","useActions","useContext","useDispatch","stringTypes","temporalTypes","getEntityQuery","entityNamePlural","scope","schema","filters","entitySchema","getEntitySchema","entityName","attributes","heading","globalAttributesList","getAttributeListByScope","imageAttributes","getImageAttributes","localAttributes","defaultScopedAttr","acc","attribute","scopedAttribute","localAttributesList","imageAttributesList","relationshipAttributesList","filter","propEq","attributesNameList","find","relatedAcc","relatedAttribute","additionalScope","relationshipEntity","localAttributeQuery","mapQueryResult","results","count","items","sliceFirstThreeItems","values","primaryAttribute","primaryAttributeName","mappedQueryResult","entity","_id","globalAttributes","attributeName","relationshipAttributes","relatedEntityName","relatedEntity","getPrimaryAttribute","primaryAttributeScope","localValue","value","mapQueryResultForFormFields","attributeSchema","localAttribute","getValueByScope","aggregateCount","result","attr","option","getEntityUpdateMutation","entityId","originalData","dataToMutate","pluralizedEntityName","capitalize","data","filterOutInvalidAttributes","globalAttributesUpdate","localAttributesUpdate","imageAttributesUpdate","relationshipAttributesUpdate","responseType","attributeNamesList","formatResponseFieldsForMutation","nonUpdatableAttributes","omit","pick","type","attributeType","schemaAttributes","toPairs","typedValue","stringifyValue","attributeValue","imageValue","imagePath","imageSize","imageMimeType","originalFilename","height","width","lqip","dataType","inputType","relationship","disconnect","connect","nodesToDisconnect","disconnectString","nodesToConnect","connectString","node","globalAttributesArray","localAttributesArray","relationshipAttributesArray","fields","relationshipAttribute","relationshipMode","relationshipEntityName","relationshipEntityAttributes","list","multipleRelationshipAttributes","str","getEntityDeleteMutation","localAttributesDelete","getEntityCreateMutation","entityData","localAttributesCreate","relationshipAttributesCreate","defaultScope","isMultipleRelationship","hasRelationships","getRelatedItemsQuery","queryEntityName","getAssetCreateMutation","assetSchema","uuidv4","tagSchema","hasCause","error","getServerError","ServerError","possibleServerError","parseErrorBody","bodyText","useCreateAssetMutation","apolloClient","useApolloClient","mutation","gql","useEntityMutation","runMutation","setRunMutation","useState","setMutation","options","setOptions","mutateFunction","loading","useMutation","serverError","isProjectDisabled","isProjectReadOnly","responseBody","useEffect","Tags","tag","Badge","useGridColumnsDefinition","attributesSchema","checkboxSelect","actionsComponent","getContributionPointConfig","useConfig","inputTypeToPreviewFieldMap","previewFieldComponentsMap","Boolean","Text","DateTime","Editor","Asset","cols","previewType","previewComponent","isTagsPreview","row","id","column","singleCheckboxSelect","table","Checkbox","multipleCheckboxSelect","DataTable","classNames","columns","initialSelectionState","onEntitySelectionChange","onScroll","pageSize","rowAdditionState","rowDeletionState","toolbarComponent","scrollRef","useRef","rowSelection","setRowSelection","columnVisibility","setColumnVisibility","columnFilters","setColumnFilters","sorting","setSorting","useReactTable","handleRowSelectionChange","getCoreRowModel","getFilteredRowModel","getPaginationRowModel","getSortedRowModel","getFacetedRowModel","getFacetedUniqueValues","getRowClassnames","rows","rowVirtualizer","useVirtualizer","element","updaterFn","selectedIds","jsxs","cn","Table","TableHeader","headerGroup","TableRow","header","TableHead","flexRender","TableBody","virtualRow","cell","TableCell","line"],"mappings":"2gCAcA,IAAMA,EAAAA,CAAiBC,aAAAA,CAA6B,EAAE,CAAA,CAChDC,GAAwBD,aAAAA,CAAgC,IAAG,CAAA,CAAY,CAAA,CAE7E,SAASE,EAAAA,CAAeC,CAAAA,CAAmBC,CAAAA,CAA0B,CACnE,IAAMC,CAAAA,CAAaD,CAAAA,CAAO,IAAA,CAM1B,OAJKA,CAAAA,CAAO,GAAA,GACVA,CAAAA,CAAO,IAAM,IAAA,CAAK,GAAA,EAAI,CAAE,QAAA,EAAS,CAAA,CAG3BC,CAAAA,EACN,KAAK,eACH,OAAOC,MAAAA,CAAOC,KAAAA,CAAM,CAAC,MAAA,CAAkB,KAAK,CAAC,CAAA,CAAG,CAAC,GAAIJ,CAAAA,CAAkCC,CAAM,CAAC,CAAA,CAEhG,KAAK,WAAA,CACH,OAAOE,OAAOC,KAAAA,CAAM,CAAC,MAAA,CAAkB,KAAK,CAAC,CAAA,CAAG,CAAC,GAAIJ,EAA+BC,CAAM,CAAC,CAAA,CAE7F,KAAK,YAAA,CACH,OAAOE,MAAAA,CAAOC,KAAAA,CAAM,CAAC,MAAA,CAAkB,KAAK,CAAC,CAAA,CAAG,CAAC,GAAIJ,CAAAA,CAAgCC,CAAM,CAAC,CAAA,CAE9F,KAAK,kBAAA,CACH,OAAOE,MAAAA,CAAOC,KAAAA,CAAM,CAAC,MAAA,CAAkB,KAAK,CAAC,CAAA,CAAG,CAAC,GAAIJ,CAAAA,CAAsCC,CAAM,CAAC,CAAA,CAEpG,KAAK,aAAA,CACH,OAAOE,MAAAA,CAAOC,KAAAA,CAAM,CAAC,MAAA,CAAkB,KAAK,CAAC,EAAG,CAAC,GAAIJ,CAAAA,CAAiCC,CAAM,CAAC,CAAA,CAE/F,KAAK,SAAA,CACH,OAAOD,CAAAA,CAAQ,MAAA,CAAQK,CAAAA,EAASA,CAAAA,CAAK,MAAQJ,CAAAA,CAAO,GAAG,CAAA,CAEzD,QACE,MAAM,KAAA,CAAM,CAAA,gBAAA,EAAmBC,CAAoB,CAAA,CAAE,CAEzD,CACF,CAEA,SAASI,GAAgB,CAAE,QAAA,CAAAC,CAAS,CAAA,CAAyC,CAC3E,GAAM,CAACC,CAAAA,CAAeC,CAAqB,CAAA,CAAIC,UAAAA,CAAWX,EAAAA,CAAgB,EAAE,CAAA,CAE5E,OACEY,GAAAA,CAACf,GAAe,QAAA,CAAf,CAAwB,KAAA,CAAOY,CAAAA,CAC9B,QAAA,CAAAG,GAAAA,CAACb,EAAAA,CAAsB,QAAA,CAAtB,CAA+B,KAAA,CAAOW,CAAAA,CAAwB,QAAA,CAAAF,CAAAA,CAAS,CAAA,CAC1E,CAEJ,CAEA,SAASK,IAAuB,CAC9B,OAAOC,UAAAA,CAAWjB,EAAc,CAClC,CAEA,SAASkB,EAAAA,EAAgC,CACvC,OAAOD,UAAAA,CAAWf,EAAqB,CACzC,CCxCA,IAAMiB,EAAAA,CAA0B,CAAC,IAAA,CAAM,QAAQ,CAAA,CACzCC,EAAAA,CAA4B,CAAC,MAAA,CAAQ,UAAA,CAAY,UAAA,CAAY,MAAM,CAAA,CAElE,SAASC,EAAAA,CAAeC,CAAAA,CAA0BC,CAAAA,CAAeC,CAAAA,CAA6B,CACnG,IAAMC,CAAAA,CAAU,oCAAA,CACVC,EAAeC,CAAAA,CAAgBH,CAAAA,CAAQF,CAAgB,CAAA,CACvDM,CAAAA,CAAaF,CAAAA,EAAc,IAAA,EAAQJ,CAAAA,CACnCO,EAAaH,CAAAA,EAAc,UAAA,EAAc,EAAC,CAC1CI,CAAAA,CAAU,CAAA,QAAA,EAAWF,CAAU,CAAA,iBAAA,EAAoBA,CAAU,CAAA,OAAA,CAAA,CAEnE,GAAI,CAACF,CAAAA,CACH,MAAM,IAAI,KAAA,CAAM,CAAA,QAAA,EAAWE,CAAU,CAAA,yBAAA,CAA2B,CAAA,CAGlE,GAAIC,CAAAA,CAAW,MAAA,GAAW,CAAA,CACxB,MAAM,IAAI,MAAM,CAAA,QAAA,EAAWD,CAAU,CAAA,yCAAA,CAA2C,CAAA,CAGlF,IAAMG,CAAAA,CAA+BC,CAAAA,CAAwB,QAAA,CAAUH,CAAU,EAAE,IAAA,CAAK;AAAA,EAAA,CAAM,EACxFI,CAAAA,CAA4BC,CAAAA,CAAmBL,CAAU,CAAA,CACzDM,CAAAA,CAAqCH,EAAwB,CAAC,OAAO,EAAGH,CAAU,CAAA,CAClFO,EAAoBD,CAAAA,CAAgB,MAAA,CACxC,CAACE,CAAAA,CAAKC,CAAAA,GAAc,GAAGD,CAAG;AAAA,IAAA,EAASC,CAAS,CAAA;AAAA;AAAA;AAAA;AAAA,EAAA,CAAA,CAC5C,EACF,EACMC,CAAAA,CAAkBJ,CAAAA,CAAgB,OACtC,CAACE,CAAAA,CAAKC,CAAAA,GAAc,CAAA,EAAGD,CAAG;AAAA,IAAA,EAASC,CAAS,CAAA;AAAA;AAAA;AAAA,MAAA,EAAuCf,CAAK;AAAA;AAAA,EAAA,CAAA,CACxF,EACF,CAAA,CACMiB,CAAAA,CAA8BjB,CAAAA,GAAU,UAAYa,CAAAA,CAAoBG,CAAAA,CACxEE,CAAAA,CAA8BR,CAAAA,CAAgB,MAAA,CAAO,CAACI,CAAAA,CAAKC,CAAAA,GACxD,GAAGD,CAAG;AAAA,IAAA,EAASC,CAAS,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAA,CAAA,CAC9B,EAAE,CAAA,CAGCI,CAAAA,CADyBC,OAAOC,MAAAA,CAAO,cAAA,CAAgB,OAAO,CAAC,CAAA,CAAEf,CAAU,CAAA,CACf,OAAO,CAACQ,CAAAA,CAAKC,IAAc,CAE3F,IAAMO,EADgBC,IAAAA,CAAKF,MAAAA,CAAON,CAAAA,CAAU,YAAA,EAAc,OAAQ,MAAM,CAAC,EAAEd,CAAM,CAAA,EACvC,WAAW,MAAA,CAAO,CAACuB,CAAAA,CAAYC,CAAAA,GAAqB,CAC5F,IAAMC,CAAAA,CAAkB1B,IAAU,SAAA,CAAY,EAAA,CAAK,GAAGA,CAAK;AAAA,IAAA,CAAA,CAE3D,GAAIyB,CAAAA,CAAiB,QAAA,GAAa,OAAA,CAChC,OAAO,GAAGD,CAAU;AAAA,MAAA,EAAWC,EAAiB,IAAI,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAA,CAAA,CAGtD,GAAIA,CAAAA,CAAiB,KAAA,GAAU,OAAA,CAC7B,OAAO,GAAGD,CAAU;AAAA,MAAA,EAAWC,EAAiB,IAAI,CAAA;AAAA;AAAA;AAAA,MAAA,EAA2CC,CAAe;AAAA;AAAA,IAAA,CAAA,CAGhH,GAAID,CAAAA,CAAiB,KAAA,GAAU,cAAA,CAAgB,CAC7C,IAAME,CAAAA,CAAqBJ,IAAAA,CAAKF,MAAAA,CAAOI,CAAAA,CAAiB,YAAA,EAAc,MAAA,CAAQ,MAAM,CAAC,CAAA,CAAExB,CAAM,CAAA,CAMvF2B,CAAAA,CAHwBL,IAAAA,CAAKF,MAAAA,CAAOI,CAAAA,CAAiB,YAAA,EAAc,MAAO,MAAM,CAAC,CAAA,CACrFE,CAAAA,EAAoB,UAAA,EAAc,EACpC,CAAA,CAEwB,QAAU,OAAA,CAC5B,CAAA;AAAA;AAAA;AAAA,MAAA,EAAsCD,CAAe,CAAA;AAAA,QAAA,CAAA,CACrD,EAAA,CAEN,GAAID,CAAAA,CAAiB,YAAA,EAAc,OAAS,QAAA,CAC1C,OAAO,GAAGD,CAAU;AAAA,MAAA,EAAWC,EAAiB,IAAI,CAAA;AAAA,MAAA,EAAaA,CAAAA,CAAiB,YAAA,CAAa,KAAK,CAAA,EAAA,EAAKG,CAAmB,CAAA;AAAA,IAAA,CAAA,CAG9H,GAAIH,CAAAA,CAAiB,YAAA,EAAc,KAAA,CACjC,OAAO,GAAGD,CAAU;AAAA,MAAA,EAAWC,EAAiB,IAAI,CAAA;AAAA,MAAA,EAA+CA,CAAAA,CAAiB,YAAA,CAAa,KAAK,CAAA,EAAA,EAAKG,CAAmB,CAAA;AAAA,IAAA,CAElK,CAEA,OAAO,CAAA,EAAGJ,CAAU;AAAA,MAAA,EAAWC,EAAiB,IAAI;AAAA,EAAA,CACtD,EAAG,EAAE,CAAA,CAEL,OACE,CAAA,EAAGV,EAAU,IAAI,CAAA;AAAA;AAAA,KAAA,EAGdD,CAAG;AAAA,IAAA,EAASC,CAAAA,CAAU,IAAI,CAAA,0CAAA,EAA6CO,CAAAA,EAAsB,EAAE,CAAA;AAAA,EAAA,CAGtG,CAAA,CAAG,EAAE,CAAA,CAEL,OAAO,CACL,eAAA,CAAiBvB,CAAAA,CACjB,KAAA,CACE,CAAA,gBAAA,EAAmBQ,CAAO,CAAA;AAAA,EAAA,EACrBR,CAAgB,CAAA;AAAA;AAAA;AAAA,EAAA,EAGhBA,CAAgB,GAAGG,CAAO,CAAA;AAAA;AAAA,IAAA,EAExBM,CAAoB,CAAA,IAAA,EACpBS,CAAmB,CAAA,IAAA,EACnBC,CAAmB,KACrBC,CAA0B,CAAA;AAAA;AAAA,CAGnC,CACF,CAKO,SAASU,EAAAA,CACd9B,CAAAA,CACAC,EACA8B,CAAAA,CACA7B,CAAAA,CAC0B,CAE1B,IAAMK,EADeF,CAAAA,CAAgBH,CAAAA,CAAQF,CAAgB,CAAA,EAC5B,UAAA,EAAc,EAAC,CAEhD,GAAIO,CAAAA,CAAW,MAAA,GAAW,EACxB,OAAO,CACL,KAAA,CAAO,CAAA,CACP,QAAS,EACX,CAAA,CAGF,GAAM,CAAE,KAAA,CAAAyB,CAAM,EAAID,CAAAA,CAAQ,CAAA,EAAG/B,CAAgB,CAAA,SAAA,CAAW,CAAA,CAClDiC,CAAAA,CAAQF,CAAAA,CAAQ/B,CAAgB,CAAA,CAChCkC,CAAAA,CAAuB,CAACC,CAAAA,CAAsBC,IAAwC,CAC1F,IAAMC,CAAAA,CAAuBD,CAAAA,CAAiB,KAE9C,OAAOD,CAAAA,CACJ,MAAM,CAAA,CAAG,CAAC,EACV,GAAA,CAAKhD,CAAAA,EACJiD,CAAAA,CAAiB,KAAA,GAAU,QACtBjD,CAAAA,CAAKkD,CAAoB,IAAIpC,CAAK,CAAA,EAAKd,EAAKkD,CAAoB,CAAA,CAAE,OAAA,CACnElD,CAAAA,CAAKkD,CAAoB,CAC/B,CAAA,CACC,KAAK,IAAI,CACd,EACMC,CAAAA,CAAoBL,CAAAA,CAAM,GAAA,CAAKM,CAAAA,EAAW,CAC9C,GAAM,CAAE,GAAA,CAAAC,CAAI,EAAID,CAAAA,CACVE,CAAAA,CAAmB/B,CAAAA,CAAwB,QAAA,CAAUH,CAAU,CAAA,CAAE,MAAA,CACrE,CAACQ,CAAAA,CAAK2B,CAAAA,IAAmB,CAAE,GAAG3B,CAAAA,CAAK,CAAC2B,CAAa,EAAGH,CAAAA,CAAOG,CAAa,CAAE,CAAA,CAAA,CAC1E,EACF,CAAA,CACM7B,CAAAA,CAAkBH,CAAAA,CAAwB,OAAA,CAASH,CAAU,CAAA,CAAE,MAAA,CAAO,CAACQ,CAAAA,CAAK2B,CAAAA,GAAkB,CAClG,IAAMzB,CAAAA,CAAkBsB,CAAAA,CAAOG,CAAa,EAE5C,OAAO,CACL,GAAG3B,CAAAA,CACH,CAAC2B,CAAa,EAAGzB,CAAAA,GAAkBhB,CAAK,EAAIgB,CAAAA,CAAgBhB,CAAK,EAAIgB,CAAAA,EAAiB,OACxF,CACF,CAAA,CAAG,EAAE,CAAA,CACCN,EAAkBC,CAAAA,CAAmBL,CAAU,EAAE,MAAA,CACrD,CAACQ,EAAK2B,CAAAA,IAAmB,CAAE,GAAG3B,CAAAA,CAAK,CAAC2B,CAAa,EAAGH,EAAOG,CAAa,CAAE,GAC1E,EACF,CAAA,CACMC,CAAAA,CAAyBjC,EAAwB,CAAC,cAAc,CAAA,CAAGH,CAAU,EAAE,MAAA,CACnF,CAACQ,CAAAA,CAAK2B,CAAAA,GAAkB,CAEtB,IAAME,CAAAA,CADwBpB,KAAKF,MAAAA,CAAOoB,CAAAA,CAAe,MAAM,CAAC,CAAA,CAAEnC,CAAU,CAAA,CAC5B,cAAc,MAAA,EAAU,EAAA,CAClEsC,CAAAA,CAAgBrB,IAAAA,CAAKF,OAAOsB,CAAAA,CAAmB,MAAM,CAAC,CAAA,CAAE1C,CAAM,CAAA,CAC9DkC,CAAAA,CAAmBU,GAAoBD,CAAAA,EAAe,UAAA,EAAc,EAAE,CAAA,CACtER,CAAAA,CAAuBD,CAAAA,EAAkB,MAAQ,EAAA,CACjDW,CAAAA,CAAwBX,CAAAA,EAAkB,KAAA,EAAS,SACnDY,CAAAA,CAAaT,CAAAA,CAAOG,CAAa,CAAA,CAEvC,GAAI,CAACL,CAAAA,CACH,MAAM,IAAI,KAAA,CAAM,mEAAmEK,CAAa,CAAA,CAAA,CAAG,CAAA,CAGrG,GAAI,MAAM,OAAA,CAAQM,CAAU,EAC1B,OAAO,CACL,GAAGjC,CAAAA,CACH,CAAC2B,CAAa,EAAGR,EAAqBc,CAAAA,CAAYZ,CAAgB,CACpE,CAAA,CAGF,IAAMa,EACJF,CAAAA,GAA0B,QAAA,CACtBC,CAAAA,GAAaX,CAAoB,EAC/BW,CAAAA,GAAaX,CAAoB,CAAA,GAAmCpC,CAAK,GAC1E+C,CAAAA,GAAaX,CAAoB,CAAA,EAAkC,OAAA,CAE1E,OAAO,CACL,GAAGtB,EACH,CAAC2B,CAAa,EAAGO,CACnB,CACF,CAAA,CACA,EACF,CAAA,CAEA,OAAO,CAAE,GAAA,CAAAT,CAAAA,CAAK,GAAGC,CAAAA,CAAkB,GAAG5B,CAAAA,CAAiB,GAAGF,EAAiB,GAAGgC,CAAuB,CACvG,CAAC,CAAA,CAED,OAAO,CACL,KAAA,CAAAX,CAAAA,CACA,OAAA,CAASM,CACX,CACF,CAMO,SAASY,EAAAA,CACdlD,EACAC,CAAAA,CACA8B,CAAAA,CACA7B,CAAAA,CAC8B,CAE9B,IAAMK,CAAAA,CADeF,CAAAA,CAAgBH,EAAQF,CAAgB,CAAA,EAC5B,YAAc,EAAC,CAEhD,GAAIO,CAAAA,CAAW,SAAW,CAAA,CACxB,OAAO,CACL,KAAA,CAAO,CAAA,CACP,QAAS,EACX,CAAA,CAGF,GAAM,CAAE,KAAA,CAAAyB,CAAM,EAAID,CAAAA,CAAQ,CAAA,EAAG/B,CAAgB,CAAA,SAAA,CAAW,CAAA,CAElDsC,CAAAA,CADQP,CAAAA,CAAQ/B,CAAgB,CAAA,CACN,GAAA,CAAKuC,CAAAA,EAAW,CAC9C,IAAME,CAAAA,CAAmB/B,CAAAA,CAAwB,QAAA,CAAUH,CAAU,EAAE,MAAA,CACrE,CAACQ,EAAKC,CAAAA,IAAe,CACnB,GAAGD,CAAAA,CACH,CAACC,CAAS,EAAG,CACX,KAAA,CAAOuB,CAAAA,CAAOvB,CAAS,CAAA,CACvB,SAAU,KAAA,CACV,KAAA,CAAO,SAAA,CACP,GAAA,CAAK,EACP,CACF,CAAA,CAAA,CACA,EACF,CAAA,CACMH,EAAkBH,CAAAA,CAAwB,OAAA,CAASH,CAAU,CAAA,CAAE,OAAO,CAACQ,CAAAA,CAAK2B,CAAAA,GAAkB,CAClG,IAAMS,CAAAA,CAAkB3B,IAAAA,CAAKF,MAAAA,CAAOoB,CAAAA,CAAe,MAAM,CAAC,CAAA,CAAEnC,CAAU,CAAA,CAChE6C,CAAAA,CAAiBb,EAAOG,CAAa,CAAA,CAE3C,OAAO,CACL,GAAG3B,CAAAA,CACH,CAAC2B,CAAa,EAAG,CACf,MAAOU,CAAAA,CAAiBC,EAAAA,CAAgBD,CAAAA,CAAgBnD,CAAK,EAAI,IAAA,CACjE,QAAA,CAAU,GACRmD,CAAAA,EAAkBA,CAAAA,CAAenD,CAAK,CAAA,GAAM,IAAA,EAAQkD,CAAAA,CAAgB,KAAA,GAAU,SAAWlD,CAAAA,GAAU,SAAA,CAAA,CAErG,KAAA,CAAAA,CAAAA,CACA,IAAKmD,CAAAA,CAAiBA,CAAAA,CAAe,GAAA,CAAM,IAC7C,CACF,CACF,CAAA,CAAG,EAAE,CAAA,CACCzC,EAAkBC,CAAAA,CAAmBL,CAAU,CAAA,CAAE,MAAA,CACrD,CAACQ,CAAAA,CAAKC,CAAAA,IAAe,CACnB,GAAGD,CAAAA,CACH,CAACC,CAAS,EAAG,CACX,KAAA,CAAOuB,EAAOvB,CAAS,CAAA,CACvB,SAAU,KAAA,CACV,KAAA,CAAO,UACP,GAAA,CAAK,EACP,CACF,CAAA,CAAA,CACA,EACF,CAAA,CACM2B,CAAAA,CAAyBjC,CAAAA,CAAwB,CAAC,cAAc,CAAA,CAAGH,CAAU,CAAA,CAAE,OACnF,CAACQ,CAAAA,CAAK2B,IAAkB,CACtB,IAAMO,EAAQV,CAAAA,CAAOG,CAAa,CAAA,CAC5BF,CAAAA,CAAMS,GAAO,GAAA,CACbK,CAAAA,CAAkBf,EAAO,CAAA,EAAGG,CAAa,WAAW,CAAA,CAAqB,KAAA,CAE/E,OAAO,CACL,GAAG3B,CAAAA,CACH,CAAC2B,CAAa,EAAG,CACf,MAAOY,CAAAA,CACP,GAAA,CAAAd,CAAAA,CACA,KAAA,CAAAS,EACA,QAAA,CAAU,KAAA,CACV,KAAA,CAAAhD,CACF,CACF,CACF,CAAA,CACA,EACF,EAEA,OAAO,CAAE,GAAGwC,CAAAA,CAAkB,GAAG5B,EAAiB,GAAGF,CAAAA,CAAiB,GAAGgC,CAAuB,CAClG,CAAC,CAAA,CAED,OAAO,CACL,KAAA,CAAAX,EACA,OAAA,CAASM,CACX,CACF,CAKA,SAASe,EAAAA,CACPrC,CAAAA,CACAf,EACmD,CACnD,OAAI,MAAM,OAAA,CAAQe,CAAS,CAAA,CAClBA,CAAAA,CAAU,OAAO,CAACuC,CAAAA,CAA0BC,CAAAA,GAAyB,CAC1E,GAAIA,CAAAA,CAAKvD,CAAK,CAAA,EAAKuD,CAAAA,CAAK,QAAS,CAC/B,IAAMC,EAAS,CACb,GAAA,CAAKD,EAAK,GAAA,CACV,QAAA,CAAkBA,CAAAA,CAAK,KAAA,GAAU,MAAQvD,CAAAA,GAAU,SAAA,CACnD,MAAAA,CAAAA,CACA,KAAA,CAAOuD,EAAKvD,CAAK,CAAA,EAAKuD,CAAAA,CAAK,OAC7B,EAEAD,CAAAA,CAAO,IAAA,CAAKE,CAAM,EACpB,CAEA,OAAOF,CACT,CAAA,CAAG,EAAE,EAGAvC,CAAAA,CAAUf,CAAK,CAAA,EAAKe,CAAAA,CAAU,SAAW,IAClD,CAKO,SAAS0C,EAAAA,CACd1D,EACA2D,CAAAA,CACA1D,CAAAA,CACAC,EACA0D,CAAAA,CACAC,CAAAA,CACQ,CACR,IAAMzD,CAAAA,CAAeC,CAAAA,CAAgBH,CAAAA,CAAQF,CAAgB,CAAA,CACvDM,CAAAA,CAAaF,GAAc,IAAA,EAAQJ,CAAAA,CACnCO,EAAaH,CAAAA,EAAc,UAAA,EAAc,EAAC,CAC1C0D,EAAuBC,CAAAA,CAAW/D,CAAgB,EAExD,GAAIO,CAAAA,CAAW,SAAW,CAAA,CACxB,OAAO,EAAA,CAGT,IAAMyD,EAAOC,CAAAA,CAA2B1D,CAAAA,CAAYsD,CAAY,CAAA,CAC1DpB,EAAmByB,CAAAA,CAAuB3D,CAAAA,CAAYyD,CAAI,CAAA,CAC1DnD,EAAkBsD,EAAAA,CAAsBR,CAAAA,CAAUpD,EAAYyD,CAAAA,CAAM/D,CAAK,EACzEU,CAAAA,CAAkByD,EAAAA,CAAsBT,CAAAA,CAAUpD,CAAAA,CAAYyD,CAAI,CAAA,CAClErB,CAAAA,CAAyB0B,GAA6B9D,CAAAA,CAAYqD,CAAAA,CAAcI,CAAI,CAAA,CACpFM,CAAAA,CAAetE,CAAAA,CACfuE,CAAAA,CAAqBC,EAAgCtE,CAAAA,CAAQF,CAAAA,CAAkBC,CAAK,CAAA,CAE1F,OACE,iCAAiCK,CAAU,CAAA;AAAA,QAAA,EAChCwD,CAAoB,CAAA;AAAA;AAAA,aAAA,EAEfrB,CAAgB,CAAA,EAAG5B,CAAe,CAAA,EAAGF,CAAe,GAAGgC,CAAsB;AAAA;AAAA;AAAA,IAAA,EAEtF2B,CAAY,CAAA;AAAA;AAAA,IAAA,EAEZC,CAAkB,CAAA;AAAA;AAAA;AAAA,CAK7B,CAKA,SAASN,CAAAA,CAA2B1D,CAAAA,CAAyBsD,EAA0C,CACrG,IAAMY,CAAAA,CAA4ClE,CAAAA,CAC/C,GAAA,CAAKS,CAAAA,EACAA,CAAAA,CAAU,UAAA,GAAe,MACpBA,CAAAA,CAAU,IAAA,CAGZ,EACR,CAAA,CACA,MAAA,CAAO,OAAO,CAAA,CACXgD,CAAAA,CAAOU,KAAKD,CAAAA,CAAwBZ,CAAY,CAAA,CAEtD,OAAOc,IAAAA,CACLpE,CAAAA,CAAW,GAAA,CAAKS,CAAAA,EAAcA,EAAU,IAAI,CAAA,CAC5CgD,CACF,CACF,CAKA,SAAStD,CAAAA,CAAwBkE,CAAAA,CAA+BrE,EAA8C,CAC5G,OAAI,KAAA,CAAM,OAAA,CAAQqE,CAAI,CAAA,CACbA,CAAAA,CAAK,MAAA,CAAO,CAAC7D,CAAAA,CAA0B8D,CAAAA,GACrC9D,CAAAA,CAAI,MAAA,CAAOL,CAAAA,CAAwBmE,CAAAA,CAAetE,CAAU,CAAC,EACnE,EAAE,CAAA,CAGoBA,CAAAA,CAAW,OACnCS,CAAAA,EAAcA,CAAAA,CAAU,KAAA,GAAU4D,CAAAA,EAAQ5D,EAAU,SAAA,GAAc,OACrE,CAAA,CAE0B,GAAA,CAAKA,CAAAA,EAAcA,CAAAA,CAAU,IAAI,CAC7D,CAKA,SAASJ,CAAAA,CAAmBL,CAAAA,CAA8C,CAGxE,OAF2Bc,MAAAA,CAAOC,MAAAA,CAAO,OAAA,CAAS,UAAU,CAAC,CAAA,CAAEf,CAAU,CAAA,CAE/C,GAAA,CAAKS,CAAAA,EAAcA,CAAAA,CAAU,IAAI,CAC7D,CAEA,SAASkD,CAAAA,CAAuBY,CAAAA,CAA+Bd,EAA8B,CAC3F,IAAMvB,CAAAA,CAAmBkC,IAAAA,CAAKjE,EAAwB,QAAA,CAAUoE,CAAgB,CAAA,CAAed,CAAI,CAAA,CAQnG,OAPyBe,OAAAA,CAAQtC,CAAgB,EAAE,MAAA,CAAO,CAAC1B,CAAAA,CAAK,CAAC2B,CAAAA,CAAeO,CAAK,CAAA,GAAM,CACzF,IAAME,CAAAA,CAAkB3B,IAAAA,CAAKF,MAAAA,CAAOoB,CAAAA,CAAe,MAAM,CAAC,CAAA,CAAEoC,CAAgB,EACtEE,CAAAA,CAAaC,CAAAA,CAAe9B,CAAAA,CAAgB,QAAA,CAAUF,GAAO,KAAA,EAAS,IAAI,CAAA,CAEhF,OAAO,GAAGlC,CAAG;AAAA,MAAA,EAAW2B,CAAa,KAAKsC,CAAU,CAAA,CACtD,EAAG,EAAE,CAGP,CAEA,SAASZ,EAAAA,CAAsBT,EAAkBmB,CAAAA,CAA+Bd,CAAAA,CAA8B,CAC5G,IAAMrD,CAAAA,CAAkBgE,KAAK/D,CAAAA,CAAmBkE,CAAgB,EAAed,CAAI,CAAA,CAoDnF,OAnDoDe,OAAAA,CAAQpE,CAAe,EAC1B,MAAA,CAAO,CAACI,EAAK,CAAC2B,CAAAA,CAAewC,CAAc,CAAA,GAAM,CAChG,IAAMC,CAAAA,CAAaD,CAAAA,CAAe,MAC5BE,CAAAA,CAAYD,CAAAA,EAAY,KAAO,CAAA,CAAA,EAAIA,CAAAA,CAAW,IAAI,CAAA,CAAA,CAAA,CAAM,MAAA,CACxDE,CAAAA,CAAYF,GAAY,IAAA,CAAOA,CAAAA,CAAW,KAAO,MAAA,CACjDG,CAAAA,CAAgBH,GAAY,QAAA,CAAW,CAAA,CAAA,EAAIA,EAAW,QAAQ,CAAA,CAAA,CAAA,CAAM,OACpEI,CAAAA,CAAmBJ,CAAAA,EAAY,iBAAmB,CAAA,CAAA,EAAIA,CAAAA,CAAW,gBAAgB,CAAA,CAAA,CAAA,CAAM,MAAA,CACvFK,EAASL,CAAAA,EAAY,MAAA,CAASA,EAAW,MAAA,CAAS,MAAA,CAClDM,EAAQN,CAAAA,EAAY,KAAA,CAAQA,EAAW,KAAA,CAAQ,MAAA,CAC/CO,EAAOP,CAAAA,EAAY,IAAA,CAAO,IAAIA,CAAAA,CAAW,IAAI,IAAM,MAAA,CAEzD,OAAKC,EAIAF,CAAAA,CAAe,KAAA,EAAsB,GAAA,CAEtC,CAAA,EAAGnE,CAAG;AAAA,MAAA,EAAW2B,CAAa,CAAA;AAAA;AAAA;AAAA,sBAAA,EAGL4C,CAAa;AAAA,8BAAA,EACLC,CAAgB;AAAA,kBAAA,EAC5BH,CAAS;AAAA,kBAAA,EACTC,CAAS;AAAA,oBAAA,EACPG,CAAM;AAAA,mBAAA,EACPC,CAAK;AAAA,kBAAA,EACNC,CAAI;AAAA;AAAA;AAAA,OAAA,CAAA,CAQ3B,GAAG3E,CAAG;AAAA,MAAA,EAAW2B,CAAa,CAAA;AAAA;AAAA;AAAA,kBAAA,EAGTiB,CAAQ,IAAIjB,CAAa,CAAA;AAAA,sBAAA,EACrB4C,CAAa;AAAA,8BAAA,EACLC,CAAgB;AAAA,kBAAA,EAC5BH,CAAS;AAAA,kBAAA,EACTC,CAAS;AAAA,oBAAA,EACPG,CAAM;AAAA,mBAAA,EACPC,CAAK;AAAA,kBAAA,EACNC,CAAI;AAAA;AAAA;AAAA,OAAA,CAAA,CAhClB3E,CAqCX,CAAA,CAAG,EAAE,CAGP,CAEA,SAASoD,EAAAA,CACPR,CAAAA,CACAmB,CAAAA,CACAd,CAAAA,CACA/D,CAAAA,CACQ,CACR,IAAMY,CAAAA,CAAkB8D,IAAAA,CAAKjE,CAAAA,CAAwB,OAAA,CAASoE,CAAgB,CAAA,CAAed,CAAI,CAAA,CA+BjG,OA9BoDe,OAAAA,CAAQlE,CAAe,CAAA,CAC1B,MAAA,CAAO,CAACE,CAAAA,CAAK,CAAC2B,CAAAA,CAAewC,CAAc,CAAA,GAAM,CAChG,IAAM/B,CAAAA,CAAkB3B,IAAAA,CAAKF,MAAAA,CAAOoB,CAAAA,CAAe,MAAM,CAAC,CAAA,CAAEoC,CAAgB,CAAA,CACtE,CAAE,QAAA,CAAAa,CAAS,CAAA,CAAIxC,EACf6B,CAAAA,CACJE,CAAAA,CAAe,QAAA,EAAY,KAAA,CAAM,OAAA,CAAQA,CAAAA,CAAe,KAAK,CAAA,CACzD,OACAD,CAAAA,CAAeU,CAAAA,CAAUT,CAAAA,CAAe,KAAK,CAAA,CAEnD,OAAIA,CAAAA,CAAe,GAAA,CACV,GAAGnE,CAAG;AAAA,MAAA,EAAW2B,CAAa,CAAA;AAAA;AAAA;AAAA,YAAA,EAA0DzC,CAAK,KAAK+E,CAAU;AAAA;AAAA;AAAA,OAAA,CAAA,CAGhHA,CAAAA,CAKH,GAAGjE,CAAG;AAAA,MAAA,EAAW2B,CAAa,CAAA;AAAA;AAAA;AAAA,kBAAA,EAGTiB,CAAQ,IAAIjB,CAAa,CAAA;AAAA,oBAAA,EACvBiD,CAAQ,CAAA;AAAA,YAAA,EAChB1F,CAAK,KAAK+E,CAAU;AAAA;AAAA;AAAA,OAAA,CAAA,CAT5BjE,CAcX,CAAA,CAAG,EAAE,CAGP,CAEA,SAASsD,EAAAA,CACPS,CAAAA,CACAlB,CAAAA,CACAI,CAAAA,CACQ,CACR,IAAMrB,CAAAA,CAAyBgC,KAAKjE,CAAAA,CAAwB,cAAA,CAAgBoE,CAAgB,CAAA,CAAed,CAAI,CAAA,CAyC/G,OAxCwBe,OAAAA,CAAQpC,CAAsB,CAAA,CACL,MAAA,CAAO,CAAC5B,CAAAA,CAAK,CAAC2B,EAAewC,CAAc,CAAA,GAAM,CAChG,IAAM/B,CAAAA,CAAkB3B,IAAAA,CAAKF,MAAAA,CAAOoB,CAAAA,CAAe,MAAM,CAAC,CAAA,CAAEoC,CAAgB,CAAA,CACtE,CAAE,SAAA,CAAAc,CAAAA,CAAW,YAAA,CAAAC,CAAa,CAAA,CAAI1C,CAAAA,CAEpC,GAAIyC,CAAAA,GAAc,cAAA,EAAkBC,CAAAA,EAAc,IAAA,GAAS,QAAA,CAAU,CACnE,IAAMC,CAAAA,CAAa,CAAA;AAAA;AAAA;AAAA,oBAAA,EACjBlC,CAAAA,CAAalB,CAAa,CAAA,CAAE,GAAA,EAAO,EACrC,CAAA;AAAA;AAAA;AAAA;AAAA,CAAA,CACMqD,CAAAA,CAAU,CAAA;AAAA;AAAA;AAAA,oBAAA,EACdb,CAAAA,CAAe,KAAO,EACxB,CAAA;AAAA;AAAA;AAAA;AAAA,CAAA,CAEA,OAAO,GAAGnE,CAAG;AAAA,MAAA,EAAW2B,CAAa,CAAA;AAAA,QAAA,EAAgBqD,CAAO,WAAWD,CAAU,CAAA,OAAA,CACnF,CAEA,GAAIF,CAAAA,GAAc,cAAA,EAAkBC,CAAAA,EAAc,IAAA,GAAS,UAAA,CAAY,CACrE,IAAMG,CAAAA,CAAwCd,EAAe,aAAA,EAAe,UAAA,EAAY,OACtF,CAACe,CAAAA,CAA0BzD,CAAAA,GAClB,CAAA,EAAGyD,CAAgB,CAAA;AAAA;AAAA,wBAAA,EAAqEzD,CAAG,CAAA;AAAA;AAAA;AAAA,CAAA,CAEpG,EACF,CAAA,CAEM0D,CAAAA,CAAAA,CADehB,CAAAA,CAAe,aAAA,EAAe,OAAA,EAAqD,EAAC,EAClD,MAAA,CAAO,CAACiB,CAAAA,CAAuBC,CAAAA,GAC7E,GAAGD,CAAa,CAAA;AAAA,wBAAA,EAA8CC,EAAK,GAAG,CAAA;AAAA;AAAA,CAAA,CAC5E,EAAE,CAAA,CACCN,CAAAA,CAAaE,CAAAA,CACf,CAAA;AAAA;AAAA;AAAA,EAAyDA,CAAiB,CAAA;AAAA;AAAA;AAAA,CAAA,CAC1E,EAAA,CACED,EAAUG,CAAAA,CACZ,CAAA;AAAA;AAAA;AAAA;AAAA,EAA6EA,CAAc,CAAA;AAAA;AAAA;AAAA;AAAA,CAAA,CAC3F,EAAA,CAEJ,OAAO,CAAA,EAAGnF,CAAG;AAAA,MAAA,EAAW2B,CAAa,CAAA;AAAA,QAAA,EAAgBoD,CAAU,CAAA,QAAA,EAAWC,CAAO,SACnF,CAEA,OAAO,GAAGhF,CAAG;AAAA,CACf,EAAG,EAAE,CAGP,CAEA,SAASkE,CAAAA,CACPL,EACA3B,CAAAA,CACe,CACf,OAAInD,EAAAA,CAAc,QAAA,CAAS8E,CAAI,CAAA,CACtB3B,CAAAA,EAAO,UAAS,CAAE,OAAA,CAAQ,KAAM,KAAK,CAAA,CAAI,CAAA,CAAA,EAAIA,CAAAA,EAAO,UAAS,CAAE,OAAA,CAAQ,KAAM,KAAK,CAAC,IAAM,IAAA,CAG3FpD,EAAAA,CAAY,SAAS+E,CAAI,CAAA,CAC5B,IAAI3B,CAAAA,EAAO,QAAA,GAAW,OAAA,CAAQ,IAAA,CAAM,KAAK,CAAA,EAAK,MAAM,CAAA,CAAA,CAAA,CACnDA,CAAAA,EAAO,UAAS,EAAK,IAC5B,CAEA,SAASuB,CAAAA,CAAgCtE,EAAgBF,CAAAA,CAA0BC,CAAAA,CAAuB,CAExG,IAAM6E,CAAAA,CADezE,EAAgBH,CAAAA,CAAQF,CAAgB,GACtB,UAAA,EAAc,GAC/CqG,CAAAA,CAAwB3F,CAAAA,CAAwB,SAAUoE,CAAgB,CAAA,CAC1EwB,EAAuB5F,CAAAA,CAAwB,OAAA,CAASoE,CAAgB,CAAA,CACxEyB,CAAAA,CAA8B7F,EAAwB,cAAA,CAAgBoE,CAAgB,EAExF0B,CAAAA,CAASH,CAAAA,CAAsB,OAAO,CAACtF,CAAAA,CAAK2B,IACvC,CAAA,EAAG3B,CAAG,GAAG2B,CAAa;AAAA,EAAA,CAAA,CAC5B,EAAE,CAAA,CAEL,OAAA8D,CAAAA,EAAUF,CAAAA,CAAqB,MAAA,CAAO,CAACvF,CAAAA,CAAK2B,CAAAA,GACnC,CAAA,EAAG3B,CAAG,CAAA,IAAA,EAAO2B,CAAa,CAAA;AAAA;AAAA,QAAA,EAA4BzC,CAAK;AAAA;AAAA,EAAA,CAAA,CACjE,EAAE,CAAA,CAELuG,CAAAA,EAAUD,CAAAA,CAA4B,MAAA,CAAO,CAACxF,CAAAA,CAAK2B,CAAAA,GAA0B,CAC3E,IAAM+D,CAAAA,CAAwBjF,IAAAA,CAAKF,OAAOoB,CAAAA,CAAe,MAAM,CAAC,CAAA,CAAEoC,CAAgB,CAAA,CAC5E4B,CAAAA,CAAmBD,CAAAA,EAAuB,YAAA,EAAc,IAAA,EAAQ,QAAA,CAChEE,CAAAA,CAAyBF,CAAAA,EAAuB,YAAA,EAAc,MAAA,EAAU,EAAA,CAExEG,EAD2BpF,IAAAA,CAAKF,MAAAA,CAAOqF,CAAAA,CAAwB,MAAM,CAAC,CAAA,CAAEzG,CAAM,CAAA,EACrB,UAAA,EAAc,EAAC,CACxEmC,CAAAA,CACJoE,CAAAA,EAAuB,YAAA,EAAc,KAAA,EAAS,6CAAA,CAE1C1D,EADmBvB,IAAAA,CAAKF,MAAAA,CAAOe,CAAAA,CAAsB,MAAM,CAAC,CAAA,CAAEuE,CAA4B,CAAA,CACjD,MAC3CC,CAAAA,CAAO,EAAA,CAYX,GAVIH,CAAAA,GAAqB,QAAA,GACnB3D,CAAAA,GAA0B,QAAA,GAC5B8D,CAAAA,CAAO,KAAKnE,CAAa,CAAA;AAAA;AAAA,IAAA,EAAsBL,CAAoB;AAAA;AAAA,EAAA,CAAA,CAAA,CAGjEU,CAAAA,GAA0B,OAAA,GAC5B8D,CAAAA,CAAO,CAAA,EAAA,EAAKnE,CAAa,CAAA;AAAA;AAAA,MAAA,EAAwBL,CAAoB,CAAA;AAAA;AAAA;AAAA,QAAA,EAA6CpC,CAAK;AAAA;AAAA;AAAA,EAAA,CAAA,CAAA,CAAA,CAIvHyG,CAAAA,GAAqB,YAAcE,CAAAA,CAA6B,MAAA,CAAQ,CAC1E,IAAME,CAAAA,CAAiCF,CAAAA,CAA6B,MAAA,CAAO,CAACG,CAAAA,CAAK/F,IAAc,CAC7F,GAAIA,EAAU,KAAA,GAAU,OAAA,CACtB,OAAO,CAAA,EAAG+F,CAAG,CAAA,QAAA,EAAW/F,CAAAA,CAAU,IAAI,CAAA;AAAA;AAAA;AAAA,UAAA,EAAmDf,CAAK;AAAA;AAAA,CAAA,CAGhG,GAAIe,CAAAA,CAAU,KAAA,GAAU,cAAA,CAAgB,CACtC,IAAMW,CAAAA,CAAkB1B,CAAAA,GAAU,SAAA,CAAY,EAAA,CAAK,CAAA,EAAGA,CAAK;AAAA,IAAA,CAAA,CACrD2B,CAAAA,CAAqBJ,IAAAA,CAAKF,MAAAA,CAAON,CAAAA,CAAU,YAAA,EAAc,MAAA,CAAQ,MAAM,CAAC,CAAA,CAAEd,CAAM,CAAA,CAIhF2B,CAAAA,CAHwBL,IAAAA,CAAKF,OAAON,CAAAA,CAAU,YAAA,EAAc,KAAA,CAAO,MAAM,CAAC,CAAA,CAC9EY,CAAAA,EAAoB,UAAA,EAAc,EACpC,CAAA,CAEwB,KAAA,GAAU,OAAA,CAC5B,CAAA;AAAA;AAAA;AAAA,MAAA,EAAsCD,CAAe,CAAA;AAAA,QAAA,CAAA,CACrD,EAAA,CAEN,GAAIX,CAAAA,CAAU,YAAA,EAAc,IAAA,GAAS,QAAA,CACnC,OAAO,CAAA,EAAG+F,CAAG,CAAA,EAAA,EAAK/F,CAAAA,CAAU,IAAI,CAAA;AAAA,MAAA,EAAaA,CAAAA,CAAU,YAAA,CAAa,KAAK,CAAA,EAAA,EAAKa,CAAmB,CAAA;AAAA,IAAA,CAAA,CAGnG,GAAIb,EAAU,YAAA,EAAc,KAAA,CAC1B,OAAO,CAAA,EAAG+F,CAAG,CAAA,EAAA,EAAK/F,CAAAA,CAAU,IAAI,CAAA;AAAA,MAAA,EAA+CA,CAAAA,CAAU,YAAA,CAAa,KAAK,CAAA,EAAA,EAAKa,CAAmB,CAAA;AAAA,IAAA,CAEvI,CAEA,OAAIb,CAAAA,CAAU,SAAA,GAAc,QACnB,CAAA,EAAG+F,CAAG,CAAA,EAAA,EAAK/F,CAAAA,CAAU,IAAI,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA,CAG3B,CAAA,EAAG+F,CAAG,CAAA,EAAA,EAAK/F,CAAAA,CAAU,IAAI;AAAA,EAAA,CAClC,CAAA,CAAG,EAAE,CAAA,CAEL6F,CAAAA,CACE,OAAOnE,CAAa,CAAA;AAAA;AAAA;AAAA,MAAA,EAGXA,CAAa,CAAA;AAAA,EAAyCoE,CAA8B,CAAA;AAAA,EAEjG,CAEA,OAAO,CAAA,EAAG/F,CAAG,GAAG8F,CAAI,CAAA,CACtB,CAAA,CAAG,EAAE,CAAA,CAEEL,CACT,CAKO,SAASQ,EAAAA,CAAwB1G,EAAoBJ,CAAAA,CAAgBsC,CAAAA,CAAqB,CAC/F,IAAMpC,CAAAA,CAAeoB,IAAAA,CAAKF,MAAAA,CAAOhB,CAAAA,CAAY,MAAM,CAAC,CAAA,CAAEJ,CAAM,EACtDK,CAAAA,CAAaH,CAAAA,EAAc,YAAc,EAAC,CAC1C0D,CAAAA,CAAuBC,CAAAA,CAAW3D,CAAAA,EAAc,MAAA,EAAU,EAAE,CAAA,CAC5DS,CAAAA,CAAkBoG,GAAsB1G,CAAAA,CAAYiC,CAAG,EAE7D,OAAIlC,CAAAA,GAAe,QAAA,CAEf,CAAA,8BAAA,EAAiCA,CAAU,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA,CAY7C,iCAAiCA,CAAU,CAAA;AAAA,QAAA,EAChCwD,CAAoB,CAAA;AAAA;AAAA,EAE5BjD,CAAAA,CAAkB,CAAA;AAAA,KAAA,EAAuBA,CAAe;AAAA;AAAA,CAAA,CAAc,EAAE,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAO/E,CAEA,SAASoG,EAAAA,CAAsBnC,CAAAA,CAA+BtC,CAAAA,CAAqB,CAejF,OAdwB9B,CAAAA,CAAwB,OAAA,CAASoE,CAAgB,EACxB,MAAA,CAAO,CAAC/D,CAAAA,CAAK2B,CAAAA,GAE1D,GAAG3B,CAAG;AAAA,MAAA,EACG2B,CAAa,CAAA;AAAA;AAAA;AAAA,kBAAA,EAGDF,CAAG,IAAIE,CAAa,CAAA;AAAA;AAAA;AAAA,OAAA,CAAA,CAK1C,EAAE,CAGP,CAEO,SAASwE,EAAAA,CACdlH,CAAAA,CACAE,CAAAA,CACAiH,CAAAA,CACA3E,CAAAA,CACQ,CACR,IAAMpC,CAAAA,CAAeC,EAAgBH,CAAAA,CAAQF,CAAgB,CAAA,CACvDO,CAAAA,CAAaH,CAAAA,EAAc,UAAA,EAAc,EAAC,CAC1C0D,CAAAA,CAAuBC,CAAAA,CAAW3D,CAAAA,EAAc,MAAA,EAAU,EAAE,CAAA,CAElE,GAAIG,CAAAA,CAAW,SAAW,CAAA,CACxB,OAAO,EAAA,CAGT,IAAMyD,CAAAA,CAAOC,CAAAA,CAA2B1D,CAAAA,CAAY4G,CAAU,CAAA,CACxD1E,CAAAA,CAAmByB,CAAAA,CAAuB3D,CAAAA,CAAYyD,CAAI,CAAA,CAC1DnD,CAAAA,CAAkBuG,EAAAA,CAAsB7G,EAAYyD,CAAAA,CAAM,SAAA,CAAWxB,CAAG,CAAA,CACxEG,CAAAA,CAAyB0E,EAAAA,CAA6B9G,CAAAA,CAAYyD,CAAI,CAAA,CACtEM,CAAAA,CAAetE,CAAAA,CACfuE,CAAAA,CAAqBC,CAAAA,CAAgCtE,CAAAA,CAAQoE,CAAAA,CAAc,SAAS,EAE1F,OACE,CAAA;AAAA,QAAA,EACWR,CAAoB,CAAA;AAAA;AAAA,YAAA,EAEhBtB,CAAG,CAAA,OAAA,EACTC,CAAgB,CAAA,MAAA,EAChB5B,CAAe;AAAA,MAAA,EACf8B,CAAsB;AAAA;AAAA;AAAA,IAAA,EAGxB2B,CAAY,CAAA;AAAA,MAAA,EACVC,CAAkB,CAAA;AAAA;AAAA;AAAA,CAK/B,CAEA,SAAS6C,EAAAA,CACPtC,CAAAA,CACAd,CAAAA,CACAsD,CAAAA,CACA9E,CAAAA,CACQ,CACR,IAAM3B,CAAAA,CAAkB8D,IAAAA,CAAKjE,CAAAA,CAAwB,OAAA,CAASoE,CAAgB,CAAA,CAAed,CAAI,CAAA,CA0BjG,OAzBwBe,OAAAA,CAAQlE,CAAe,CAAA,CACE,MAAA,CAAO,CAACE,CAAAA,CAAK,CAAC2B,CAAAA,CAAewC,CAAc,CAAA,GAAM,CAChG,GAAI,CAACA,CAAAA,EAAgB,KAAA,CACnB,OAAOnE,CAAAA,CAGT,IAAMoC,CAAAA,CAAkB3B,IAAAA,CAAKF,MAAAA,CAAOoB,CAAAA,CAAe,MAAM,CAAC,CAAA,CAAEoC,CAAgB,CAAA,CACtEE,CAAAA,CAAa,KAAA,CAAM,OAAA,CAAQE,CAAAA,CAAe,KAAK,CAAA,CACjD,MAAA,CACAD,CAAAA,CAAe9B,CAAAA,CAAgB,QAAA,CAAU+B,CAAAA,CAAe,KAAK,CAAA,CAEjE,OACE,CAAA,EAAGnE,CAAG;AAAA,MAAA,EACG2B,CAAa,CAAA;AAAA;AAAA;AAAA,kBAAA,EAGDF,CAAG,IAAIE,CAAa,CAAA;AAAA,oBAAA,EAClBS,EAAgB,QAAQ,CAAA;AAAA,YAAA,EAChCmE,CAAY,KAAKtC,CAAU;AAAA;AAAA;AAAA,OAAA,CAK9C,CAAA,CAAG,EAAE,CAGP,CAEA,SAASqC,GAA6BvC,CAAAA,CAA+Bd,CAAAA,CAA8B,CACjG,IAAMrB,CAAAA,CAAyBgC,IAAAA,CAAKjE,EAAwB,cAAA,CAAgBoE,CAAgB,CAAA,CAAed,CAAI,CAAA,CAgC/G,OA/BwBe,OAAAA,CAAQpC,CAAsB,CAAA,CACL,MAAA,CAAO,CAAC5B,CAAAA,CAAK,CAAC2B,CAAAA,CAAewC,CAAc,CAAA,GAAM,CAChG,IAAM/B,CAAAA,CAAkB3B,IAAAA,CAAKF,MAAAA,CAAOoB,CAAAA,CAAe,MAAM,CAAC,CAAA,CAAEoC,CAAgB,CAAA,CACtE,CAAE,SAAA,CAAAc,EAAW,YAAA,CAAAC,CAAa,CAAA,CAAI1C,CAAAA,CAEpC,GAAIyC,CAAAA,GAAc,cAAA,EAAkBC,CAAAA,EAAc,IAAA,GAAS,QAAA,CAAU,CACnE,IAAME,CAAAA,CAAU,CAAA;AAAA;AAAA;AAAA,oBAAA,EACdb,CAAAA,CAAe,KAAO,EACxB,CAAA;AAAA;AAAA;AAAA;AAAA,CAAA,CAEA,OAAO,GAAGnE,CAAG;AAAA,MAAA,EAAW2B,CAAa,CAAA;AAAA,QAAA,EAAgBqD,CAAO,CAAA,OAAA,CAC9D,CAEA,IAAMwB,CAAAA,CAAyB3B,IAAc,cAAA,EAAkBC,CAAAA,EAAc,IAAA,GAAS,UAAA,CAChF2B,EACJ,KAAA,CAAM,OAAA,CAAQtC,EAAe,aAAA,EAAe,OAAO,GAAKA,CAAAA,CAAe,aAAA,CAAc,OAAA,CAAQ,MAAA,CAAS,EACxG,GAAIqC,CAAAA,EAA0BC,CAAAA,CAAkB,CAE9C,IAAMtB,CAAAA,CAAAA,CADehB,CAAAA,CAAe,aAAA,EAAe,OAAA,EAAqD,EAAC,EAClD,MAAA,CAAO,CAACiB,CAAAA,CAAuBC,CAAAA,GAC7E,GAAGD,CAAa,CAAA;AAAA,wBAAA,EAA8CC,EAAK,GAAG,CAAA;AAAA;AAAA,CAAA,CAC5E,EAAE,CAAA,CACCL,CAAAA,CAAUG,CAAAA,CACZ,CAAA;AAAA;AAAA;AAAA;AAAA,EAA6EA,CAAc,CAAA;AAAA;AAAA;AAAA;AAAA,CAAA,CAC3F,EAAA,CAEJ,OAAO,CAAA,EAAGnF,CAAG;AAAA,MAAA,EAAW2B,CAAa,CAAA;AAAA,QAAA,EAAgBqD,CAAO,CAAA,OAAA,CAC9D,CAEA,OAAO,GAAGhF,CAAG;AAAA,CACf,EAAG,EAAE,CAGP,CAMA,SAAS+B,GAAoBgC,CAAAA,CAA0C,CACrE,OAAOA,CAAAA,CAAiB,KAAMtB,CAAAA,EAASA,CAAAA,CAAK,SAAS,CAAA,EAAKsB,EAAiB,CAAC,CAC9E,CAEO,SAAS2C,GAAqB,CACnC,aAAA,CAAA/E,CAAAA,CACA,iBAAA,CAAAE,EACA,KAAA,CAAA3C,CAAAA,CACA,MAAA,CAAAC,CACF,EAKgB,CACd,IAAMC,CAAAA,CAAU,oCAAA,CACVC,EAAeoB,IAAAA,CAAKF,MAAAA,CAAOsB,CAAAA,CAAmB,MAAM,CAAC,CAAA,CAAE1C,CAAM,CAAA,CAC7DK,CAAAA,CAAaH,GAAc,UAAA,EAAc,EAAC,CAC1CI,CAAAA,CAAU,WAAWoC,CAAiB,CAAA,iBAAA,EAAoBA,CAAiB,CAAA,OAAA,CAAA,CAC3E8E,EAAkBtH,CAAAA,EAAc,MAAA,EAAU,EAAA,CAEhD,GAAIG,EAAW,MAAA,GAAW,CAAA,CACxB,OAAO,CACL,gBAAiB,EAAA,CACjB,KAAA,CAAO,EACT,CAAA,CAGF,IAAME,CAAAA,CAA+BC,CAAAA,CAAwB,QAAA,CAAUH,CAAU,EAAE,IAAA,CAAK;AAAA,EAAA,CAAM,CAAA,CACxFM,CAAAA,CAAqCH,CAAAA,CAAwB,CAAC,OAAO,CAAA,CAAGH,CAAU,CAAA,CAClFO,CAAAA,CAAoBD,EAAgB,MAAA,CACxC,CAACE,CAAAA,CAAKC,CAAAA,GAAc,GAAGD,CAAG;AAAA,IAAA,EAASC,CAAS,CAAA;AAAA;AAAA;AAAA;AAAA,EAAA,CAAA,CAC5C,EACF,EACMC,CAAAA,CAAkBJ,CAAAA,CAAgB,OACtC,CAACE,CAAAA,CAAKC,CAAAA,GAAc,CAAA,EAAGD,CAAG;AAAA,IAAA,EAASC,CAAS,CAAA;AAAA;AAAA;AAAA,MAAA,EAAuCf,CAAK;AAAA;AAAA,EAAA,CAAA,CACxF,EACF,EACMiB,CAAAA,CAA8BjB,CAAAA,GAAU,UAAYa,CAAAA,CAAoBG,CAAAA,CAGxEG,EADyBC,MAAAA,CAAOC,MAAAA,CAAO,eAAgB,OAAO,CAAC,EAAEf,CAAU,CAAA,CACf,OAAO,CAACQ,CAAAA,CAAKC,IAAc,CAE3F,IAAMO,EADgBC,IAAAA,CAAKF,MAAAA,CAAON,EAAU,YAAA,EAAc,MAAA,CAAQ,MAAM,CAAC,CAAA,CAAEd,CAAM,CAAA,EACvC,UAAA,CAAW,OAAO,CAACuB,CAAAA,CAAYC,IAAqB,CAC5F,IAAMC,EAAkB1B,CAAAA,GAAU,SAAA,CAAY,EAAA,CAAK,CAAA,EAAGA,CAAK;AAAA,IAAA,CAAA,CAE3D,GAAIyB,CAAAA,CAAiB,KAAA,GAAU,OAAA,CAC7B,OAAO,GAAGD,CAAU;AAAA,MAAA,EAAWC,EAAiB,IAAI,CAAA;AAAA;AAAA;AAAA,MAAA,EAA2CC,CAAe,CAAA;AAAA,IAAA,CAAA,CAGhH,GAAID,CAAAA,CAAiB,KAAA,GAAU,cAAA,CAAgB,CAC7C,IAAME,CAAAA,CAAqBJ,IAAAA,CAAKF,MAAAA,CAAOI,CAAAA,CAAiB,YAAA,EAAc,MAAA,CAAQ,MAAM,CAAC,CAAA,CAAExB,CAAM,CAAA,CAMvF2B,CAAAA,CAHwBL,IAAAA,CAAKF,MAAAA,CAAOI,CAAAA,CAAiB,YAAA,EAAc,MAAO,MAAM,CAAC,CAAA,CACrFE,CAAAA,EAAoB,UAAA,EAAc,EACpC,CAAA,CAEwB,QAAU,OAAA,CAC5B,CAAA;AAAA;AAAA;AAAA,MAAA,EAAsCD,CAAe,CAAA;AAAA,QAAA,CAAA,CACrD,EAAA,CAEN,GAAID,CAAAA,CAAiB,YAAA,EAAc,OAAS,QAAA,CAC1C,OAAO,GAAGD,CAAU;AAAA,MAAA,EAAWC,EAAiB,IAAI,CAAA;AAAA,MAAA,EAAaA,CAAAA,CAAiB,YAAA,CAAa,KAAK,CAAA,EAAA,EAAKG,CAAmB,CAAA;AAAA,IAAA,CAAA,CAG9H,GAAIH,CAAAA,CAAiB,YAAA,EAAc,KAAA,CACjC,OAAO,GAAGD,CAAU;AAAA,MAAA,EAAWC,EAAiB,IAAI,CAAA;AAAA,MAAA,EAA+CA,CAAAA,CAAiB,YAAA,CAAa,KAAK,CAAA,EAAA,EAAKG,CAAmB,CAAA;AAAA,IAAA,CAElK,CAEA,OAAO,CAAA,EAAGJ,CAAU;AAAA,MAAA,EAAWC,EAAiB,IAAI;AAAA,EAAA,CACtD,CAAA,CAAG,EAAE,CAAA,CAEL,OAAO,GAAGX,CAAG;AAAA,IAAA,EAASC,CAAAA,CAAU,IAAI,CAAA,0CAAA,EAA6CO,CAAAA,EAAsB,EAAE,CAAA;AAAA,CAC3G,CAAA,CAAG,EAAE,CAAA,CAEL,OAAO,CACL,eAAA,CAAAmG,CAAAA,CACA,KAAA,CACE,CAAA,gBAAA,EAAmBlH,CAAO,CAAA;AAAA,EAAA,EACrBkC,CAAa,CAAA;AAAA;AAAA;AAAA,EAAA,EAGbgF,CAAe,GAAGvH,CAAO,CAAA;AAAA;AAAA,IAAA,EAEvBM,CAAoB,CAAA,IAAA,EACpBS,CAAmB,CAAA,IAAA,EACnBE,CAA0B,CAAA;AAAA;AAAA,CAGrC,CACF,CAEO,SAASuG,GAAuBR,CAAAA,CAAgC,CACrE,IAAM5G,GAAAA,CAAaqH,CAAAA,CAAY,UAAA,CACzB9D,CAAAA,CAAuBC,EAAW6D,CAAAA,CAAY,MAAM,EACpDpF,CAAAA,CAAMqF,EAAAA,GACN7D,CAAAA,CAAOC,CAAAA,CAA2B1D,GAAAA,CAAY4G,CAAU,EACxD1E,CAAAA,CAAmByB,CAAAA,CAAuB3D,IAAYyD,CAAI,CAAA,CAC1DM,EAAesD,CAAAA,CAAY,MAAA,CAC3BrD,CAAAA,CAAqBC,CAAAA,CAAgC,CAACoD,CAAAA,CAAaE,GAAS,EAAGxD,CAAAA,CAAc,SAAS,EAE5G,OACE,CAAA;AAAA,QAAA,EACWR,CAAoB,CAAA;AAAA;AAAA,YAAA,EAEhBtB,CAAG,UACTC,CAAgB,CAAA;AAAA;AAAA,IAAA,EAGlB6B,CAAY,CAAA;AAAA,MAAA,EACVC,CAAkB,CAAA;AAAA;AAAA;AAAA,CAK/B,CAEA,IAAMR,CAAAA,CAAcgD,CAAAA,EACXA,EAAI,MAAA,CAAO,CAAC,CAAA,CAAE,WAAA,EAAY,CAAIA,CAAAA,CAAI,KAAA,CAAM,CAAC,EAG3C,SAAS1G,CAAAA,CAAgBH,CAAAA,CAAgBF,GAAAA,CAA8C,CAC5F,OAAIA,GAAAA,GAAqB,SAAA,CAChB4H,EAGFpG,IAAAA,CAAKF,MAAAA,CAAOtB,GAAAA,CAAkB,QAAQ,CAAC,CAAA,CAAEE,CAAM,CACxD,CC78BA,SAAS6H,EAAAA,CAASC,CAAAA,CAA2C,CAC3D,OAAKA,CAAAA,CAIE,UAAYA,CAAAA,CAHV,KAIX,CAEO,SAASC,EAAAA,CAAeD,CAAAA,CAAuC,CACpE,GAAI,CAACA,CAAAA,CACH,OAAO,IAAA,CAGT,GAAIE,WAAAA,CAAY,EAAA,CAAGF,CAAK,CAAA,CACtB,OAAOA,CAAAA,CAGT,GAAID,EAAAA,CAASC,CAAK,CAAA,CAAG,CACnB,IAAMG,CAAAA,CAAsBH,EAAM,KAAA,CAElC,GAAIE,WAAAA,CAAY,EAAA,CAAGC,CAAmB,CAAA,CACpC,OAAOA,CAEX,CAEA,OAAO,IACT,CAEO,SAASC,EAAAA,CAAkBC,CAAAA,CAAwC,CACxE,GAAI,CAACA,CAAAA,CACH,OAAO,IAAA,CAGT,GAAI,CACF,OAAO,IAAA,CAAK,KAAA,CAAMA,CAAQ,CAC5B,CAAA,KAAQ,CACN,OAAO,IACT,CACF,CCjCO,SAASC,IAAwE,CACtF,IAAMC,CAAAA,CAAeC,eAAAA,EAAgB,CAErC,OAAO,MAAOrB,CAAAA,EAA8C,CAC1D,IAAMsB,CAAAA,CAAWd,EAAAA,CAAuBR,CAAmC,CAAA,CAE3E,MAAMoB,CAAAA,CAAa,MAAA,CAAO,CACxB,QAAA,CAAUG,GAAAA;AAAA,QAAA,EACND,CAAQ;AAAA,MAAA,CAEd,CAAC,EACH,CACF,CAeO,SAASE,EAAAA,EAA4C,CAC1D,GAAM,CAACC,EAAaC,CAAc,CAAA,CAAIC,SAAS,KAAK,CAAA,CAC9C,CAACL,CAAAA,CAAUM,CAAW,EAAID,QAAAA,CAASJ,GAAAA;AAAA;AAAA;AAAA;AAAA,EAAA,CAIxC,CAAA,CACK,CAACM,CAAAA,CAASC,CAAU,CAAA,CAAIH,QAAAA,CAA8B,EAAE,CAAA,CACxD,CAACI,CAAAA,CAAgB,CAAE,IAAA,CAAAlF,CAAAA,CAAM,OAAA,CAAAmF,CAAAA,CAAS,KAAA,CAAAnB,CAAM,CAAC,CAAA,CAAIoB,WAAAA,CAAYX,CAAAA,CAAUO,CAAO,CAAA,CAG1EK,CAAAA,CAAcpB,EAAAA,CAAeD,CAAK,CAAA,CAElC,CAAE,kBAAAsB,CAAAA,CAAmB,iBAAA,CAAAC,CAAkB,CAAA,CAAA,CAAK,IAAM,CACtD,GAAIF,CAAAA,EAAa,UAAA,GAAe,GAAA,CAAK,CACnC,IAAMG,CAAAA,CAAepB,EAAAA,CAAkCiB,CAAAA,CAAY,QAAQ,CAAA,CAE3E,GAAIG,CAAAA,EAAgB,OAAOA,CAAAA,CAAa,IAAA,EAAS,QAAA,CAAU,CACzD,GAAIA,CAAAA,CAAa,IAAA,GAAS,gBAAA,CACxB,OAAO,CACL,kBAAmB,IAAA,CACnB,iBAAA,CAAmB,KACrB,CAAA,CAGF,GAAIA,CAAAA,CAAa,IAAA,GAAS,gBAAA,CACxB,OAAO,CACL,iBAAA,CAAmB,KAAA,CACnB,iBAAA,CAAmB,IACrB,CAEJ,CAEA,OAAO,CACL,iBAAA,CAAmB,IAAA,CACnB,iBAAA,CAAmB,KACrB,CACF,CAEA,OAAO,CACL,iBAAA,CAAmB,KAAA,CACnB,iBAAA,CAAmB,KACrB,CACF,CAAA,GAAG,CAEH,OAAAC,SAAAA,CAAU,IAAM,CACVb,CAAAA,GACGM,CAAAA,EAAe,CACpBL,CAAAA,CAAe,KAAK,CAAA,EAExB,CAAA,CAAG,CAACD,CAAAA,CAAaM,CAAc,CAAC,CAAA,CAEzB,CAACL,CAAAA,CAAgBE,CAAAA,CAAaE,CAAAA,CAAY,CAAE,IAAA,CAAAjF,CAAAA,CAAM,OAAA,CAAAmF,CAAAA,CAAS,KAAA,CAAAnB,CAAAA,CAAO,iBAAA,CAAAsB,EAAmB,iBAAA,CAAAC,CAAkB,CAAC,CACjH,CCxFO,SAASG,EAAAA,CAAK,CAAE,KAAA,CAAAzG,CAAM,CAAA,CAAsB,CACjD,OAAI,CAACA,CAAAA,EAAS,CAACA,CAAAA,CAAM,KAAA,CAAM,GAAG,CAAA,CAAE,MAAA,CACvB,IAAA,CAIPxD,GAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,sDAAA,CACZ,QAAA,CAAAwD,EAAM,KAAA,CAAM,GAAG,CAAA,CAAE,GAAA,CAAK0G,CAAAA,EACrBlK,GAAAA,CAACmK,GAAAA,CAAA,CACC,SAAA,CAAU,mEAAA,CAEV,OAAA,CAAQ,WAAA,CAEP,QAAA,CAAAD,CAAAA,CAAAA,CAHIA,CAIP,CACD,CAAA,CACH,CAEJ,CCCO,SAASE,EAAAA,CAA+D,CAC7E,gBAAA,CAAAC,CAAAA,CACA,cAAA,CAAAC,CAAAA,CACA,gBAAA,CAAAC,CACF,CAAA,CAAoD,CAClD,GAAM,CAAE,0BAAA,CAAAC,CAA2B,CAAA,CAAIC,CAAAA,EAAU,CAC3CC,CAAAA,CAA6B,CACjC,QAAA,CAAY,UAAA,CACZ,MAAA,CAAU,QAAA,CACV,KAAA,CAAS,OAAA,CACT,MAAA,CAAU,MAAA,CACV,YAAA,CAAgB,MAAA,CAChB,MAAA,CAAU,MAAA,CACV,MAAA,CAAU,SAAA,CACV,IAAA,CAAQ,MAAA,CACR,QAAA,CAAY,MACd,CAAA,CACMC,CAAAA,CAA4B,CAChC,OAAA,CAAWC,GAAAA,CACX,IAAA,CAAQC,CAAAA,CACR,QAAA,CAAYC,GAAAA,CACZ,MAAA,CAAUC,CAAAA,CACV,KAAA,CAASC,GAAAA,CACT,MAAA,CAAUH,CAAAA,CACV,YAAA,CAAgBA,CAAAA,CAChB,MAAA,CAAUA,CAAAA,CACV,MAAA,CAAUD,GAAAA,CACV,IAAA,CAAQC,CAAAA,CACR,QAAA,CAAYA,CAAAA,CACZ,IAAA,CAAQZ,EACV,CAAA,CAEMgB,GAAAA,CAAOZ,CAAAA,CACV,GAAA,CAAK9I,CAAAA,EAAc,CAClB,IAAM2J,CAAAA,CACJ3J,CAAAA,CAAU,WAAA,EACVmJ,CAAAA,CAA2BnJ,CAAAA,CAAU,SAAoD,CAAA,CACrF4J,CAAAA,CACHX,CAAAA,CAA2B,eAAA,CAAiB,CAACU,CAAW,CAAC,CAAA,GAAI,CAAC,CAAA,EAAG,SAAA,EAGlEP,CAAAA,CAA0BO,CAAqD,CAAA,EAC/EP,CAAAA,CAA0B,IAAA,CAE5B,GAAIpJ,CAAAA,CAAU,QAAA,CACZ,OAAO,IAAA,CAGT,IAAM6J,CAAAA,CAAgBF,CAAAA,GAAgB,OAEtC,OAAO,CACL,WAAA,CAAa3J,CAAAA,CAAU,IAAA,CACvB,QAAA,CAAU,CAAC8J,CAAAA,CAAiBC,CAAAA,CAAY9H,CAAAA,GAClC4H,CAAAA,CACK,IAAA,CAAA,CAGc,KAAA,CAAM,OAAA,CAAQ5H,CAAK,CAAA,CAAIA,CAAAA,CAAQ,CAACA,CAAK,CAAA,EAEtC,QAAA,CAAS6H,CAAAA,CAAI,QAAA,CAASC,CAAE,CAAC,CAAA,CAEjD,MAAA,CAAQ,IAAMtL,GAAAA,CAAC,KAAA,CAAA,CAAI,UAAU,yBAAA,CAA2B,QAAA,CAAAuB,CAAAA,CAAU,KAAA,CAAM,CAAA,CACxE,IAAA,CAAM,CAAC,CAAE,GAAA,CAAA8J,CAAI,CAAA,GAKJrL,GAAAA,CAJkBmL,CAAAA,CAIjB,CAAiB,KAAA,CAAOE,CAAAA,CAAI,QAAA,CAAS9J,CAAAA,CAAU,IAAI,CAAA,CAAG,CAAA,CAEhE,aAAA,CAAe,KAAA,CACf,YAAA,CAAc,IAAA,CACd,IAAA,CAAMA,CAAAA,CAAU,OAAA,EAAS,IAAA,EAAQ,GACnC,CACF,CAAC,CAAA,CACA,MAAA,CAAQgK,CAAAA,EAAWA,CAAAA,GAAW,IAAI,CAAA,CAE/BlM,CAAAA,CAAU,CACd,EAAA,CAAI,SAAA,CACJ,IAAA,CAAM,CAAC,CAAE,GAAA,CAAAgM,CAAI,CAAA,GAAmCd,CAAAA,CAAmBA,CAAAA,CAAiBc,CAAG,CAAA,CAAI,IAAA,CAC3F,IAAA,CAAM,EACR,CAAA,CAEMG,CAAAA,CAAuB,CAC3B,EAAA,CAAI,QAAA,CACJ,IAAA,CAAM,CAAC,CAAE,GAAA,CAAAH,CAAAA,CAAK,KAAA,CAAAI,CAAM,CAAA,GAClBzL,GAAAA,CAAC0L,GAAAA,CAAA,CACC,YAAA,CAAW,YAAA,CACX,OAAA,CAASL,CAAAA,CAAI,aAAA,EAAc,CAC3B,eAAA,CAAkB7H,CAAAA,EAAU,CAC1BiI,CAAAA,CAAM,yBAAA,CAA0B,KAAK,CAAA,CACrCJ,CAAAA,CAAI,cAAA,CAAe,CAAA,CAAQ7H,CAAM,EACnC,CAAA,CACF,CAAA,CAEF,aAAA,CAAe,KAAA,CACf,aAAc,KAAA,CACd,IAAA,CAAM,EACR,CAAA,CAEMmI,CAAAA,CAAyB,CAC7B,EAAA,CAAI,QAAA,CACJ,MAAA,CAAQ,CAAC,CAAE,KAAA,CAAAF,CAAM,CAAA,GACfzL,GAAAA,CAAC0L,GAAAA,CAAA,CACC,YAAA,CAAW,YAAA,CACX,OAAA,CAASD,CAAAA,CAAM,wBAAA,EAAyB,EAAMA,CAAAA,CAAM,yBAAA,EAA0B,EAAK,eAAA,CACnF,eAAA,CAAkBjI,CAAAA,EAAU,CAC1BiI,EAAM,yBAAA,CAA0B,CAAA,CAAQjI,CAAM,EAChD,CAAA,CACF,CAAA,CAEF,IAAA,CAAM,CAAC,CAAE,GAAA,CAAA6H,CAAI,CAAA,GACXrL,GAAAA,CAAC0L,GAAAA,CAAA,CACC,YAAA,CAAW,YAAA,CACX,OAAA,CAASL,CAAAA,CAAI,aAAA,EAAc,CAC3B,eAAA,CAAkB7H,CAAAA,EAAU,CAC1B6H,CAAAA,CAAI,cAAA,CAAe,CAAA,CAAQ7H,CAAM,EACnC,CAAA,CACF,CAAA,CAEF,aAAA,CAAe,KAAA,CACf,YAAA,CAAc,KAAA,CACd,IAAA,CAAM,EACR,CAAA,CAEA,OAAO,CACL,GAAI8G,CAAAA,GAAmB,QAAA,CAAW,CAACkB,CAAoB,CAAA,CAAI,EAAC,CAC5D,GAAIlB,CAAAA,GAAmB,UAAA,CAAa,CAACqB,CAAsB,CAAA,CAAI,EAAC,CAChE,GAAIpB,CAAAA,CAAmB,CAAClL,CAAO,CAAA,CAAI,GACnC,GAAG4L,GACL,CACF,CC3FO,SAASW,EAAAA,CAAgD,CAC9D,UAAA,CAAAC,CAAAA,CACA,OAAA,CAAAC,CAAAA,CACA,IAAA,CAAAvH,CAAAA,CACA,qBAAA,CAAAwH,CAAAA,CACA,uBAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,gBAAA,CAAAC,CAAAA,CACA,gBAAA,CAAAC,GAAAA,CACA,gBAAA,CAAAC,CACF,EAA+C,CAC7C,IAAMC,CAAAA,CAAYC,MAAAA,CAAuB,IAAI,CAAA,CACvC,CAACC,CAAAA,CAAcC,CAAe,CAAA,CAAIpD,QAAAA,CAAS0C,CAAAA,EAAyB,EAAE,CAAA,CACtE,CAACW,CAAAA,CAAkBC,CAAmB,CAAA,CAAItD,QAAAA,CAA0B,EAAE,CAAA,CACtE,CAACuD,CAAAA,CAAeC,GAAgB,CAAA,CAAIxD,QAAAA,CAA6B,EAAE,CAAA,CACnE,CAACyD,CAAAA,CAASC,CAAU,CAAA,CAAI1D,QAAAA,CAAuB,EAAE,CAAA,CAEjDoC,CAAAA,CAAQuB,aAAAA,CAAc,CAC1B,IAAA,CAAAzI,CAAAA,CACA,OAAA,CAAAuH,CAAAA,CACA,KAAA,CAAO,CACL,OAAA,CAAAgB,CAAAA,CACA,gBAAA,CAAAJ,CAAAA,CACA,YAAA,CAAAF,CAAAA,CACA,aAAA,CAAAI,CACF,CAAA,CACA,YAAA,CAAc,CACZ,UAAA,CAAY,CACV,QAAA,CAAUV,GAAY,EACxB,CACF,CAAA,CACA,kBAAA,CAAoB,IAAA,CACpB,oBAAA,CAAsBe,GAAAA,CACtB,eAAA,CAAiBF,CAAAA,CACjB,qBAAA,CAAuBF,GAAAA,CACvB,wBAAA,CAA0BF,CAAAA,CAC1B,eAAA,CAAiBO,eAAAA,EAAgB,CACjC,mBAAA,CAAqBC,mBAAAA,EAAoB,CACzC,qBAAA,CAAuBC,qBAAAA,EAAsB,CAC7C,iBAAA,CAAmBC,iBAAAA,EAAkB,CACrC,kBAAA,CAAoBC,kBAAAA,EAAmB,CACvC,sBAAA,CAAwBC,sBAAAA,GACxB,QAAA,CAAWlC,CAAAA,EAAQA,CAAAA,CAAI,GAAA,CACvB,gBAAA,CAAkB,IAAA,CAClB,IAAA,CAAM,CACJ,gBAAA,CAAmBA,CAAAA,EAA6BmC,EAAAA,CAAiBnC,CAAAA,CAAKe,GAAAA,CAAkBD,CAAgB,CAC1G,CACF,CAAC,CAAA,CAEK,CAAE,IAAA,CAAAsB,CAAK,CAAA,CAAIhC,CAAAA,CAAM,WAAA,EAAY,CAC7BiC,CAAAA,CAAiBC,cAAAA,CAAe,CACpC,KAAA,CAAOF,CAAAA,CAAK,OACZ,YAAA,CAAc,IAAM,EAAA,CACpB,gBAAA,CAAkB,IAAMnB,CAAAA,CAAU,OAAA,CAElC,cAAA,CACE,OAAO,MAAA,CAAW,GAAA,EAAe,SAAA,CAAU,SAAA,CAAU,QAAA,CAAS,SAAS,CAAA,CAClEsB,CAAAA,EAAYA,CAAAA,CAAQ,qBAAA,EAAsB,CAAE,MAAA,CAC7C,MAAA,CACN,QAAA,CAAU,CACZ,CAAC,CAAA,CAED,SAASX,GAAAA,CAAyBY,CAAAA,CAA6C,CAC7E,IAAMC,CAAAA,CAAgD,MAAA,CAAO,IAAA,CAAzC,OAAOD,CAAAA,EAAc,UAAA,CAAyBA,CAAAA,CAAUrB,CAAY,CAAA,CAAiBqB,CAAhB,CAAA,CAEzFpB,CAAAA,CAAgBoB,CAAS,CAAA,CACzB7B,CAAAA,GAA0B8B,CAAW,EACvC,CAEA,OACEC,IAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAWC,GAAAA,CAAG,kCAAA,CAAoCnC,CAAAA,EAAY,OAAO,CAAA,CACvE,QAAA,CAAA,CAAAQ,CAAAA,EAAoBA,CAAAA,CAAiBZ,CAAK,EAC3CsC,IAAAA,CAACE,GAAAA,CAAA,CAAe,SAAA,CAAWD,GAAAA,CAAG,sBAAA,CAAwBnC,CAAAA,EAAY,KAAK,CAAA,CAAG,QAAA,CAAUI,CAAAA,CAAU,GAAA,CAAKK,CAAAA,CACjG,QAAA,CAAA,CAAAtM,GAAAA,CAACkO,GAAAA,CAAA,CAAY,SAAA,CAAU,SAAA,CACpB,QAAA,CAAAzC,CAAAA,CAAM,eAAA,EAAgB,CAAE,GAAA,CAAK0C,CAAAA,EAC5BnO,GAAAA,CAACoO,GAAAA,CAAA,CAAS,SAAA,CAAU,mBAAA,CACjB,SAAAD,CAAAA,CAAY,OAAA,CAAQ,GAAA,CAAKE,CAAAA,EAEtBrO,GAAAA,CAACsO,CAAAA,CAAA,CACC,SAAA,CAAWN,GAAAA,CAAG,yBAAA,CAA2BK,CAAAA,CAAO,MAAA,CAAO,EAAA,GAAO,SAAA,EAAa,SAAS,CAAA,CACpF,OAAA,CAASA,CAAAA,CAAO,OAAA,CAEhB,KAAA,CAAOA,CAAAA,CAAO,OAAA,EAAQ,CAAI,CAAE,KAAA,CAAO,CAAA,EAAGA,CAAAA,CAAO,OAAA,EAAQ,CAAE,QAAA,EAAU,CAAA,EAAA,CAAK,CAAA,CAAI,EAAC,CAE1E,QAAA,CAAAA,CAAAA,CAAO,aAAA,CAAgB,IAAA,CAAOE,UAAAA,CAAWF,CAAAA,CAAO,MAAA,CAAO,SAAA,CAAU,MAAA,CAAQA,CAAAA,CAAO,UAAA,EAAY,CAAA,CAAA,CAHxFA,CAAAA,CAAO,EAId,CAEH,CAAA,CAAA,CAZ0CF,CAAAA,CAAY,EAazD,CACD,CAAA,CACH,CAAA,CACAnO,GAAAA,CAACwO,CAAAA,CAAA,CACC,SAAA,CAAU,qBAAA,CACV,KAAA,CAAO,CACL,MAAA,CAAQ,CAAA,EAAGd,CAAAA,CAAe,YAAA,EAAa,CAAE,QAAA,EAAU,CAAA,EAAA,CACrD,CAAA,CAEC,QAAA,CAAAA,CAAAA,CAAe,eAAA,EAAgB,CAAE,MAAA,CAChCA,CAAAA,CAAe,eAAA,EAAgB,CAAE,GAAA,CAAKe,CAAAA,EAAe,CACnD,IAAMpD,CAAAA,CAAMoC,CAAAA,CAAKgB,CAAAA,CAAW,KAAK,CAAA,CAEjC,OACEzO,GAAAA,CAACoO,GAAAA,CAAA,CACC,SAAA,CAAW,CAAA,EAAI3C,CAAAA,CAAM,OAAA,CAAQ,IAAA,CAA2B,gBAAA,CACtDJ,CACF,CAAC,CAAA,+BAAA,EAAkCQ,CAAAA,EAAY,GAAA,EAAO,EAAE,CAAA,CAAA,CACxD,YAAA,CAAY4C,CAAAA,CAAW,KAAA,CACvB,YAAA,CAAYpD,CAAAA,CAAI,aAAA,EAAc,EAAK,UAAA,CAEnC,GAAA,CAAKqC,CAAAA,CAAe,cAAA,CACpB,KAAA,CAAO,CACL,SAAA,CAAW,CAAA,WAAA,EAAce,CAAAA,CAAW,KAAA,CAAM,UAAU,CAAA,GAAA,CACtD,CAAA,CAEC,QAAA,CAAApD,CAAAA,CAAI,eAAA,EAAgB,CAAE,GAAA,CAAKqD,CAAAA,EAC1B1O,GAAAA,CAAC2O,CAAAA,CAAA,CACC,SAAA,CAAWX,GAAAA,CAAG,qCAAA,CAAuCU,CAAAA,CAAK,MAAA,CAAO,EAAA,GAAO,SAAA,EAAa,UAAU,CAAA,CAE/F,KAAA,CAAO,CACL,KAAA,CAAOA,CAAAA,CAAK,MAAA,CAAO,OAAA,EACrB,CAAA,CAEC,QAAA,CAAAH,WAAWG,CAAAA,CAAK,MAAA,CAAO,SAAA,CAAU,IAAA,CAAMA,CAAAA,CAAK,UAAA,EAAY,CAAA,CAAA,CALpDA,CAAAA,CAAK,EAMZ,CACD,CAAA,CAAA,CAhBID,CAAAA,CAAW,GAiBlB,CAEJ,CAAC,CAAA,CAEDzO,GAAAA,CAACoO,GAAAA,CAAA,CACC,QAAA,CAAApO,GAAAA,CAAC2O,CAAAA,CAAA,CAAU,SAAA,CAAU,wBAAA,CAAyB,OAAA,CAAS7C,CAAAA,CAAQ,MAAA,CAAQ,QAAA,CAAA,aAAA,CAEvE,CAAA,CACF,CAAA,CAEJ,CAAA,CAAA,CACF,CAAA,CAAA,CACF,CAEJ,CAEA,SAAS0B,EAAAA,CACPnC,CAAAA,CACAe,CAAAA,CACAD,CAAAA,CACQ,CACR,OAAIC,CAAAA,EAAkB,QAAA,CAASf,CAAAA,CAAI,QAAA,CAAS,GAAG,CAAA,CACtC,iDAAA,CAGLc,CAAAA,EAAkB,IAAA,CAAMyC,CAAAA,EAASA,CAAAA,CAAK,GAAA,GAAQvD,CAAAA,CAAI,QAAA,CAAS,GAAG,CAAA,CACzD,6CAAA,CAGF,EACT","file":"chunk-UZTABGUM.js","sourcesContent":["'use client';\n\nimport { createContext, useContext, useReducer } from 'react';\nimport type { Dispatch, ReactNode } from 'react';\nimport { props, uniqBy } from 'ramda';\nimport type {\n Action,\n ActionAddEntity,\n ActionAlertDialog,\n ActionDeleteEntity,\n ActionEditEntity,\n ActionEditRelationship,\n} from './types';\n\nconst ActionsContext = createContext<Action[] | []>([]);\nconst EntityDispatchContext = createContext<Dispatch<Action>>(() => undefined);\n\nfunction actionsReducer(actions: Action[], action: Action): Action[] {\n const actionType = action.type;\n\n if (!action._id) {\n action._id = Date.now().toString();\n }\n\n switch (actionType) {\n case 'DeleteEntity': {\n return uniqBy(props(['type' as string, '_id']), [...(actions as ActionDeleteEntity[]), action]);\n }\n case 'AddEntity': {\n return uniqBy(props(['type' as string, '_id']), [...(actions as ActionAddEntity[]), action]);\n }\n case 'EditEntity': {\n return uniqBy(props(['type' as string, '_id']), [...(actions as ActionEditEntity[]), action]);\n }\n case 'EditRelationship': {\n return uniqBy(props(['type' as string, '_id']), [...(actions as ActionEditRelationship[]), action]);\n }\n case 'AlertDialog': {\n return uniqBy(props(['type' as string, '_id']), [...(actions as ActionAlertDialog[]), action]);\n }\n case 'Dismiss': {\n return actions.filter((item) => item._id !== action._id);\n }\n default: {\n throw Error(`Unknown action: ${actionType as string}`);\n }\n }\n}\n\nfunction ActionsProvider({ children }: { children: ReactNode }): JSX.Element {\n const [entityActions, dispatchEntityActions] = useReducer(actionsReducer, []);\n\n return (\n <ActionsContext.Provider value={entityActions}>\n <EntityDispatchContext.Provider value={dispatchEntityActions}>{children}</EntityDispatchContext.Provider>\n </ActionsContext.Provider>\n );\n}\n\nfunction useActions(): Action[] {\n return useContext(ActionsContext);\n}\n\nfunction useDispatch(): Dispatch<Action> {\n return useContext(EntityDispatchContext);\n}\n\nexport { ActionsProvider, useActions, useDispatch };\n","import { filter, find, pick, propEq, toPairs, omit } from 'ramda';\nimport { v4 as uuidv4 } from 'uuid';\nimport { assetSchema } from '../entities/assets-schema';\nimport { tagSchema } from '../entities/tags-schema';\nimport type { Attribute, Entity, DataType, Schema, ScopeType, MultipleRelationshipConnection } from '../core/types';\nimport type {\n AttributeValue,\n EntityData,\n EntityItem,\n EntityQueryAggregate,\n EntityQueryResults,\n FormEntityItem,\n FormFieldValue,\n MappedEntityItem,\n MappedEntityQueryResults,\n MappedFormEntityQueryResults,\n EntityQueryResult,\n ImageValue,\n} from './types';\n\ntype EntityQuery = {\n queryEntityName: string;\n query: string;\n};\n\nconst stringTypes: DataType[] = ['id', 'string'];\nconst temporalTypes: DataType[] = ['date', 'datetime', 'duration', 'time'];\n\nexport function getEntityQuery(entityNamePlural: string, scope: string, schema: Schema): EntityQuery {\n const filters = `(where: $where, options: $options)`;\n const entitySchema = getEntitySchema(schema, entityNamePlural);\n const entityName = entitySchema?.name ?? entityNamePlural;\n const attributes = entitySchema?.attributes ?? [];\n const heading = `$where: ${entityName}Where, $options: ${entityName}Options`;\n\n if (!entitySchema) {\n throw new Error(`Entity '${entityName}' not found in the schema`);\n }\n\n if (attributes.length === 0) {\n throw new Error(`Entity '${entityName}' has no attributes defined in the schema`);\n }\n\n const globalAttributesList: string = getAttributeListByScope('global', attributes).join('\\n ');\n const imageAttributes: string[] = getImageAttributes(attributes);\n const localAttributes: readonly string[] = getAttributeListByScope(['local'], attributes);\n const defaultScopedAttr = localAttributes.reduce(\n (acc, attribute) => `${acc}\\n ${attribute} {\\n _id\\n default\\n }\\n `,\n ''\n );\n const scopedAttribute = localAttributes.reduce(\n (acc, attribute) => `${acc}\\n ${attribute} {\\n _id\\n default\\n ${scope}\\n }\\n `,\n ''\n );\n const localAttributesList: string = scope === 'default' ? defaultScopedAttr : scopedAttribute;\n const imageAttributesList: string = imageAttributes.reduce((acc, attribute) => {\n return `${acc}\\n ${attribute} {\\n _id\\n originalFilename\\n mimeType\\n path\\n size\\n height\\n width\\n lqip\\n }\\n `;\n }, '');\n\n const relationshipAttributes = filter(propEq('relationship', 'scope'))(attributes);\n const relationshipAttributesList: string = relationshipAttributes.reduce((acc, attribute) => {\n const relatedEntity = find(propEq(attribute.relationship?.entity, 'name'))(schema) as Entity | undefined;\n const attributesNameList = relatedEntity?.attributes.reduce((relatedAcc, relatedAttribute) => {\n const additionalScope = scope === 'default' ? '' : `${scope}\\n `;\n\n if (relatedAttribute.dataType === 'asset') {\n return `${relatedAcc}\\n ${relatedAttribute.name} {\\n _id\\n originalFilename\\n mimeType\\n path\\n size\\n height\\n width\\n lqip\\n }\\n `;\n }\n\n if (relatedAttribute.scope === 'local') {\n return `${relatedAcc}\\n ${relatedAttribute.name} {\\n _id\\n default\\n ${additionalScope}\\n}\\n `;\n }\n\n if (relatedAttribute.scope === 'relationship') {\n const relationshipEntity = find(propEq(relatedAttribute.relationship?.entity, 'name'))(schema) as\n | Entity\n | undefined;\n const relationshipAttribute = find(propEq(relatedAttribute.relationship?.field, 'name'))(\n relationshipEntity?.attributes ?? []\n ) as Attribute;\n const localAttributeQuery =\n relationshipAttribute.scope === 'local'\n ? `{\\n _id\\n default\\n ${additionalScope}}\\n `\n : '';\n\n if (relatedAttribute.relationship?.mode === 'single') {\n return `${relatedAcc}\\n ${relatedAttribute.name} {\\n ${relatedAttribute.relationship.field} ${localAttributeQuery}}\\n `;\n }\n\n if (relatedAttribute.relationship?.field) {\n return `${relatedAcc}\\n ${relatedAttribute.name} (options: {limit: 25, offset: 0}) {\\n ${relatedAttribute.relationship.field} ${localAttributeQuery}}\\n `;\n }\n }\n\n return `${relatedAcc}\\n ${relatedAttribute.name}\\n `;\n }, '');\n\n return (\n `${attribute.name}Aggregate {\\n` +\n ` count\\n` +\n ` }` +\n `${acc}\\n ${attribute.name} (options: {limit: 25, offset: 0}) { _id ${attributesNameList ?? ''}` +\n `}\\n `\n );\n }, '');\n\n return {\n queryEntityName: entityNamePlural,\n query:\n `query getEntity(${heading}) {\\n` +\n ` ${entityNamePlural}Aggregate {\\n` +\n ` count\\n` +\n ` }\\n` +\n ` ${entityNamePlural}${filters} {\\n` +\n ` _id\\n` +\n ` ${globalAttributesList}` +\n ` ${localAttributesList}` +\n ` ${imageAttributesList}` +\n ` ${relationshipAttributesList}` +\n `}\\n` +\n `}\\n`,\n };\n}\n\n/**\n * Map the GraphQl results JSON to a key-value pair array. The values inside the scopedAttributes key are flattened to the first level.\n */\nexport function mapQueryResult(\n entityNamePlural: string,\n scope: string,\n results: EntityQueryResults,\n schema: Schema\n): MappedEntityQueryResults {\n const entitySchema = getEntitySchema(schema, entityNamePlural);\n const attributes = entitySchema?.attributes ?? [];\n\n if (attributes.length === 0) {\n return {\n count: 0,\n results: [],\n };\n }\n\n const { count } = results[`${entityNamePlural}Aggregate`] as EntityQueryAggregate;\n const items = results[entityNamePlural] as EntityQueryResult[];\n const sliceFirstThreeItems = (values: EntityItem[], primaryAttribute: Attribute): string => {\n const primaryAttributeName = primaryAttribute.name;\n\n return values\n .slice(0, 3)\n .map((item) =>\n primaryAttribute.scope === 'local'\n ? (item[primaryAttributeName]?.[scope] ?? item[primaryAttributeName].default)\n : item[primaryAttributeName]\n )\n .join(', ');\n };\n const mappedQueryResult = items.map((entity) => {\n const { _id } = entity;\n const globalAttributes = getAttributeListByScope('global', attributes).reduce(\n (acc, attributeName) => ({ ...acc, [attributeName]: entity[attributeName] }),\n {}\n );\n const localAttributes = getAttributeListByScope('local', attributes).reduce((acc, attributeName) => {\n const scopedAttribute = entity[attributeName] as AttributeValue | null;\n\n return {\n ...acc,\n [attributeName]: scopedAttribute?.[scope] ? scopedAttribute[scope] : scopedAttribute?.default,\n };\n }, {});\n const imageAttributes = getImageAttributes(attributes).reduce(\n (acc, attributeName) => ({ ...acc, [attributeName]: entity[attributeName] }),\n {}\n );\n const relationshipAttributes = getAttributeListByScope(['relationship'], attributes).reduce(\n (acc, attributeName) => {\n const relationshipAttribute = find(propEq(attributeName, 'name'))(attributes) as Attribute;\n const relatedEntityName = relationshipAttribute.relationship?.entity ?? '';\n const relatedEntity = find(propEq(relatedEntityName, 'name'))(schema) as Entity | undefined;\n const primaryAttribute = getPrimaryAttribute(relatedEntity?.attributes ?? []);\n const primaryAttributeName = primaryAttribute?.name ?? '';\n const primaryAttributeScope = primaryAttribute?.scope ?? 'global';\n const localValue = entity[attributeName] as AttributeValue | null;\n\n if (!primaryAttributeName) {\n throw new Error(`There is an error in the schema for the relationship attribute \"${attributeName}\"`);\n }\n\n if (Array.isArray(localValue)) {\n return {\n ...acc,\n [attributeName]: sliceFirstThreeItems(localValue, primaryAttribute),\n };\n }\n\n const value =\n primaryAttributeScope === 'global'\n ? localValue?.[primaryAttributeName]\n : ((localValue?.[primaryAttributeName] as AttributeValue | undefined)?.[scope] ??\n (localValue?.[primaryAttributeName] as AttributeValue | undefined)?.default);\n\n return {\n ...acc,\n [attributeName]: value,\n };\n },\n {}\n );\n\n return { _id, ...globalAttributes, ...localAttributes, ...imageAttributes, ...relationshipAttributes };\n });\n\n return {\n count,\n results: mappedQueryResult,\n };\n}\n\n/**\n * Like mapQueryResult but the local attribute values are returned as an object:\n * \\{_id: string, value: string, disabled: boolean, scope: string\\}.\n */\nexport function mapQueryResultForFormFields(\n entityNamePlural: string,\n scope: string,\n results: EntityQueryResults,\n schema: Schema\n): MappedFormEntityQueryResults {\n const entitySchema = getEntitySchema(schema, entityNamePlural);\n const attributes = entitySchema?.attributes ?? [];\n\n if (attributes.length === 0) {\n return {\n count: 0,\n results: [],\n };\n }\n\n const { count } = results[`${entityNamePlural}Aggregate`] as EntityQueryAggregate;\n const items = results[entityNamePlural] as EntityQueryResult[];\n const mappedQueryResult = items.map((entity) => {\n const globalAttributes = getAttributeListByScope('global', attributes).reduce(\n (acc, attribute) => ({\n ...acc,\n [attribute]: {\n value: entity[attribute],\n disabled: false,\n scope: 'default',\n _id: '',\n },\n }),\n {}\n );\n const localAttributes = getAttributeListByScope('local', attributes).reduce((acc, attributeName) => {\n const attributeSchema = find(propEq(attributeName, 'name'))(attributes) as Attribute;\n const localAttribute = entity[attributeName] as AttributeValue | null;\n\n return {\n ...acc,\n [attributeName]: {\n value: localAttribute ? getValueByScope(localAttribute, scope) : null,\n disabled: Boolean(\n localAttribute && localAttribute[scope] === null && attributeSchema.scope === 'local' && scope !== 'default'\n ),\n scope,\n _id: localAttribute ? localAttribute._id : null,\n },\n };\n }, {});\n const imageAttributes = getImageAttributes(attributes).reduce(\n (acc, attribute) => ({\n ...acc,\n [attribute]: {\n value: entity[attribute],\n disabled: false,\n scope: 'default',\n _id: '',\n },\n }),\n {}\n );\n const relationshipAttributes = getAttributeListByScope(['relationship'], attributes).reduce(\n (acc, attributeName) => {\n const value = entity[attributeName] as AttributeValue | null;\n const _id = value?._id;\n const aggregateCount = (entity[`${attributeName}Aggregate`] as AttributeValue).count;\n\n return {\n ...acc,\n [attributeName]: {\n count: aggregateCount,\n _id,\n value,\n disabled: false,\n scope,\n },\n };\n },\n {}\n );\n\n return { ...globalAttributes, ...localAttributes, ...imageAttributes, ...relationshipAttributes };\n });\n\n return {\n count,\n results: mappedQueryResult,\n };\n}\n\n/**\n * Attribute values can be an object or an array of objects if the attribute is a multi-select.\n */\nfunction getValueByScope(\n attribute: AttributeValue | AttributeValue[],\n scope: string\n): FormFieldValue[] | AttributeValue | string | null {\n if (Array.isArray(attribute)) {\n return attribute.reduce((result: FormFieldValue[], attr: AttributeValue) => {\n if (attr[scope] ?? attr.default) {\n const option = {\n _id: attr._id,\n disabled: Boolean(attr.scope === null && scope !== 'default'),\n scope,\n value: attr[scope] ?? attr.default,\n };\n\n result.push(option);\n }\n\n return result;\n }, []);\n }\n\n return attribute[scope] ?? attribute.default ?? null;\n}\n\n/**\n * Returns a string with the GraphQl query needed to mutate the dataToMutate object for the given entity and scope.\n */\nexport function getEntityUpdateMutation(\n entityNamePlural: string,\n entityId: string,\n scope: string,\n schema: Schema,\n originalData: FormEntityItem,\n dataToMutate: EntityData\n): string {\n const entitySchema = getEntitySchema(schema, entityNamePlural);\n const entityName = entitySchema?.name ?? entityNamePlural;\n const attributes = entitySchema?.attributes ?? [];\n const pluralizedEntityName = capitalize(entityNamePlural);\n\n if (attributes.length === 0) {\n return '';\n }\n\n const data = filterOutInvalidAttributes(attributes, dataToMutate);\n const globalAttributes = globalAttributesUpdate(attributes, data);\n const localAttributes = localAttributesUpdate(entityId, attributes, data, scope);\n const imageAttributes = imageAttributesUpdate(entityId, attributes, data);\n const relationshipAttributes = relationshipAttributesUpdate(attributes, originalData, data);\n const responseType = entityNamePlural;\n const attributeNamesList = formatResponseFieldsForMutation(schema, entityNamePlural, scope);\n\n return (\n `mutation updateEntity($where: ${entityName}Where) {\\n` +\n ` update${pluralizedEntityName}(\\n` +\n ` where: $where\\n` +\n ` update: {${globalAttributes}${localAttributes}${imageAttributes}${relationshipAttributes}\\n }\\n` +\n ` ) {\\n` +\n ` ${responseType} {\\n` +\n ` _id\\n` +\n ` ${attributeNamesList}` +\n ` }\\n` +\n ` }\\n` +\n `}\\n`\n );\n}\n\n/**\n * Filter out any attribute received from the form that does not exist in the schema.\n */\nfunction filterOutInvalidAttributes(attributes: Attribute[], dataToMutate: EntityData): FormEntityItem {\n const nonUpdatableAttributes: readonly string[] = attributes\n .map((attribute) => {\n if (attribute.isEditable === false) {\n return attribute.name;\n }\n\n return '';\n })\n .filter(Boolean);\n const data = omit(nonUpdatableAttributes, dataToMutate);\n\n return pick(\n attributes.map((attribute) => attribute.name) as unknown as readonly [number, ...number[]],\n data\n ) as unknown as FormEntityItem;\n}\n\n/**\n * Filter attributes by scope: local, global or relationship.\n */\nfunction getAttributeListByScope(type: ScopeType | ScopeType[], attributes: Attribute[]): Attribute['name'][] {\n if (Array.isArray(type)) {\n return type.reduce((acc: Attribute['name'][], attributeType: ScopeType) => {\n return acc.concat(getAttributeListByScope(attributeType, attributes));\n }, []);\n }\n\n const filteredAttributes = attributes.filter(\n (attribute) => attribute.scope === type && attribute.inputType !== 'asset'\n );\n\n return filteredAttributes.map((attribute) => attribute.name);\n}\n\n/**\n * Get all attributes that are of type image.\n */\nfunction getImageAttributes(attributes: Attribute[]): Attribute['name'][] {\n const filteredAttributes = filter(propEq('asset', 'dataType'))(attributes);\n\n return filteredAttributes.map((attribute) => attribute.name);\n}\n\nfunction globalAttributesUpdate(schemaAttributes: Attribute[], data: FormEntityItem): string {\n const globalAttributes = pick(getAttributeListByScope('global', schemaAttributes) as [string], data);\n const attributesString = toPairs(globalAttributes).reduce((acc, [attributeName, value]) => {\n const attributeSchema = find(propEq(attributeName, 'name'))(schemaAttributes) as Attribute;\n const typedValue = stringifyValue(attributeSchema.dataType, value?.value ?? null);\n\n return `${acc}\\n ${attributeName}: ${typedValue}`;\n }, '');\n\n return attributesString;\n}\n\nfunction imageAttributesUpdate(entityId: string, schemaAttributes: Attribute[], data: FormEntityItem): string {\n const imageAttributes = pick(getImageAttributes(schemaAttributes) as [string], data);\n const attributesArray: [string, FormFieldValue][] = toPairs(imageAttributes);\n const attributesString: string = attributesArray.reduce((acc, [attributeName, attributeValue]) => {\n const imageValue = attributeValue.value as ImageValue | null;\n const imagePath = imageValue?.path ? `\"${imageValue.path}\"` : 'null';\n const imageSize = imageValue?.size ? imageValue.size : 'null';\n const imageMimeType = imageValue?.mimeType ? `\"${imageValue.mimeType}\"` : 'null';\n const originalFilename = imageValue?.originalFilename ? `\"${imageValue.originalFilename}\"` : 'null';\n const height = imageValue?.height ? imageValue.height : 'null';\n const width = imageValue?.width ? imageValue.width : 'null';\n const lqip = imageValue?.lqip ? `\"${imageValue.lqip}\"` : 'null';\n\n if (!imagePath) {\n return acc;\n }\n\n if ((attributeValue.value as ImageValue)?._id) {\n return (\n `${acc}\\n ${attributeName}: {\\n` +\n ` update: {\\n` +\n ` node: {\\n` +\n ` mimeType: ${imageMimeType}\\n` +\n ` originalFilename: ${originalFilename}\\n` +\n ` path: ${imagePath}\\n` +\n ` size: ${imageSize}\\n` +\n ` height: ${height}\\n` +\n ` width: ${width}\\n` +\n ` lqip: ${lqip}\\n` +\n ` }\\n` +\n ` }\\n` +\n ` }`\n );\n }\n\n return (\n `${acc}\\n ${attributeName}: {\\n` +\n ` create: {\\n` +\n ` node: {\\n` +\n ` _id: \"${entityId}:${attributeName}\"\\n` +\n ` mimeType: ${imageMimeType}\\n` +\n ` originalFilename: ${originalFilename}\\n` +\n ` path: ${imagePath}\\n` +\n ` size: ${imageSize}\\n` +\n ` height: ${height}\\n` +\n ` width: ${width}\\n` +\n ` lqip: ${lqip}\\n` +\n ` }\\n` +\n ` }\\n` +\n ` }`\n );\n }, '');\n\n return attributesString;\n}\n\nfunction localAttributesUpdate(\n entityId: string,\n schemaAttributes: Attribute[],\n data: FormEntityItem,\n scope: string\n): string {\n const localAttributes = pick(getAttributeListByScope('local', schemaAttributes) as [string], data);\n const attributesArray: [string, FormFieldValue][] = toPairs(localAttributes);\n const attributesString: string = attributesArray.reduce((acc, [attributeName, attributeValue]) => {\n const attributeSchema = find(propEq(attributeName, 'name'))(schemaAttributes) as Attribute;\n const { dataType } = attributeSchema;\n const typedValue =\n attributeValue.disabled || Array.isArray(attributeValue.value)\n ? 'null'\n : stringifyValue(dataType, attributeValue.value);\n\n if (attributeValue._id) {\n return `${acc}\\n ${attributeName}: {\\n update: {\\n node: {\\n ${scope}: ${typedValue}\\n }\\n }\\n }`;\n }\n\n if (!typedValue) {\n return acc;\n }\n\n return (\n `${acc}\\n ${attributeName}: {\\n` +\n ` create: {\\n` +\n ` node: {\\n` +\n ` _id: \"${entityId}:${attributeName}\"\\n` +\n ` _type: \"${dataType}\"\\n` +\n ` ${scope}: ${typedValue}\\n` +\n ` }\\n` +\n ` }\\n` +\n ` }`\n );\n }, '');\n\n return attributesString;\n}\n\nfunction relationshipAttributesUpdate(\n schemaAttributes: Attribute[],\n originalData: FormEntityItem,\n data: FormEntityItem\n): string {\n const relationshipAttributes = pick(getAttributeListByScope('relationship', schemaAttributes) as [string], data);\n const attributesArray = toPairs(relationshipAttributes);\n const attributesString: string = attributesArray.reduce((acc, [attributeName, attributeValue]) => {\n const attributeSchema = find(propEq(attributeName, 'name'))(schemaAttributes) as Attribute;\n const { inputType, relationship } = attributeSchema;\n\n if (inputType === 'relationship' && relationship?.mode === 'single') {\n const disconnect = `disconnect: {\\n where: {\\n node: {\\n _id: \"${\n originalData[attributeName]._id ?? ''\n }\"\\n }\\n }\\n }\\n`;\n const connect = `connect: {\\n where: {\\n node: {\\n _id: \"${\n attributeValue._id ?? ''\n }\"\\n }\\n }\\n }\\n`;\n\n return `${acc}\\n ${attributeName}: {\\n ${connect} ${disconnect} }`;\n }\n\n if (inputType === 'relationship' && relationship?.mode === 'multiple') {\n const nodesToDisconnect: string | undefined = attributeValue.relationships?.disconnect?.reduce(\n (disconnectString: string, _id: string) => {\n return `${disconnectString} {\\n node: {\\n _id: \"${_id}\"\\n }\\n }\\n`;\n },\n ''\n );\n const connections = (attributeValue.relationships?.connect as MultipleRelationshipConnection | null) ?? [];\n const nodesToConnect: string | undefined = connections.reduce((connectString: string, node) => {\n return `${connectString} {\\n _id: \"${node._id}\"\\n }\\n`;\n }, '');\n const disconnect = nodesToDisconnect\n ? `disconnect: {\\n where: {\\n OR: [\\n${nodesToDisconnect} ]\\n }\\n }\\n`\n : '';\n const connect = nodesToConnect\n ? `connect: {\\n where: {\\n node: {\\n OR: [\\n${nodesToConnect} ]\\n }\\n }\\n }\\n`\n : '';\n\n return `${acc}\\n ${attributeName}: {\\n ${disconnect} ${connect} }`;\n }\n\n return `${acc}\\n`;\n }, '');\n\n return attributesString;\n}\n\nfunction stringifyValue(\n type: DataType,\n value: string | MappedEntityItem | EntityItem | AttributeValue | ImageValue | null | undefined\n): string | null {\n if (temporalTypes.includes(type)) {\n return value?.toString().replace(/\"/g, '\\\\\"') ? `\"${value?.toString().replace(/\"/g, '\\\\\"')}\"` : null;\n }\n\n return stringTypes.includes(type)\n ? `\"${value?.toString().replace(/\"/g, '\\\\\"') ?? 'null'}\"`\n : (value?.toString() ?? null);\n}\n\nfunction formatResponseFieldsForMutation(schema: Schema, entityNamePlural: string, scope: string): string {\n const entitySchema = getEntitySchema(schema, entityNamePlural);\n const schemaAttributes = entitySchema?.attributes ?? [];\n const globalAttributesArray = getAttributeListByScope('global', schemaAttributes);\n const localAttributesArray = getAttributeListByScope('local', schemaAttributes);\n const relationshipAttributesArray = getAttributeListByScope('relationship', schemaAttributes);\n\n let fields = globalAttributesArray.reduce((acc, attributeName: string) => {\n return `${acc}${attributeName}\\n `;\n }, '');\n\n fields += localAttributesArray.reduce((acc, attributeName: string) => {\n return `${acc} ${attributeName} {\\n _id\\n ${scope}\\n }\\n `;\n }, '');\n\n fields += relationshipAttributesArray.reduce((acc, attributeName: string) => {\n const relationshipAttribute = find(propEq(attributeName, 'name'))(schemaAttributes) as Attribute | undefined;\n const relationshipMode = relationshipAttribute?.relationship?.mode ?? 'single';\n const relationshipEntityName = relationshipAttribute?.relationship?.entity ?? '';\n const relationshipEntitySchema = find(propEq(relationshipEntityName, 'name'))(schema) as Entity | undefined;\n const relationshipEntityAttributes = relationshipEntitySchema?.attributes ?? [];\n const primaryAttributeName =\n relationshipAttribute?.relationship?.field ?? '[invalid_relationship_field_name_in_schema]';\n const primaryAttribute = find(propEq(primaryAttributeName, 'name'))(relationshipEntityAttributes) as Attribute;\n const primaryAttributeScope = primaryAttribute.scope;\n let list = '';\n\n if (relationshipMode === 'single') {\n if (primaryAttributeScope === 'global') {\n list = ` ${attributeName} {\\n _id\\n ${primaryAttributeName}\\n }\\n `;\n }\n\n if (primaryAttributeScope === 'local') {\n list = ` ${attributeName} {\\n _id\\n ${primaryAttributeName} {\\n _id\\n default\\n ${scope}\\n }\\n }\\n `;\n }\n }\n\n if (relationshipMode === 'multiple' && relationshipEntityAttributes.length) {\n const multipleRelationshipAttributes = relationshipEntityAttributes.reduce((str, attribute) => {\n if (attribute.scope === 'local') {\n return `${str} ${attribute.name} {\\n _id\\n default\\n ${scope}\\n }\\n`;\n }\n\n if (attribute.scope === 'relationship') {\n const additionalScope = scope === 'default' ? '' : `${scope}\\n `;\n const relationshipEntity = find(propEq(attribute.relationship?.entity, 'name'))(schema) as Entity | undefined;\n const relationshipAttribute = find(propEq(attribute.relationship?.field, 'name'))(\n relationshipEntity?.attributes ?? []\n ) as Attribute;\n const localAttributeQuery =\n relationshipAttribute.scope === 'local'\n ? `{\\n _id\\n default\\n ${additionalScope}}\\n `\n : '';\n\n if (attribute.relationship?.mode === 'single') {\n return `${str} ${attribute.name} {\\n ${attribute.relationship.field} ${localAttributeQuery}}\\n `;\n }\n\n if (attribute.relationship?.field) {\n return `${str} ${attribute.name} (options: {limit: 25, offset: 0}) {\\n ${attribute.relationship.field} ${localAttributeQuery}}\\n `;\n }\n }\n\n if (attribute.inputType === 'asset') {\n return `${str} ${attribute.name} {\\n _id\\n originalFilename\\n mimeType\\n path\\n size\\n height\\n width\\n lqip\\n }\\n`;\n }\n\n return `${str} ${attribute.name}\\n `;\n }, '');\n\n list =\n ` ${attributeName}Aggregate {\\n` +\n ` count\\n` +\n ` }\\n` +\n ` ${attributeName} (options: {limit: 25, offset: 0}) {\\n${multipleRelationshipAttributes}` +\n ` }\\n`;\n }\n\n return `${acc}${list}`;\n }, '');\n\n return fields;\n}\n\n/**\n * Returns a string with the GraphQl mutation needed to delete an entity.\n */\nexport function getEntityDeleteMutation(entityName: string, schema: Schema, _id: string): string {\n const entitySchema = find(propEq(entityName, 'name'))(schema) as Entity | undefined;\n const attributes = entitySchema?.attributes ?? [];\n const pluralizedEntityName = capitalize(entitySchema?.plural ?? '');\n const localAttributes = localAttributesDelete(attributes, _id);\n\n if (entityName === '_asset') {\n return (\n `mutation deleteEntity($where: ${entityName}Where) {\\n` +\n ` delete_assets(\\n` +\n ` where: $where\\n` +\n ` ) {\\n` +\n ` nodesDeleted\\n` +\n ` relationshipsDeleted\\n` +\n ` }\\n` +\n `}\\n`\n );\n }\n\n return (\n `mutation deleteEntity($where: ${entityName}Where) {\\n` +\n ` delete${pluralizedEntityName}(\\n` +\n ` where: $where\\n` +\n `${localAttributes ? ` delete: {\\n ${localAttributes}\\n }\\n` : ''}` +\n ` ) {\\n` +\n ` nodesDeleted\\n` +\n ` relationshipsDeleted\\n` +\n ` }\\n` +\n `}\\n`\n );\n}\n\nfunction localAttributesDelete(schemaAttributes: Attribute[], _id: string): string {\n const localAttributes = getAttributeListByScope('local', schemaAttributes);\n const attributesString: string = localAttributes.reduce((acc, attributeName) => {\n return (\n `${acc}\\n` +\n ` ${attributeName}: {\\n` +\n ` where: {\\n` +\n ` node: {\\n` +\n ` _id: \"${_id}:${attributeName}\"\\n` +\n ` }\\n` +\n ` }\\n` +\n ` }`\n );\n }, '');\n\n return attributesString;\n}\n\nexport function getEntityCreateMutation(\n entityNamePlural: string,\n schema: Schema,\n entityData: EntityData,\n _id: string\n): string {\n const entitySchema = getEntitySchema(schema, entityNamePlural);\n const attributes = entitySchema?.attributes ?? [];\n const pluralizedEntityName = capitalize(entitySchema?.plural ?? '');\n\n if (attributes.length === 0) {\n return '';\n }\n\n const data = filterOutInvalidAttributes(attributes, entityData);\n const globalAttributes = globalAttributesUpdate(attributes, data);\n const localAttributes = localAttributesCreate(attributes, data, 'default', _id);\n const relationshipAttributes = relationshipAttributesCreate(attributes, data);\n const responseType = entityNamePlural;\n const attributeNamesList = formatResponseFieldsForMutation(schema, responseType, 'default');\n\n return (\n `mutation {\\n` +\n ` create${pluralizedEntityName}(\\n` +\n ` input: [{\\n` +\n ` _id: \"${_id}\"` +\n ` ${globalAttributes}` +\n ` ${localAttributes}\\n` +\n ` ${relationshipAttributes}\\n` +\n ` }]\\n` +\n ` ) {\\n` +\n ` ${responseType} {\\n` +\n ` ${attributeNamesList}` +\n ` }\\n` +\n ` }\\n` +\n `}\\n`\n );\n}\n\nfunction localAttributesCreate(\n schemaAttributes: Attribute[],\n data: FormEntityItem,\n defaultScope: string,\n _id: string\n): string {\n const localAttributes = pick(getAttributeListByScope('local', schemaAttributes) as [string], data);\n const attributesArray = toPairs(localAttributes);\n const attributesString: string = attributesArray.reduce((acc, [attributeName, attributeValue]) => {\n if (!attributeValue?.value) {\n return acc;\n }\n\n const attributeSchema = find(propEq(attributeName, 'name'))(schemaAttributes) as Attribute;\n const typedValue = Array.isArray(attributeValue.value)\n ? 'null'\n : stringifyValue(attributeSchema.dataType, attributeValue.value);\n\n return (\n `${acc}\\n` +\n ` ${attributeName}: {\\n` +\n ` create: {\\n` +\n ` node: {\\n` +\n ` _id: \"${_id}:${attributeName}\"\\n` +\n ` _type: \"${attributeSchema.dataType}\"\\n` +\n ` ${defaultScope}: ${typedValue}\\n` +\n ` }\\n` +\n ` }\\n` +\n ` }`\n );\n }, '');\n\n return attributesString;\n}\n\nfunction relationshipAttributesCreate(schemaAttributes: Attribute[], data: FormEntityItem): string {\n const relationshipAttributes = pick(getAttributeListByScope('relationship', schemaAttributes) as [string], data);\n const attributesArray = toPairs(relationshipAttributes);\n const attributesString: string = attributesArray.reduce((acc, [attributeName, attributeValue]) => {\n const attributeSchema = find(propEq(attributeName, 'name'))(schemaAttributes) as Attribute;\n const { inputType, relationship } = attributeSchema;\n\n if (inputType === 'relationship' && relationship?.mode === 'single') {\n const connect = `connect: {\\n where: {\\n node: {\\n _id: \"${\n attributeValue._id ?? ''\n }\"\\n }\\n }\\n }\\n`;\n\n return `${acc}\\n ${attributeName}: {\\n ${connect} }`;\n }\n\n const isMultipleRelationship = inputType === 'relationship' && relationship?.mode === 'multiple';\n const hasRelationships =\n Array.isArray(attributeValue.relationships?.connect) && attributeValue.relationships.connect.length > 0;\n if (isMultipleRelationship && hasRelationships) {\n const connections = (attributeValue.relationships?.connect as MultipleRelationshipConnection | null) ?? [];\n const nodesToConnect: string | undefined = connections.reduce((connectString: string, node) => {\n return `${connectString} {\\n _id: \"${node._id}\"\\n }\\n`;\n }, '');\n const connect = nodesToConnect\n ? `connect: {\\n where: {\\n node: {\\n OR: [\\n${nodesToConnect} ]\\n }\\n }\\n }\\n`\n : '';\n\n return `${acc}\\n ${attributeName}: {\\n ${connect} }`;\n }\n\n return `${acc}\\n`;\n }, '');\n\n return attributesString;\n}\n\n/**\n * Find the attribute of an entity with isPrimary === true.\n * if none is found, return the first attribute.\n */\nfunction getPrimaryAttribute(schemaAttributes: Attribute[]): Attribute {\n return schemaAttributes.find((attr) => attr.isPrimary) ?? schemaAttributes[0];\n}\n\nexport function getRelatedItemsQuery({\n attributeName,\n relatedEntityName,\n scope,\n schema,\n}: {\n attributeName: string;\n relatedEntityName: string;\n scope: string;\n schema: Schema;\n}): EntityQuery {\n const filters = `(where: $where, options: $options)`;\n const entitySchema = find(propEq(relatedEntityName, 'name'))(schema) as Entity | undefined;\n const attributes = entitySchema?.attributes ?? [];\n const heading = `$where: ${relatedEntityName}Where, $options: ${relatedEntityName}Options`;\n const queryEntityName = entitySchema?.plural ?? '';\n\n if (attributes.length === 0) {\n return {\n queryEntityName: '',\n query: '',\n };\n }\n\n const globalAttributesList: string = getAttributeListByScope('global', attributes).join('\\n ');\n const localAttributes: readonly string[] = getAttributeListByScope(['local'], attributes);\n const defaultScopedAttr = localAttributes.reduce(\n (acc, attribute) => `${acc}\\n ${attribute} {\\n _id\\n default\\n }\\n `,\n ''\n );\n const scopedAttribute = localAttributes.reduce(\n (acc, attribute) => `${acc}\\n ${attribute} {\\n _id\\n default\\n ${scope}\\n }\\n `,\n ''\n );\n const localAttributesList: string = scope === 'default' ? defaultScopedAttr : scopedAttribute;\n\n const relationshipAttributes = filter(propEq('relationship', 'scope'))(attributes);\n const relationshipAttributesList: string = relationshipAttributes.reduce((acc, attribute) => {\n const relatedEntity = find(propEq(attribute.relationship?.entity, 'name'))(schema) as Entity | undefined;\n const attributesNameList = relatedEntity?.attributes.reduce((relatedAcc, relatedAttribute) => {\n const additionalScope = scope === 'default' ? '' : `${scope}\\n `;\n\n if (relatedAttribute.scope === 'local') {\n return `${relatedAcc}\\n ${relatedAttribute.name} {\\n _id\\n default\\n ${additionalScope}}\\n `;\n }\n\n if (relatedAttribute.scope === 'relationship') {\n const relationshipEntity = find(propEq(relatedAttribute.relationship?.entity, 'name'))(schema) as\n | Entity\n | undefined;\n const relationshipAttribute = find(propEq(relatedAttribute.relationship?.field, 'name'))(\n relationshipEntity?.attributes ?? []\n ) as Attribute;\n const localAttributeQuery =\n relationshipAttribute.scope === 'local'\n ? `{\\n _id\\n default\\n ${additionalScope}}\\n `\n : '';\n\n if (relatedAttribute.relationship?.mode === 'single') {\n return `${relatedAcc}\\n ${relatedAttribute.name} {\\n ${relatedAttribute.relationship.field} ${localAttributeQuery}}\\n `;\n }\n\n if (relatedAttribute.relationship?.field) {\n return `${relatedAcc}\\n ${relatedAttribute.name} (options: {limit: 25, offset: 0}) {\\n ${relatedAttribute.relationship.field} ${localAttributeQuery}}\\n `;\n }\n }\n\n return `${relatedAcc}\\n ${relatedAttribute.name}\\n `;\n }, '');\n\n return `${acc}\\n ${attribute.name} (options: {limit: 25, offset: 0}) { _id ${attributesNameList ?? ''}}\\n`;\n }, '');\n\n return {\n queryEntityName,\n query:\n `query getEntity(${heading}) {\\n` +\n ` ${attributeName}Aggregate(where: $where) {\\n` +\n ` count\\n` +\n ` }\\n` +\n ` ${queryEntityName}${filters} {\\n` +\n ` _id\\n` +\n ` ${globalAttributesList}` +\n ` ${localAttributesList}` +\n ` ${relationshipAttributesList}` +\n ` }\\n` +\n `}\\n`,\n };\n}\n\nexport function getAssetCreateMutation(entityData: EntityData): string {\n const attributes = assetSchema.attributes;\n const pluralizedEntityName = capitalize(assetSchema.plural);\n const _id = uuidv4();\n const data = filterOutInvalidAttributes(attributes, entityData);\n const globalAttributes = globalAttributesUpdate(attributes, data);\n const responseType = assetSchema.plural;\n const attributeNamesList = formatResponseFieldsForMutation([assetSchema, tagSchema], responseType, 'default');\n\n return (\n `mutation {\\n` +\n ` create${pluralizedEntityName}(\\n` +\n ` input: [{\\n` +\n ` _id: \"${_id}\"` +\n ` ${globalAttributes}` +\n ` }]\\n` +\n ` ) {\\n` +\n ` ${responseType} {\\n` +\n ` ${attributeNamesList}` +\n ` }\\n` +\n ` }\\n` +\n `}\\n`\n );\n}\n\nconst capitalize = (str: string): string => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n};\n\nexport function getEntitySchema(schema: Schema, entityNamePlural: string): Entity | undefined {\n if (entityNamePlural === '_assets') {\n return assetSchema;\n }\n\n return find(propEq(entityNamePlural, 'plural'))(schema) as Entity | undefined;\n}\n","import type { ErrorLike } from '@apollo/client';\nimport { ServerError } from '@apollo/client/errors';\n\ntype ErrorWithCause = ErrorLike & { cause?: unknown };\n\nfunction hasCause(error: ErrorLike): error is ErrorWithCause {\n if (!error) {\n return false;\n }\n\n return 'cause' in (error as ErrorWithCause);\n}\n\nexport function getServerError(error?: ErrorLike): ServerError | null {\n if (!error) {\n return null;\n }\n\n if (ServerError.is(error)) {\n return error;\n }\n\n if (hasCause(error)) {\n const possibleServerError = error.cause;\n\n if (ServerError.is(possibleServerError)) {\n return possibleServerError;\n }\n }\n\n return null;\n}\n\nexport function parseErrorBody<T>(bodyText: string | undefined): T | null {\n if (!bodyText) {\n return null;\n }\n\n try {\n return JSON.parse(bodyText) as T;\n } catch {\n return null;\n }\n}\n","import { useEffect, useState } from 'react';\nimport type { Dispatch, SetStateAction } from 'react';\nimport { gql } from '@apollo/client';\nimport type { DocumentNode, ErrorLike } from '@apollo/client';\nimport { useApolloClient, useMutation } from '@apollo/client/react';\nimport type { MutationHookOptions } from '@apollo/client/react';\nimport { getAssetCreateMutation } from './queries';\nimport type { FormEntityItem, EntityData } from './types';\nimport { getServerError, parseErrorBody } from './error-utils';\n\nexport function useCreateAssetMutation(): (entityData: FormEntityItem) => Promise<void> {\n const apolloClient = useApolloClient();\n\n return async (entityData: FormEntityItem): Promise<void> => {\n const mutation = getAssetCreateMutation(entityData as unknown as EntityData);\n\n await apolloClient.mutate({\n mutation: gql`\n ${mutation}\n `,\n });\n };\n}\n\ntype EntityMutationResponse = [\n Dispatch<SetStateAction<boolean>>,\n Dispatch<SetStateAction<DocumentNode>>,\n Dispatch<SetStateAction<object>>,\n {\n data: unknown;\n loading: boolean;\n error: ErrorLike | undefined;\n isProjectDisabled: boolean;\n isProjectReadOnly: boolean;\n },\n];\n\nexport function useEntityMutation(): EntityMutationResponse {\n const [runMutation, setRunMutation] = useState(false);\n const [mutation, setMutation] = useState(gql`\n mutation updateEntity($any: Any) {\n any\n }\n `);\n const [options, setOptions] = useState<MutationHookOptions>({});\n const [mutateFunction, { data, loading, error }] = useMutation(mutation, options);\n\n // Parse 403 error response to determine the specific error code\n const serverError = getServerError(error);\n\n const { isProjectDisabled, isProjectReadOnly } = (() => {\n if (serverError?.statusCode === 403) {\n const responseBody = parseErrorBody<{ code?: string }>(serverError.bodyText);\n\n if (responseBody && typeof responseBody.code === 'string') {\n if (responseBody.code === 'PROJECT_PAUSED') {\n return {\n isProjectDisabled: true,\n isProjectReadOnly: false,\n };\n }\n\n if (responseBody.code === 'READ_ONLY_MODE') {\n return {\n isProjectDisabled: false,\n isProjectReadOnly: true,\n };\n }\n }\n\n return {\n isProjectDisabled: true,\n isProjectReadOnly: false,\n };\n }\n\n return {\n isProjectDisabled: false,\n isProjectReadOnly: false,\n };\n })();\n\n useEffect(() => {\n if (runMutation) {\n void mutateFunction();\n setRunMutation(false);\n }\n }, [runMutation, mutateFunction]);\n\n return [setRunMutation, setMutation, setOptions, { data, loading, error, isProjectDisabled, isProjectReadOnly }];\n}\n","import { Badge } from '../../ui/primitives/badge';\n\nexport function Tags({ value }: { value: string }) {\n if (!value || !value.split(',').length) {\n return null;\n }\n\n return (\n <div className=\"fk-flex fk-flex-wrap fk-gap-1 fk-max-w-full truncate\">\n {value.split(',').map((tag) => (\n <Badge\n className=\"fk-px-2.5 fk-py-0 fk-font-normal fk-text-[0.6875rem] fk-leading-4\"\n key={tag}\n variant=\"secondary\"\n >\n {tag}\n </Badge>\n ))}\n </div>\n );\n}\n","import { ComponentType } from 'react';\nimport type { CellContext, ColumnDef, Row, Table } from '@tanstack/react-table';\nimport type { Attribute } from '../core/types';\nimport type { AttributeValue } from '../graphql-client/types';\nimport { useConfig } from '../core/config/config-context';\nimport { Checkbox } from '../ui/primitives/checkbox';\nimport { Boolean as BooleanPrefiewField } from './preview-components/boolean';\nimport { Text as TextPreviewField } from './preview-components/text';\nimport { Editor as EditorPreviewField } from './preview-components/editor';\nimport { Asset as AssetPreviewField } from './preview-components/asset';\nimport { DateTime as DateTimePreviewField } from './preview-components/datetime';\nimport { Tags as TagsPreviewField } from './preview-components/tags';\n\ntype Props<TData> = {\n attributesSchema: Attribute[];\n checkboxSelect?: 'single' | 'multiple'; // whether to include a checkbox column for row selection\n actionsComponent?: (row: Row<TData>) => JSX.Element; // a component to be displayed in the actions column of the grid\n};\n\ntype ColumnDefinition<TData extends AttributeValue, TValue> = ColumnDef<TData, TValue> & { id?: string; size: number };\n\nexport function useGridColumnsDefinition<TData extends AttributeValue, TValue>({\n attributesSchema,\n checkboxSelect,\n actionsComponent,\n}: Props<TData>): ColumnDefinition<TData, TValue>[] {\n const { getContributionPointConfig } = useConfig();\n const inputTypeToPreviewFieldMap = {\n 'datetime': 'datetime',\n 'editor': 'editor',\n 'asset': 'asset',\n 'number': 'text',\n 'relationship': 'text',\n 'select': 'text',\n 'switch': 'boolean',\n 'text': 'text',\n 'textarea': 'text',\n };\n const previewFieldComponentsMap = {\n 'boolean': BooleanPrefiewField,\n 'date': TextPreviewField,\n 'datetime': DateTimePreviewField,\n 'editor': EditorPreviewField,\n 'asset': AssetPreviewField,\n 'number': TextPreviewField,\n 'relationship': TextPreviewField,\n 'select': TextPreviewField,\n 'switch': BooleanPrefiewField,\n 'text': TextPreviewField,\n 'textarea': TextPreviewField,\n 'tags': TagsPreviewField,\n };\n\n const cols = attributesSchema\n .map((attribute) => {\n const previewType =\n attribute.previewType ??\n inputTypeToPreviewFieldMap[attribute.inputType as keyof typeof inputTypeToPreviewFieldMap];\n const previewComponent =\n (getContributionPointConfig('previewFields', [previewType])?.[0]?.component as unknown as\n | ComponentType<{ value: TData }>\n | undefined) ??\n previewFieldComponentsMap[previewType as keyof typeof previewFieldComponentsMap] ??\n previewFieldComponentsMap['text'];\n\n if (attribute.isHidden) {\n return null;\n }\n\n const isTagsPreview = previewType === 'tags';\n\n return {\n accessorKey: attribute.name,\n filterFn: (row: Row<TData>, id: string, value: string | string[]) => {\n if (isTagsPreview) {\n return true;\n }\n\n const selectedValues = Array.isArray(value) ? value : [value];\n\n return selectedValues.includes(row.getValue(id));\n },\n header: () => <div className=\"fk-flex fk-items-center\">{attribute.label}</div>,\n cell: ({ row }: CellContext<TData, TValue>) => {\n const PreviewComponent = previewComponent as ComponentType<{ value: TData }>;\n\n // TODO: Pass the complete row data to the preview component, so it can concatenate values from other attributes (i.e. for the \"image dimensions\" column)\n // console.log(row.getAllCells());\n return <PreviewComponent value={row.getValue(attribute.name)} />;\n },\n enableSorting: false,\n enableHiding: true,\n size: attribute.options?.size ?? 150,\n };\n })\n .filter((column) => column !== null);\n\n const actions = {\n id: 'actions',\n cell: ({ row }: CellContext<TData, TValue>) => (actionsComponent ? actionsComponent(row) : null),\n size: 80,\n };\n\n const singleCheckboxSelect = {\n id: 'select',\n cell: ({ row, table }: CellContext<TData, TValue>) => (\n <Checkbox\n aria-label=\"Select row\"\n checked={row.getIsSelected()}\n onCheckedChange={(value) => {\n table.toggleAllPageRowsSelected(false);\n row.toggleSelected(Boolean(value));\n }}\n />\n ),\n enableSorting: false,\n enableHiding: false,\n size: 50,\n };\n\n const multipleCheckboxSelect = {\n id: 'select',\n header: ({ table }: { table: Table<unknown> }) => (\n <Checkbox\n aria-label=\"Select all\"\n checked={table.getIsAllPageRowsSelected() || (table.getIsSomePageRowsSelected() && 'indeterminate')}\n onCheckedChange={(value) => {\n table.toggleAllPageRowsSelected(Boolean(value));\n }}\n />\n ),\n cell: ({ row }: CellContext<TData, TValue>) => (\n <Checkbox\n aria-label=\"Select row\"\n checked={row.getIsSelected()}\n onCheckedChange={(value) => {\n row.toggleSelected(Boolean(value));\n }}\n />\n ),\n enableSorting: false,\n enableHiding: false,\n size: 50,\n };\n\n return [\n ...(checkboxSelect === 'single' ? [singleCheckboxSelect] : []),\n ...(checkboxSelect === 'multiple' ? [multipleCheckboxSelect] : []),\n ...(actionsComponent ? [actions] : []),\n ...cols,\n ];\n}\n","'use client';\n\nimport { useRef, useState } from 'react';\nimport type { ReactElement, UIEvent } from 'react';\nimport {\n flexRender,\n getCoreRowModel,\n getFacetedRowModel,\n getFacetedUniqueValues,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n} from '@tanstack/react-table';\nimport type {\n ColumnDef,\n ColumnFiltersState,\n Updater,\n Row,\n RowSelectionState,\n SortingState,\n Table,\n TableMeta,\n VisibilityState,\n} from '@tanstack/react-table';\nimport { useVirtualizer } from '@tanstack/react-virtual';\nimport {\n Table as TablePrimitive,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from '../ui/primitives/table';\nimport { cn } from '../ui/lib/utils';\nimport type { AttributeValue } from '../graphql-client/types';\nimport type { MultipleRelationshipConnection } from '../core/types';\n\ninterface DataTableProps<TData extends AttributeValue, TValue> {\n classNames?: {\n wrapper?: string;\n table?: string;\n row?: string;\n };\n columns: ColumnDef<AttributeValue, TValue>[];\n data: TData[];\n entityName: string;\n initialSelectionState?: RowSelectionState;\n onEntitySelectionChange?: (rowSelection: string[]) => void;\n onScroll?: (event: UIEvent<HTMLDivElement>) => void;\n pageSize?: number;\n rowAdditionState?: MultipleRelationshipConnection;\n rowDeletionState?: string[];\n toolbarComponent?: (table: Table<AttributeValue>) => ReactElement;\n}\n\ninterface ExtendedDataTable extends TableMeta<unknown> {\n getRowBackground: (row: Row<AttributeValue>) => string;\n}\n\nexport function DataTable<TData extends AttributeValue, TValue>({\n classNames,\n columns,\n data,\n initialSelectionState,\n onEntitySelectionChange,\n onScroll,\n pageSize,\n rowAdditionState,\n rowDeletionState,\n toolbarComponent,\n}: DataTableProps<TData, TValue>): JSX.Element {\n const scrollRef = useRef<HTMLDivElement>(null);\n const [rowSelection, setRowSelection] = useState(initialSelectionState ?? {});\n const [columnVisibility, setColumnVisibility] = useState<VisibilityState>({});\n const [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([]);\n const [sorting, setSorting] = useState<SortingState>([]);\n\n const table = useReactTable({\n data,\n columns,\n state: {\n sorting,\n columnVisibility,\n rowSelection,\n columnFilters,\n },\n initialState: {\n pagination: {\n pageSize: pageSize ?? 25,\n },\n },\n enableRowSelection: true,\n onRowSelectionChange: handleRowSelectionChange,\n onSortingChange: setSorting,\n onColumnFiltersChange: setColumnFilters,\n onColumnVisibilityChange: setColumnVisibility,\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFacetedRowModel: getFacetedRowModel(),\n getFacetedUniqueValues: getFacetedUniqueValues(),\n getRowId: (row) => row._id,\n manualPagination: true,\n meta: {\n getRowBackground: (row: Row<AttributeValue>) => getRowClassnames(row, rowDeletionState, rowAdditionState),\n },\n });\n\n const { rows } = table.getRowModel();\n const rowVirtualizer = useVirtualizer({\n count: rows.length,\n estimateSize: () => 45, //estimate row height for accurate scrollbar dragging\n getScrollElement: () => scrollRef.current,\n //measure dynamic row height, except in firefox because it measures table border height incorrectly\n measureElement:\n typeof window !== 'undefined' && navigator.userAgent.includes('Firefox')\n ? (element) => element.getBoundingClientRect().height\n : undefined,\n overscan: 5,\n });\n\n function handleRowSelectionChange(updaterFn: Updater<RowSelectionState>): void {\n const selectedIds = typeof updaterFn === 'function' ? Object.keys(updaterFn(rowSelection)) : Object.keys(updaterFn);\n\n setRowSelection(updaterFn);\n onEntitySelectionChange?.(selectedIds);\n }\n\n return (\n <div className={cn('fk-w-full fk-h-full fk-space-y-4', classNames?.wrapper)}>\n {toolbarComponent && toolbarComponent(table)}\n <TablePrimitive className={cn('fk-grid fk-pb-[5rem]', classNames?.table)} onScroll={onScroll} ref={scrollRef}>\n <TableHeader className=\"fk-grid\">\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow className=\"fk-flex fk-w-full\" key={headerGroup.id}>\n {headerGroup.headers.map((header) => {\n return (\n <TableHead\n className={cn('fk-flex fk-items-center', header.column.id === 'actions' && 'fk-pl-0')}\n colSpan={header.colSpan}\n key={header.id}\n style={header.getSize() ? { width: `${header.getSize().toString()}px` } : {}}\n >\n {header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext())}\n </TableHead>\n );\n })}\n </TableRow>\n ))}\n </TableHeader>\n <TableBody\n className=\"fk-grid fk-relative\"\n style={{\n height: `${rowVirtualizer.getTotalSize().toString()}px`, //tells scrollbar how big the table is\n }}\n >\n {rowVirtualizer.getVirtualItems().length ? (\n rowVirtualizer.getVirtualItems().map((virtualRow) => {\n const row = rows[virtualRow.index];\n\n return (\n <TableRow\n className={`${(table.options.meta as ExtendedDataTable).getRowBackground(\n row\n )} fk-flex fk-absolute fk-w-full ${classNames?.row ?? ''}`}\n data-index={virtualRow.index}\n data-state={row.getIsSelected() && 'selected'}\n key={virtualRow.key}\n ref={rowVirtualizer.measureElement}\n style={{\n transform: `translateY(${virtualRow.start.toString()}px)`,\n }}\n >\n {row.getVisibleCells().map((cell) => (\n <TableCell\n className={cn('fk-flex fk-items-center fk-truncate', cell.column.id === 'actions' && '!fk-pl-0')}\n key={cell.id}\n style={{\n width: cell.column.getSize(),\n }}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableCell>\n ))}\n </TableRow>\n );\n })\n ) : (\n <TableRow>\n <TableCell className=\"fk-h-24 fk-text-center\" colSpan={columns.length}>\n No results.\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </TablePrimitive>\n </div>\n );\n}\n\nfunction getRowClassnames(\n row: Row<AttributeValue>,\n rowDeletionState?: string[],\n rowAdditionState?: MultipleRelationshipConnection\n): string {\n if (rowDeletionState?.includes(row.original._id)) {\n return 'fk-bg-row-removed hover:fk-bg-row-removed-hover';\n }\n\n if (rowAdditionState?.some((line) => line._id === row.original._id)) {\n return 'fk-bg-row-added hover:fk-bg-row-added-hover';\n }\n\n return '';\n}\n"]}
|
package/dist/chunk-VVAW7U22.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {a as a$1}from'./chunk-A6DNMUGW.js';import*as n from'react';import*as a from'@radix-ui/react-dialog';import {X,Search}from'lucide-react';import {jsx,jsxs}from'react/jsx-runtime';import {Command}from'cmdk';import*as l from'@radix-ui/react-scroll-area';var P=a.Root,G=a.Trigger,x=a.Portal,O=a.Close,D=n.forwardRef(({className:t,...e},o)=>jsx(a.Overlay,{className:a$1("fk-fixed fk-inset-0 fk-z-50 fk-bg-background/80 fk-backdrop-blur-sm data-[state=open]:fk-animate-in data-[state=closed]:fk-animate-out data-[state=closed]:fk-fade-out-0 data-[state=open]:fk-fade-in-0",t),ref:o,...e}));D.displayName=a.Overlay.displayName;var k=n.forwardRef(({className:t,children:e,...o},s)=>jsxs(x,{children:[jsx(D,{}),jsxs(a.Content,{className:a$1("fk-fixed fk-left-[50%] fk-top-[50%] fk-z-50 fk-grid fk-w-full fk-max-w-lg fk-translate-x-[-50%] fk-translate-y-[-50%] fk-gap-4 fk-border fk-border-border fk-bg-background fk-p-6 fk-shadow-lg fk-duration-200 data-[state=open]:fk-animate-in data-[state=closed]:fk-animate-out data-[state=closed]:fk-fade-out-0 data-[state=open]:fk-fade-in-0 data-[state=closed]:fk-zoom-out-95 data-[state=open]:fk-zoom-in-95 data-[state=closed]:fk-slide-out-to-left-1/2 data-[state=closed]:fk-slide-out-to-top-[48%] data-[state=open]:fk-slide-in-from-left-1/2 data-[state=open]:fk-slide-in-from-top-[48%] sm:fk-rounded-lg",t),ref:s,...o,children:[e,jsxs(a.Close,{className:"fk-absolute fk-right-4 fk-top-4 fk-rounded-sm fk-opacity-70 fk-ring-offset-background fk-transition-opacity hover:fk-opacity-100 focus:fk-outline-none focus:fk-ring-2 focus:fk-ring-ring focus:fk-ring-offset-2 disabled:fk-pointer-events-none data-[state=open]:fk-bg-accent data-[state=open]:fk-text-muted-foreground",children:[jsx(X,{className:"fk-h-4 fk-w-4"}),jsx("span",{className:"fk-sr-only",children:"Close"})]})]})]}));k.displayName=a.Content.displayName;function g({className:t,...e}){return jsx("div",{className:a$1("fk-flex fk-flex-col fk-space-y-1.5 fk-text-center sm:fk-text-left",t),...e})}g.displayName="DialogHeader";function b({className:t,...e}){return jsx("div",{className:a$1("fk-flex fk-flex-col-reverse sm:fk-flex-row sm:fk-justify-end sm:fk-space-x-2",t),...e})}b.displayName="DialogFooter";var u=n.forwardRef(({className:t,...e},o)=>jsx(a.Title,{className:a$1("fk-text-lg fk-font-semibold fk-leading-none fk-tracking-tight",t),ref:o,...e}));u.displayName=a.Title.displayName;var R=n.forwardRef(({className:t,...e},o)=>jsx(a.Description,{className:a$1("fk-text-sm fk-text-muted-foreground",t),ref:o,...e}));R.displayName=a.Description.displayName;var C=n.forwardRef(({className:t,...e},o)=>jsx(Command,{className:a$1("fk-flex fk-h-full fk-w-full fk-flex-col fk-overflow-hidden fk-rounded-md fk-bg-popover fk-text-popover-foreground",t),ref:o,...e}));C.displayName=Command.displayName;function K({children:t,...e}){return jsx(P,{...e,children:jsxs(k,{className:"fk-overflow-hidden fk-p-0 fk-shadow-lg",children:[jsxs(g,{className:"fk-sr-only",children:[jsx(u,{children:"Command menu"}),jsx(R,{children:"Search and run actions"})]}),jsx(C,{className:"[&_[cmdk-group-heading]]:fk-px-2 [&_[cmdk-group-heading]]:fk-font-medium [&_[cmdk-group-heading]]:fk-text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:fk-pt-0 [&_[cmdk-group]]:fk-px-2 [&_[cmdk-input-wrapper]_svg]:fk-h-5 [&_[cmdk-input-wrapper]_svg]:fk-w-5 [&_[cmdk-input]]:fk-h-12 [&_[cmdk-item]]:fk-px-2 [&_[cmdk-item]]:fk-py-3 [&_[cmdk-item]_svg]:fk-h-5 [&_[cmdk-item]_svg]:fk-w-5",children:t})]})})}var w=n.forwardRef(({className:t,...e},o)=>jsxs("div",{className:"fk-flex fk-items-center fk-border-b fk-border-border fk-px-3","cmdk-input-wrapper":"",children:[jsx(Search,{className:"fk-mr-2 fk-h-4 fk-w-4 fk-shrink-0 fk-opacity-50"}),jsx(Command.Input,{className:a$1("fk-flex fk-h-11 fk-w-full fk-rounded-md fk-bg-transparent fk-py-3 fk-text-sm fk-outline-none placeholder:fk-text-muted-foreground disabled:fk-cursor-not-allowed disabled:fk-opacity-50",t),ref:o,...e})]}));w.displayName=Command.Input.displayName;var A=n.forwardRef(({className:t,...e},o)=>jsx(Command.List,{className:a$1("fk-max-h-[300px] fk-overflow-y-auto fk-overflow-x-hidden",t),ref:o,...e}));A.displayName=Command.List.displayName;var E=n.forwardRef((t,e)=>jsx(Command.Empty,{className:"fk-py-6 fk-text-center fk-text-sm",ref:e,...t}));E.displayName=Command.Empty.displayName;var _=n.forwardRef(({className:t,...e},o)=>jsx(Command.Group,{className:a$1("fk-overflow-hidden fk-p-1 fk-text-foreground [&_[cmdk-group-heading]]:fk-px-2 [&_[cmdk-group-heading]]:fk-py-1.5 [&_[cmdk-group-heading]]:fk-text-xs [&_[cmdk-group-heading]]:fk-font-medium [&_[cmdk-group-heading]]:fk-text-muted-foreground",t),ref:o,...e}));_.displayName=Command.Group.displayName;var T=n.forwardRef(({className:t,...e},o)=>jsx(Command.Separator,{className:a$1("fk-mx-1 fk-h-px bg-border",t),ref:o,...e}));T.displayName=Command.Separator.displayName;var W=n.forwardRef(({className:t,...e},o)=>jsx(Command.Item,{className:a$1("fk-relative fk-flex fk-cursor-default fk-select-none fk-items-center fk-rounded-sm fk-px-2 fk-py-1.5 fk-text-sm fk-outline-none aria-selected:fk-bg-accent aria-selected:fk-text-accent-foreground data-[disabled=true]:fk-pointer-events-none data-[disabled=true]:fk-opacity-50",t),ref:o,...e}));W.displayName=Command.Item.displayName;function L({className:t,...e}){return jsx("span",{className:a$1("fk-ml-auto fk-text-xs fk-tracking-widest fk-text-muted-foreground",t),...e})}L.displayName="CommandShortcut";var H=n.forwardRef(({className:t,children:e,...o},s)=>jsxs(l.Root,{className:a$1("fk-relative fk-overflow-hidden",t),ref:s,...o,children:[jsx(l.Viewport,{className:"fk-h-full fk-w-full fk-rounded-[inherit]",children:e}),jsx(N,{}),jsx(l.Corner,{})]}));H.displayName=l.Root.displayName;var N=n.forwardRef(({className:t,orientation:e="vertical",...o},s)=>jsx(l.ScrollAreaScrollbar,{className:a$1("fk-flex fk-touch-none fk-select-none fk-transition-colors",e==="vertical"&&"fk-h-full fk-w-2.5 fk-border-l fk-border-l-transparent fk-p-[1px]",e==="horizontal"&&"fk-h-2.5 fk-flex-col fk-border-t fk-border-t-transparent fk-p-[1px]",t),orientation:e,ref:s,...o,children:jsx(l.ScrollAreaThumb,{className:"fk-relative fk-flex-1 fk-rounded-full fk-bg-border"})}));N.displayName=l.ScrollAreaScrollbar.displayName;export{P as a,G as b,x as c,O as d,D as e,k as f,g,b as h,u as i,R as j,C as k,K as l,w as m,A as n,E as o,_ as p,T as q,W as r,L as s,H as t,N as u};//# sourceMappingURL=chunk-VVAW7U22.js.map
|
|
2
|
-
//# sourceMappingURL=chunk-VVAW7U22.js.map
|