wcz-layout
Version:
1 lines • 17.6 kB
Source Map (JSON)
{"version":3,"file":"peoplesoft-Dz_JVtHm.mjs","names":["createServerOnlyFn","z","createApi","ApproveApprovalSchema","CancelApprovalSchema","CreateApprovalSchema","ResubmitApprovalSchema","WithdrawApprovalSchema","Approval","ApprovalStatus","ApprovalStepResult","GetApprovalsSchema","object","appName","string","min","max","status","optional","approverEmployeeId","stepResult","GetApprovalSchema","id","uuid","approvalApi","baseURL","scopeKey","getApprovals","data","input","Promise","Array","parse","queryParams","URLSearchParams","append","toString","api","approvals","request","url","method","getApproval","approval","createApproval","approveApproval","resubmitApproval","withdrawApproval","cancelApproval","createServerOnlyFn","z","createApi","Department","Employee","SearchEmployeesSchema","object","searchTerm","string","min","EmployeeIdSchema","employeeId","DepartmentIdSchema","departmentId","CompanyCodeSchema","companyCode","peoplesoftApi","baseURL","scopeKey","searchEmployees","data","input","Promise","Array","parse","api","employees","request","url","encodeURIComponent","method","getEmployees","getActiveEmployees","getEmployeeByEmployeeId","employee","getPreviousEmployeeIds","getEmployeeSupervisor","getEmployeeSubordinates","getEmployeeManager","getEmployeeGeneralManager","getDepartments","departments","getDepartmentById","department","getDepartmentManager","getDepartmentEmployees","getCompanyGeneralManager"],"sources":["../src/data/server/approval.ts","../src/data/server/peoplesoft.ts"],"sourcesContent":["import { createServerOnlyFn } from \"@tanstack/react-start\";\nimport { z } from \"zod\";\nimport { createApi } from \"~/data/server/utils/createApi\";\nimport {\n ApproveApprovalSchema,\n CancelApprovalSchema,\n CreateApprovalSchema,\n ResubmitApprovalSchema,\n WithdrawApprovalSchema,\n} from \"~/models/approval/Approval\";\nimport type { Approval } from \"~/models/approval/Approval\";\nimport { ApprovalStatus } from \"~/models/approval/ApprovalStatus\";\nimport { ApprovalStepResult } from \"~/models/approval/ApprovalStepResult\";\n\nexport const GetApprovalsSchema = z.object({\n appName: z.string().min(1).max(255),\n status: ApprovalStatus.optional(),\n approverEmployeeId: z.string().min(1).max(20).optional(),\n stepResult: ApprovalStepResult.optional(),\n});\n\nexport const GetApprovalSchema = z.object({\n id: z.uuid(),\n});\n\nconst approvalApi = () => createApi({ baseURL: \"APPROVAL_BASE_URL\", scopeKey: \"approval\" });\n\nexport const getApprovals = createServerOnlyFn(\n async ({ data }: { data: z.input<typeof GetApprovalsSchema> }): Promise<Array<Approval>> => {\n const input = GetApprovalsSchema.parse(data);\n const queryParams = new URLSearchParams();\n queryParams.append(\"applicationName\", input.appName);\n if (input.status) queryParams.append(\"status\", input.status.toString());\n if (input.approverEmployeeId)\n queryParams.append(\"approverEmployeeId\", input.approverEmployeeId);\n if (input.stepResult) queryParams.append(\"stepResult\", input.stepResult.toString());\n\n const api = await approvalApi();\n const { data: approvals } = await api.request<Array<Approval>>({\n url: `/Requests/Requests?${queryParams.toString()}`,\n method: \"GET\",\n });\n return approvals;\n },\n);\n\nexport const getApproval = createServerOnlyFn(\n async ({ data }: { data: z.input<typeof GetApprovalSchema> }): Promise<Approval> => {\n const input = GetApprovalSchema.parse(data);\n const api = await approvalApi();\n const { data: approval } = await api.request<Approval>({\n url: `/Requests/${input.id}`,\n method: \"GET\",\n });\n return approval;\n },\n);\n\nexport const createApproval = createServerOnlyFn(\n async ({ data }: { data: z.input<typeof CreateApprovalSchema> }): Promise<Approval> => {\n const input = CreateApprovalSchema.parse(data);\n const api = await approvalApi();\n const { data: approval } = await api.request<Approval>({\n url: `/Requests`,\n method: \"POST\",\n data: input,\n });\n return approval;\n },\n);\n\nexport const approveApproval = createServerOnlyFn(\n async ({ data }: { data: z.input<typeof ApproveApprovalSchema> }): Promise<Approval> => {\n const input = ApproveApprovalSchema.parse(data);\n const api = await approvalApi();\n const { data: approval } = await api.request<Approval>({\n url: `/Requests/${input.id}/single-approval`,\n method: \"POST\",\n data: input,\n });\n return approval;\n },\n);\n\nexport const resubmitApproval = createServerOnlyFn(\n async ({ data }: { data: z.input<typeof ResubmitApprovalSchema> }): Promise<Approval> => {\n const input = ResubmitApprovalSchema.parse(data);\n const api = await approvalApi();\n const { data: approval } = await api.request<Approval>({\n url: `/Requests/${input.id}/resubmit`,\n method: \"POST\",\n data: input,\n });\n return approval;\n },\n);\n\nexport const withdrawApproval = createServerOnlyFn(\n async ({ data }: { data: z.input<typeof WithdrawApprovalSchema> }): Promise<void> => {\n const input = WithdrawApprovalSchema.parse(data);\n const api = await approvalApi();\n await api.request<void>({\n url: `/Requests/${input.id}/withdraw`,\n method: \"POST\",\n data: input,\n });\n },\n);\n\nexport const cancelApproval = createServerOnlyFn(\n async ({ data }: { data: z.input<typeof CancelApprovalSchema> }): Promise<void> => {\n const input = CancelApprovalSchema.parse(data);\n const api = await approvalApi();\n await api.request<void>({\n url: `/Requests/${input.id}/cancel`,\n method: \"POST\",\n data: input,\n });\n },\n);\n","import { createServerOnlyFn } from \"@tanstack/react-start\";\nimport { z } from \"zod\";\nimport { createApi } from \"~/data/server/utils/createApi\";\nimport type { Department } from \"~/models/peoplesoft/Department\";\nimport type { Employee } from \"~/models/peoplesoft/Employee\";\n\nexport const SearchEmployeesSchema = z.object({\n searchTerm: z.string().min(1),\n});\n\nexport const EmployeeIdSchema = z.object({\n employeeId: z.string().min(1),\n});\n\nexport const DepartmentIdSchema = z.object({\n departmentId: z.string().min(1),\n});\n\nexport const CompanyCodeSchema = z.object({\n companyCode: z.string().min(1),\n});\n\nconst peoplesoftApi = () => createApi({ baseURL: \"PEOPLESOFT_BASE_URL\", scopeKey: \"peoplesoft\" });\n\nexport const searchEmployees = createServerOnlyFn(\n async ({ data }: { data: z.input<typeof SearchEmployeesSchema> }): Promise<Array<Employee>> => {\n const input = SearchEmployeesSchema.parse(data);\n const api = await peoplesoftApi();\n const { data: employees } = await api.request<Array<Employee>>({\n url: `/v1/employee?search=${encodeURIComponent(input.searchTerm)}`,\n method: \"GET\",\n });\n return employees;\n },\n);\n\nexport const getEmployees = createServerOnlyFn(async (): Promise<Array<Employee>> => {\n const api = await peoplesoftApi();\n const { data: employees } = await api.request<Array<Employee>>({\n url: `/v1/employee/all`,\n method: \"GET\",\n });\n return employees;\n});\n\nexport const getActiveEmployees = createServerOnlyFn(async (): Promise<Array<Employee>> => {\n const api = await peoplesoftApi();\n const { data: employees } = await api.request<Array<Employee>>({\n url: `/v1/employee/active`,\n method: \"GET\",\n });\n return employees;\n});\n\nexport const getEmployeeByEmployeeId = createServerOnlyFn(\n async ({ data }: { data: z.input<typeof EmployeeIdSchema> }): Promise<Employee> => {\n const input = EmployeeIdSchema.parse(data);\n const api = await peoplesoftApi();\n const { data: employee } = await api.request<Employee>({\n url: `/v1/employee/${encodeURIComponent(input.employeeId)}`,\n method: \"GET\",\n });\n return employee;\n },\n);\n\nexport const getPreviousEmployeeIds = createServerOnlyFn(async (): Promise<Array<Employee>> => {\n const api = await peoplesoftApi();\n const { data: employees } = await api.request<Array<Employee>>({\n url: `/v1/employee/previousIds`,\n method: \"GET\",\n });\n return employees;\n});\n\nexport const getEmployeeSupervisor = createServerOnlyFn(\n async ({ data }: { data: z.input<typeof EmployeeIdSchema> }): Promise<Employee> => {\n const input = EmployeeIdSchema.parse(data);\n const api = await peoplesoftApi();\n const { data: employee } = await api.request<Employee>({\n url: `/v1/employee/${encodeURIComponent(input.employeeId)}/supervisor`,\n method: \"GET\",\n });\n return employee;\n },\n);\n\nexport const getEmployeeSubordinates = createServerOnlyFn(\n async ({ data }: { data: z.input<typeof EmployeeIdSchema> }): Promise<Array<Employee>> => {\n const input = EmployeeIdSchema.parse(data);\n const api = await peoplesoftApi();\n const { data: employees } = await api.request<Array<Employee>>({\n url: `/v1/employee/${encodeURIComponent(input.employeeId)}/subordinates`,\n method: \"GET\",\n });\n return employees;\n },\n);\n\nexport const getEmployeeManager = createServerOnlyFn(\n async ({ data }: { data: z.input<typeof EmployeeIdSchema> }): Promise<Employee> => {\n const input = EmployeeIdSchema.parse(data);\n const api = await peoplesoftApi();\n const { data: employee } = await api.request<Employee>({\n url: `/v1/employee/${encodeURIComponent(input.employeeId)}/manager`,\n method: \"GET\",\n });\n return employee;\n },\n);\n\nexport const getEmployeeGeneralManager = createServerOnlyFn(\n async ({ data }: { data: z.input<typeof EmployeeIdSchema> }): Promise<Employee> => {\n const input = EmployeeIdSchema.parse(data);\n const api = await peoplesoftApi();\n const { data: employee } = await api.request<Employee>({\n url: `/v1/employee/${encodeURIComponent(input.employeeId)}/generalManager`,\n method: \"GET\",\n });\n return employee;\n },\n);\n\nexport const getDepartments = createServerOnlyFn(async (): Promise<Array<Department>> => {\n const api = await peoplesoftApi();\n const { data: departments } = await api.request<Array<Department>>({\n url: `/v1/department/all`,\n method: \"GET\",\n });\n return departments;\n});\n\nexport const getDepartmentById = createServerOnlyFn(\n async ({ data }: { data: z.input<typeof DepartmentIdSchema> }): Promise<Department> => {\n const input = DepartmentIdSchema.parse(data);\n const api = await peoplesoftApi();\n const { data: department } = await api.request<Department>({\n url: `/v1/department/${encodeURIComponent(input.departmentId)}`,\n method: \"GET\",\n });\n return department;\n },\n);\n\nexport const getDepartmentManager = createServerOnlyFn(\n async ({ data }: { data: z.input<typeof DepartmentIdSchema> }): Promise<Employee> => {\n const input = DepartmentIdSchema.parse(data);\n const api = await peoplesoftApi();\n const { data: employee } = await api.request<Employee>({\n url: `/v1/department/${encodeURIComponent(input.departmentId)}/manager`,\n method: \"GET\",\n });\n return employee;\n },\n);\n\nexport const getDepartmentEmployees = createServerOnlyFn(\n async ({ data }: { data: z.input<typeof DepartmentIdSchema> }): Promise<Array<Employee>> => {\n const input = DepartmentIdSchema.parse(data);\n const api = await peoplesoftApi();\n const { data: employees } = await api.request<Array<Employee>>({\n url: `/v1/department/${encodeURIComponent(input.departmentId)}/employees`,\n method: \"GET\",\n });\n return employees;\n },\n);\n\nexport const getCompanyGeneralManager = createServerOnlyFn(\n async ({ data }: { data: z.input<typeof CompanyCodeSchema> }): Promise<Employee> => {\n const input = CompanyCodeSchema.parse(data);\n const api = await peoplesoftApi();\n const { data: employee } = await api.request<Employee>({\n url: `/v1/company/${encodeURIComponent(input.companyCode)}/generalManager`,\n method: \"GET\",\n });\n return employee;\n },\n);\n"],"mappings":";;;;;AAcA,MAAaW,qBAAqBV,IAAEW,OAAO;CACzCC,SAASZ,IAAEa,OAAO,CAAC,CAACC,IAAI,CAAC,CAAC,CAACC,IAAI,GAAG;CAClCC,QAAQR,eAAeS,SAAS;CAChCC,oBAAoBlB,IAAEa,OAAO,CAAC,CAACC,IAAI,CAAC,CAAC,CAACC,IAAI,EAAE,CAAC,CAACE,SAAS;CACvDE,YAAYV,mBAAmBQ,SAAS;AAC1C,CAAC;AAED,MAAaG,oBAAoBpB,IAAEW,OAAO,EACxCU,IAAIrB,IAAEsB,KAAK,EACb,CAAC;AAED,MAAMC,oBAAoBtB,UAAU;CAAEuB,SAAS;CAAqBC,UAAU;AAAW,CAAC;AAE1F,MAAaC,eAAe3B,mBAC1B,OAAO,EAAE4B,WAAmF;CAC1F,MAAMC,QAAQlB,mBAAmBqB,MAAMJ,IAAI;CAC3C,MAAMK,cAAc,IAAIC,gBAAgB;CACxCD,YAAYE,OAAO,mBAAmBN,MAAMhB,OAAO;CACnD,IAAIgB,MAAMZ,QAAQgB,YAAYE,OAAO,UAAUN,MAAMZ,OAAOmB,SAAS,CAAC;CACtE,IAAIP,MAAMV,oBACRc,YAAYE,OAAO,sBAAsBN,MAAMV,kBAAkB;CACnE,IAAIU,MAAMT,YAAYa,YAAYE,OAAO,cAAcN,MAAMT,WAAWgB,SAAS,CAAC;CAGlF,MAAM,EAAER,MAAMU,cAAc,OAAMD,MADhBb,YAAY,EAAA,CACQe,QAAyB;EAC7DC,KAAK,sBAAsBP,YAAYG,SAAS;EAChDK,QAAQ;CACV,CAAC;CACD,OAAOH;AACT,CACF;AAEA,MAAaI,cAAc1C,mBACzB,OAAO,EAAE4B,WAA2E;CAClF,MAAMC,QAAQR,kBAAkBW,MAAMJ,IAAI;CAE1C,MAAM,EAAEA,MAAMe,aAAa,OAAMN,MADfb,YAAY,EAAA,CACOe,QAAkB;EACrDC,KAAK,aAAaX,MAAMP;EACxBmB,QAAQ;CACV,CAAC;CACD,OAAOE;AACT,CACF;AAEA,MAAaC,iBAAiB5C,mBAC5B,OAAO,EAAE4B,WAA8E;CACrF,MAAMC,QAAQxB,qBAAqB2B,MAAMJ,IAAI;CAE7C,MAAM,EAAEA,MAAMe,aAAa,OAAMN,MADfb,YAAY,EAAA,CACOe,QAAkB;EACrDC,KAAK;EACLC,QAAQ;EACRb,MAAMC;CACR,CAAC;CACD,OAAOc;AACT,CACF;AAEA,MAAaE,kBAAkB7C,mBAC7B,OAAO,EAAE4B,WAA+E;CACtF,MAAMC,QAAQ1B,sBAAsB6B,MAAMJ,IAAI;CAE9C,MAAM,EAAEA,MAAMe,aAAa,OAAMN,MADfb,YAAY,EAAA,CACOe,QAAkB;EACrDC,KAAK,aAAaX,MAAMP,GAAE;EAC1BmB,QAAQ;EACRb,MAAMC;CACR,CAAC;CACD,OAAOc;AACT,CACF;AAEA,MAAaG,mBAAmB9C,mBAC9B,OAAO,EAAE4B,WAAgF;CACvF,MAAMC,QAAQvB,uBAAuB0B,MAAMJ,IAAI;CAE/C,MAAM,EAAEA,MAAMe,aAAa,OAAMN,MADfb,YAAY,EAAA,CACOe,QAAkB;EACrDC,KAAK,aAAaX,MAAMP,GAAE;EAC1BmB,QAAQ;EACRb,MAAMC;CACR,CAAC;CACD,OAAOc;AACT,CACF;AAEA,MAAaI,mBAAmB/C,mBAC9B,OAAO,EAAE4B,WAA4E;CACnF,MAAMC,QAAQtB,uBAAuByB,MAAMJ,IAAI;CAE/C,OAAMS,MADYb,YAAY,EAAA,CACpBe,QAAc;EACtBC,KAAK,aAAaX,MAAMP,GAAE;EAC1BmB,QAAQ;EACRb,MAAMC;CACR,CAAC;AACH,CACF;AAEA,MAAamB,iBAAiBhD,mBAC5B,OAAO,EAAE4B,WAA0E;CACjF,MAAMC,QAAQzB,qBAAqB4B,MAAMJ,IAAI;CAE7C,OAAMS,MADYb,YAAY,EAAA,CACpBe,QAAc;EACtBC,KAAK,aAAaX,MAAMP,GAAE;EAC1BmB,QAAQ;EACRb,MAAMC;CACR,CAAC;AACH,CACF;;;ACjHA,MAAayB,wBAAwBJ,IAAEK,OAAO,EAC5CC,YAAYN,IAAEO,OAAO,CAAC,CAACC,IAAI,CAAC,EAC9B,CAAC;AAED,MAAaC,mBAAmBT,IAAEK,OAAO,EACvCK,YAAYV,IAAEO,OAAO,CAAC,CAACC,IAAI,CAAC,EAC9B,CAAC;AAED,MAAaG,qBAAqBX,IAAEK,OAAO,EACzCO,cAAcZ,IAAEO,OAAO,CAAC,CAACC,IAAI,CAAC,EAChC,CAAC;AAED,MAAaK,oBAAoBb,IAAEK,OAAO,EACxCS,aAAad,IAAEO,OAAO,CAAC,CAACC,IAAI,CAAC,EAC/B,CAAC;AAED,MAAMO,sBAAsBd,UAAU;CAAEe,SAAS;CAAuBC,UAAU;AAAa,CAAC;AAEhG,MAAaC,kBAAkBnB,mBAC7B,OAAO,EAAEoB,WAAsF;CAC7F,MAAMC,QAAQhB,sBAAsBmB,MAAMJ,IAAI;CAE9C,MAAM,EAAEA,MAAMM,cAAc,OAAMD,MADhBT,cAAc,EAAA,CACMW,QAAyB;EAC7DC,KAAK,uBAAuBC,mBAAmBR,MAAMd,UAAU;EAC/DuB,QAAQ;CACV,CAAC;CACD,OAAOJ;AACT,CACF;AAEA,MAAaK,eAAe/B,mBAAmB,YAAsC;CAEnF,MAAM,EAAEoB,MAAMM,cAAc,OAAMD,MADhBT,cAAc,EAAA,CACMW,QAAyB;EAC7DC,KAAK;EACLE,QAAQ;CACV,CAAC;CACD,OAAOJ;AACT,CAAC;AAED,MAAaM,qBAAqBhC,mBAAmB,YAAsC;CAEzF,MAAM,EAAEoB,MAAMM,cAAc,OAAMD,MADhBT,cAAc,EAAA,CACMW,QAAyB;EAC7DC,KAAK;EACLE,QAAQ;CACV,CAAC;CACD,OAAOJ;AACT,CAAC;AAED,MAAaO,0BAA0BjC,mBACrC,OAAO,EAAEoB,WAA0E;CACjF,MAAMC,QAAQX,iBAAiBc,MAAMJ,IAAI;CAEzC,MAAM,EAAEA,MAAMc,aAAa,OAAMT,MADfT,cAAc,EAAA,CACKW,QAAkB;EACrDC,KAAK,gBAAgBC,mBAAmBR,MAAMV,UAAU;EACxDmB,QAAQ;CACV,CAAC;CACD,OAAOI;AACT,CACF;AAEA,MAAaC,yBAAyBnC,mBAAmB,YAAsC;CAE7F,MAAM,EAAEoB,MAAMM,cAAc,OAAMD,MADhBT,cAAc,EAAA,CACMW,QAAyB;EAC7DC,KAAK;EACLE,QAAQ;CACV,CAAC;CACD,OAAOJ;AACT,CAAC;AAED,MAAaU,wBAAwBpC,mBACnC,OAAO,EAAEoB,WAA0E;CACjF,MAAMC,QAAQX,iBAAiBc,MAAMJ,IAAI;CAEzC,MAAM,EAAEA,MAAMc,aAAa,OAAMT,MADfT,cAAc,EAAA,CACKW,QAAkB;EACrDC,KAAK,gBAAgBC,mBAAmBR,MAAMV,UAAU,EAAC;EACzDmB,QAAQ;CACV,CAAC;CACD,OAAOI;AACT,CACF;AAEA,MAAaG,0BAA0BrC,mBACrC,OAAO,EAAEoB,WAAiF;CACxF,MAAMC,QAAQX,iBAAiBc,MAAMJ,IAAI;CAEzC,MAAM,EAAEA,MAAMM,cAAc,OAAMD,MADhBT,cAAc,EAAA,CACMW,QAAyB;EAC7DC,KAAK,gBAAgBC,mBAAmBR,MAAMV,UAAU,EAAC;EACzDmB,QAAQ;CACV,CAAC;CACD,OAAOJ;AACT,CACF;AAEA,MAAaY,qBAAqBtC,mBAChC,OAAO,EAAEoB,WAA0E;CACjF,MAAMC,QAAQX,iBAAiBc,MAAMJ,IAAI;CAEzC,MAAM,EAAEA,MAAMc,aAAa,OAAMT,MADfT,cAAc,EAAA,CACKW,QAAkB;EACrDC,KAAK,gBAAgBC,mBAAmBR,MAAMV,UAAU,EAAC;EACzDmB,QAAQ;CACV,CAAC;CACD,OAAOI;AACT,CACF;AAEA,MAAaK,4BAA4BvC,mBACvC,OAAO,EAAEoB,WAA0E;CACjF,MAAMC,QAAQX,iBAAiBc,MAAMJ,IAAI;CAEzC,MAAM,EAAEA,MAAMc,aAAa,OAAMT,MADfT,cAAc,EAAA,CACKW,QAAkB;EACrDC,KAAK,gBAAgBC,mBAAmBR,MAAMV,UAAU,EAAC;EACzDmB,QAAQ;CACV,CAAC;CACD,OAAOI;AACT,CACF;AAEA,MAAaM,iBAAiBxC,mBAAmB,YAAwC;CAEvF,MAAM,EAAEoB,MAAMqB,gBAAgB,OAAMhB,MADlBT,cAAc,EAAA,CACQW,QAA2B;EACjEC,KAAK;EACLE,QAAQ;CACV,CAAC;CACD,OAAOW;AACT,CAAC;AAED,MAAaC,oBAAoB1C,mBAC/B,OAAO,EAAEoB,WAA8E;CACrF,MAAMC,QAAQT,mBAAmBY,MAAMJ,IAAI;CAE3C,MAAM,EAAEA,MAAMuB,eAAe,OAAMlB,MADjBT,cAAc,EAAA,CACOW,QAAoB;EACzDC,KAAK,kBAAkBC,mBAAmBR,MAAMR,YAAY;EAC5DiB,QAAQ;CACV,CAAC;CACD,OAAOa;AACT,CACF;AAEA,MAAaC,uBAAuB5C,mBAClC,OAAO,EAAEoB,WAA4E;CACnF,MAAMC,QAAQT,mBAAmBY,MAAMJ,IAAI;CAE3C,MAAM,EAAEA,MAAMc,aAAa,OAAMT,MADfT,cAAc,EAAA,CACKW,QAAkB;EACrDC,KAAK,kBAAkBC,mBAAmBR,MAAMR,YAAY,EAAC;EAC7DiB,QAAQ;CACV,CAAC;CACD,OAAOI;AACT,CACF;AAEA,MAAaW,yBAAyB7C,mBACpC,OAAO,EAAEoB,WAAmF;CAC1F,MAAMC,QAAQT,mBAAmBY,MAAMJ,IAAI;CAE3C,MAAM,EAAEA,MAAMM,cAAc,OAAMD,MADhBT,cAAc,EAAA,CACMW,QAAyB;EAC7DC,KAAK,kBAAkBC,mBAAmBR,MAAMR,YAAY,EAAC;EAC7DiB,QAAQ;CACV,CAAC;CACD,OAAOJ;AACT,CACF;AAEA,MAAaoB,2BAA2B9C,mBACtC,OAAO,EAAEoB,WAA2E;CAClF,MAAMC,QAAQP,kBAAkBU,MAAMJ,IAAI;CAE1C,MAAM,EAAEA,MAAMc,aAAa,OAAMT,MADfT,cAAc,EAAA,CACKW,QAAkB;EACrDC,KAAK,eAAeC,mBAAmBR,MAAMN,WAAW,EAAC;EACzDe,QAAQ;CACV,CAAC;CACD,OAAOI;AACT,CACF"}