@apptimate/core-lib 2.7.0 → 2.9.0

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apptimate/core-lib",
3
- "version": "2.7.0",
3
+ "version": "2.9.0",
4
4
  "main": "src/index.ts",
5
5
  "types": "src/index.ts",
6
6
  "publishConfig": {
@@ -73,7 +73,8 @@ export const MENU_ITEM_REGISTRY: RegistryItem[] = [
73
73
  { key: 'core__template_groups', label: 'Template Groups', path: '/system/template-groups', module: 'Core', defaultGroup: 'System' },
74
74
  { key: 'core__warehouses', label: 'Warehouses', path: '/warehouses', module: 'Core', defaultGroup: 'Resources' },
75
75
  { key: 'core__terminals', label: 'Terminals', path: '/terminals', module: 'Core', defaultGroup: 'Resources' },
76
- { key: 'core__currencies', label: 'Currencies', path: '/currencies', module: 'Core', defaultGroup: 'Settings' },
76
+ { key: 'core__currencies', label: 'Currencies', path: '/currencies', module: 'Core', defaultGroup: 'Resources' },
77
+ { key: 'core__settings', label: 'Settings', path: '/settings', module: 'Core', defaultGroup: 'Configuration' },
77
78
 
78
79
  // ── Inventory Module ──
79
80
  { key: 'inventory__items', label: 'Items', path: '/inventory/items', module: 'Inventory', defaultGroup: 'Catalog' },
@@ -125,7 +126,7 @@ export const MENU_ITEM_REGISTRY: RegistryItem[] = [
125
126
 
126
127
  // ── Jewelry Module ──
127
128
  { key: 'jewelry__items', label: 'Jewelry Items', path: '/jewelry/items', module: 'Jewelry', defaultGroup: 'Catalog' },
128
- { key: 'jewelry__services', label: 'Services', path: '/jewelry/services', module: 'Jewelry', defaultGroup: 'Catalog' },
129
+
129
130
  { key: 'jewelry__categories', label: 'Categories', path: '/jewelry/categories', module: 'Jewelry', defaultGroup: 'Catalog' },
130
131
  { key: 'jewelry__material_types', label: 'Material Types', path: '/jewelry/material-types', module: 'Jewelry', defaultGroup: 'Master Data' },
131
132
  { key: 'jewelry__purities', label: 'Purities', path: '/jewelry/purities', module: 'Jewelry', defaultGroup: 'Master Data' },
@@ -134,16 +135,17 @@ export const MENU_ITEM_REGISTRY: RegistryItem[] = [
134
135
  { key: 'jewelry__grn', label: 'Goods Receipt', path: '/jewelry/procurement/grn', module: 'Jewelry', defaultGroup: 'Procurement' },
135
136
  { key: 'jewelry__custom_orders', label: 'Custom Orders', path: '/jewelry/custom-orders', module: 'Jewelry', defaultGroup: 'Procurement' },
136
137
  { key: 'jewelry__service_orders', label: 'Service Orders', path: '/jewelry/service-orders', module: 'Jewelry', defaultGroup: 'Procurement' },
138
+ { key: 'jewelry__opening_stock', label: 'Opening Stock', path: '/jewelry/procurement/opening_stock', module: 'Jewelry', defaultGroup: 'Procurement' },
137
139
  { key: 'jewelry__transformations', label: 'Transformations', path: '/jewelry/procurement/transformations', module: 'Jewelry', defaultGroup: 'Procurement' },
138
140
  { key: 'jewelry__old_gold_purchases', label: 'Old Material Purchases', path: '/jewelry/old-gold-purchases', module: 'Jewelry', defaultGroup: 'Buying' },
139
141
  { key: 'jewelry__sales', label: 'Sales', path: '/jewelry/sales', module: 'Jewelry', defaultGroup: 'Sales' },
140
142
  { key: 'jewelry__sales_returns', label: 'Sales Returns', path: '/jewelry/sales-returns', module: 'Jewelry', defaultGroup: 'Sales' },
141
- { key: 'jewelry__sales_orders', label: 'Sales Orders', path: '/jewelry/sales/orders', module: 'Jewelry', defaultGroup: 'Sales' },
143
+
142
144
  { key: 'jewelry__stock_balances', label: 'Stock Balances', path: '/jewelry/stock/balances', module: 'Jewelry', defaultGroup: 'Stock' },
143
145
  { key: 'jewelry__stock_movements', label: 'Stock Movements', path: '/jewelry/stock/movements', module: 'Jewelry', defaultGroup: 'Stock' },
144
146
  { key: 'jewelry__stock_transfers', label: 'Transfers', path: '/jewelry/stock-transfers', module: 'Jewelry', defaultGroup: 'Stock' },
145
147
  { key: 'jewelry__party_transactions', label: 'Party Transactions', path: '/jewelry/party-transactions', module: 'Jewelry', defaultGroup: 'Karigar' },
146
- { key: 'jewelry__karigar_scrap_returns', label: 'Karigar Dust Returns', path: '/jewelry/karigar-scrap-returns', module: 'Jewelry', defaultGroup: 'Karigar' },
148
+
147
149
  { key: 'jewelry__karigar_making_charges', label: 'Making Charges', path: '/jewelry/karigar-making-charges', module: 'Jewelry', defaultGroup: 'Karigar' },
148
150
  { key: 'jewelry__party_metal_balances', label: 'Party Metal Balances', path: '/jewelry/party-metal-balances', module: 'Jewelry', defaultGroup: 'Karigar' },
149
151
  { key: 'jewelry__metal_settlements', label: 'Metal Settlements', path: '/jewelry/metal-settlements', module: 'Jewelry', defaultGroup: 'Karigar' },
@@ -195,6 +197,14 @@ export const MENU_ITEM_REGISTRY: RegistryItem[] = [
195
197
  { key: 'money_exchange__denominations', label: 'Denomination', path: '/money-exchange/denominations', module: 'Money Exchange', defaultGroup: 'Config' },
196
198
  { key: 'money_exchange__till_thresholds', label: 'Till Thresholds', path: '/money-exchange/till-thresholds', module: 'Money Exchange', defaultGroup: 'Config' },
197
199
  { key: 'money_exchange__cross_currency', label: 'Margin Rate', path: '/money-exchange/cross-currency', module: 'Money Exchange', defaultGroup: 'Config' },
200
+
201
+ // ── Reports Module (Admin/General) ──
202
+ { key: 'reports__jewelry', label: 'Jewelry', path: '/reports/jewelry', module: 'Reporting', defaultGroup: 'Dashboards' },
203
+ { key: 'reports__inventory', label: 'Inventory', path: '/reports/inventory', module: 'Reporting', defaultGroup: 'Dashboards' },
204
+ { key: 'reports__finance', label: 'Finance', path: '/reports/finance', module: 'Reporting', defaultGroup: 'Dashboards' },
205
+ { key: 'reports__all', label: 'All Reports', path: '/reports', module: 'Reporting', defaultGroup: 'General' },
206
+ { key: 'reports__builder', label: 'Report Builder', path: '/reports/admin/reports', module: 'Reporting', defaultGroup: 'Administration' },
207
+ { key: 'reports__configurator', label: 'Dashboard Configurator', path: '/reports/admin/dashboards', module: 'Reporting', defaultGroup: 'Administration' },
198
208
  ];
199
209
 
200
210
  /**
@@ -266,7 +276,7 @@ export interface MenuPreset {
266
276
  export const MENU_PRESETS: MenuPreset[] = [
267
277
  {
268
278
  id: 'default_full',
269
- label: 'Core Only',
279
+ label: 'Default',
270
280
  description: 'System modules only',
271
281
  primaryMenus: [
272
282
  {
@@ -278,7 +288,7 @@ export const MENU_PRESETS: MenuPreset[] = [
278
288
  'core__warehouses', 'core__terminals',
279
289
  'core__activity_logs', 'core__api_requests', 'core__feature_access_logs',
280
290
  'core__issue_logs', 'core__feature_registry', 'core__menu_config',
281
- 'core__printables', 'core__template_groups', 'core__currencies',
291
+ 'core__printables', 'core__template_groups', 'core__currencies', 'core__settings',
282
292
  ],
283
293
  },
284
294
  {
@@ -329,12 +339,12 @@ export const MENU_PRESETS: MenuPreset[] = [
329
339
  secondaryItems: [
330
340
  'jewelry__items', 'jewelry__categories',
331
341
  'jewelry__material_types', 'jewelry__purities', 'jewelry__metal_rates',
332
- 'jewelry__purchase_orders', 'jewelry__grn', 'jewelry__custom_orders', 'jewelry__service_orders', 'jewelry__transformations',
342
+ 'jewelry__purchase_orders', 'jewelry__grn', 'jewelry__opening_stock', 'jewelry__custom_orders', 'jewelry__service_orders', 'jewelry__transformations',
333
343
  'jewelry__old_gold_purchases',
334
344
  'jewelry__sales', 'jewelry__sales_returns',
335
345
  'jewelry__stock_balances', 'jewelry__stock_movements', 'jewelry__stock_transfers',
336
346
  'jewelry__party_transactions',
337
- 'jewelry__karigar_scrap_returns',
347
+
338
348
  'jewelry__karigar_making_charges',
339
349
  'jewelry__party_metal_balances',
340
350
  'jewelry__metal_settlements',
@@ -375,468 +385,25 @@ export const MENU_PRESETS: MenuPreset[] = [
375
385
  'money_exchange__cross_currency',
376
386
  ],
377
387
  },
388
+ {
389
+ id: 'reports',
390
+ label: 'Reports',
391
+ iconName: 'BarChart3',
392
+ secondaryItems: [
393
+ 'reports__jewelry', 'reports__inventory', 'reports__finance',
394
+ 'reports__all', 'reports__builder', 'reports__configurator'
395
+ ]
396
+ }
378
397
  ],
379
398
  },
380
399
  ];
381
400
 
382
401
 
383
402
  // ─── DEFAULT APP MENUS (legacy / fallback) ───────────────────────
384
- // This is the current static config, used when no custom config exists.
385
-
386
- export const APP_MENUS: MainMenuItem[] = [
387
- {
388
- id: "core",
389
- label: "Core",
390
- iconName: "Settings",
391
- groups: [
392
- {
393
- id: "core_users",
394
- label: "User Management",
395
- items: [
396
- { id: "users", label: "Users", path: "/users" },
397
- { id: "roles", label: "Roles", path: "/roles" },
398
- { id: "organizations", label: "Organizations", path: "/organizations" },
399
- { id: "parties", label: "Parties", path: "/parties" },
400
- ],
401
- },
402
- {
403
- id: "core_system",
404
- label: "System",
405
- items: [
406
- { id: "menu_config", label: "Menu Configuration", path: "/menu-config" },
407
- { id: "printables", label: "Printable Templates", path: "/system/printables" },
408
- { id: "template_groups", label: "Template Groups", path: "/system/template-groups" },
409
- ],
410
- },
411
- {
412
- id: "core_resources",
413
- label: "Resources",
414
- items: [
415
- { id: "warehouses", label: "Warehouses", path: "/warehouses" },
416
- { id: "terminals", label: "Terminals", path: "/terminals" },
417
- { id: "currencies", label: "Currencies", path: "/currencies" },
418
- ],
419
- },
420
- {
421
- id: "core_audit",
422
- label: "System Auditing",
423
- items: [
424
- { id: "activity_logs", label: "Activity Logs", path: "/activity-logs" },
425
- { id: "api_requests", label: "API Requests", path: "/system/api-requests" },
426
- { id: "feature_access_logs", label: "Feature Access Logs", path: "/system/feature-access-logs" },
427
- { id: "issue_logs", label: "Issue Logs", path: "/system/issue-logs" },
428
- { id: "feature_registry", label: "Feature Registry", path: "/system/features" },
429
- ],
430
- },
431
- {
432
- id: "core_settings",
433
- label: "Configuration",
434
- items: [
435
- { id: "currencies_settings", label: "Settings", path: "/settings" },
436
- ],
437
- },
438
- ],
439
- },
440
- {
441
- id: "inventory",
442
- label: "Inventory",
443
- iconName: "Package",
444
- groups: [
445
- {
446
- id: "inventory_catalog",
447
- label: "Catalog",
448
- items: [
449
- { id: "items", label: "Items", path: "/inventory/items" },
450
- { id: "categories", label: "Categories", path: "/inventory/categories" },
451
- { id: "brands", label: "Brands", path: "/inventory/brands" },
452
- { id: "uom", label: "Units of Measure", path: "/inventory/uom" },
453
- ],
454
- },
455
- {
456
- id: "inventory_stock",
457
- label: "Stock",
458
- items: [
459
- { id: "stock", label: "Stock Overview", path: "/inventory/stock" },
460
- { id: "ledger", label: "Stock Movements", path: "/inventory/ledger" },
461
- ],
462
- },
463
- {
464
- id: "inventory_operations",
465
- label: "Operations",
466
- items: [
467
- { id: "adjustments", label: "Adjustments", path: "/inventory/adjustments" },
468
- { id: "transfers", label: "Transfers", path: "/inventory/transfers" },
469
- { id: "serials", label: "Serial Numbers", path: "/inventory/serials" },
470
- ],
471
- },
472
- ],
473
- },
474
- {
475
- id: "sales",
476
- label: "Sales",
477
- iconName: "ShoppingCart",
478
- groups: [
479
- {
480
- id: "sales_master_data",
481
- label: "Master Data",
482
- items: [
483
- { id: "price_lists", label: "Price Lists", path: "/sales/price-lists" },
484
- ],
485
- },
486
- {
487
- id: "sales_orders",
488
- label: "Orders",
489
- items: [
490
- { id: "quotations", label: "Quotations", path: "/sales/quotations" },
491
- { id: "sales_orders", label: "Sales Orders", path: "/sales/orders" },
492
- ],
493
- },
494
- {
495
- id: "sales_fulfillment",
496
- label: "Fulfillment",
497
- items: [
498
- { id: "goods_issue_notes", label: "Goods Issue Notes", path: "/sales/delivery-notes" },
499
- ],
500
- },
501
- {
502
- id: "sales_post_sales",
503
- label: "Post-Sales",
504
- items: [
505
- { id: "returns", label: "Sales Returns", path: "/sales/returns" },
506
- { id: "credit_notes", label: "Credit Notes", path: "/sales/credit-notes" },
507
- ],
508
- },
509
- {
510
- id: "sales_pos",
511
- label: "POS",
512
- items: [
513
- { id: "pos_terminal", label: "POS Terminal", path: "/sales/pos" },
514
- { id: "pos_sessions", label: "Terminal Sessions", path: "/sales/pos/sessions" },
515
- ],
516
- },
517
- {
518
- id: "sales_analytics",
519
- label: "Analytics",
520
- items: [
521
- { id: "sales_reports", label: "Sales Reports", path: "/sales/reports" },
522
- ],
523
- },
524
- ],
525
- },
526
- {
527
- id: "procurement",
528
- label: "Procurement",
529
- iconName: "Truck",
530
- groups: [
531
- {
532
- id: "procurement_orders",
533
- label: "Orders",
534
- items: [
535
- { id: "purchase_orders", label: "Purchase Orders", path: "/procurement/orders" },
536
- ],
537
- },
538
- {
539
- id: "procurement_receiving",
540
- label: "Receiving",
541
- items: [
542
- { id: "goods_receipt", label: "Goods Receipt", path: "/procurement/grns" },
543
- ],
544
- },
545
- {
546
- id: "procurement_finance",
547
- label: "Finance",
548
- items: [
549
- { id: "ap_invoices", label: "Invoices", path: "/finance/invoices" },
550
- { id: "outgoing_payments", label: "Payments", path: "/finance/payments" },
551
- ],
552
- },
553
- ],
554
- },
555
- {
556
- id: "finance",
557
- label: "Finance",
558
- iconName: "Wallet",
559
- groups: [
560
- {
561
- id: "finance_transactions",
562
- label: "Transactions",
563
- items: [
564
- { id: "invoices", label: "Invoices", path: "/finance/invoices" },
565
- { id: "payments", label: "Payments", path: "/finance/payments" },
566
- { id: "transaction_ledger", label: "Transaction Ledger", path: "/finance/transactions" },
567
- ],
568
- },
569
- {
570
- id: "finance_accounting",
571
- label: "Accounting",
572
- items: [
573
- { id: "chart_of_accounts", label: "Chart of Accounts", path: "/finance/chart-of-accounts" },
574
- { id: "journal_entries", label: "Journal Entries", path: "/finance/journal-entries" },
575
- { id: "fiscal_years", label: "Fiscal Years", path: "/finance/fiscal-years" },
576
- ],
577
- },
578
- {
579
- id: "finance_reports",
580
- label: "Reports",
581
- items: [
582
- { id: "trial_balance", label: "Trial Balance", path: "/finance/reports/trial-balance" },
583
- { id: "profit_loss", label: "Profit & Loss", path: "/finance/reports/profit-loss" },
584
- { id: "balance_sheet", label: "Balance Sheet", path: "/finance/reports/balance-sheet" },
585
- { id: "account_ledger", label: "Account Ledger", path: "/finance/reports/account-ledger" },
586
- { id: "party_statement", label: "Party Statement", path: "/finance/reports/party-statement" },
587
- { id: "bank_statements", label: "Bank Statements", path: "/finance/bank-statements" },
588
- ],
589
- },
590
- {
591
- id: "finance_settings",
592
- label: "Settings",
593
- items: [
594
- { id: "payment_modes", label: "Payment Modes", path: "/finance/payment-modes" },
595
- { id: "bank_accounts", label: "Bank Accounts", path: "/finance/bank-accounts" },
596
- { id: "account_mappings", label: "Account Mappings", path: "/finance/account-mappings" },
597
- { id: "opening_balances", label: "Opening Balances", path: "/finance/opening-balances" },
598
- ],
599
- },
600
- ],
601
- },
602
- {
603
- id: "hr",
604
- label: "HR",
605
- iconName: "Users",
606
- groups: [
607
- {
608
- id: "hr_core",
609
- label: "Core",
610
- items: [
611
- { id: "employees", label: "Employees", path: "/hr/employees" },
612
- { id: "teams", label: "Teams", path: "/hr/teams" },
613
- ],
614
- },
615
- {
616
- id: "hr_time",
617
- label: "Time",
618
- items: [
619
- { id: "employee_calendar", label: "Employee Calendar", path: "/hr/employee-calendar" },
620
- { id: "my_calendar", label: "My Calendar", path: "/hr/my-calendar" },
621
- { id: "attendance", label: "Attendance", path: "/hr/attendance" },
622
- { id: "regularisation", label: "Regularisation", path: "/hr/regularisation" },
623
- { id: "shift_templates", label: "Shift Templates", path: "/hr/shift-templates" },
624
- { id: "rosters", label: "Roster Builder", path: "/hr/rosters" },
625
- { id: "shift_exchanges", label: "Shift Exchanges", path: "/hr/shift-exchanges" },
626
- { id: "shift_allowances", label: "Shift Allowances", path: "/hr/shift-allowances" },
627
- { id: "leave_types", label: "Leave Types", path: "/hr/leave-types" },
628
- { id: "holidays", label: "Holidays", path: "/hr/holidays" },
629
- { id: "leave", label: "Leave Management", path: "/hr/leave" },
630
- ],
631
- },
632
- {
633
- id: "hr_admin",
634
- label: "Admin",
635
- items: [
636
- { id: "designations", label: "Designations", path: "/hr/designations" },
637
- ],
638
- },
639
- {
640
- id: "hr_payroll",
641
- label: "Payroll",
642
- items: [
643
- { id: "ot", label: "Overtime", path: "/hr/ot" },
644
- { id: "ot_policies", label: "OT Policies", path: "/hr/ot-policies" },
645
- { id: "ot_rate_templates", label: "OT Rate Templates", path: "/hr/ot-rate-templates" },
646
- ],
647
- },
648
- {
649
- id: "hr_masters",
650
- label: "Masters",
651
- items: [
652
- { id: "skills", label: "Skills", path: "/hr/skills" },
653
- { id: "qualifications", label: "Qualifications", path: "/hr/qualifications" },
654
- { id: "holiday_types", label: "Holiday Types", path: "/hr/holiday-types" },
655
- { id: "break_types", label: "Break Types", path: "/hr/break-types" },
656
- { id: "option_sets", label: "Option Sets", path: "/hr/option-sets" },
657
- ],
658
- },
659
- ],
660
- },
661
- {
662
- id: "jewelry",
663
- label: "Jewelry",
664
- iconName: "Gem",
665
- groups: [
666
- {
667
- id: "jewelry_catalog",
668
- label: "Catalog",
669
- items: [
670
- { id: "jewelry_items", label: "Jewelry Items", path: "/jewelry/items" },
671
- { id: "jewelry_services", label: "Services", path: "/jewelry/services" },
672
- { id: "jewelry_categories", label: "Categories", path: "/jewelry/categories" },
673
- ],
674
- },
675
- {
676
- id: "jewelry_master_data",
677
- label: "Master Data",
678
- items: [
679
- { id: "material_types", label: "Material Types", path: "/jewelry/material-types" },
680
- { id: "purities", label: "Purities", path: "/jewelry/purities" },
681
- { id: "metal_rates", label: "Metal Rates", path: "/jewelry/metal-rates" },
682
- ],
683
- },
684
- {
685
- id: "jewelry_procurement",
686
- label: "Procurement",
687
- items: [
688
- { id: "purchase_orders", label: "Purchase Orders", path: "/jewelry/procurement/orders" },
689
- { id: "goods_receipt", label: "Goods Receipt", path: "/jewelry/procurement/grn" },
690
- { id: "opening_stock", label: "Opening Stock", path: "/jewelry/procurement/opening_stock" },
691
- { id: "custom_orders", label: "Custom Orders", path: "/jewelry/custom-orders" },
692
- { id: "service_orders", label: "Service Orders", path: "/jewelry/service-orders" },
693
- { id: "transformations", label: "Transformations", path: "/jewelry/procurement/transformations" },
694
- ],
695
- },
696
- {
697
- id: "jewelry_buying",
698
- label: "Buying",
699
- items: [
700
- { id: "old_gold_purchases", label: "Old Material Purchases", path: "/jewelry/old-gold-purchases" },
701
- ],
702
- },
703
- {
704
- id: "jewelry_sales",
705
- label: "Sales",
706
- items: [
707
- { id: "jewelry_sales_main", label: "Sales", path: "/jewelry/sales" },
708
- { id: "jewelry_sales_returns", label: "Sales Returns", path: "/jewelry/sales-returns" },
709
- ],
710
- },
711
- {
712
- id: "jewelry_stock",
713
- label: "Stock",
714
- items: [
715
- { id: "stock_balances", label: "Stock Balances", path: "/jewelry/stock/balances" },
716
- { id: "stock_movements", label: "Stock Movements", path: "/jewelry/stock/movements" },
717
- { id: "stock_transfers", label: "Transfers", path: "/jewelry/stock-transfers" },
718
- ],
719
- },
720
- {
721
- id: "jewelry_karigar",
722
- label: "Karigar",
723
- items: [
724
- { id: "party_transactions", label: "Party Transactions", path: "/jewelry/party-transactions" },
725
- { id: "karigar_scrap_returns", label: "Karigar Dust Returns", path: "/jewelry/karigar-scrap-returns" },
726
- { id: "karigar_making_charges", label: "Making Charges", path: "/jewelry/karigar-making-charges" },
727
- { id: "party_metal_balances", label: "Party Metal Balances", path: "/jewelry/party-metal-balances" },
728
- { id: "metal_settlements", label: "Metal Settlements", path: "/jewelry/metal-settlements" },
729
- ],
730
- },
731
- {
732
- id: "jewelry_analytics",
733
- label: "Analytics",
734
- items: [
735
- { id: "jewelry_reports", label: "Reports & Dashboards", path: "/reports/jewelry" },
736
- ],
737
- },
738
- {
739
- id: "jewelry_configuration",
740
- label: "Configuration",
741
- items: [
742
- { id: "jewelry_settings", label: "Settings", path: "/jewelry/settings" },
743
- { id: "jewelry_billing_templates", label: "Billing Templates", path: "/jewelry/billing-templates" },
744
- ],
745
- },
746
- ],
747
- },
748
- {
749
- id: "reports",
750
- label: "Reports",
751
- iconName: "BarChart3",
752
- groups: [
753
- {
754
- id: "reports_dashboards",
755
- label: "Dashboards",
756
- items: [
757
- { id: "reports_jewelry", label: "Jewelry", path: "/reports/jewelry" },
758
- { id: "reports_inventory", label: "Inventory", path: "/reports/inventory" },
759
- { id: "reports_finance", label: "Finance", path: "/reports/finance" },
760
- ],
761
- },
762
- {
763
- id: "reports_home",
764
- label: "General",
765
- items: [
766
- { id: "reports_all", label: "All Reports", path: "/reports" },
767
- ],
768
- },
769
- {
770
- id: "reports_admin",
771
- label: "Administration",
772
- items: [
773
- { id: "reports_builder", label: "Report Builder", path: "/reports/admin/reports" },
774
- { id: "reports_configurator", label: "Dashboard Configurator", path: "/reports/admin/dashboards" },
775
- ],
776
- },
777
- ],
778
- },
779
- {
780
- id: "money_exchange",
781
- label: "Money Exchange",
782
- iconName: "Banknote",
783
- groups: [
784
- {
785
- id: "money_exchange_overview",
786
- label: "Overview",
787
- items: [
788
- { id: "money_exchange_dashboard", label: "Dashboard", path: "/money-exchange" },
789
- { id: "money_exchange_rates", label: "Rates Management", path: "/money-exchange/rates" },
790
- ],
791
- },
792
- {
793
- id: "money_exchange_operations",
794
- label: "Operations",
795
- items: [
796
- { id: "money_exchange_pos", label: "Point of Sale", path: "/money-exchange/pos" },
797
- { id: "money_exchange_transactions", label: "Transactions", path: "/money-exchange/transactions" },
798
- ],
799
- },
800
- {
801
- id: "money_exchange_inventory",
802
- label: "Inventory & Stock",
803
- items: [
804
- { id: "money_exchange_till", label: "Till", path: "/money-exchange/till" },
805
- { id: "money_exchange_branch_stock", label: "Vault", path: "/money-exchange/branch-stock" },
806
- { id: "money_exchange_internal_transfers", label: "Internal Transfers", path: "/money-exchange/internal-transfers" },
807
- ],
808
- },
809
- {
810
- id: "money_exchange_wholesale",
811
- label: "Wholesale",
812
- items: [
813
- { id: "money_exchange_wholesale", label: "Wholesale Operations", path: "/money-exchange/wholesale" },
814
- { id: "money_exchange_suppliers", label: "Supplier Registry", path: "/money-exchange/suppliers" },
815
- ],
816
- },
817
- // {
818
- // id: "money_exchange_remittances",
819
- // label: "Remittances",
820
- // items: [
821
- // { id: "money_exchange_remittance_agents", label: "Agent Registry", path: "/money-exchange/agents" },
822
- // { id: "money_exchange_remittance_corridors", label: "Corridors", path: "/money-exchange/corridors" },
823
- // { id: "money_exchange_remittances", label: "Transactions", path: "/money-exchange/remittances" },
824
- // { id: "money_exchange_remittance_settlements", label: "Settlements", path: "/money-exchange/settlements" },
825
- // ],
826
- // },
827
- {
828
- id: "money_exchange_config",
829
- label: "Config",
830
- items: [
831
- { id: "money_exchange_denominations", label: "Denomination", path: "/money-exchange/denominations" },
832
- { id: "money_exchange_till_thresholds", label: "Till Thresholds", path: "/money-exchange/till-thresholds" },
833
- { id: "money_exchange_cross_currency", label: "Margin Rate", path: "/money-exchange/cross-currency" },
834
- { id: "money_exchange_opening_stock", label: "Opening Stock", path: "/money-exchange/opening-stock" },
835
- ],
836
- },
837
- ],
838
- },
839
- ];
403
+ // This is dynamically generated from the default preset!
404
+ export const APP_MENUS: MainMenuItem[] = buildMenusFromConfig({
405
+ primaryMenus: MENU_PRESETS[0].primaryMenus
406
+ });
840
407
 
841
408
  /**
842
409
  * Builds MainMenuItem[] from a saved menu config (from the API).