@fayz-ai/plugin-financial 0.1.1

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.
Files changed (98) hide show
  1. package/dist/FinancialContext.d.ts +44 -0
  2. package/dist/FinancialContext.d.ts.map +1 -0
  3. package/dist/FinancialPage.d.ts +18 -0
  4. package/dist/FinancialPage.d.ts.map +1 -0
  5. package/dist/components/FinancialGeneralSettings.d.ts +3 -0
  6. package/dist/components/FinancialGeneralSettings.d.ts.map +1 -0
  7. package/dist/components/FinancialOnboarding.d.ts +5 -0
  8. package/dist/components/FinancialOnboarding.d.ts.map +1 -0
  9. package/dist/components/FinancialSettings.d.ts +8 -0
  10. package/dist/components/FinancialSettings.d.ts.map +1 -0
  11. package/dist/components/PaymentModal.d.ts +8 -0
  12. package/dist/components/PaymentModal.d.ts.map +1 -0
  13. package/dist/data/index.d.ts +3 -0
  14. package/dist/data/index.d.ts.map +1 -0
  15. package/dist/data/mock.d.ts +9 -0
  16. package/dist/data/mock.d.ts.map +1 -0
  17. package/dist/data/supabase.d.ts +3 -0
  18. package/dist/data/supabase.d.ts.map +1 -0
  19. package/dist/data/types.d.ts +27 -0
  20. package/dist/data/types.d.ts.map +1 -0
  21. package/dist/index.cjs +4937 -0
  22. package/dist/index.cjs.map +1 -0
  23. package/dist/index.d.ts +91 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +4930 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/lib/tenant.d.ts +3 -0
  28. package/dist/lib/tenant.d.ts.map +1 -0
  29. package/dist/locales/en.d.ts +2 -0
  30. package/dist/locales/en.d.ts.map +1 -0
  31. package/dist/locales/index.d.ts +2 -0
  32. package/dist/locales/index.d.ts.map +1 -0
  33. package/dist/locales/pt-BR.d.ts +2 -0
  34. package/dist/locales/pt-BR.d.ts.map +1 -0
  35. package/dist/registries.d.ts +3 -0
  36. package/dist/registries.d.ts.map +1 -0
  37. package/dist/store.d.ts +38 -0
  38. package/dist/store.d.ts.map +1 -0
  39. package/dist/types.d.ts +302 -0
  40. package/dist/types.d.ts.map +1 -0
  41. package/dist/views/CardsView.d.ts +3 -0
  42. package/dist/views/CardsView.d.ts.map +1 -0
  43. package/dist/views/CashRegistersView.d.ts +3 -0
  44. package/dist/views/CashRegistersView.d.ts.map +1 -0
  45. package/dist/views/CommissionsView.d.ts +3 -0
  46. package/dist/views/CommissionsView.d.ts.map +1 -0
  47. package/dist/views/InvoiceDetailView.d.ts +9 -0
  48. package/dist/views/InvoiceDetailView.d.ts.map +1 -0
  49. package/dist/views/InvoiceFormView.d.ts +13 -0
  50. package/dist/views/InvoiceFormView.d.ts.map +1 -0
  51. package/dist/views/InvoiceListView.d.ts +8 -0
  52. package/dist/views/InvoiceListView.d.ts.map +1 -0
  53. package/dist/views/PayablesView.d.ts +7 -0
  54. package/dist/views/PayablesView.d.ts.map +1 -0
  55. package/dist/views/ReceivablesView.d.ts +7 -0
  56. package/dist/views/ReceivablesView.d.ts.map +1 -0
  57. package/dist/views/StatementsView.d.ts +3 -0
  58. package/dist/views/StatementsView.d.ts.map +1 -0
  59. package/dist/views/SummaryView.d.ts +9 -0
  60. package/dist/views/SummaryView.d.ts.map +1 -0
  61. package/dist/views/dashboardWidgets.d.ts +11 -0
  62. package/dist/views/dashboardWidgets.d.ts.map +1 -0
  63. package/package.json +55 -0
  64. package/src/FinancialContext.tsx +47 -0
  65. package/src/FinancialPage.tsx +261 -0
  66. package/src/README.md +155 -0
  67. package/src/components/FinancialGeneralSettings.tsx +26 -0
  68. package/src/components/FinancialOnboarding.tsx +87 -0
  69. package/src/components/FinancialSettings.tsx +31 -0
  70. package/src/components/PaymentModal.tsx +322 -0
  71. package/src/data/index.ts +2 -0
  72. package/src/data/mock.ts +520 -0
  73. package/src/data/supabase.ts +509 -0
  74. package/src/data/types.ts +53 -0
  75. package/src/index.ts +307 -0
  76. package/src/lib/tenant.ts +3 -0
  77. package/src/locales/en.ts +331 -0
  78. package/src/locales/index.ts +7 -0
  79. package/src/locales/pt-BR.ts +331 -0
  80. package/src/migrations/001_financial_base.sql +109 -0
  81. package/src/migrations/002_chart_of_accounts.sql +28 -0
  82. package/src/migrations/003_card_brands.sql +12 -0
  83. package/src/migrations/004_order_to_cash.sql +164 -0
  84. package/src/migrations/005_seed_defaults.sql +38 -0
  85. package/src/registries.ts +305 -0
  86. package/src/store.ts +221 -0
  87. package/src/types.ts +359 -0
  88. package/src/views/CardsView.tsx +74 -0
  89. package/src/views/CashRegistersView.tsx +597 -0
  90. package/src/views/CommissionsView.tsx +18 -0
  91. package/src/views/InvoiceDetailView.tsx +595 -0
  92. package/src/views/InvoiceFormView.tsx +900 -0
  93. package/src/views/InvoiceListView.tsx +177 -0
  94. package/src/views/PayablesView.tsx +37 -0
  95. package/src/views/ReceivablesView.tsx +37 -0
  96. package/src/views/StatementsView.tsx +123 -0
  97. package/src/views/SummaryView.tsx +12 -0
  98. package/src/views/dashboardWidgets.tsx +191 -0
@@ -0,0 +1,44 @@
1
+ import { formatCurrency, type CurrencyConfig, type EntityLookupMap, type EntityLookup } from '@fayz-ai/saas';
2
+ import type { FinancialPluginLabels, ItemTypeOption } from './index';
3
+ import type { FinancialDataProvider } from './data/types';
4
+ import type { FinancialUIState } from './store';
5
+ export interface FinancialModules {
6
+ payables: boolean;
7
+ receivables: boolean;
8
+ cashRegisters: boolean;
9
+ statements: boolean;
10
+ commissions: boolean;
11
+ cards: boolean;
12
+ }
13
+ export type FinancialCurrency = CurrencyConfig;
14
+ export interface LocationOption {
15
+ id: string;
16
+ name: string;
17
+ isHQ?: boolean;
18
+ }
19
+ export interface ResolvedFinancialConfig {
20
+ modules: FinancialModules;
21
+ labels: FinancialPluginLabels;
22
+ currency: FinancialCurrency;
23
+ itemTypes: ItemTypeOption[];
24
+ enableServiceExecution: boolean;
25
+ contactEntity: {
26
+ archetypeKind: string;
27
+ label: string;
28
+ };
29
+ locations: LocationOption[];
30
+ entityLookups: EntityLookupMap;
31
+ contactLookup?: EntityLookup;
32
+ onBookingClick?: (orderId: string) => void;
33
+ }
34
+ export declare const FinancialContextProvider: import("react").FC<{
35
+ config: ResolvedFinancialConfig;
36
+ provider: FinancialDataProvider;
37
+ store: import("zustand").StoreApi<FinancialUIState>;
38
+ children?: React.ReactNode;
39
+ }>;
40
+ export declare const useFinancialConfig: () => ResolvedFinancialConfig;
41
+ export declare const useFinancialProvider: () => FinancialDataProvider;
42
+ export declare const useFinancialStore: <T>(selector: (state: FinancialUIState) => T) => T;
43
+ export { formatCurrency };
44
+ //# sourceMappingURL=FinancialContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FinancialContext.d.ts","sourceRoot":"","sources":["../src/FinancialContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,cAAc,EAAE,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAA;AACjI,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACpE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAM/C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,CAAA;IACjB,WAAW,EAAE,OAAO,CAAA;IACpB,aAAa,EAAE,OAAO,CAAA;IACtB,UAAU,EAAE,OAAO,CAAA;IACnB,WAAW,EAAE,OAAO,CAAA;IACpB,KAAK,EAAE,OAAO,CAAA;CACf;AAED,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAA;AAE9C,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,gBAAgB,CAAA;IACzB,MAAM,EAAE,qBAAqB,CAAA;IAC7B,QAAQ,EAAE,iBAAiB,CAAA;IAC3B,SAAS,EAAE,cAAc,EAAE,CAAA;IAC3B,sBAAsB,EAAE,OAAO,CAAA;IAC/B,aAAa,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IACvD,SAAS,EAAE,cAAc,EAAE,CAAA;IAC3B,aAAa,EAAE,eAAe,CAAA;IAC9B,aAAa,CAAC,EAAE,YAAY,CAAA;IAC5B,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CAC3C;AAID,eAAO,MAAM,wBAAwB;;;;;EAAsB,CAAA;AAC3D,eAAO,MAAM,kBAAkB,+BAAgB,CAAA;AAC/C,eAAO,MAAM,oBAAoB,6BAAkB,CAAA;AACnD,eAAO,MAAM,iBAAiB,oDAAe,CAAA;AAE7C,OAAO,EAAE,cAAc,EAAE,CAAA"}
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import type { StoreApi } from 'zustand/vanilla';
3
+ import { type ResolvedFinancialConfig } from './FinancialContext';
4
+ import type { FinancialDataProvider } from './data/types';
5
+ import type { FinancialUIState } from './store';
6
+ import type { PluginRegistryDef } from '@fayz-ai/core';
7
+ export interface ViewIntent {
8
+ view: string;
9
+ mode?: 'list' | 'new' | 'edit' | 'detail';
10
+ editId?: string;
11
+ }
12
+ export declare function FinancialPage({ config, provider, store, registries }: {
13
+ config: ResolvedFinancialConfig;
14
+ provider: FinancialDataProvider;
15
+ store: StoreApi<FinancialUIState>;
16
+ registries?: PluginRegistryDef[];
17
+ }): React.JSX.Element;
18
+ //# sourceMappingURL=FinancialPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FinancialPage.d.ts","sourceRoot":"","sources":["../src/FinancialPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAA;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAG/C,OAAO,EAA4B,KAAK,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAC3F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAqB,MAAM,eAAe,CAAA;AAgBzE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAA;IACzC,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AA4GD,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;IACrE,MAAM,EAAE,uBAAuB,CAAA;IAC/B,QAAQ,EAAE,qBAAqB,CAAA;IAC/B,KAAK,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAA;IACjC,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAA;CACjC,qBAwHA"}
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export declare function FinancialGeneralSettings(): React.JSX.Element;
3
+ //# sourceMappingURL=FinancialGeneralSettings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FinancialGeneralSettings.d.ts","sourceRoot":"","sources":["../../src/components/FinancialGeneralSettings.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,wBAAgB,wBAAwB,sBAqBvC"}
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ export declare function FinancialOnboarding({ onComplete }: {
3
+ onComplete: () => void;
4
+ }): React.JSX.Element;
5
+ //# sourceMappingURL=FinancialOnboarding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FinancialOnboarding.d.ts","sourceRoot":"","sources":["../../src/components/FinancialOnboarding.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAYvC,wBAAgB,mBAAmB,CAAC,EAAE,UAAU,EAAE,EAAE;IAAE,UAAU,EAAE,MAAM,IAAI,CAAA;CAAE,qBA0E7E"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import type { PluginRegistryDef } from '@fayz-ai/core';
3
+ export declare function FinancialSettings({ registries, routeBase, onClose }: {
4
+ registries: PluginRegistryDef[];
5
+ routeBase: string;
6
+ onClose: () => void;
7
+ }): React.JSX.Element;
8
+ //# sourceMappingURL=FinancialSettings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FinancialSettings.d.ts","sourceRoot":"","sources":["../../src/components/FinancialSettings.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAGtD,wBAAgB,iBAAiB,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;IACpE,UAAU,EAAE,iBAAiB,EAAE,CAAA;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB,qBAoBA"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import type { FinancialMovement } from '../types';
3
+ export declare function PaymentModal({ movement, onClose, onPaid }: {
4
+ movement: FinancialMovement;
5
+ onClose: () => void;
6
+ onPaid: () => void;
7
+ }): React.ReactPortal;
8
+ //# sourceMappingURL=PaymentModal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PaymentModal.d.ts","sourceRoot":"","sources":["../../src/components/PaymentModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAA;AAQ3D,OAAO,KAAK,EAAE,iBAAiB,EAAqB,MAAM,UAAU,CAAA;AA6BpE,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;IAC1D,QAAQ,EAAE,iBAAiB,CAAA;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,MAAM,EAAE,MAAM,IAAI,CAAA;CACnB,qBAwRA"}
@@ -0,0 +1,3 @@
1
+ export type { FinancialDataProvider } from './types';
2
+ export { createMockFinancialProvider } from './mock';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AACpD,OAAO,EAAE,2BAA2B,EAAE,MAAM,QAAQ,CAAA"}
@@ -0,0 +1,9 @@
1
+ import type { FinancialDataProvider } from './types';
2
+ export interface MockFinancialProviderOptions {
3
+ paymentMethodTypes?: Array<{
4
+ name: string;
5
+ transactionType?: string;
6
+ }>;
7
+ }
8
+ export declare function createMockFinancialProvider(options?: MockFinancialProviderOptions): FinancialDataProvider;
9
+ //# sourceMappingURL=mock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../src/data/mock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AA2HpD,MAAM,WAAW,4BAA4B;IAC3C,kBAAkB,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACvE;AAED,wBAAgB,2BAA2B,CAAC,OAAO,CAAC,EAAE,4BAA4B,GAAG,qBAAqB,CAwYzG"}
@@ -0,0 +1,3 @@
1
+ import type { FinancialDataProvider } from './types';
2
+ export declare function createSupabaseFinancialProvider(): FinancialDataProvider;
3
+ //# sourceMappingURL=supabase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supabase.d.ts","sourceRoot":"","sources":["../../src/data/supabase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAkHpD,wBAAgB,+BAA+B,IAAI,qBAAqB,CA0YvE"}
@@ -0,0 +1,27 @@
1
+ import type { Invoice, InvoiceItem, FinancialMovement, BankAccount, CashSession, PaymentMethod, PaymentMethodType, ChartOfAccountsNode, CardTransaction, CreateInvoiceInput, PayMovementInput, OpenCashSessionInput, CloseCashSessionInput, CreateBankAccountInput, InvoiceQuery, MovementQuery, StatementQuery, PaginatedResult, FinancialSummary, StatementEntry, CashSessionSummary, DateRange } from '../types';
2
+ export interface FinancialDataProvider {
3
+ getInvoices(query: InvoiceQuery): Promise<PaginatedResult<Invoice>>;
4
+ getInvoiceById(id: string): Promise<Invoice | null>;
5
+ getInvoiceItems(invoiceId: string): Promise<InvoiceItem[]>;
6
+ createInvoice(input: CreateInvoiceInput): Promise<Invoice>;
7
+ updateInvoice(id: string, data: Partial<Invoice>): Promise<Invoice>;
8
+ cancelInvoice(id: string): Promise<void>;
9
+ getMovements(query: MovementQuery): Promise<PaginatedResult<FinancialMovement>>;
10
+ payMovement(input: PayMovementInput): Promise<FinancialMovement>;
11
+ cancelMovement(id: string): Promise<void>;
12
+ getBankAccounts(): Promise<BankAccount[]>;
13
+ createBankAccount(data: CreateBankAccountInput): Promise<BankAccount>;
14
+ updateBankAccount(id: string, data: Partial<BankAccount>): Promise<BankAccount>;
15
+ getCashSessions(bankAccountId?: string): Promise<CashSession[]>;
16
+ getOpenSession(bankAccountId: string): Promise<CashSession | null>;
17
+ openCashSession(input: OpenCashSessionInput): Promise<CashSession>;
18
+ closeCashSession(input: CloseCashSessionInput): Promise<CashSession>;
19
+ getCashSessionSummary(sessionId: string): Promise<CashSessionSummary>;
20
+ getPaymentMethods(): Promise<PaymentMethod[]>;
21
+ getPaymentMethodTypes(): Promise<PaymentMethodType[]>;
22
+ getChartOfAccounts(): Promise<ChartOfAccountsNode[]>;
23
+ getCardTransactions(dateRange?: DateRange): Promise<CardTransaction[]>;
24
+ getStatement(query: StatementQuery): Promise<StatementEntry[]>;
25
+ getSummary(dateRange?: DateRange): Promise<FinancialSummary>;
26
+ }
27
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/data/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EACpD,WAAW,EAAE,aAAa,EAAE,iBAAiB,EAAE,mBAAmB,EAClE,eAAe,EACf,kBAAkB,EAAE,gBAAgB,EACpC,oBAAoB,EAAE,qBAAqB,EAAE,sBAAsB,EACnE,YAAY,EAAE,aAAa,EAAE,cAAc,EAC3C,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,kBAAkB,EACrE,SAAS,EACV,MAAM,UAAU,CAAA;AAEjB,MAAM,WAAW,qBAAqB;IAEpC,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAA;IACnE,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAA;IACnD,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;IAC1D,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC1D,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACnE,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAGxC,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC,CAAA;IAC/E,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAChE,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAGzC,eAAe,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;IACzC,iBAAiB,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IACrE,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IAG/E,eAAe,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;IAC/D,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;IAClE,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IAClE,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IACpE,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAA;IAGrE,iBAAiB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAAA;IAC7C,qBAAqB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAA;IAGrD,kBAAkB,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAA;IAGpD,mBAAmB,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAA;IAGtE,YAAY,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAA;IAG9D,UAAU,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;CAC7D"}